PGPを使用してコードの整合性を保護します。 パート2.マスターキーの作成

PGPを使用してコードの整合性を保護することを目的とした一連の資料の第2部の翻訳を次に示します。 前回はPGPの基本について説明しましたが、今日は4096ビットRSAマスターキーを作成する方法とそれらを保護する方法について説明します。



RSAキー


▍チェックリスト


このセクションの資料を理解した後に習得すべきスキルは次のとおりです。

  1. 4096ビットRSAマスターキーの作成(重要)。
  2. 紙にマスターキーのバックアップコピーを作成する(重要)。
  3. 適切な識別データの選択とマスターキーへの追加(重要)。

説明


masterマスターキー(認証キー)とは


このセクションと次のセクションでは、いわゆる「マスターキー」と「サブキー」について説明します。 これらのタイプのキーを検討する場合、次のことを理解することが重要です。

  1. 技術的な意味では、マスターキーとサブキーに違いはありません。
  2. キーの作成中に、機能制限が指定され、特定の機能が割り当てられます。
  3. PGPキーには4つの可能性があります。

    • [S]キーはデータの署名に使用できます。
    • [E]キーは暗号化に使用できます。
    • [A]キーは認証に使用できます。
    • [C]キーを使用して、他のキーを認証できます。
  4. 1つのキーにはいくつかの可能性があります。

[C]機能(認証)を持つキーは、他のキーと連携するために使用できる唯一のキーであるため、マスターキーと見なされます。

以下のアクションを実行するために使用できるのは認証キーのみです。


フリーソフトウェアの世界では、[C]キーはデジタルIDです。 このキーを作成したら、その保護に特別な注意を払い、攻撃者の手に落ちないようにする必要があります。

masterマスターキーを作成する前に実行されるアクション


マスターキーを作成する前に、基本的な資格情報とパスフレーズを選択する必要があります。

▍基本的なアイデンティティ


