問題タブ [encryption]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - SSL を使用しない双方向パスワード暗号化
Twitter をブログのコメント システムと統合するために、basic-auth Twitter API (使用できなくなりました) を使用しています。この Web API や他の多くの Web API の問題は、有用なことを行うためにユーザーのユーザー名とパスワードが必要になることです。SSL 証明書をインストールする手間とコストに対処したくありませんが、ネットワーク上でパスワードがクリア テキストで渡されることも望ましくありません。
私の一般的な質問は次のとおりだと思います:安全でないチャネルを介して機密データを送信するにはどうすればよいですか?
これが私の現在の解決策であり、穴があるかどうかを知りたいです:
- サーバーでランダムなキーを生成します (私は php を使用しています)。
- キーをセッションに保存し、キーを javascript 変数に出力します。
- フォームの送信時に、javascript でトリプル DESとキーを使用してパスワードを暗号化します。
- サーバーで、セッションのキーを使用してパスワードを復号化し、セッションを破棄します。
最終的には、暗号化されたパスワードのみがネットワーク経由で送信され、キーは 1 回だけ使用され、パスワードと共に送信されることはありません。問題が解決しました?
security - 複数の受信者に対して 1 つのメッセージを暗号化する方法は?
正確に 2 つのキー (パスワードベースの可能性があります) を使用してデータ暗号化を実現し、データを復号化するには 2 つのキーのうちの 1 つ (いずれか 1 つ) のみを必要とするための基本は何ですか?
たとえば、データはユーザーのパスワードと会社のパスワードで暗号化され、ユーザーまたは会社はデータを復号化できます。どちらも他のパスワードを知りません。暗号化されたデータのコピーは 1 つだけ保存されます。
公開鍵/秘密鍵という意味ではありません。おそらく対称鍵暗号化を介しており、鍵を XOR して暗号化に使用するようなものかもしれません。
更新:キーの保存をまったく必要としないソリューションも見つけたいと思います。
encryption - Web アプリケーションでユーザーからのデータを暗号化する
Google ドキュメントなどの一部の Web アプリケーションは、ユーザーが生成したデータを保存します。所有者のみが読み取ることができるデータ。またはそうでないかもしれません?
私の知る限り、このデータはリモート データベースにそのまま保存されます。そのため、リモート システムで十分な権限を持っている人 (たとえば、システム管理者) が私のデータを盗むことができれば、私のプライバシーが危険にさらされる可能性があります。
このデータを暗号化してリモート データベースに格納し、データの所有者だけが復号化できるようにするための最適なソリューションは何でしょうか? このプロセスをユーザーに透過的にするにはどうすればよいですか? (ユーザーのパスワードを知る必要がないため、データを暗号化するためのキーとしてユーザーのパスワードを使用することはできません)。
.net - クレジット カードの暗号化に最適な .NET アルゴリズムはありますか?
.NETSystem.Security.Cryptography
名前空間には、クレジット カードの詳細を暗号化するために使用できる、かなり当惑するようなアルゴリズムのコレクションがあります。どちらがベストか?
比較的短い文字列の場合、明らかに安全である必要があります。
編集: 私は英国にいますが、3 桁の CVV 番号が決して保存されない限り、暗号化されたクレジット カードの詳細を保存しても問題ないことを理解しています。そして、すばらしい回答をありがとうございました。
asp.net - リプレイ攻撃を防ぐにはどうすればよいですか?
これは、私が尋ねた別の質問に関連しています。要約すると、フォームが POST されたときに、認証やユーザーのセッションの維持のために Cookie に頼ることができない URL の特殊なケースがあります。彼らがログインしていることを知るために!
問題の解決策を思いついたと思いますが、具体化する必要があります。これが私が考えていることです。「username」という非表示のフォーム フィールドを作成し、その中にユーザーのユーザー名を暗号化して配置します。次に、フォームが POST すると、ブラウザーから Cookie を受信しなくても、非表示のフォーム フィールドを解読してユーザー名を取得できるため、ログインしていることがわかります。
私が見ることができる主要なセキュリティ上の欠陥は、リプレイ攻撃です。誰かがその暗号化された文字列を入手して、そのユーザーとして投稿するのを防ぐにはどうすればよいですか? SSL を使用してその文字列を盗みにくくすることができることはわかっています。暗号化キーを定期的にローテーションして、文字列が有効な時間を制限することもできますが、防弾を見つけたいと思っています。解決。誰にもアイデアはありますか?ASP.Net ViewState は再生を妨げますか? もしそうなら、彼らはどのようにそれをしますか?
編集:データベースに何も保存する必要のないソリューションを望んでいます。アプリケーションの状態は問題ありませんが、IIS の再起動に耐えられないか、Web ファームまたはガーデン シナリオでまったく機能しません。データベースなしでこれを保護することさえ可能であると確信していないので、今のところクリスの答えを受け入れています。しかし、誰かがデータベースに関係のない答えを思いついたら、私はそれを受け入れます!
flash - 改ざんされていないデータを Flash アプリからサーバーに渡しますか?
Flash を実行しているクライアントとサーバーの間でデータを安全に受け渡す方法を探しています。問題のデータは Flash アプリによって生成されます。この場合、ゲーム終了後のスコアです。サーバー上でデータが改ざんされていないことを確認したい。これを行うための良い方法は何ですか?
簡単な方法の 1 つは、データに対してハッシュなどの操作を実行し、そのハッシュをデータと共にサーバーに戻すことです。ただし、これは、クライアントのソース コードにアクセスできる人物によって簡単に破られます。
編集:ハッキングできないものは何もないことを認識していますが、できるだけ難しくしたいと考えています。公開鍵でデータを暗号化し、オプションでサニティチェックやゲームログで再計算を行う@jcnnghmのソリューションが最良の選択肢だと思います。SSL 暗号化も良い考えです。これにより、実際にサーバーに送り返されているものを解読するのが難しくなります。
.net - Win32 CryptoAPIから生成されたキーblobを.NETアプリケーションで使用するにはどうすればよいですか?
C ++forWindowsで記述された既存のアプリケーションがあります。このアプリケーションは、Win32 CryptoAPIを使用して、データを暗号化/復号化するためのTripleDESセッションキーを生成します。1つのトリックの指数を使用して、セッションキーをblobとしてエクスポートします。これにより、blobを復号化された形式でどこかに保存できます。
問題は、これを.NETアプリケーション(C#)でどのように使用できるかということです。フレームワークは、CryptoAPIが実行していることの多くをカプセル化/ラップします。問題の一部は、 Microsoft Enhanced Cryptographic ProviderのTripleDESアルゴリズムが168ビット(56ビットの3キー)であるとCryptAPIが述べていることです。ただし、.NET Frameworkは、キーが192ビット(64ビットの3キー)であると述べています。どうやら、.NETフレームワークの3つの余分なバイトはパリティ用ですか?
とにかく、blobからキー部分を読み取り、それを.NETアプリケーションで使用できるようにする必要があります。現在、.NETでキーを使用しようとすると、期待した結果が得られません。復号化は惨めに失敗しています。どんな助けでも大歓迎です。
アップデート:
私はこれを解決する方法に取り組んでおり、時間内に投稿する解決策を考え出しました。ただし、それでも他の人からのフィードバックをいただければ幸いです。
c++ - 所有者パスワードを使用して PDF を復号化するにはどうすればよいですか? ユーザー パスワードは使用しません。
PDF 仕様は Adobe から入手できますが、正確に読むのが最も簡単なドキュメントではありません。PDF ではドキュメントを暗号化できるため、ドキュメントでさまざまなこと (表示、印刷など) を行うには、ユーザー パスワードまたは所有者パスワードが必要になります。一般的な用途は、エンド ユーザーがパスワードを入力せずに PDF を読めるように PDF をロックすることですが、それ以外のことを行うにはパスワードが必要です。
この方法でロックされている PDF を解析しようとしています (任意のリーダーで開くのと同じ権限を取得するため)。ユーザーパスワードとして空の文字列を使用しても機能しませんが、(仕様のセクション 3.5.2) 管理者パスワードのハッシュを作成するにはユーザーパスワードが必要なようです。
私が望むのは、これを行う方法の説明、または私が何を意図しているのかを理解できるように、これを行うことができる読み取り可能なコード (理想的には Python、C、または C++ ですが、読み取り可能なものであれば何でも構いません) のいずれかです。している。(たとえば) gsview ソースを読み通すよりも、スタンドアロン コードが最適です。
sql-server - SQL Server の「暗号化あり」ステートメントの有用性
最近、友人と私は、SQL サーバー データベースでストアド プロシージャ コードを保護することについて話していました。
遠い記憶から、「暗号化あり」は SQL Server のすべてのバージョンで信じられないほど簡単に破られると確信していますが、SQL 2005 では大幅に改善されたと彼は言いました。私がこれまで取り組んできたどのシステムでも。
では、どのようなシナリオで「暗号化あり」を使用できるのでしょうか。
.net - web.config での appSettings の暗号化
ユーザー名とパスワードを web.Config に保存する必要がある Web アプリを開発しています。これは、クライアントではなく Web アプリ自体によって要求されるいくつかの URL も参照します。
.Net フレームワークでは web.config ファイルの提供が許可されないことはわかっていますが、この種の情報をプレーン テキストのままにしておくのは悪い習慣だと思います。
これまでに読んだことはすべて、コマンド ライン スイッチを使用するか、サーバーのレジストリに値を保存する必要があります。ホストがオンラインで、FTP とコントロール パネル (helm) しかアクセスできないため、これらのいずれにもアクセスできません。
私が使用できる優れた無料の暗号化 DLL またはメソッドを誰かが推奨できますか? 自分で開発したくない!
これまでのフィードバックに感謝しますが、コマンドを発行することも、レジストリを編集することもできません。暗号化ユーティリティ/ヘルパーである必要がありますが、どれがいいのか迷っています!