ウェブ上でスマートカードクライアント認証を行うには、標準のTLS/SSLまたはブラウザ用のカスタムプラグインの2つの方法があります。私はあなたが標準的なWebブラウザ(IE/FF/Safari)とSSL認証について話していると仮定します。
PINのために重要で二つ促しあります
- のSSLセッションおよびSSLセッションキャッシュブラウザ
- はミドルウェアがあり、関連する秘密鍵
- 途中のオンカード認証状態実装されました。
最終的には、セキュリティ上の観点から、PINを「尋ねる」ことを知っているカードです - いくつかのカードとキーには、キー操作のたびにPINが必要です。 PINを一度読み取り、リーダーから取り除かれるか、アプリケーションによってリセットされるまで、鍵を認証済みの状態にしておきます。
スマートカードミドルウェア(Linuxの場合はPKCS#11、Windowsの場合はCryptoAPI/BaseCSPモジュール、OSXの場合はToken)はブラウザのキャッシュ内のセッションを再利用できない場合や接続が確立されている場合に必要です。カードのキーと話す。カードの認証状態でPINを入力する必要がある場合は、通常、ブラウザによってコールバックがトリガーされます。ミドルウェアがPINを必要としていることを知っている場合は、カードと話す前にPINを要求します。
PINの入力と実際に秘密鍵へのアクセス権の再認証とSSLセッションの再認証との間に1対1の関係はありません。
標準のSSLでは、ブラウザにSSLが実装される方法に依存し、クライアント側で100%信頼できる「PINを入力して再認証する」ことはできません。
Linuxを使用している場合は、OpenSC(AFAIKはCACカードを使用できます)でopensc.confの "transaction_reset"をtrueに設定すると、すべてのトランザクション後にカードがリセットされます(SSLセッションネゴシエーション)このようにして、新しいSSLセッションを開くたびに、ユーザーは再度PINを入力する必要があります。これはクライアント側の構成であり、サーバー起動の機能ではありません。
この問題の解決方法を教えてください。 :) –
@ケビン私は、CACカードのピンタイムアウトがブラウザから完全に独立していることを顧客に説明することによって要件を押し戻しました。セキュリティの観点からは、通常の機能を妨害しようとするのは良い考えではありません。彼らのセキュリティ担当者は、毎回クライアントにピンを再入力させる必要はないと同意しました。より良いアプローチは、期限が切れた場合にのみ再入力することです。 – adg