2012-01-09 30 views
13

スカンジナビアのある国の法的要件により、ウェブサイトの3要素認証が作成されています。顧客はNetIDブランドのブラウザプラグインを使用して、ブラウザでPKCS#11証明書認証を行います。スマートカードは、顧客のパートナーが一元的に提供します。ウェブサイトPKSC#11スマートカード認証およびSSLクライアント証明書

このテーマには、多くのオンラインリソースやチュートリアルはありません。誰かが、WebブラウザでPKCS11認証を行う方法の例の実装やチュートリアルへの参考になりますか?

EDIT:

  • 認証方法のように見えるSSLクライアント証明書についてSSLクライアント証明書が

  • がどのように我々は、ユーザとそのスマートカードとの間の関係を管理するんです発見されましたか?

  • ユーザーは私たちに公開鍵を提供し、その認証を受けますか?

  • 私たちは独自の認証書を使って各ユーザーに個別に署名/プロビジョニングする必要がありますか?

  • すべてのユーザスマートカードに、プロバイダ証明書に対してテストする「汎用」キーが含まれていますか?

http://www.garex.net/apache/

http://www.impetus.us/~rjmooney/projects/misc/clientcertauth.html

https://en.wikipedia.org/wiki/PKCS11

https://service.secmaker.com/examples/plugin.aspx

答えて

8

JavaScriptでそれをしないでください。 JavaScript cryptography has a number of problemsと、私は多くのブラウザがJavaScriptから(ページ内から実行して)簡単にPKCS#11にアクセスできるとは思わないと思います。

ブラウザの数は、HTTPS認証用のPKCS#11をサポートし、それは(HTTPSの一部としての)SSL/TLS接続の一部として、クライアント証明書認証のためのPKCS#11を使用して、です。あなたはすでに利用可能なPKCS#11ライブラリを持っていると仮定すると

(のは/usr/lib/opensc.soでOpenSCを言わせて)、あなたが設定することができますFirefoxはそれを使用します

  • 環境設定 - >詳細設定 - >暗号化を、「セキュリティデバイス」に行きます
  • モジュール名をリストから選択し、/usr/lib/opensc.soファイル(または適切なPKCS#11モジュールがあれば)をポイントします。

次に、クライアント証明書を要求するWebサイトに接続するときに、ブラウザはPKCS#11対応デバイスから証明書を選択するよう提供する必要があります。

PKCS#11構成メカニズムはブラウザごとに異なりますが、通常はPKCS#11モジュールのパスを設定することです。

私の知る限り、Internet ExplorerはPKCS#11を使用していません(少なくとも、特別なサポートは必要ありません)。代わりにMS CryptoAPIとInfoCardsを使用する必要があります。

サーバー側では、クライアント証明書認証の要件を構成する必要があります。 PKCS#11固有のものはありません。あなたの編集後


、あなたは証明機関(CA)および公開キー基盤(PKIの)についてお読みください。独自の内部PKIを展開することもできますが、既存のPKIと統合する必要があるように思えます。これは主に管理上の問題です。したがって、どのCAが頼りにしたいのか(おそらくはそのCA)を確認するには、この要件を満たす人に確認してください。

クライアント証明書認証を使用する場合、クライアントはその証明書(ユーザーの公開鍵と他の属性(識別子を含む他の属性:Subject Distinguished Name)を含む)を提示し、SSL/TLSハンドシェイクはクライアントがこの公開鍵証明書の秘密鍵。次に、サーバーは信頼するCAに対してこの証明書を検証します(これはサーバー側のSSL設定です)。

信頼するCAを設定したら、必要に応じて証明書のSubject DNを使用して内部ユーザー名にマッピングします。このための厳しい規則はありません。内部のユーザー命名規則に依存するためです。これは、ユーザー名として完全なSubject DNを使用することはしばしば賢明だと言われています。

+0

ありがとうございました。これにより私のためにたくさんのことが明らかになりました。これに基づいて、スマートカードプロバイダに証明書の処理方法をさらに質問することができました。 –

2

これで完了です。 PKCS#11スマートカードまたはトークンを使用したWeb認証は、Silverlight版のNCryptokiを使用して実装できます。 NCryptokiのSilverlightのバージョンを使用して)

1およびPKCSに#11スマートカードによって提供される機能

2を使用して認証プロトコルを実装する独自のSilverlightユーザーコントロールを開発:あなたは2 chanchesを持ってhttp://www.ncryptoki.com

を参照してください。 )上記のSilverlightバージョンに基づくJQueryプラグインを使用し、JavaScriptでPKCS#11関数を呼び出すことによってJavaScriptで認証プロトコルを実装する

+0

ありがとうございます。 Silverlightは実際には死んでいる馬であり、1つのプラットフォームに結びついているので、ここでは選択肢ではありません。しかし、私はこの問題をApacheとSSLのクライアント側の証明書で解決しました。私は答えが終わるとすぐにここに掲載します。 –

+0

@MikkoOhtamaaここにあなたのソリューションを掲載してください。 – guleryuz

3

現在、ブラウザプロセスでPKCS#11を実行することはできません。すべての適切なネイティブテクノロジは、死にかけている(NPAPI)か、すべてのブラウザで実装されていません。あなたはブラウザの外でそれを行う必要があり、いくつかの相互接続のコミュニケーションを作成します。

関連する問題