3

cryptoki ライブラリを使用した呼び出しのCKR_DEVICE_MEMORYエラー コードを取得しています。C_Encrypt

PKCS#11 仕様からCKR_DEVICE_MEMORY、要求された機能を実行するのに十分なメモリがトークンにないことを意味します。

どのような状況で、トークンのメモリが完全にいっぱいになりますか?

HSM は 7 日間 24 時間 365 日連続で稼働しており、日中は主に 2 つの並行セッションでファイルの暗号化と復号化を行っています。私はC_Finalize過去 7 日間電話をかけていません。そのため、cryptoki ライブラリは、初期化された時点からメモリ空間で動作しています (これに関する関連記事を参照してください)。

アプリケーション、デバッグ ログなどから確認できますが、割り当て中、割り当て解除中なので、アプリケーション コードからのメモリ リークはありません。

更新 1: ASP.NETを呼び出す方法については、関連する詳細な議論があります。これを使用できなかった主な理由は、リサイクル/タイムアウトの後、ASP.net スレッドが単一のセッションにアクセスして CKR_OPERATION_ACTIVE エラーが発生するためです。私の場合、複数のアプリケーションが Web サービス経由で HSM にアクセスしています。C_FinalizeApplication_End

4

3 に答える 3

1

ここで、セッションを閉じていないと述べています。それが本当なら、それが s の原因である可能性が最も高いCKR_DEVICE_MEMORYです。

于 2010-07-12T13:13:33.927 に答える
0

私もこの問題を抱えており、年は2020年です:S .Net Framework + Rest Apiのカップルが今回この問題を抱えています。復号化方法に HSM を使用しています。ログイン方法のインタラクティブ チャネルがあり、パフォーマンス テストを行う必要があります。サービスには Pkcs11 からのインスタンスがあります

pkcs11 = new Pkcs11(hsmPath, true);
slot = GetUsableSlot(pkcs11);
TokenInfo tokenInfo = slot.GetTokenInfo();
session = slot.OpenSession(true);
session.Login(CKU.CKU_USER, userLoginPin);
secretKey = GenerateKey(session);

そして、これが Decrypt メソッドです。

public byte[] Decrypt(byte[] encryptedTextByteArray) {

    Mechanism mechanism = new Mechanism(CKM.CKM_AES_ECB);
    byte[] sourceData = encryptedTextByteArray;
    byte[] decryptedData = null;

    using (MemoryStream inputStream = new MemoryStream(sourceData), outputStream = new MemoryStream())
    {
        try
        {                
            session.Decrypt(mechanism, secretKey, inputStream, outputStream, 4096);
        }
        catch (Pkcs11Exception ex)
        {
            throw;
        }
        decryptedData = outputStream.ToArray();
    }
    return decryptedData;
}

Postman runner を使って性能テストを行ってみたところ、1 スレッドでも問題ありません。スレッド数を増やすと、これらのエラーが表示されます。最初のエラー: CKR_OPERATION_ACTIVE 次のエラー: CKR_DEVICE_MEMORY

これらの方法を試しました。- すべての要求がセッションを閉じた場合。また、新しいリクエストのセッションも開きました。しかし、成功しません。同じエラーが表示されました。(もちろん、リクエストと応答時間は増加しました) - すべてのリクエストに対して、接続が閉じられました。また、新しいリクエストに対して新しい接続を開きました。同じエラーが表示されました。(もちろん、リクエストとレスポンスの時間は増加します)

誰か助けて?:)

于 2020-06-04T17:37:52.017 に答える