YubiKeyを使用する際に必要なツールは以下のとおりです。

macOS Windows 10/8.1/8/7 Linux
ドライバ 標準
macOS(Token D)
必要
MS-CAPI (Minidriver)
標準
(一部手動)
PKCS#11 ライブラリ 必要 不要
Firefox/Acrobatは必要
必要
YubiKey Manager 必要 必要 必要
yubico-piv-tool 任意 任意 任意

システム要件は以下のとおりです。

  • Mac OS: Requires 10.13 to 10.15 (unless otherwise stated).
  • Microsoft Windows: Windows 8.1 or later (server installations require Windows Server 2012 or later).
  • Linux: Requires current CCID and USB libraries (updated within the last 2 years).

YubiKeyを使用するための準備

MS-CAPI (Minidriver)

WindowsでYubiKeyを使うためには Minidriver のインストールが必要です。Minidriverは下記のリンクからダウンロードできます。ドライバインストール後、デバイスマネージャーでPC接続周辺機器をみるとYubiKeyはスマートカードとして認識されます。

※ ツール&ソフトウエアをダウンロードすることにより、Yubicoウェブサイトの利用規約および各ダウンロードツールやソフトウエアのライセンスに同意したことになります。

WindowsでYubikeyはスマートカードとして認識される

PKCS#11 ライブラリ

PKCS#11準拠のアプリケーションでYubiKeyを使用するためにはPKCS#11ライブラリのインストールが必要です。汎用的なスマートカード用ライブラリ・ツールである OpenSCをインストールすることでYubiKeyのスマートカード(PIV)機能を利用することができます。

YubiKey Manager(GUIツール)

YubiKey ManagerはUSBを介してYubiKeyの設定を行うためのデバイス管理アプリケーションです。

YubiKey ManagerはYubiKeyのスマートカード(PIV)機能とFIDO2やOTPといったYubiKeyアプリケーション機能の両方の管理機能を提供し、YubiKeyデバイスのPIN変更やデバイス初期化、YubiKeyに証明書格納などをおこなうことができます。

参考

yubico-piv-tool(CLIツール)

YubiKeyコマンドラインツールは、上記 YubiKey Managerをインストールすると ykmanコマンド(当ページ下部にykmanコマンド集を記載) でコマンド実行できます。旧来提供されていた高度な構成オプションを操作する方法としての yubico-piv-tool は今後 ykmanコマンドに移行されます。

その他YubiKeyに関連するソフトウエアはこちらからご確認いただけます。

YubiKeyの初期セットアップ

ユーザーPIN設定と変更

YubiKeyを接続したらデフォルトPIN値(123456)がまだ設定されている場合は、ユーザーのPINを変更する必要があります。 ユーザーが自分のWindowsアカウントにログインすると、PCに接続されているYubiKeyのユーザーPINを次のように変更できます。

  1. Windowsで Ctrl + Alt + Delを使用してロック画面に入ります
  2. 表示されるオプションから[パスワードの変更]を選択します
  3. ユーザーは、現在のPINと新しいPINの入力を求められます
  4. Enterキーを押して、新しいユーザーPINを登録します
ユーザーが自分のWindowsアカウントにログインするとデフォルトのPIN値の変更を求められます。

もちろんYubiKey ManagerからPINの変更を行うことも可能です。

  1. YubiKey Managerを開き、[Application] > [PIV]を選択する
  2. 設定選択画面のうち、PIV Managementの[Configure PINs]を選択する
  3. 設定選択画面のうち、PINの[Change PIN]を選択する
  4. Change PIN画面で
    • Current PIN(現在のPIN)
    • New PIN(新しく設定したいPIN)
    • Confirm new PIN(新しく設定したいPINをもう一度入力)
    • を入力し、[Change PIN]ボタンを押して実行する
Yubikey ManagerからPINの変更を行うことも可能

PINブロック解除

