OpenPGP-card-tools

提供: ArchWiki
2023年11月23日 (木) 18:06時点におけるAshMyzk (トーク | 投稿記録)による版 (初版)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

Openpgp-card-tools は、OpenPGPスマートカードを (ccid を使って) 操作するためのコマンドラインツール opgpcard(1) を提供するソフトウェアパッケージです。

インストール

openpgp-card-tools パッケージをインストールしてください。

設定

opgpcard(1) ツールは pcscliteccid に依存しています。pcscd.socket有効化し、かつ開始しておく必要があります。

ノート: デフォルトでは、GnuPG は独自の内蔵 CCID ドライバを使用します。代わりに pcsclite を使うように GnuPG を設定することが推奨されます。

OpenPGP カードと対話する

opgpcard(1) ツールには、OpenPGP カードに関連する機能を提供するいくつかのサブコマンドがあります:

ヒントとテクニック

機械可読出力

opgpcard(1) ツールは、--output-format オプションで全てのサブコマンドにおいて機械可読形式を提供しています。

接続されているカードをJSON 形式で出力するには:

$ opgpcard --output-format=json list

OpenPGP の秘密鍵をインポートする

opgpcard-admin-import(1) を使えば、OpenPGP 秘密鍵を直接インポートすることができます。

フィンガープリントが 0123456789012345678901234567890123456789 である秘密鍵を、識別子が 0123:01234567 であるカードにインポートするには:

$ opgpcard admin --card 0123:01234567 import <(gpg --export-secret-key 0123456789012345678901234567890123456789)

SSH 公開鍵をエクスポートする

opgpcard-ssh(1) を使えば、カードの認証スロットの SSH 公開鍵を (他のデータと共に) エクスポートすることができます。

以下の例ではダミーのデータが使われています:

$ opgpcard ssh
OpenPGP card 0123:01234567

Authentication key fingerprint:
D3C4B18828E34FE079273C27DFEA102BC0BF7122

SSH public key:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN3SwnYBGotQMbGxG6VRWc8vj6uq24Q2tUGvjkU4BGCd opgpcard:0123:01234567

データを署名する

opgpcard-sign(1) を使えば、カード上の署名鍵を使ってデータを署名することができます。

以下のコマンドは、カードを使って hello.txt を署名しています:

$ echo "hello world" > hello.txt
$ opgpcard sign --card 0123:01234567 --detached hello.txt
Enter User PIN:
-----BEGIN PGP MESSAGE-----

wr0EABYKAG8FgmVcxgQJEHwxCjP5RdJLRxQAAAAAAB4AIHNhbHRAbm90YXRpb25z
LnNlcXVvaWEtcGdwLm9yZ8BSR6PrXSIRnrQl6r6HEetWVjCVXQtR1Z3PzD9EfbWY
FiEEuFXqMwYb6iFIyl2ufDEKM/lF0ksAAOY2AQC7+Tuh8Gal+kCCfVChD0VV+GUA
yd+leLeylIySXV7qVwD9H2x5QBrgyF/vODNp1tdorTvPwieV/Bop9FCkHYbHJg8=
=cOQ/
-----END PGP MESSAGE-----

暗号化されたデータを復号する

opgpcard-decrypt(1) を使えば、カードの暗号化スロットを使ってデータを復号することができます。

以下の例では、メッセージは sq-encrypt(1) を使って OpenPGP 公開鍵 alice.pub で暗号化されています。

$ echo "hey alice" | sq encrypt --recipient-file alice.pub > message.pgp
$ opgpcard decrypt --card 0123:01234567 message.pgp
Enter User PIN:
hey alice

Nitrokey Start のアイデンティティを切り替える

Nitrokey Start では、1つのハードウェアトークンで3つの別々のアイデンティティを使用することができます。それぞれのアイデンティティには、別々の署名、暗号化、認証スロットがあります。事実上、別々のカード識別子を持つ別々の OpenPGP スマートカードが3つ存在することと同じです。

opgpcard-system-set-identity(1) を使えば、3つのアイデンティティ間で切り替えることができます。

2つ目のアイデンティティに切り替えるには:

$ opgpcard system set-identity --card FFFE:01234567 1

1つ目のアイデンティティに戻すには:

$ opgpcard system set-identity --card FF01:01234567 0

トラブルシューティング

スマートカードのセットアップをデバッグする

opgpcard-list(1) を使えば、接続されているカードのうち、pcscd(8) からアクセスできるものを一覧表示できます。接続されているカードが表示されない場合、他のプロセス (scdaemon など) によってブロックされている可能性があります。scdaemon(1) は以下のコマンドで終了できます:

$ gpgconf --kill scdaemon
翻訳ステータス: このページは en:OpenPGP-card-tools の翻訳バージョンです。最後の翻訳日は 2023-11-23 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。