web-dev-qa-db-ja.com

スマートカードとコンピューターの相互運用性の状態

スマートカードは、特に電子IDに使用できる唯一の本当に安全なデバイスです。ただし、標準化の欠如に起因するユーザビリティの懸念があります。

通常、スマートカードを使用するには、ユーザーはいくつかの(独自の)ミドルウェアをインストールする必要があります。それをブラウザーで使用するには、さらに具体的なものが必要です(ActiveX、Java apllets)。そのため、使いやすさが大幅に低下します。たとえば、エストニアのソリューション は、各国のIDカードとの通信を可能にするために、ブラウザーのアドオンとpkcs11モジュール をインストールする必要があります。

たくさん読みましたが、正直、少し迷ってしまいました。したがって、複数の側面(標準とプロジェクト)について明確化をお願いしたいと思います。フロー全体のどの部分がこれらをカバーしていますか、それらのステータスは何か、それらがどれだけ広く採用されているかなどです。

そして別の質問-近い将来、標準実装のスマートカードを、標準実装のOS上の標準実装のブラウザで、何もインストールする必要なしに使用する方法があると思いますか?

3
Bozho

あなたの質問から、PKIスマートカードのみを要求しているように見えるため、他の種類のスマートカードはスキップします。

最初にいくつかの理論。コンピュータは APDUコマンド を使用してすべてのスマートカードと通信します。それらは本当に低レベルのインターフェースであり、ほとんどすべてのカードで異なります。これには実際的で政治的な理由があります。実際の理由は、すべてのカードが標準化するのが難しい特定の機能を持つことができるということです。政治的な理由は、スマートカードベンダーが、クライアントが他のメーカーの安価なカードで簡単にカードを変更できることを望まないためです。ただし、スマートカードを使用するには、標準APIが必要です。したがって、すべてのベンダーは、標準API(PKCS#11、CryptoAPI、TokenD)をエクスポートし、この高レベルの関数呼び出しを一連のAPDUコマンドに変換するミドルウェアを提供しています。これはそれほど簡単な作業ではないため、すべてのプロプライエタリミドルウェアにはバグがあります。統一されたスマートカードインターフェイスまたは仕様に対する多くの試みがありましたが、ベンダーが独自のカードを作成および販売し続けたため、それらすべてが失敗しました。

標準/プロジェクトに関して:

  • ISO/IEC 24727-私はこの標準についての個人的な経験はありませんでしたが、API標準化の別の試みに失敗したようです。それらすべてのように、採用は非常に限られています。 Giesecke&Devrientだけがそれを実装するカードを作成したと思います。
  • ISO 7816-4-この規格は、ファイルの選択やバイナリの読み取りなどの一部のカード操作用の低レベルコマンドを定義していますが、署名やキー生成などのより使いやすいコマンドはカバーしていません。
  • PKCS#11-Wikipediaから-PKCS#11標準は、プラットフォームに依存しないAPIを暗号化トークンに定義しています。 PKCS#11インターフェースを使用できる多くのアプリケーションがあり、Mozillaがサポートするスマートカードインターフェースにすぎないため、すべてのPKIスマートカードには、それを実装するミドルウェアがあります。通常、すべての機能が実装されているわけではなく、一部は標準的な方法では実装されていません。ミドルウェアベンダーは、Firefoxでのみ実装をテストしているように見え、他のPKCS#11アプリケーションが正しく動作する保証はありません。
  • PKCS#15-独自のミドルウェア問題を修正するもう1つの試み。私はそれを使用したことがなく、それを使用する主要なソフトウェアはありません。
  • eCardを開く-カードが実装していないため、対応しません。
  • OpenSC-これは、さまざまなカード用のオープンソースミドルウェアです。自社のカード用にOpenSCドライバーを作成して積極的にサポートしている会社もあれば、公的な仕様に基づいて作成されている会社もあれば、リバースエンジニアリングされている会社もあります。公開仕様のカードのほとんどは IAS-ECC または S PIV カードのような国のeIDカードです。 Aventraのような一部の小規模企業は、APDUコマンドも公開しています。

ブラウザーでのスマートカードの使用について-すべての主要なブラウザーは、SSLクライアント認証にスマートカードに格納された証明書を使用できます。

ActiveX、Javaアプレットまたはブラウザー拡張機能は、それらをサポートするブラウザーが統合されていないため、署名を合法的に使用するために使用されます。WebCryptoAPIに 必要な機能を追加 する試みがいくつかありました。しかし、それはブラウザベンダーがそれに反対しているようです。詳細については、このディスカッションを読むことができます- http://lists.w3.org/Archives/Public/public-webcrypto-comments/2015Jun/ したがって、私はプラグインやアドオンを追加せずにブラウザーでドキュメントに署名することは近い将来に可能になるとは思わないでください。

編集:

追加のインストールなしでTLS clientAuthがスマートカードで機能するためには、オペレーティングシステムまたはブラウザーにスマートカードミドルウェアが含まれている必要があります。

Windowsにはいくつかのスマートカードミドルウェアがプリインストールされていると思いますが、多くの異なるカードにはWindowsのミドルウェアが更新されており、カードが差し込まれると自動的にインストールされます。このようにして、クライアント認証はFirefoxを除くすべての最新のブラウザーで機能します。 Firefoxは標準のWindows暗号化インターフェース(CryptoAPI)を使用しないため、追加のインストールまたは少なくとも手動の構成が必要です。

古いバージョンのOS Xも一部のカードをサポートしていましたが、10.6以降は削除されました。

4
Vasil Badev