PIV Smartcard認証によるWindowsログイン。#

この文書では、Nitrokey 3 for Windows スマートカードログオンの PIV 機能を、鍵と証明書 を使用して手動でプロビジョニングする方法を説明する。

将来的には、この手動プロビジョニングをWindowsのMiniDriverで自動化することも可能です。

警告

Nitrokey 3 の PIV 機能は、現在、不安定とみなされており、安定版ファームウェアリリースでは利用できません。その機能を得るには、テスト用ファームウェアをインストールする必要がある。その後のファームウェア・アップデートにより、データと暗号鍵が失われる可能性がある。詳細は、`ファームウェア・アップデート・ドキュメント<firmware-update.html#firmware-release-types>`__ をご参照ください。

前提条件#

1:Nitrokeyでキーを生成する。#

鍵はスロット9Aで生成されます(認証)。

pivy-tool -a rsa2048 generate 9A

注釈

管理キーがデフォルトのものでない場合は、-A 3des -K 010203040506070801020304050607080102030405060708 で指定できる。-A の引数には``aes256`` を指定することもでき、-K の引数には16進数でキーを指定する。

ユーザーPINは、-P 123456、または``-P <value>``(デフォルトでない場合)で指定することもできる。-P が提供されない場合、鍵生成後に要求される。

これは、すべての``pivy-tool`` コマンドに適用されます。

RSA鍵の場合、純粋なソフトウェアの実装が遅いため、このステップに数分かかることがあります。

期待される出力

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDKO5ENwrK3qKBAgDkyq1tfiw5JxnoCEIiM3Vc+8Eylux04r1sgjHEyqbOvpScObZuchxFZZ5LdeHynvFn3c07K4HpoZ/7NjLzUYOmlVAy4wpEwRs9psbrT6wbvHVLyffZiiSPW15HHQKcUZZ30WDunh5m7xzvY9ej810QIW/P724MFWTbRdpqmG8m1qWCUM5dqkmpiprI/WeD+VmTcQWbJJ+oyoPyxmwzGyAotl7mVC6EYdcfvyBSNQdVdGfYGxjNEec4aWxoFRg4ADfpPnYD+gLxHcj/9s7o/wdMhXRiSio1tjsEjaeuOICGLaiiLGMfLxpfEApb8qJgsEFgYl6kn PIV_slot_9A@9E424375A38449E59B3DF89D9B90E601

2: CSR(Certificate Signing Request)の生成#

このステップでは、認証スロットの鍵の証明書を生成する。pivy-tool -n 'Nitro Test' -u "nitro@test.nitrokey.com" -T user-auth req-cert 9A

``Nitro Test``のユーザー名と``nitro@test.nitrokey.com``のメールアドレスは、独自の値に変更する必要があります。

期待される出力

-----BEGIN CERTIFICATE REQUEST-----
MIIC4DCCAcgCAQEwFTETMBEGA1UEAwwKTml0cm8gVGVzdDCCASIwDQYJKoZIhvcN
AQEBBQADggEPADCCAQoCggEBAMo7kQ3CsreooECAOTKrW1+LDknGegIQiIzdVz7w
TKW7HTivWyCMcTKps6+lJw5tm5yHEVlnkt14fKe8WfdzTsrgemhn/s2MvNRg6aVU
DLjCkTBGz2mxutPrBu8dUvJ99mKJI9bXkcdApxRlnfRYO6eHmbvHO9j16PzXRAhb
8/vbgwVZNtF2mqYbybWpYJQzl2qSamKmsj9Z4P5WZNxBZskn6jKg/LGbDMbICi2X
uZULoRh1x+/IFI1B1V0Z9gbGM0R5zhpbGgVGDgAN+k+dgP6AvEdyP/2zuj/B0yFd
GJKKjW2OwSNp644gIYtqKIsYx8vGl8QClvyomCwQWBiXqScCAwEAAaCBhTCBggYJ
KoZIhvcNAQkOMXUwczAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIGwDAfBgNV
HSUEGDAWBggrBgEFBQcDAgYKKwYBBAGCNxQCAjAyBgNVHREEKzApoCcGCisGAQQB
gjcUAgOgGQwXbml0cm9AdGVzdC5uaXRyb2tleS5jb20wDQYJKoZIhvcNAQELBQAD
ggEBAH6XBlBmc7dQP0mt7uXOyIu8xRSYSfxKBJGjPl0IKDHWke3/4frU5C99/KS/
b9/T4JrlZa/9letjMj8hV4a+pdE0Gpxy+Ac1a9XlMki35UESOXC0JSyirBBLnNtD
qtHKtfPeQ3Csbsj57qjdqBMlWII5cz3jO9EpEG2FgxreJwY5s58KuKit01AJDIWt
GYg9P7MblEEO8iPjcFqccsPTRgU04COT6dOFZ8bGZ18UsnAVMXPOdcR7cppp8mL+
QZCyqdk1m+91rtkJPkqVUK/0o8MJj5k3Ch4ANvQEWnOabRumJaHDu4PmhsqLnQJA
eGQvuPRBmR71GRkGmqu+e1oyze8=
-----END CERTIFICATE REQUEST-----

証明書署名要求をファイル``request.csr`` にコピーします。

3: CSRに署名する#

前のステップで作成したrequest.csrファイルを、認証局をホストするサーバーに移動します。証明書テンプレートコンソール(certtmpl.msc )で、ユーザー用のテンプレートがリクエストからサブジェクト名を受け入れることができることを確認します:

証明書テンプレートコンソールの認証証明書テンプレートのパラメータで、「サブジェクト名」タブの「リクエストで供給する」を切り替えます。

PowerShellを開き、証明書署名リクエストに``certreq.exe -attrib CertificateTemplate:Nitrotest -submit request.csr`` で署名します。

このサーバーに複数の認証局がある場合は、正しい認証局を選択できるGUIが開きます。証明書を``certificate.crt`` として保存します。

4:証明書をNitrokeyに保存する#

cat certificate.der | pivy-tool write-cert 9A

5:ユーザーアカウントに証明書をインポートする#

``certificate.der``をユーザーのWindowsデバイスに移動し、証明書マネージャを開く(ユーザー用、マシン用ではない ):

"ユーザー証明書の管理コントロールパネル "を開く

証明書をインポートする:

アクション、すべてのタスクの中に、インポートアクションがあります。

これが完了したら、ログアウトします。"サインインオプション "を使ってNitrokeyでログインします。