問題タブ [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.
c - add_key (Linux Key Management) インターフェイスの使用に関する混乱
各キーがディスク上のパスに関連付けられているカーネルにいくつかの暗号キーを保存する必要があります。制限されたユーザーのセットは、そのようなパスでファイルを作成できますが、暗号鍵はそのようなすべてのユーザーによって共有されます。プロジェクトに Linux カーネル キー管理機能を使用することを考えています。キーとカーネル モジュールを管理するユーザーモード アプリケーションがあります。ただし、 add_key インターフェイスは明確ではありません。誰でもアクセスできるグローバル キーリングを作成するにはどうすればよいですか? add_key の man ページには、add_key について次のように書かれています。
key_serial_t add_key(const char *type, const char *description, const void *payload, size_t plen, key_serial_t keyring);
説明
add_key() は、指定されたタイプと説明のキーを作成または更新し、長さ plen のペイロードでそれをインスタンス化し、それを指定されたキーリングにアタッチし、そのシリアル番号を返すようにカーネルに要求します。
宛先キーリングのシリアル番号は、呼び出し元が書き込み権限を持つ有効なキーリングのシリアル番号であるか、特別なキーリング ID である可能性があります。
KEY_SPEC_THREAD_KEYRING これは、呼び出し元のスレッド固有のキーリングを指定します。
KEY_SPEC_PROCESS_KEYRING これは、呼び出し元のプロセス固有のキーリングを指定します。
KEY_SPEC_SESSION_KEYRING これは、呼び出し元のセッション固有のキーリングを指定します。
KEY_SPEC_USER_KEYRING これは、呼び出し元の UID 固有のキーリングを指定します。
KEY_SPEC_USER_SESSION_KEYRING これは、呼び出し元の UID セッション キーリングを指定します。
カーネルで register_key_type API を使用して、カーネルに独自の「タイプ」を登録する必要がある場合があることを理解しています。ただし、キーリング パラメーターにどの値を渡す必要があるのか わかりません。また、権限を割り当てる際の所有者とはどういう意味ですか?
sql - EKM 非対称キーを使用した TDE 暗号化で Always On を構築する
Always On 機能を使用して HA グループを作成しようとしています。
当社のデータベースは、EKM (外部暗号化プロバイダー - HSM) を使用して TDE で暗号化されています。
ウィザードを使用して可用性グループを構築しようとすると、データベースを選択できない
暗号化キー、T-SQLスクリプトを使用してこの問題を回避するリンクを1つ見つけましたが、
外部キーではなくマスター キー (非対称)
EKMで設定する方法はありますか?
key-management - 作成したキーストアから公開鍵と秘密鍵を取得する方法
私のタスクは次のとおりです。
- 作成したキーストアから公開鍵と秘密鍵を取得します。
- これらのキーを使用して、私の RSA 2048 ビット公開キーを使用して段落を暗号化します。
- DSA-SHA-1 署名アルゴリズムを使用して結果にデジタル署名します。
- デジタル署名の出力を というファイルに保存します
output.dat
。
以下のプログラムはエラーをスローしています: "java.security.InvalidKeyException: インストールされたプロバイダはこのキーをサポートしていません: sun.security.provider.DSAPublicKeyImpl".
php - 暗号鍵を保管する場所
iPhone用アプリの一部を書いてくれる派遣社員を募集しています。データの多くは mcrypt を使用して暗号化されます。データは Android または iPhone で生成され、php で復号化されます。逆もまた同様です。
派遣労働者が暗号鍵とソルトを知らなくても自分の仕事をする方法はありますか?
encryption - ファイル ダウンロードのマルチキャスト暗号化
頻繁に更新される有料アドオンを含むプログラムがあります。ユーザーが特定のアドオンを使用できるようにするには、サブスクリプションを購入する必要があります (つまり、毎月無料で支払う)。
アドオンのサブスクリプション ベースのモデルを選択した主な理由は単純です。アドオンは頻繁に更新する必要があるため、更新は本当にセールス ポイントです。簡単に言えば、これらのアドオンは基本的に更新なしでは役に立たない.
ファイルのダウンロードに進みます。基本的には、有料ユーザーのみがこれらのアドオンを使用できるようにしたいと考えています。
通常、中央サーバーとデータベースを使用する場合、これはかなり簡単ですが、データベースを備えた中央サーバーを使用できない場合はそうではありません。(私はこれに影響を与えません。)
これは私が思いついた最も効率的なソリューションです。
- ユーザーはランダムな AES256 キーを取得します。
- 有料アドオンをランダムな AES256 キーで暗号化します。
- 次に、アドオンのキーをユーザー キーで暗号化します。
- すべてのユーザーとアドオンで上記を洗い流して繰り返し、1 つのモノリシック キーファイルを作成します。
- 暗号化されたアドオン ファイルとモノリシック キーファイルをファイル共有サービスにアップロードします。
上記のソリューションには、次の特徴があります。
- 以降のバージョンでキーを取り消す機能。(非常に重要)
- あいまいさによるセキュリティなし。誰でもアドオンまたはキーファイルをダウンロードできますが、AES256 をブルートフォースすることは計算上実行不可能であるため、キーを持っていない限り役に立ちません。
この解決策は問題ありませんが、ユーザーとアドオンの数が増えると問題が発生し始めます。
例:
- 10,000 人のユーザーと 100 個のアドオンがあります。
- 10,000 ユーザー × 100 アドオン = 1,000,000 キー
- 1,000,000 キー * キーあたり 300 バイト** = 300MB
** キー (64) + 初期化ベクトル (32) + キーごとのファイル形式のオーバーヘッド。これにより、ソフトウェアは復号化する正しいキーを見つけることができます。
最良の (不可能な) シナリオでも、96 MB のキーファイルになります。
この (未知の) 既知の問題に対する他の解決策はありますか? それらは何と呼ばれ、どこで使用されますか?
java - プログラムで .cer 証明書をキーストアにインポートする
.p12 証明書をクラスパスから Java キーストアにインポートするにはどうすればよいですか? まず、InstallCert https://code.google.com/p/java-use-examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.javaを使用し、いくつかの変更を加えてサーバー証明書をJava インストール ディレクトリのキーストアにインポートされます。これは正常に機能しますが、クラスパスから証明書をロードしたいと考えています。
編集: .cer 証明書を使用するだけです。次の回答を参照してください