web-dev-qa-db-ja.com

電子メールの暗号化とSSHにスマートカードを使用する

私が小規模な組織で、すべてのユーザーが最近のMacbook Proを持っていて、Amazonで約25ドルのスマートカードリーダーを購入でき、秘密鍵が個人のスマートカードにあるキーペアを使用して、電子メールの暗号化とSSH認証を実行するとします。

これらのリーダーのほとんどは、DOD CACまたは連邦PIVインフラストラクチャを対象としています。これらのものと統合する必要はありません-ルートCAを所有するか、手動ですべての人の公開鍵を何らかの種類のディレクトリに置きます。

市販のスマートカードにはどのような種類がありますか。オープンソースソフトウェアを使用して小規模で何かを確実に機能させるには、何に固執する(または回避する)必要がありますか?多くのベンダーが異なる実装をしているようで、企業向けのWindowsベースのソフトウェアの外部で(もしあれば)相互運用性がどの程度かは明確ではありません。

基本的に、私はYubikey Neoと同じようなことをしようとしていますが、一般的なカード(理想的には複数のサプライヤー)とリーダーを使用しています。特定の製品の推奨事項がトピックから外れていることを理解しています。この目的に使用できるカードを見つけるために、どの単語を検索/検索するかについての概要を探すだけです。

私が遭遇した用語:

  • ISO7816は標準の電気的インターフェースのようですが、これがすべてのISO7816準拠のカードとリーダーがソフトウェアレベルで相互運用可能であるかどうかはわかりません。

  • CCIDは、カードリーダーとの通信用にUSBにオーバーレイされる標準プロトコルのようです。

  • PKCS#11とPCKS#15は、Thunderbirdがスマートカードから使用できる、より高レベルの公開鍵暗号プリミティブのようです。

CCIDとISO7816の両方と互換性のあるISO7816カードとリーダーを使用できますか、それともそれ以上のものですか?

6
jacobbaer

Yubikey Neoには、CCIDインターフェースの提示、カード上のOpenPGPサポートアプリケーション、オープンソースと仕様のU2Fの提供など、非常に多くのオープン/ジェネリックモード(2つ購入したなど)があるため、何をするのかに本当に夢中ですサポート。

最終的に探しているのは、CCID +適切なアプレットを備えたカードだと思います。これにはOpenPGPカードで十分です。

1
Jeff Ferland

答えは次のようです:JavaCardを使用してください。個々のスマートカードメーカーはすべて独自の暗号管理ソフトウェアを持っていますが、GlobalPlatformを使用してOpenSC互換アプレットを空のJavaCardにロードし、ホワイトボックスPKCS#11機能を利用できます。

現在、いくつかのJavaCardを購入しています。

0
jacobbaer

私はスマートカードを試していますが、小さなPKIを作成して OpenSC-supported card (私の場合はOpenPGPカードですが、PGP側は問題ではないので)を使用することである程度成功しました。 PKIカードで十分です)。 OpenSCを使用すると、Windows、Mac、Linuxの両方にミドルウェアを提供し、FirefoxやSSHなどの他のほとんどのアプリケーションで使用できるPKCS11モジュールを提供するため、カードはすべての主要なプラットフォームで互換性があります。 Windowsとの互換性を高めるには(たとえば、Internet ExplorerではOpenSCを使用できない)、独自のドライバーを持つOpenSCの両方でサポートされているカードを用意するのが最善です。 Windowsの場合、CAPIを使用するアプリケーション(Internet Explorer、Outlook、さらにはログイン用)でも使用できます。

まず、認証局を設定します。 このチュートリアルのセット は、クリーンで読み取り可能なOpenSSL構成ファイルを提供します-最初に数日/数週間の実験-安全なPKIの実行は簡単ではなく、多くの予防策を講じる必要があります。中小企業の実稼働環境では、PKIスマートカードを使用してCAの秘密キーも格納することをお勧めします。OpenSCはPKCS11モジュールを提供しており、OpenSSLはそれを利用できます。そのカードを他の貴重な資産の隣の安全な場所に保管し、新しい証書を発行する必要がある場合にのみ持ち出すようにします。可能であれば、他の誰かの存在下で監査証跡を取得し、悪意のある従業員がCAカードを誤用しないようにします。あなたがそのリンクをたどるなら、私は高度な/専門家のチュートリアルを見ることをお勧めします-「シンプルな」ものはCRLやOCSPのような重要な部分が欠けているように思われるかもしれませんが、証明書を取り消す必要がある場合は間違いなくそれらを必要とします(カード紛失) /盗難、解雇された従業員など)。

CAをセットアップしたら、カードを初期化し、PINを変更してキーを生成し(OpenSCのドキュメントを参照)、CSRを生成し(OpenSC自体にはこのためのツールが提供されていないため、OpenSC PKCS11モジュールでOpenSSLを使用)、署名します。あなたのCAと一緒に。最後に、結果として得られた証明書をカードに入れれば、準備は完了です。

ただし、スマートカードを使用する場合、電子メールの暗号化では、モバイルデバイスまたはカードリーダーを備えていないデバイスでは、従業員はメールを復号化できません(外部で秘密キーを生成しない限り)。カードのそれからそれらを電話でそれをインポートすることを許可しますが、キーがマルウェアを使用して静かに盗まれることができるのでそれはカードの主な利点を無効にします)。

0
André Borie