320.2 高度な GPG

2017-02-03

320.2 高度な GPG

重要度 4
説明 GPGの使用方法を知っていることが求められる。これには、鍵の生成、署名、鍵サーバへの発行も含まれる。複数の秘密鍵とIDの管理も含まれる。
主要な知識範囲

  • GPGを使用した暗号化と署名
  • 秘密鍵・公開鍵の管理
  • GPGサーバの知識
  • GPG の設定

重要なファイル、用語、ユーティリティ

  • openssl
  • RSA, DH 及び DSA
  • SSL
  • X.509
  • CSR
  • CRL

gpgとは?

GNU Privacy Guard (GnuPG) とは、Pretty Good Privacy (PGP) の別実装として、GPL に基づいた暗号化ソフトである。
OpenPGP 規格 (RFC4880) に完全準拠しているが、古い PGP との互換性は完全ではない。

gpgコマンド

書式
gpg [–homedir ディレクトリ名] [–options ファイル名] [オプション] サブコマンド [引数]
※ []は省略可能

gpg 主なサブコマンド

-d または –decrypt データを複合
–delete-key [名前] 公開鍵リングから鍵を削除
–edit-key 鍵への署名または編集
-e または –encrypt データを暗号化
-s [ファイル名] または –sign [ファイル名] 署名を作成
–gen-key 新しい鍵を作成
–gen-revoke [名前] 指定した名前の失効証明書を作成
–list-key [名前] 公開鍵リングに登録されている鍵情報を一覧表示
–list-piblic-keys [名前] 公開鍵リングに登録されている鍵情報を一覧表示
–recv-keys [鍵ID] 鍵サーバから鍵を読み込む
–refresh-keys [鍵ID] 鍵サーバに接続し、ローカルに保存している公開鍵を更新
–search-keys [名前] 鍵サーバから鍵を探す
–send-keys [鍵ID] 鍵サーバに鍵を登録する
–sign-key [名前] 相手の公開鍵を自分の公開鍵で署名
–verify [署名ファイル名] [検証ファイル名] 署名を検証

gpg 主なオプション

-homedir [ディレクトリ名] GPGのホームディレクトリ
-keyring [ファイル名] キーリングの一覧に指定した鍵を加える
-keyserver [サーバ名] 鍵を検索に、指定した鍵サーバを用いる
-o [フィアル名] または –output [ファイル名] 指定したファイルに出力
–options [ファイル名] 指定したファイルからオプションを読む


+ 新しい鍵のペアを作成
※ ssh経由だと作成できないので実機でログインして作成する

鍵サーバから公開鍵を取込み
鍵サーバー(pgp.mit.edu)からBINDの公開鍵(911A4C02)を取り込む

署名されたファイルを検証
上記の作業で、鍵サーバー(pgp.mit.edu)からBINDの公開鍵(911A4C02)を取り込む済みのこと
必要用件:bind-9.10.3.tar.gz、bind-9.10.3.tar.gz.ascもダウンロード済みなこと
書式:
gpg –verify XXXX.asc(sig) YYYY.tar.gz
gpg –verify XXXX.asc(sig)
gpgv XXXX.asc(sig)
※ 電子署名のファイルは元のファイル名に.ascという拡張子を追加したものであることが多い。また、.sigの場合もあります。

鍵サーバに鍵を登録

gpgv

gpgv は gnupg の機能限定バージョンで、署名のチェックのみ行なうことができる

書式
gpgv オプション [ファイル名]
[]は省略可能

gpg-agent

gpg-agent は gpg の秘密鍵を管理するにに利用できる
パスフレーズの入力をキャッシュしておいてくれるので、パスフレーズの入力を1回だけ行えば良くなります

書式
gpgpg-agent オプション [ファイル名]
[]は省略可能

キーリング

名前の通り、鍵を束ねるものです。これらのファイルは、実行ユーザの $HOME/.gnupg/ に格納されています

secring.pgp 秘密鍵を束ねるキーリング
pubring.pgp 公開鍵を束ねるキーリング
trustedkeys.pgp 信頼された公開鍵が格納されているキーリング
trustdb.gpg 信用データベースといい。鍵の信用度や有効性を記録しているデータベース