
認証方法としてGemalto .NETスマートカードを使用してSSH経由で自分のコンピュータに接続したいと思います。 Fedora 13(または通常のRed Hatバージョン)システムでこれをどのように実行できますか?
私が考えるおおよそのステップは次のとおりです。
- スマートカードの証明書を提供してください(そしてそれを発行するCAもありますか?)
- スマートカードに証明書を書き込む
- スマートカード認証を許可するようにSSHサーバーを構成し、特定の証明書/ CAを使用するように構成します。
- スマートカードをサポートするSSHクライアント(無料のWindowsベースのクライアントのボーナスポイント)
答え1
私はGemaltoドライバがオープンソースだと思います。ソースコードはそのウェブサイトで確認できます。
モジュールを設定する必要がありますpam
(これを行う方法はわかりませんが、コードは間違いなくそこにあります)。pam
証明書ポリシーをローカルユーザーIDにマップする必要性を設定したいと思います。
GDMはスマートカードをサポートしていると思いますが、それをどのように検出するのかわかりません。後で調べてみましょう(最も簡単な方法はおそらくgdm
ソースコードを見ることです)。
もちろん、これらすべての作業にはpcscd
インストールが必要ですlibpcsclite
。libgtop11dotnet.so
にもコピーする必要があります/usr/lib
。
libgtop11dotnet.soのソースコードをコンパイルします。https://github.com/AbigailBuccaneer/libgtop11dotnet
答え2
ケルベロスをお勧めします。 MITはkrb5クライアントとサーバーを生成します。
vwduder、スマートカードリーダー、およびFIPS-201互換カードソースをお勧めできますか?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
私のサーバーにコピーがありますが、今はこのスタックトレースで共有するほど人気がありません。上記は、私たちのサーバーよりも少し安定性があるため、おそらくそのサーバーから入手できます。 ;)
[編集]私は今十分に人気があります!
答え3
1) と 2) は、RSA 鍵を使用する際のマイナーな作業です。 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の入力を求められます。