デフォルトでは、3つの連続した正しくないPINが入力されると、ユーザーPINはブロックされます。 PINブロック解除コード(PUK:管理者PIN)は、ユーザーPINのブロックを解除するために使用されます。

  1. YubiKey Managerを開き、[Application] > [PIV]を選択する
  2. 設定選択画面のうち、PIV Managementの[Configure PINs]を選択する
  3. 画面左の PINに「PIN is blocked.」表記を確認して、[Unblock PIN]ボタンを押します
  4. Unblock PIN画面で
    • PUK(管理者PIN)
    • New PIN(新しく設定したいPIN)
    • Confirm new PIN(新しく設定したいPINをもう一度入力)
    • を入力し、[Unblock PIN]ボタンを押して実行する
Yubikey ManagerでPINブロックを解除する

PIVとは

米国政府機関が発行するPersonal Identity Verification Card(PIV)カードのことです。Yubico社は一般的な表現でいう電子証明書を搭載するICカード(スマートカード)をPIVカードやPIVと表記されることがあります。

スマートカード/PIVのリセット

PINとPUKの両方がブロックされている場合は、YubiKeyをリセットする必要があります。これにより、ロードされた証明書がすべて削除され、YubiKeyが工場出荷時のデフォルト状態に戻ります。

  1. YubiKey Managerを開き、[Application] > [PIV]を選択する
  2. 設定選択画面のうち、Resetの[Reset PIV]を選択する
  3. [YES]ボタンを押してPIVのリセットを行います
Yubikey ManagerでスマートカードとPIVをリセットする

Windows7におけるPUK

Windows 7のログオンインターフェイスを介してPINのブロックを解除する場合、WindowsではPINのブロック解除コード(PUK)を16進数として入力する必要があります。 つまり、PUKが12345678の場合、Windows UIを介してピンのロックを解除するには、PUK文字列のASCII 16進エンコードされたバイトを入力する必要があります(この場合、ロック解除コードは3132333435363738になります)。 16進数でPUKをエンコードするには、ASCIIチャート(たとえばwww.asciitable.com)を参照してください。

ユーザー証明書のインポート

YubiKey Managerを使用して.pfxファイルをYubiKeyにインポートします

  1. YubiKey Managerを開き、[Application]>[PIV]を選択する
  2. 設定選択画面のうち、Certificateの[Configure Certificate]を選択する
  3. 証明書をインポートするスロットを選択する。図はAuthentication(スロット9a)の場合を表しています。
  4. 既存の証明書をインポートするには、[Import]を選択する
  5. インポートする.pfxファイルを参照し、[Open]を選択する
  6. 証明書に設定されたパスワードを入力して[OK]をクリックする
  7. PINを入力し、[OK]をクリックする
Yubikey Managerからユーザー証明書をインポートする

WindowsでPKCS#11準拠のアプリケーションを使用する

Yubikeyを利用するアプリケーションの一部には、アプリケーションからYubiKeyへのアクセスにMinidriverではなくPKCS#11を利用するアプリがあります。このPKCS#11ライブラリを利用するタイプのアプリケーションには、Firefox, Acrobatなどがあります。これらのアプリケーションでYubiKeyを利用するにはアプリケーションでPKCS#11を設定する必要があります。OpenSC版PKCS#11ライブラリを含むOpenSCをダウンロードしてインストールしてください。

Firefox PKCS#11の組み込み設定

  1. 設定画面を開き[プライバシーとセキュリティ]を選択する
  2. 設定項目のうち、[セキュリティ] > [証明書] > [セキュリティデバイス]を選択する
  3. OpenSCがインストールされているとセキュリティモジュールとデバイスに[OpenSC smartcard framework(0.20)]が表示されます。OpenSCをインストールしていて表示されない場合は、画面右の[追加]ー[参照]ボタンからopensc-pkcs11.dllファイルのファイルパスを指定してください
  4. [OK]をクリックしてFirefoxを終了します
  5. YubiKeyをPCに挿入し、デバイスの認識を確認した後、Firefoxを起動します
Fire foxにYubikeyを使用する

