Guard)について調べたところ、思いの外複雑で全体像を把握するのに苦労しました。そこでgpgに頭を悩ませている人を一人でも多く救うべく、この記事を書きました。内容に誤りがありましたら、修正リクエストを送っていただけると幸いです。gpgのバージョンについてこの記事を執筆している2016年9月18日の時点で、gpgには3種類のバージョンが存在し、それぞれ開発が続いています。(1.4.x)gpg1.4はシングルバイナリであり、それ単体で動作します。gpg2.0以降は、暗号化にlibgcryptという外部のライブラリを使用しています。バージョンの違いは内部の設計の違いでしかありませんが、はじめてgpgを使うのであれば、gpg2.0以降の使用をお勧めします。2.0.30を前提に説明を勧めます。プライマリキーとサブキーについてさて、gpgの使い方について説明を始める前に、まずはプライマリキーとサブキーについて説明します。ご存知という方は、このセクションを読み飛ばしてください。公開鍵暗号における鍵は、公開鍵と秘密鍵の組み合わせで構成されます。これら2つの鍵の組み合わせを鍵ペアと呼びます。主となる鍵ペアをプライマリキーと呼び、プライマリキーに紐付いた鍵ペアをサブキーと呼びます。プライマリキーの特徴GnuPGにおけるプライマリキーは署名に使用されます。プライマリキーはサブキーを紐付けるための鍵ペアですから、その存在は極めて重要です。プライマリキーの秘密鍵さえ盗んでしまえば、所有者になりすまして署名することができますし、紐付けられているサブキーをすべて失効させて、新しいサブキーで置き換えることもできます。したがって、プライマリキーの秘密鍵は絶対に漏洩しないよう厳重に保管する必要があります。サブキーの特徴GnuPGにおけるサブキーは暗号化に使用されます。(署名にも使用できます。)サブキーはプライマリキーに対して自動的に紐付けられますが、サブキー同士は独立しています。そのため、新しいサブキーはいつでも追加できますし、不要になったサブキーは個別に失効できます。サブキーの失効が、プライマリキーの信用度に影響を与えることはありません。盗まれたのがサブキーの秘密鍵だけで、プライマリキーの秘密鍵が手元に残っていた場合、盗まれたサブキーを失効させて新しいサブキーで置き換えることができます。その際に自分のプライマリキーの信頼を構築し直す必要はありませんし、自分のプライマリキーを使って署名した他人のプライマリキーの信頼度が低下することもありません。プライマリキーとサブキーの作成についてここからgpgの使い方についての説明となります。二者間でセキュアなコミュニケーションができるように、プライマリキーとサブキーを作成します。手順は次のとおりです。作成したプライマリキーとサブキーを確認それではステップに沿って説明を進めます。プライマリキーとサブキーを作成プライマリキーとサブキーを作成するには、gpgに--gen-keyを指定します。--batchを指定することで設定ファイルを元に鍵ペアを自動で作成することができます。以下に、Aliceがalice.confという設定ファイルを元にプライマリキーとサブキーを作成する場合の例を示します。"#"で始まる行はコメントです。%で始まる行は、gpgを制御するためのコマンドです。設定ファイルはUTF-8で保存してください。(有効期間は必ず設定してください。doneそれでは、alice.confを使用して鍵ペアを作成する場合の例を示します。done以上で、プライマリキーとサブキーの作成は完了です。プライマリキーに対する失効証明書を作成プライマリキーとサブキーの作成が終わったら、直ちにプライマリキーに対する失効証明書を作成する必要があります。gpgに--gen-revokeを指定し、失効証明書を作成してください。以下に、Aliceがrevoke.ascというファイル名で失効証明書を作成する場合の例を示します。(理由なし)を選択してください。説明についても空欄のままで問題ありません。others!作成した失効証明書は紛失しないよう保管には十分注意してください。暗号化したUSBメモリに保存しておくと安全です。そのUSBメモリ自体を紛失しないように注意してください。以上で、プライマリキーに対する失効証明書の作成は完了です。失効証明書とは何か、いつ使うのかについては補足をご覧ください。作成したプライマリキーとサブキーを確認gpgに--list-keysまたは-kを指定すると保存されている公開鍵の一覧が表示されます。--list-secret-keysまたは-Kを指定すると保存されている秘密鍵の一覧が表示されます。以下に、Aliceが作成したプライマリキーの公開鍵とサブキーの公開鍵の情報を確認する場合の例を示します。2018-09-17]pubで始まる行がプライマリキーの公開鍵の情報、subで始まる行がサブキーの公開鍵の情報となります。続いて、プライマリキーの秘密鍵とサブキーの秘密鍵の情報を確認します。2016-09-17secで始まる行がプライマリキーの秘密鍵の情報、ssbで始まる行がサブキーの秘密鍵の情報となります。以上が、プライマリキーとサブキーを作成する手順となります。公開鍵の交換についてさて、プライマリキーとサブキーが作成できました。続いて、メッセージの署名および暗号化したメッセージの送受信ができるように公開鍵を通信相手と交換する手順を説明します。公開鍵の交換方法は次のとおりです。公開鍵の信用度を確認それでは、AliceとBlakeがお互いの公開鍵を交換する場合を例に説明を進めます。公開鍵ファイルをエクスポートまずは、各々の公開鍵を--exportを指定してファイルに書き出します。冒頭で説明したとおり、サブキーはプライマリキーに紐付いています。プライマリキーの公開鍵をエクスポートして、次にサブキーの公開鍵をエクスポートして...と、個別に公開鍵をエクスポートする必要はありません。ユーザー名またはメールアドレスを指定するだけで、プライマリキーの公開鍵とサブキーの公開鍵をエクスポートできます。blake@example.com以上で、Aliceはalice.gpgとして、Blakeはblake.gpgとして公開鍵ファイルをエクスポートできました。公開鍵は文字通り公開されていなければ暗号化も署名もできません。互いに通信したい相手の公開鍵が入手できれば問題ないので、GistやDropboxにアップロードするなどして、両者の間で公開鍵を交換してください。公開鍵を交換する手段はなんでも構いません。それでは、AliceとBlakeの間でお互いの公開鍵が交換できたものとして、次のステップに進みます。公開鍵ファイルをインポート公開鍵か交換できたら、各々のマシンで受け取った公開鍵を取り込みます。gpgに--importを指定することで、公開鍵を取り込むことができます。1)以上で、公開鍵のインポートは完了です。最後に、受け取った公開鍵が改ざんされていないか、--fingerprintを比較して検証します。以下に、AliceがBlakeから受け取った公開鍵の改ざんの有無を検証する場合の例を示します。...だったけど、合ってる?」とBlake本人に尋ねます。このとき、確実にBlake本人と通信できる手段を用いて質問をする必要があります。facebookのメッセンジャーやメール、電話などが利用できます。フィンガープリントが一致していれば、つまり公開鍵ファイルに改ざんが無ければ、AliceがBlakeから受け取った公開鍵は確実にBlake本人が作成したものであると信用できます。同様の手順で、BlakeはAliceから受け取った公開鍵ファイルの改竄の有無を検証することができます。以上で、公開鍵ファイルの改竄の有無の検証は完了です。公開鍵を信頼さて、受け取った公開鍵に改ざんが無いことを確認できたので、この公開鍵は信用することができます。gpgに公開鍵を信頼するよう伝えるには、--sign-keyを使います。以下に、AliceがBlakeから受け取った公開鍵を信頼するように設定する場合の例を示します。│これで、AliceはBlakeから受け取った公開鍵を信頼して使用できるようになりました。同様の手順で、BlakeはAliceから受け取った公開鍵を信頼するように設定することができます。以上で、公開鍵を信頼する設定は完了です。念のため、もう一度AliceがBlakeから受け取った公開鍵のフィンガープリントを確認します。2018-09-18]AliceがBlakeの公開鍵を信頼する前はuidの行にunknownと表示されていましたが、今はfullと表示されています。これは、Blakeの公開鍵を信頼しているという状態を意味します。同様の手順でBlakeもAliceの公開鍵を確認することができます。以上で、公開鍵の交換は完了です。公開鍵サーバーを利用した公開鍵の交換についてさて、長々と手動で公開鍵を交換する方法を説明しましたが、実は公開鍵サーバーという便利なものがあります。公開鍵サーバーへ公開鍵を登録することで、公開鍵をエクスポートして交換してインポートするという一連の作業を省くことができます。GistやDropboxに公開鍵をアップロードする必要はなかったのです。公開鍵サーバーを利用して公開鍵を交換する手順は、次のとおりです。公開鍵サーバーとして広く利用されているのは、MITが運用しているpgp.mit.eduです。以下に、Aliceが自身の公開鍵をpgp.mit.eduへ登録し、Blakeがそこから公開鍵を取得する場合の例を示します。登録する公開鍵のIDを確認gpgで公開鍵をサーバーへ登録する際には、ユーザー名やメールアドレスではなく、公開鍵のIDを指定する必要があります。そこで、最初にgpgに--list-keysまたは-kを指定して公開鍵サーバーへ登録する公開鍵のIDを確認します。以下に、Aliceが自身の公開鍵のIDを確認する場合の例を示します。2018-09-17]まず、pubから始まる行を探してください。4096R/C8A2005Eという部分の/より後ろの部分が公開鍵のIDとなります。bitの鍵長で、暗号化アルゴリズムとしてRSAを利用していることを意味します。以上で、公開鍵のIDが確認できました。公開鍵をサーバーへ登録Aliceの公開鍵のIDは、C8A2005Eです。それでは、--keyserverで公開鍵サーバーのアドレスを、--send-keysで公開鍵のIDを指定して公開鍵を登録します。pgp.mit.eduなお、一度公開鍵サーバーに送信した公開鍵は、失効することはできても完全に削除することはできません。公開鍵を送信する際は有効期限が設定されていることを必ず確認してください。以上で公開鍵サーバーへの登録は完了です。公開鍵サーバーから公開鍵を検索して取得するには、gpgに--search-keysを指定します。検索クエリとしては、ユーザーの名前、メールアドレス、公開鍵のIDが指定できます。前のステップでAliceの公開鍵をサーバーへ送信する例を示しましたが、あくまで例であって実際には送信していません。そこで、検索クエリとしてAliceの代わりにHashimotoを指定した場合の例を以下に示します。Hashimoto氏の名前が思い浮かんだからです。深い意味はありません。>この記事を執筆している2016年9月18日の時点では、上記のような結果が得られました。Hashimotoさんの公開鍵を入手したい場合は、1を入力します。すると、公開鍵がダウンロードされて自動的にインポートされます。以上が、公開鍵をサーバーへ登録し、登録された公開鍵を検索して入手する手順となります。メッセージの署名と暗号化についてさて、ようやくgpgで使用する公開鍵の準備ができました。次はメッセージに署名する方法とメッセージを暗号化する方法を説明します。署名および暗号化の対象となるメッセージは、テキストファイルに限りません。バイナリを含め、どんなファイルでも署名および暗号化することができます。それでは、AliceとBlakeの間で署名されたメッセージおよび暗号化されたメッセージをやり取りする場合を例に説明を進めます。メッセージに署名を付加メッセージに署名を付加したい場合は、--detach-signまたは-bを指定します。署名が完了すると、*.sigというファイルが作成されます。message.txtに署名するとmessage.txt.sigというファイルが作成されます。以下に、Aliceがmessage.txtに署名する場合の例を示します。C8A2005E)以上で、メッセージに署名を付加することができました。メッセージに付加された署名を検証AliceはBlakeにmessage.txtとmessage.txt.sigを送ります。BlakeはAliceの公開鍵を利用することで、message.txt.sigはAliceが作成した署名であることを検証できます。署名を検証するには、gpgに*.sigを指定します。以下に、BlakeがAliceの公開鍵を利用してmessage.txt.sigを検証する場合の例を示します。<alice@example.com>"以上で、メッセージに付加された署名を検証することができました。特定の人だけが見ることができるようにメッセージを暗号化するには--encryptまたは-eを指定します。メッセージの受取人は--recipientまたは-rで指定します。暗号化が完了すると、たとえばmessage.txtに対してmessage.txt.gpgというファイルが作成されます。メッセージの暗号化は、受取人のサブキーの公開鍵を使って行うので、暗号化をする前にメッセージの送信者は受取人の公開鍵を入手しておく必要があります。以下に、AliceがBlakeのサブキーの公開鍵を使用して、Blakeだけが見ることのできるメッセージを作成する場合の例を示します。message.txt以上で、特定の人だけが見ることができるメッセージの作成は完了です。以下に、Blakeが、Aliceから受け取ったmessage.txt.gpgを自身の秘密鍵で復号化する場合の例を示します。Blake!Blakeは、無事にAliceからのメッセージを復号化できました。以上が、メッセージに署名を付加する方法と、特定の人だけが見ることのできるメッセージの作成方法となります。プライマリキーとサブキーの有効期間を延長する方法についてここまでで、gpgの使い方は一通り把握できたのではないかと思います。次は、作成したプライマリキーとサブキーの有効期間を延長する方法について説明します。プライマリキーとサブキーの作成方法の説明では、Aliceが有効期間を2年に設定して、プライマリキーとサブキーを作成する場合の例を示しました。この記事を執筆しているのは2016年ですから、2年後の2018年には有効期限が切れます。それでは、Aliceが作成したプライマリキーとサブキーの有効期間を2018年から3年後の2019年に変更して、有効期間を1年延長する場合を例に説明を進めます。gpgの対話モードgpgには、鍵ペアを管理するための対話モードが備わっています。--edit-keyを指定することで、対話モードのシェルが起動します。law....gpg>gpg>というプロンプトが表示されて、対話モードのシェルが起動しました。以降、このシェルでプライマリキーとサブキーの有効期間を変更する作業を行います。gpgの対話モードについての注意事項gpgの対話モードでは、プライマリキーの有効期間を延長しても、紐付けられたサブキーの有効期間が自動的に延長されることはありません。面倒ですが、プライマリキーとサブキーは個別に有効期間を変更する必要があります。対話モードのシェルで行った作業は、保存しない限り反映されません。作業が完了したらsaveと入力して変更を保存してください。変更を保存せずに終了する場合は、quitと入力します。Nと入力して編集対象の鍵ペアを選択します。Nは鍵ペアの番号であり、0がプライマリキー、1が1つめのサブキー、2が2つめのサブキーという具合に番号が割り振られています。0と入力してプライマリキーを選択してください。<alice@example.com>続いて、expireと入力してプライマリキーの有効期間を変更します。<alice@example.com>以上で、プライマリキーの有効期間が変更されました。次はサブキーを選択します。<alice@example.com>続いて、プライマリキーの有効期間を変更したときと同様に、expireと入力して有効期間を設定します。subkey....以上で、サブキーの有効期間が変更されました。念のため、プライマリキーとサブキーに設定した有効期間を確認します。listと入力することでプライマリキーとサブキーの一覧が表示されます。<alice@example.com>プライマリキーとサブキーの有効期限が2019年に設定されていることを確認できました。最後に、saveと入力して変更を保存すれば完了です。save以上が、プライマリキーとサブキーの有効期間を変更する手順となります。更新したプライマリキーとサブキーを公開鍵サーバーに登録プライマリキーとサブキーの更新が終わったら、公開鍵サーバーに登録しましょう。以下に、Aliceが更新したプライマリキーとサブキーの公開鍵をpgp.mit.eduに登録する場合の例を示します。C8A2005E以上で、公開鍵サーバーに登録されているプライマリキーとサブキーの有効期間が更新されました。プライマリキーの秘密鍵がラップトップPCごと盗まれた場合に備えるここからはgpgをより安全に使うための方法を説明します。gpgの使い方を学習したAliceとBlakeは、快適な暗号通信ライフをenjoyしていました。ある日、AliceはラップトップPCを載せた車でスーパーへ買物に出かけました。買い物を終えて駐車場に戻ってきたAliceは青ざめました。割れた窓ガラス、そして助手席に置いてあったラップトップPCの姿はどこにも見あたりません。「あのラップトップPCには私のプライマリキーの秘密鍵が保存されているの!今頃私のプライマリキーの秘密鍵を盗んだクソ野郎が私になりすまして世界中に署名付きの恥ずかしいポエムをばらまいているに違いないわ...」その後、新しいラップトップPCを購入したAliceは、失効証明書を使って盗まれたプライマリキーを失効させました。幸運なことに、車上荒らしはgpgの知識を持ち合わせていなかったため、盗まれたプライマリキーを失効させるまでの間に目立った被害は確認されませんでした。AliceはBlakeと暗号化されたメッセージをやり取りするためにgpgのセットアップを一からやり直したのでした。プライマリキーの秘密鍵が盗まれた場合に備える、なにか良い方法はないのでしょうか。署名用のサブキーを追加して安全性を高めるこの記事の冒頭で、サブキーについて次のように説明したことを思い出してください。GnuPGにおけるサブキーは暗号化に使用されます。(署名にも使用できます。)そう、サブキーは暗号化だけではなく、署名にも使えるのです。プライマリキーとサブキーを作成します。その後、プライマリキーでそのサブキーに署名すれば、プライマリキーの信用を引き継いだ署名用のサブキーが作成できます。あとは、プライマリキーの秘密鍵をUSBメモリなどにバックアップした上で、~/.gnupgディレクトリに保存されたプライマリキーの秘密鍵を削除すれば完了です。すると、ラップトップPCにはサブキーしか保存されていない状態になります。これでラップトップPCが盗まれたとしてもプライマリキーを失効させる必要はなくなりました。バックアップしておいたプライマリキーの秘密鍵を使用して、また新しく署名用のサブキーを作成すれば良いのです。以下に、Aliceが署名用のサブキーを追加する場合の例を示します。署名用のサブキーを追加するには、--edit-keyでgpgの対話モードを起動します。その後addkeyと入力して署名用のサブキーを追加します。あとは、通常のプライマリキーとサブキーの作成と同様に、鍵の種類と鍵の長さ、そして有効期間を指定すればサブキーが追加されます。以下に、Aliceが署名用のサブキーを追加する場合の例を示します。bitで有効期間は2年に設定しています。saveこれで、署名用のサブキーが追加されました。念のため、gpgに--list-keysまたは-kを指定して、署名用のサブキーが追加されているか確認します。2018-09-21]以上で、署名用のサブキーの追加は完了です。署名用のサブキーが作成できたので、これを公開鍵サーバーに登録します。以下に、Aliceが追加した署名用のサブキーを公開鍵サーバーに登録する場合の例を示します。C8A2005E以上で、追加した署名用のサブキーが公開鍵サーバーに登録されました。~/.gnupgディレクトリのバックアップの作成プライマリキーとサブキーは~/.gnupgディレクトリに保存されています。このディレクトリをコピーして、暗号化されたUSBメモリなどに保存してください。そのUSBメモリ自体を紛失しないように注意してください。以下に、Aliceが~/.gnupgディレクトリをgnupg_backup.tar.gzとして圧縮し、USBメモリがマウントされたパス/path/to/usb_flash_driveにコピーする場合の例を示します。/path/to/usb_flash_drive以上で、バックアップの作成は完了です。残念ながら、gpgにはプライマリキーの秘密鍵だけを削除する機能はありません。そこで、まずサブキーの秘密鍵を--export-secret-keysでエクスポートした後にすべての秘密鍵を削除し、サブキーの秘密鍵をインポートすることでプライマリキーの秘密鍵だけが削除された状態を作り出します。以下に、Aliceがプライマリキーの秘密鍵を削除する場合の例を示します。サブキーの秘密鍵をsecret_subkeys.gpgとしてエクスポートします。C8A2005Eこれで、サブキーの秘密鍵はsecret_subkeys.gpgにエクスポートされました。続いて、プライマリキーとサブキーの秘密鍵を削除します。yこれで、Aliceのプライマリキーの秘密鍵が削除されました。gpgに--list-secret-keysまたは-Kを指定して、秘密鍵が削除されたことを確認してください。-K$無事にすべての秘密鍵が削除されると、このように何も表示されなくなります。続いて、secret_subkeys.gpgとして退避させたサブキーの秘密鍵を読み込みます。1これで、プライマリキーの秘密鍵だけが削除された状態になりました。念のため、秘密鍵が読み込まれているか確認します。2016-09-21保存されているのは、サブキーの秘密鍵だけであることが確認できました。以上が、プライマリキーの秘密鍵を削除する手順となります。プライマリキーの代わりにサブキーでメッセージに署名を付加するさて、サブキーでプライマリキーと同様に署名ができる環境は整いました。署名を付加する方法は、サブキーもプライマリキーも同じです。以下に、Aliceがmessage.txtに署名を付加する場合の例を示します。C8A2005E)以上で、サブキーを使用してメッセージに署名を付加することができました。署名に使用したのがサブキーであっても、検証の方法は変わりません。以下に、BlakeがAliceから受け取ったmessage.txt.sigを検証する場合の例を示します。<alice@example.com>"無事に、メッセージに付加された署名がAliceのものであることを確認できました。以上が、プライマリキーの代わりにサブキーでメッセージに署名を付加する方法となります。補足ここからは、本文中で扱わなかった項目について説明します。失効証明書とは何か失効証明書は、鍵ペアを使用することがなくなった、あるいは使用できなくなった場合に該当する鍵ペアに対して適用する印のようなものです。プライマリキーを管理していれば、基本的に失効証明書が必要になることはありません。プライマリキーの秘密鍵が保存されている~/.gnupgディレクトリを誤って削除してしまった、あるいは秘密鍵のパスフレーズを忘れるなどの理由により、プライマリキーの秘密鍵を使用できなくなることがあります。その場合、使えなくなったプライマリキーを失効させる必要が生じます。プライマリキーの秘密鍵とそのパスワードが漏洩した場合も同様にプライマリキーを失効させる必要が生じます。プライマリキーを失効させる方法についてこの記事の冒頭で説明したとおり、プライマリキーはサブキーを紐付けるための鍵ペアです。プライマリキーを失効させると今までに築いた信頼関係がすべて失われます。プライマリキーの秘密鍵の管理は厳重に行って、そもそも失効する必要が生じないようにしてください。プライマリキーを失効させる場合は、この注意事項を踏まえた上で慎重に行う必要があります。プライマリキーを失効させるには、まず失効証明書を--importで読み込みます。その後、失効したプライマリキーを公開鍵サーバーに登録すれば、プライマリキーの失効は完了です。以下に、Aliceがrevoke.ascを使用してプライマリキーを失効させる場合の例を示します。revoke.ascこれで、Aliceのプライマリキーは失効しました。最後に、この更新を公開鍵サーバーに登録します。C8A2005E以上がプライマリキーを失効させる手順となります。失効証明書を紛失した場合に、失効させる手段が無くなるからです。プライマリキーとサブキーに有効期間として1年を指定したとします。この場合、仮に失効証明書を紛失したとしても1年経過すれば自動的に失効します。有効期間が指定されていなければ失効することはありません。プライマリキーを登録したサーバー上に残り続けます。公開鍵サーバーは、他の公開鍵サーバーと連携しています。pgp.mit.eduはkeys.gnupg.netと登録された公開鍵を共有しています。無数に存在する公開鍵サーバーの管理者全員に問い合わせて、登録済みの公開鍵を削除してもらうよう依頼することは現実的には不可能です。従って、有効期間を指定していないプライマリキーおよびサブキーの失効証明書を紛失した場合、永久に失効できなくなるのです。プライマリキーとサブキーの作成直後に失効証明書を作成する理由たとえば、--gen-keyでプライマリキーとサブキーを作成した後に、--gen-revokeで失効証明書を作成したとします。数日後にプライマリキーの秘密鍵のパスワードを忘れてしまった場合を想定してください。このとき、作成してある失効証明書を使えばプライマリキーを失効させることができます。失効証明書の作成を怠っていると、プライマリキーを失効させることはできません。当然ですが、失効証明書を作成する際にはプライマリキーの秘密鍵のパスワードが必要になるからです。したがって、プライマリキーとサブキーの作成直後であれば、確実にパスワードは覚えているわけですから、そのタイミングで失効証明書を作成しておく必要があるのです。ところで、--gen-revokeを実行すると、失効証明書を作成する理由が尋ねられます。選択肢は次のとおりでした。(もうキーは使われなくなるから)キーの信頼が失われたというのは、秘密鍵が漏洩した場合を想定しています。bitに更新することを想定しています。このように、上記の選択肢はすべて手元にプライマリキーの秘密鍵が残されていることを前提としている点に注意してください。したがって、やはりプライマリキーとサブキーの作成直後に失効証明書を作成する必要があるのです。有効期間を過ぎた後のプライマリキーとサブキーの更新について有効期間を過ぎた後でも、プライマリキーとサブキーの有効期間は更新できます。言って、有効期限を過ぎた後に更新することを繰り返していては、いずれ周囲の人から信頼されなくなります。これは技術的な問題ではなく、その人が信頼できるか否かという社会的な問題ですからプライマリキーとサブキーの更新は余裕を持って行うように心がけるべきです。プライマリキーとサブキーに設定された有効期間をすぎると何が起こるのかプライマリキーとサブキーに設定された有効期間をすぎると何が起こるのでしょうか。以下に、Blakeが作成したプライマリキーとサブキーの有効期限が切れた場合を例にして、何が起こるのかを示します。メッセージに付加された署名の検証を試みた場合AliceはBlakeからmessage.txtと、message.txt.sigを受け取りました。Aliceはメッセージを受け取ったことを忘れていて、気づいた頃にはすでにBlakeが署名に利用したプライマリキーに設定されている有効期間を過ぎていました。以下に、AliceがBlakeから受け取った署名の検証を試みた場合の例を示します。1043このように、メッセージに付加された署名は有効期間を過ぎた後でも正しいものであることが検証できます。その署名を信頼するか否かは各自で判断することになります。プライマリキーの有効期間を延長せずに放置しているような人を信頼できるかというと、微妙なところです。有効期間を過ぎたプライマリキーを使用して、メッセージに署名を付加することはできません。以下に、Blakeがメッセージに署名の付加を試みた場合の例を示します。keyこのように、有効期間を過ぎたプライマリキーの秘密鍵を使ってメッセージに署名を付加することはできません。有効期間を過ぎたサブキーを使用して、メッセージを暗号化することはできません。以下に、Aliceが有効期限の切れたBlakeのサブキーの公開鍵を使用して、Blakeだけが見られるようにmessage.txtを暗号化しようと試みた場合の例を示します。keyこのように、有効期間を過ぎたサブキーの公開鍵を使用してメッセージを暗号化することはできません。まとめ最後に、gpgでプライマリキーとサブキーを作成する際の心得をまとめます。失効証明書を必ず作成プライマリキーの秘密鍵は絶対に漏洩させてはならない以上です。upLoginユーザーは見つかりませんでした。