問題タブ [key-management]
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.
security - 暗号鍵を共有する実証済みの方法についてどこで学べますか?
グループがいくつかの情報を暗号化したい場合、情報を復号化するにはグループの合意が必要な方法で、グループ メンバー間で暗号化キーを共有するとします。私は、コンセンサスの幅が全会一致から絶対多数に及ぶさまざまなシナリオに興味があります。対称鍵、秘密鍵、またはその両方に役立つ手法を適用できます。
多くのSOメンバーができると確信しているように、私は自分の方法を転がすことに割くことができました. しかし、この質問の目的のために、私は広く公開され、専門の暗号分析者による精査に耐えた方法にのみ興味があります. ジャーナルの引用も良いですが、学術情報源の解釈も非常に役に立ちます。
aes - AES Rijndael で生成されたキーをデータベースに保存する方法は?
インスタンスを作成すると、KEY と IV が生成されます。
キーをデータベースまたは web.config ファイルに保存するにはどうすればよいですか?
そして、どのような形式で?
明らかに、暗号化された文字列を復号化しようとするときにキーをロードする必要があるためです。
このトピックについて少し迷ってしまいました。
encryption - 秘密鍵をそのまままたはプレーンテキストでローカルコンピュータに保存しないのはなぜですか?
私はこれを読んでいました:
http://msdn.microsoft.com/en-us/library/tswxhw92(VS.80).aspx
最初の文は次のように述べています。「非対称の秘密鍵は、ローカルコンピュータに逐語的またはプレーンテキストで保存しないでください。」
これの何が問題なのですか?そして、キーコンテナはどのようにそれを解決しますか。
私が尋ねている理由は、非対称鍵ペアを生成したいからです。私が書いているアプリケーションは、公開鍵を使って返送する情報を暗号化します。公開鍵と秘密鍵のペアをソース管理システムに保存して、バックアップできるようにすることを考えていました。私はそれをするべきではありませんか?そうでない場合は、秘密鍵を確実にバックアップできるように、どのように保存すればよいですか?
ありがとう。-スコット
更新:引用文の「never」は実際には決してないことを意味しますか。または、ハッカーがソース管理システムまたはそこから取得したバックアップからキーを取得する可能性があるというリスクを冒す準備ができていない限り、ソース管理にキーを保存するべきではないという意味ですか。
security - 秘密鍵管理を適切に行う方法
PCI DSSセキュリティ標準に準拠するキー管理スキームを実装するスキームの実践的な経験またはリファレンスを持っている人はいますか?
PCI DSSに準拠している企業の数を考えると、明らかにかなりの数の実装がありますが、それらの詳細を見つけるのは困難です。プライベートデータの保存に取り掛かると、通常、どの暗号化アルゴリズムを使用するかについての議論は停止します。その後、通常、秘密鍵を適切に保存することについての声明がありますが、それを行うための実際的な方法や、定期的に鍵を変更したり、アプリケーションに鍵を提供したりすることなどについての議論はありません。
特に、PCIDSS規格のセクション3.5および3.6の要件に関心があります。
3.5.2暗号化キーを可能な限り少ない場所とフォームに安全に保管します。
3.6.aカード会員データの暗号化に使用されるキーのキー管理手順の存在を確認します。注:キー管理に関する多数の業界標準は、 http://csrc.nist.govにあるNISTを含むさまざまなリソースから入手できます。
3.6.4少なくとも年に一度、定期的な鍵の変更を要求するように鍵管理手順が実装されていることを確認します。
PCI DSS要件ドキュメントが示唆しているように、 NIST暗号化の出版物を見てきましたが、暗号化キー管理ワークショップの最近のメモを除けば、実際に実装可能なスキームや標準の点でそれほど多くはないようです。
私がやろうとしていることに関しては、そうではありません:
- パスワードとソルトを認証用の一方向ハッシュとして保存し、
- データ暗号化に強力なシンメティックアルゴリズムを選択し、
- そもそも個人データを保存する必要はありません。
- 物理的セキュリティ、データベースセキュリティ、ドラゴン、ウィザードなど、他のメカニズムによるキー管理の必要性を回避します。
これらはすべて有効な懸念事項ですが、この場合は答えではありません。私の要件の要点は、ユーザーごとの機密データを保存および取得するための別のSO質問.Netデザインパターンにありますが、それはすべてキー管理に帰着するため、このより洗練された質問です。
encryption - ssh-agent から秘密鍵を抽出するには?
ssh-add -l
SSH エージェントに 3 つの RSA キーが追加されていることが表示されます。
ssh-add -L
それらの公開鍵を表示します。
ファイルに保存できるように、秘密鍵も取得するにはどうすればよいですか? それとも、これが不可能なのは設計上のものですか? それはどのように機能しますか?
秘密鍵を使用して操作を行うように ssh-agent に依頼できますか? 番号を暗号化/復号化するように依頼するにはどうすればよいですか?
このためにコードを書かなければならないことは問題ありませんが (プログラミング言語は関係ありません)、既存のツールまたはライブラリを使用することをお勧めします。
android - Android セキュア ストレージ
AES キーなど、小さいながらも重要な情報を Android アプリケーションに保存したいと考えています。これを行うにはどのような方法が推奨されますか? アプリケーションの一部としてキーをハードコーディングしたくありません。
KeyStoreを見ましたが、実際には問題は解決しません。パスワードを提供できれば、キーを保存できます。次に、このパスワードを保存するための安全な場所を見つける必要があります。これは、元の問題と同じです。
このタスクを実行するための組み込みの Android クラスはありますか? または、サードパーティのライブラリを探す必要がありますか? NDK の使用も許容範囲です。
アップデート:
私は、何らかの情報を保存したアプリケーションだけがその情報を取得できることを保証する、ストレージ用の Android API を見つけたいと考えていました。Android OS は、アプリケーションの署名署名に基づいてこれを強制できた可能性があります。このようにして、アプリケーションは最初の実行時にランダムなキーを生成し、後で使用するために安全なストレージに保存できます。このための API はありますか?
mysql - 暗号鍵管理ソフトウェアと透過的データ暗号化 MySQL
PCI コンプライアンスに関して、推奨される暗号鍵管理ソフトウェアはありますか? オープンソースが望ましいですが、商用もOKです。両方を提供するツールまたはソフトウェアはありますか?
ssl - キー/証明書管理のベスト プラクティス
ホストされている母艦と HTTPS および ssh 経由で通信する数百または数千の小規模サーバーを展開しています。
SSL クライアント証明書 (https 用) と ssh キーのいずれかを取り消す必要がある場合、これらを管理するためのベスト プラクティスは何ですか? 変更時にキー/証明書を配布する、失効を管理する、個別の ssh キーと共有キーが必要な場合などの問題について考えています...
c# - C#でのデータ暗号化とキー管理
どのルートを取るか、長所と短所は何ですか、どちらがより安全です。
1)AESキーを生成し、それを使用してデータを暗号化してから、RSAを使用してAESキーを暗号化し、暗号化されたデータと暗号化されたAESキーをファイルに保存し、RSAキーペアをKeyContainerに保存します。
2)または、DPAPI ProtectedDataクラスを使用してデータを暗号化し、ファイルに保存してから、使用したエントロピーProtectedData.Protect()
をどこかに保存します。(おそらく、RSAで暗号化し、RSAキーペアをKeyContainerに保存し、暗号化されたエントロピーをデータを含むファイル?)
編集:詳細については、アプリケーションのファイルシステムの使用を保護する必要があります。したがって、アプリケーションがファイルシステムに保存するファイルはすべて暗号化する必要があります。このファイルは、同じアプリケーションまたは同じアプリケーションスタックの別のコンポーネントによって使用されている可能性があります。
key-management - Java キーストアで対称キーを生成するコマンド ライン ツールはありますか?
アプリケーションのキー更新に関する手順を書いています。この手順は、システム管理者によって毎年実行されます。
私のアプリケーションには、データベースに保存する前にデータを暗号化するために使用される対称キーがあります。このキーは Java キーストアに格納されます。
アプリケーションが暗号化された方法でデータベースにデータを保存する必要がある場合、使用するキー エイリアスは構成ファイルから読み取られ、キーはこのキー エイリアスを使用して Java キーストアから読み取られ、データはキーで暗号化されて保存されます。データベース内のすべて: キー エイリアス、初期化ベクトル、および暗号化されたデータ。すべてセミコロンで区切られています。
したがって、別のキーを使用する手順は簡単です。
- 別のエイリアスを使用して Java キーストアに新しい対称キーを生成する
- この新しいキー エイリアスを使用するように構成ファイルを変更します。
しかし、Java キーストアで対称キーを作成できるコマンドライン ツールを知りません。javakeytool
ユーティリティはキー ペアのみを作成できます。
Java キーストアで対称キーを生成するコマンド ライン ツールはありますか?それとも独自のツールを開発する必要がありますか?