2
Pkcs11Interopを使用して、HSMからキーの値を抽出しようとしています。 ...私は鍵がHSMに滞在している、知っているが、私はそれを必要とするので、Pkcs11Interop HSMからキー値を読み取る
私はすでにNCryptokiでそれを行うと私はこのコードを試してみましたPkcs11Interop
でも、それを行うにはしたいと思い:
// Prepare attribute template that defines search criteria
List<ObjectAttribute> objectAttributes = new List<ObjectAttribute>();
objectAttributes.Add(new ObjectAttribute(CKA.CKA_CLASS, CKO.CKO_SECRET_KEY));
objectAttributes.Add(new ObjectAttribute(CKA.CKA_KEY_TYPE, CKK.CKK_DES));
objectAttributes.Add(new ObjectAttribute(CKA.CKA_LABEL, "MY_KEY"));
// Find all objects that match provided attributes
List<ObjectHandle> foundObjects = session.FindAllObjects(objectAttributes);
var key = foundObjects[0];
byte[] plainKeyValue = null;
List<ObjectAttribute> readAttrs = session.GetAttributeValue(key, new List<CKA>() { CKA.CKA_VALUE });
if (readAttrs[0].CannotBeRead)
throw new Exception("Key cannot be exported");
else
plainKeyValue = readAttrs[0].GetValueAsByteArray();
plainKeyValueはすべてゼロですが、想像できるとおり、これは当てはまりません。
だから、どうすれば目標に到達できますか?
コードでそれを解決した作業が、唯一の「真= sensistive」とキーとされます。これは正しいです。しかし、私はとにかくその価値を得るために鍵を「ラップアンドラップ」できることを知っています。私はここでそれをどうやって行うことができますか? –
キー値をプレーンテキストにエクスポートすると(あなたのコードはそうしています)、キーのラップ/アンラッピングは2つの非常に異なるオペレーションです。キー値としてゼロを受け取った場合、それらはHSMベンダが提供するPKCS#11ライブラリによって送信され、NCryptokiはPkcs11Interop以外のものを受け取ることはできません。翻訳しようとしているNCryptokiコードを追加できますか?今私はほとんど失われていないので、あなたが達成しようとしていることをよりよく理解するのに役立ちます。 – jariq
返信jariqありがとう。私の答えを見て、私はそのように解決した。今私は別の大きな問題を抱えている、私は専用の質問を投稿し、リンクでここにコメントを書くだろう。 –