スマートカード SSH 認証を設定するにはどうすればよいですか?

スマートカード SSH 認証を設定するにはどうすればよいですか?

認証方法として Gemalto .NET スマート カードを使用して、自分のマシンに SSH 接続できるようにしたいと考えています。これを Fedora 13 (または一般的な Red Hat スタイル) マシンで実行するにはどうすればよいですか?

必要と思われる大まかな手順は次のとおりです。

  1. スマート カードの証明書をプロビジョニングします (証明書を発行する CA も必要になる場合があります)
  2. スマートカードに証明書を取得する
  3. SSHサーバーを設定してスマートカード認証を許可し、特定の証明書/CAを使用するように設定
  4. スマート カードをサポートする SSH クライアント (無料の Windows ベースのクライアントであればさらに有利)

答え1

Gemalto ドライバーは現在オープンソースになっていると思います。ソースコードは同社の Web サイトにあります。

モジュールを構成する必要がありますpam(構成方法はわかりませんが、コードは確かに存在します)。pam構成には、証明書の原則をローカル ユーザー ID にマッピングする必要があると思います。

GDM は現在スマート カードをサポートしていると思いますが、どのように検出するかはわかりません。後で調べてみます (おそらく最も簡単な方法はgdmソース コードを覗くことです)。

もちろん、これにはすべて とpcscdがインストールされている必要があります。を にlibpcscliteコピーする必要もあります。libgtop11dotnet.so/usr/lib

libgtop11dotnet.so をコンパイルするためのソースコード:https://github.com/AbigailBuccaneer/libgtop11dotnet

答え2

Kerberos をお勧めします。MIT は krb5 クライアントとサーバーを製造しています。

vwduder さん、スマート カード リーダーと FIPS-201 準拠カードの入手先をお勧めいただけますか?

出典:http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

自分のサーバーにコピーがありますが、現時点ではこのスタックトレースではあまり人気がないため、皆さんと共有できません。上記のコピーは、私たち自身のサーバーよりも信頼性がわずかに低いだけなので、おそらくそこから入手できるでしょう ;)

[編集] 私はもう十分人気者になりました!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

答え3

RSA キーを使用する場合、1) と 2) は簡単です。3) で説明するように、このコンテキストでは実際の証明書は無関係です。cacert.org にアクセスするか、自己署名証明書を生成するだけで準備は完了です。

3) の場合、公開鍵を抽出して $HOME/.ssh/authorized_keys にインストールする必要があります。ファイルの所有権と権限に注意してください。(.ssh の場合は 700、authorized_keys の場合は 600) ホスト全体の公開鍵認証は推奨されませんが、好奇心旺盛な人のための演習として残されています。

4)については、PuTTY SC (http://www.joebar.ch/puttysc/) または - できれば - PuTTY-CAC (http://www.risacher.org/putty-cac/) は、より優れた公開鍵抽出アルゴリズムによって PuTTY SC を改良し、PuTTY の開発ブランチからの Kerberos-GSSAPI サポートも含まれています。

答え4

PuttySCを使用してLinuxサーバーでスマートカードを使用する方法を示すビデオを作成しました。セキュアCRTこちらから視聴できます:スマートカードでSSH接続する方法

カードに証明書をプロビジョニングする方法については説明しません。ただし、その場合は、カード管理システムを使用してカードの管理者キーを変更する必要があることに注意してください。会社からスマート カードが提供されていれば、この部分について心配する必要がなくなり、作業がはるかに簡単になります。

カードをプロビジョニングしたら、公開鍵を抽出し、それを ~/.sshd/authorized_key に追加する必要があります。

サーバーに接続するには、PuttySC や SecureCRT などのツールを使用できます。カード用の PSKC#11 ライブラリ (スマート カードの製造元から入手するか、オープン ソース バージョンから入手) を入手する必要があります。ライブラリを使用して SSH ツールを構成すると、ツールがライブラリを読み取って証明書を見つけることができるようになります。

認証すると、ツールによってスマート カードの PIN の入力が求められます。

関連情報