2

ユーザーがトークンにログインしてキーペアと署名を生成できるPKCS11Interopライブラリを使用して、暗号トークン(スマートカード)と対話する.Netアプリケーションがあります。

ユーザーが間違ったパスワードを複数回入力すると、トークンがロックされます。トークンへのログイン試行の残り回数を取得するにはどうすればよいですか。

インターネットで検索しているときに、この情報を含む Net.Pkcs11Interop.HighLevelAPI.TokenInfo.TokenFlags に出会いました

CKF_USER_PIN_COUNT_LOW 0x00010000 True if an incorrect user login
PIN has been entered at least
once since the last successful
authentication.
CKF_USER_PIN_FINAL_TRY 0x00020000 True if supplying an incorrect
user PIN will cause it to
become locked.
CKF_USER_PIN_LOCKED 0x00040000 True if the user PIN has been locked. User login to the token
is not possible

しかし、これらはブール値です。正確な再試行回数が必要です。

4

1 に答える 1

3

PKCS#11 API は、残りの再試行の正確な数を提供しません。あなたが正しく知っているように、次の方法で同様の情報を提供しますTokenFlags

// Get token info
TokenInfo tokenInfo = slot.GetTokenInfo();

if (tokenInfo.TokenFlags.UserPinCountLow)
{
    // An incorrect user login PIN has been entered at least once since the last successful authentication
}

if (tokenInfo.TokenFlags.UserPinFinalTry)
{
    // Supplying an incorrect user PIN will make it to become locked
}

if (tokenInfo.TokenFlags.UserPinLocked)
{
    // User PIN has been locked. User login to the token is not possible.
}
于 2018-03-12T18:00:25.187 に答える