Tomcat 6(サーバー)とSmartCard "IDGo 300"(クライアント)間の相互認証のためのJavaソリューションを開発する必要があります。
これを行うために、私は次のスキームを考えました:
1.Tomcat(サーバー)がスマートカード(クライアント)にデジタル証明書(CAによって署名)の要求を送信します。
2.クライアントがPIN=を入力し、スマートカードで利用可能な証明書を選択すると、アプレットが証明書(CAによって署名された)をTomcatに送信します。Tomcatはデジタル証明書を検証し、正しい場合は、証明書を送り返します。
3.アプレットはサーバーの証明書を検証し、証明書が正しい場合は、確認をサーバーに送信します。サーバーは、Webアプリケーションを使用するための完全なアクセス権をクライアントに付与します。
いくつか質問があります。
1.このスキームは実現可能ですか?
2.アプレットですべてを管理したいのですが、クライアントがスマートカードを切断すると、サーバーにアクセスできなくなります。
SmartCard API for Java を見てください。
この仕様は、Javaによって定義されるスマートカードI/O API JSR 268 について説明しています。これは、Javaスマートとの通信用APIを定義します ISO/IEC 7816-4 APDUを使用するカード。これにより、Javaアプリケーションがスマートカードで実行されているアプリケーションと対話し、カードにデータを保存および取得することができます。等.
APIは、パッケージ
javax.smartcardio
...のクラスによって定義されます。