Acrobat Reader DC PKCS#11の組み込み設定

  1. 環境設定 > 署名(電子署名) > デジタルIDと信頼済み証明書 の設定 メニューがあり、この中にPKCS#11モジュールおよびトークン画面に [モジュールを追加]を設定する項目がありこれを開く
  2. OpenSCがインストールされている場合は、画面の[モジュールを追加]ー[ファイル名指定]からopensc-pkcs11.dllファイルのファイルパスを指定してください
  3. OKをクリックしてAcrobat Reader DCを終了します
  4. YubiKeyをPCに接続して認識させた後に、Acrobat Reader DCを起動させてください
Acrobat Reader DCにYubikeyを使用する

YubiKeyの証明書格納スロット

YubiKeyのPIVスロット(Slot)は全部で24個ありますが、最大で12個の証明書が保持可能です。この点は注意が必要です。
PIVスロットには、YubiKey Managerに表示されるスロットと表示されないスロット(秘匿スロット)があります。

YubiKey Managerで表示されるスロット

YubiKey Managerでは、Authentication(Slot 9a)、Digital Signature(Slot 9c)、Key Management(Slot 9d)、Card Authentication(Slot 9e)の4つのPIVスロットで証明書のインポート、秘密鍵の生成などの操作ができます。

Yubikey Managerで証明書のインポートや秘密鍵の生成などが行えます

PIVスロット内の証明書を使って認証をするときにPINの入力を求められますが、PINの入力の必要がないスロット(Slot 9e)があります。

YubiKey Manager対応のスロット

スロット名 PIN入力
Authentication(Slot 9a)
Digital Signature(Slot 9c)
Key Management(Slot 9d)
Card Authentication(Slot 9e) ×

YubiKey Managerで表示されないスロット

YubiKey Managerに表示されていないスロットはSlot82〜95の20個あります。ただし合計で12個の証明書が保持可能です。
これらのスロット内の証明書の情報表示、証明書のインポート、秘密鍵の生成などの操作を行う場合は「ykmanコマンド」を使います。

Slot f9はアテステーションの機能を使うためのスロットで、他の目的では使用できません。このスロットは上書きすることはできますが、デバイスリセットしてもSlot f9内部の証明書はクリアされません。

各スロットとインターフェース

スロット名 YubiKey Manager ykmanコマンド
Authentication(Slot 9a)
Digital Signature(Slot 9c)
Key Management(Slot 9d)
Card Authentication(Slot 9e)
ykman Command Slot(Slot 82〜Slot 95:計20) ×
Attestation Slot(Slot f9) ×

ykmanコマンド集

YubiKey Managerで行っていた設定をコマンドラインで行うことができます。
また、YubiKey Managerで設定できない秘匿スロットもコマンドラインでは設定ができます。

ykmanの環境設定

Mac

ターミナルを開いて、brew install ykmanと入力するとコマンドラインツールがインストールされてコマンドラインでYubiKeyの設定を行えるようになります。

Windows

Windows環境では、YubiKey Managerをインストールすると、一緒にコマンドラインツールもインストールされています。Windowsのコマンド環境を管理者として開いて、C:\Program Files\Yubico\YubiKey Manager> にディレクトリを移動することでコマンドラインでYubiKeyの設定を行えます。

