コンピューターに接続されたスマートカード リーダーに、同じマシン上で実行されている Web ブラウザー (つまり、ActionScript、JavaScript、またはその中で実行されているその他のスクリプト) からアクセスすることは可能ですか?
たとえばflash.external.ExternalInterface
、ActionScript のクラスについて読んだことがあります。スマートカード リーダーへのアクセスに使用できますか、それともサンドボックスは侵入できませんか?
コンピューターに接続されたスマートカード リーダーに、同じマシン上で実行されている Web ブラウザー (つまり、ActionScript、JavaScript、またはその中で実行されているその他のスクリプト) からアクセスすることは可能ですか?
たとえばflash.external.ExternalInterface
、ActionScript のクラスについて読んだことがあります。スマートカード リーダーへのアクセスに使用できますか、それともサンドボックスは侵入できませんか?
Q: コンピュータに接続されたスマートカード リーダーに、同じマシンで実行されている Web ブラウザからアクセスできますか?
A: はい、可能です。署名付きの Java アプレットを使用して、これを行うことができました。システム ファイル/ハードウェアへのアクセス許可をユーザーに付与する必要があるため (アプレットにテキスト ファイルの書き込み/編集/削除を許可するのと同じ)、Java アプレットに署名する必要があります。
なぜジャバ?私が使用したスマート カード リーダーには既に Java API があり、Java を使用してアクセスする例も含まれています。ただし、例はスイングでコーディングされています。(スタンドアロンのデスクトップ アプリケーションのように) 私が行ったことは、単純に Java Swing コードをブラウザ上のアプレットに移植しただけです。このアプレットを使用して、スマート カード、ユーザー名、およびパスワードを要求することで、Web サイト/Web アプリケーションにログインおよびログアウトすることに成功しました。かなり安全です。
ソースコードは?共有したいのですが、コードを共有しないという会社の契約に縛られています。Java を使用したスマート カード アクセスのサンプルを見つけて、それをアプレット (Web 用) に移植するだけです。
これが役立つことを願っています
このベータ ネイティブ プラグインもご覧ください。
https://github.com/ubinity/webpcsc-firebreath
Firebreath フレームワークに基づくクロスブラウザ/クロスプラットフォーム プラグインであり、PCSC API のサブセットを公開します。
この提案「ブラウザーのスマート カード」が実装されると、これにも JavaScript を使用できるようになります。
署名されたJavaアプレットを使用して、リーダーにアクセスできます。署名されたアプレットはハードウェア周辺機器にアクセスでき、スマートカードリーダーにはJavaCryptoAPIを介してアクセスできます。
お役に立てれば。
USBドライブが接続され、別のディスクとして表示される場合など、ファイルシステム上のスマートカードにアクセスできる場合は、を使用できますflash.net.FileReference
。
ブラウザーに固執する必要がある場合、ActionScript/Flash ではこれを実現できません。
Adobe AIR はこれを行うことができますが、ユーザーが使用する前にインストールする必要があるアプリケーションを構築する必要があります。
このようなもの (AIR): http://cookbooks.adobe.com/post_Mass_Storage_Device_Detection_AIR_2_0-16747.html