IDは、電子メールの[ Fromフィールドと同じ形式を使用する文字列です。

 Alice Engineer <alice.engineer@example.org> 

新しい資格情報を作成し、古い資格情報を取り消して、いつでも基本的な資格情報を変更できます。 識別データの基本セットはすべてのGnuPG操作中に表示されるため、あなたの名前、場合によっては職業、およびデータ交換に使用される可能性が最も高い電子メールアドレスを選択して指定する必要があります。 PGPを使用します。 たとえば、仕事用のメールアドレス、またはGitHubにコミットを登録するために使用するメールアドレスを指定できます。

▍キーフレーズ


キーフレーズ(「パスフレーズ」とも呼ばれる)は、このキーをディスクに保存するときに、対称アルゴリズムを使用して秘密キーを暗号化するためにのみ使用されます。 .gnupgディレクトリの内容が攻撃者の手に渡った場合、適切なキーフレーズは、攻撃者とオンラインでのなりすましの能力との間の最後の防衛線になります。 そのため、適切なキーワードフレーズを使用することが重要です。

信頼できるキーフレーズは3〜4語で構成されており、その中の単語が辞書で見つからないことが望ましいです。 よく知られている情報源からの引用であってはなりません(会社の歌、本、広告スローガンの単語をキーフレーズとして使用するべきではありません)。 パスフレーズはかなり頻繁に使用するため、覚えやすく、キーボードから簡単に入力できるようにする必要があります。

▍アルゴリズムとキーの耐久性


GnuPGは現在、楕円曲線ベースの暗号化をサポートしていますが、今のところはRSAキーの使用に固執します。 ED25519キーを使用できますが、通常は使用できないソフトウェアツールとデバイスがあります。

さらに、2048ビットのキーであらゆるニーズに十分であることが広く知られている場合、マスターキーの長さが4096ビットである理由について質問があり、そのようなキーは長期間にわたって関連性を失うことはありません。 4096ビットキーを使用する理由は、主に技術的な領域ではなく、社会的なものです。 問題は、マスターキーのビット数がマスターキーのビット数よりも少ない場合、他の開発者が不信感を抱く可能性があることです。

masterマスターキーを作成する


マスターキーを作成するには、次のコマンドを実行して、Alice Engineerの条件付きユーザーデータの代わりにデータを配置します。

 $ gpg --quick-generate-key 'Alice Engineer <alice@example.org>' rsa4096 cert 

このコマンドを実行すると、パスフレーズの入力を求めるダイアログボックスが表示されます。 次に、システムがコマンドを完了するのに十分なエントロピーを蓄積できるように、マウスを動かすか、キーボードのキーを押す必要があります。

コマンドが出力するものを見てください。 次のようなものが表示されます。

 pub   rsa4096 2017-12-06 [C] [expires: 2019-12-06]    111122223333444455556666AAAABBBBCCCCDDDD uid                      Alice Engineer <alice@example.org> 

2行目の長い文字列に注意してください。 これは、新しく作成されたキーの完全なフィンガープリントです。 キー識別子は、3つの異なる形式で提示できます。


短い8文字のキー識別子は十分に一意ではないため、使用しないでください。

この時点で、テキストエディタを開き、キーのフィンガープリントをコピーしてそこに貼り付けることをお勧めします。 次のいくつかの手順を完了するために使用する必要があるため、手元に置いておくと便利です。

▍マスターキーのバックアップ


鍵の災害復旧のために、特に信頼ネットワークを使用して他のプロジェクト開発者から鍵署名を収集する場合は、紙に転送して秘密鍵の信頼できるコピーを作成する必要があります。 ハードコピーは、他のすべてのバックアップメカニズムがすでに役に立たない場合にキーを復元する最後の機会と見なされます。

印刷に適した秘密鍵のコピーを作成する最良の方法は、Paperkeyを使用することです。Paperkeyは、この目的専用に設計されています。 このプログラムはすべてのLinuxディストリビューションで利用できます; Macでは、 brew install paperkeyます。 [fpr]をキーの完全なフィンガープリントに置き換えて、次のコマンドを実行します。

 $ gpg --export-secret-key [fpr] | paperkey -o /tmp/key-backup.txt 

印刷後にこのコマンドの結果として生成されるファイルは、光学式テキスト認識システムまたはキーの復元が必要になった場合の手動入力に適しています。 このファイルを印刷してから、ペンを取り、紙のフィールドのどこかにキーフレーズを書きます。 印刷されたキーはキーフレーズで暗号化されるため、これは重要なステップです。変更した場合、元のキーフレーズを思い出せないことが保証されます。

キーフレーズが書かれた印刷物を封筒に入れ、安全な場所、できれば家の外、たとえば銀行の部屋にすべて入れます。

キーの紙のバックアップを印刷するプリンタに注意してください。 プリンタが、コンピュータのパラレルポートに接続するプリミティブデバイスであった時代は、もはや過ぎ去りました。 現在、プリンタには本格的なオペレーティングシステム、ハードドライブ、クラウドサービスとの統合が備わっています。 印刷に送信するキーデータはパスフレーズを使用して暗号化されているため、印刷は非常に安全な操作と見なすことができますが、見ないよりは安全にした方が良いです。

credentials資格情報の追加


頻繁に使用する電子メールアドレス(個人用および職場のアドレス、一部のオープンソースプロジェクトで使用されるアドレスなど)がある場合は、それらをマスターキーに追加する必要があります。 PGPで使用する予定のないアドレス(たとえば、どこかで勉強したときに与えられたアドレス)に対してこれを行う必要はありません。 以下は、資格情報をキーに追加するコマンドです。 ここで、 [fpr]はキーのフィンガープリントに置き換える必要があります。

 $ gpg --quick-add-uid [fpr] 'Alice Engineer <allie@example.net>' 

次のコマンドを使用して、キーに既に追加されているUIDを表示できます。

 $ gpg --list-key [fpr] | grep ^uid 

basic基本的な資格情報のセットを選択します


GnuPGは自動的に最後のクレデンシャルセットをメインのクレデンシャルに追加します。したがって、他に何かが必要な場合は、次のコマンドを使用できます。

 $ gpg --quick-set-primary-uid [fpr] 'Alice Engineer <alice@example.org>' 

まとめ


この資料から、PGPキーの役割、マスターキーを生成する方法、このキーを安全にバックアップする方法、およびキーキー識別データを割り当てる方法について学習しました。 次回はサブキーについて説明します。

親愛なる読者! マスターキーをどのようにバックアップしますか?

Source: https://habr.com/ru/post/J350028/


All Articles