こちらのコマンド集ではMacでのコマンドと実行結果を紹介しますが、MacでもWindowsでもコマンドと実行結果は同じです。

  • アプリの有効化(例:USB接続で「PIV」を有効にする
    $ ykman config usb -e PIV
    Enable FIDO2.
    Configure USB interface? [y/N]: y
  • アプリの無効化(例:NFC接続で「FIDO U2F」を無効にする
    $ ykman config nfc -d U2F
    Disable FIDO U2F.
    Configure NFC interface? [y/N]: y
  • PIVの情報表示
    $ ykman piv info
    PIV version: 5.2.7
    PIN tries remaining: 3
    CHUID:
    3019d4e739da739ced39ce739d836858210842108421c84210c3eb3410f3b616764e7182cf729e1bc6b8d4d335350832303330303130313e00fe00
    CCC:
    f015a000000116ff02fad0c67af91e2feb1447c69bd402f10121f20121f300f40100f50110f600f700fa00fb00fc00fd00fe00
    Slot 82:
    Algorithm: RSA2048
    Subject DN: CN=sirou@onelogin.jp|OneLoginDeviceTrust,OU=3e74154a-2b21-4dbe-8c7e-dc688dc1097c,DC=pentio,DC=onelogin,DC=com,DC=US
    Issuer DN: CN=OneLogin Inc Intermediate CA,OU=OneLogin Inc,O=OneLogin Inc,L=San Francisco,ST=CA,C=US
    Serial: 47192512350986009
    Fingerprint: 3197ff8285c50a259c766ee1f8c9c9009b11c06815866c3a9902bd73f07fcb98
    Not before: 2021-01-08 08:05:19
    Not after: 2022-01-08 08:05:19
    Slot 9e:
    Algorithm: RSA2048
    Subject DN: CN=tarou.yamada@onelogin.jp|OneLoginDeviceTrust,OU=0770325e-390f-4f11-b3b2-900beff595a4,DC=pentio,DC=onelogin,DC=com,DC=US
    Issuer DN: CN=OneLogin Inc Intermediate CA,OU=OneLogin Inc,O=OneLogin Inc,L=San Francisco,ST=CA,C=US
    Serial: 5464455165560841104
    Fingerprint: 6a954c9d5939391af506c1e6997a6b297c1ef9b19bd59e4cb7e5256e44811e6c
    Not before: 2021-01-08 03:56:48
    Not after: 2022-01-08 03:56:48
  • YubiKey Managerで表示されない秘匿スロット82〜95内の証明書の情報を「ykman piv info」では表示することができます

  • PINの変更(例:PINを「654321」から「123456」に変更
    $ ykman piv change-pin -P654321 -n123456
    $ ykman piv access change-pin -P654321 -n123456 New PIN set.
  • PUKの変更(例:PUKを「12345678」から「87654321」に変更
    $ ykman piv change-puk -p12345678 -n87654321
    $ ykman piv access change-puk -p12345678 -n87654321 New PUK set.
  • Management Keyの変更(例:Management Keyを「010203040506070801020304050607080102030405060708」から自動生成したものに変更
    $ ykman piv change-management-key -
    $ ykman piv access change-management-key - Generated management key: 78d226826796a7d4ec897c6b612606ef6780a9b1238276b4
  • PINとPUKのリトライ回数を変更
    (例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「654321」に設定していたときに、PINのリトライ回数を10回、PUKのリトライ回数を15回に設定
    $ ykman piv set-pin-retries -m010203040506070801020304050607080102030405060708 -P654321 -f 10 15
    $ ykman piv access set-retries -m010203040506070801020304050607080102030405060708 -P654321 -f 10 15 WARNING: This will reset the PIN and PUK to the factory defaults! Default PINs are set. PIN: 123456 PUK: 12345678

    このときPINとPUKはリセットされて工場出荷時のデフォルトの値になります

  • PIVのリセット
    $ ykman piv reset -f
    Resetting PIV data...
    Success! All PIV data have been cleared from your YubiKey.
    Your YubiKey now has the default PIN, PUK and Management Key:
    PIN: 123456
    PUK: 12345678
    Management Key: 010203040506070801020304050607080102030405060708
  • PINのブロック解除(例:PUKが「12345678」に設定してあるPINのブロックを解除して、新しくPINを「654321」に設定
    $ ykman piv unblock-pin -p12345678 -n654321
    $ ykman piv access unblock-pin -p12345678 -n654321

    <動作結果表示なし>

  • 証明書のインポート
    (例:PINを「135791」、Management Keyを「78d226826796a7d4ec897c6b612606ef6780a9b1238276b4」に設定していたときに、
    パスワードを「yubikey」と設定してある「secureW2-yubikey.p12」という名前の証明書を「スロット9a」にインポート
    $ ykman piv import-certificate -
    $ ykman piv certificates import - m78d226826796a7d4ec897c6b612606ef6780a9b1238276b4 -P135791 -pyubikey 9a "secureW2-yubikey.p12"

    <動作結果表示なし>

  • 証明書を削除
    (例:PINを「135791」、Management Keyを「78d226826796a7d4ec897c6b612606ef6780a9b1238276b4」に設定していたときに、スロット9aの証明書を削除
    $ ykman piv delete-certificate -P135791 -
    $ ykman piv certificates delete -P135791 - m78d226826796a7d4ec897c6b612606ef6780a9b1238276b4 9a

    <動作結果表示なし>

  • 証明書のエクスポート(例:「スロット82」にある「secureW2-yubikey.p12」という名前の証明書をPEM形式でエクスポート)
    $ ykman piv export-certificate -F PEM 82 "secureW2-yubikey.p12"
    $ ykman piv certificates export -F PEM 82 "secureW2-yubikey.p12"

    <動作結果表示なし>

  • 鍵ペアの生成
    (例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「123456」に設定していたときに、「スロット9d」に「pubkey.pem」という名前の鍵ペアを生成
    $ ykman piv generate-key -P123456 -
    $ ykman piv keys generate -P123456 - m010203040506070801020304050607080102030405060708 9d pubkey.pem

    <動作結果表示なし>

  • 自己証明書の生成
    (例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「123456」に設定していたときに、Subject nameが「SSH Key」で「スロット9d」に「pubkey.pem」という名前の鍵ペアをもつ自己証明書を生成
    $ ykman piv generate-certificate -P123456 -
    $ ykman piv certificates generate -P123456 - m010203040506070801020304050607080102030405060708 -s "SSH Key" 9d pubkey.pem

    <動作結果表示なし>

  • 認証証明書を生成
    (例:「example」という名前のファイルに「スロット8d」に入っている証明書の内容を書き込む
    $ ykman piv attest 8d "example"
    $ ykman piv keys attest 8d "example"

    <動作結果表示なし>

  • 署名要求(CSR)の生成
    (例: PINが「123456」で「スロット9d」に「pubkey.pem」という秘密鍵が存在していてSubject nameを「Key」としているとき、「a.txt」というファイルにCSRを生成
    $ ykman piv generate-csr -P123456 -s "Key" 9d publickey.pem "a.txt"
    $ ykman piv certificates request -P123456 -s "Key" 9d publickey.pem "a.txt"

    <動作結果表示なし>

  • CHUIDの生成
    (例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「123456」に設定していたときに、CHUIDを自動生成
    $ ykman piv set-chuid -P123456 -
    $ ykman piv objects generate chuid -P123456 - m010203040506070801020304050607080102030405060708

    <動作結果表示なし>

  • CCCの生成
    例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「123456」に設定していたときに、CCCを自動生成
    $ ykman piv set-ccc -P123456 -
    $ ykman piv objects generate ccc -P123456 - m010203040506070801020304050607080102030405060708

    <動作結果表示なし>

  • PIVオブジェクトの書き込み
    (例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「123456」に設定していたときに、OBJECT-IDを「5fffff」、データを書き込むファイルを「pubkey.pem」にしてPIVオブジェクトの書き込み
    $ ykman piv write-object -P123456 -
    $ ykman piv objects import -P123456 - m010203040506070801020304050607080102030405060708 5fffff “pubkey.pem"

    <動作結果表示なし>

  • PIVオブジェクトの読み込み
    (例:Management Keyを「010203040506070801020304050607080102030405060708」、PINを「123456」に設定していたときに、OBJECT-IDが「5fffff」のPIVオブジェクトの読み込み
    $ ykman piv read-object -P123456 5fffff
    $ ykman piv objects export -P123456 5fffff -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEiCEu0RaldiEHEFDB6m4twD5p8EjR PeESxrBlxKouo0ustr2pXQrRzkEJCmt1sVXJpi4bk+Gc1f/EzLAcml+cEQ== -----END PUBLIC KEY-----

その他のコマンドについてはこちらをご覧ください。

鍵ペア(秘密鍵)、自己署名証明書の作成方法とSSH接続についてはこちらをご覧ください。