Ubuntu12.04VPSでGPGを使用してメッセージを暗号化および署名する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.
代わりに参照してください:このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。
序章
GPG(GNU Privacy Guard)は、公開鍵暗号化の実装です。 これにより、当事者間での情報の安全な送信が可能になり、メッセージの発信元が本物であることを確認するために使用できます。
このガイドでは、GPGの仕組みと実装方法について説明します。 このデモではUbuntu12.04VPSを使用しますが、ツールは最新のLinuxディストリビューションで利用できます。
公開鍵暗号化のしくみ
多くのユーザーが直面する問題は、安全に通信し、話している相手の身元を検証する方法です。 この質問に答えようとする多くのスキームでは、少なくともある時点で、安全でない媒体を介してパスワードまたはその他の識別資格情報を転送する必要があります。
意図した当事者だけが読むことができることを確認してください
この問題を回避するために、GPGは公開鍵暗号化と呼ばれるセキュリティの概念に依存しています。 アイデアは、送信の暗号化と復号化の段階を2つの別々の部分に分割できるということです。 そうすれば、復号化部分を保護する限り、暗号化部分を自由に配布できます。
これにより、誰でも作成および暗号化できる一方向のメッセージ転送が可能になりますが、指定されたユーザー(秘密の復号化キーを持つユーザー)のみが復号化できます。 両方の当事者が公開鍵と秘密鍵のペアを作成し、お互いに公開暗号化鍵を与える場合、両者はお互いにメッセージを暗号化できます。
したがって、このシナリオでは、各当事者が独自の秘密鍵と他のユーザーの公開鍵を持っています。
送信者の身元を確認する
このシステムのもう1つの利点は、メッセージの送信者が秘密鍵を使用してメッセージに「署名」できることです。 受信者が持っている公開鍵を使用して、署名が指定されたユーザーによって実際に送信されていることを確認できます。
これにより、第三者が誰かの身元を「なりすまし」するのを防ぐことができます。 また、損傷やファイルの破損なしに、メッセージが完全に送信されたことを確認するのにも役立ちます。
GPGキーを設定する
GPGはデフォルトでUbuntu12.04にインストールされているはずです。 そうでない場合は、次のコマンドでインストールできます。
sudo apt-get install gnupg
GPGを使用して通信を暗号化するには、キーペアを作成する必要があります。 これを行うには、次のコマンドを発行します。
gpg --gen-key
これにより、キーを構成するいくつかの質問に答えることができます。
-
必要なキーの種類を選択してください:(1)RSAおよびRSA(デフォルト)
-
どのキーサイズが必要ですか? 4096
-
キーは有効ですか? 0
-
これは正しいです? y
-
本名:本名はこちら
-
メールアドレス: [email protected]
-
コメント:署名に表示されるオプションのコメント
-
(N)ame、©omment、(E)mail、または(O)kay /(Q)uitを変更しますか? O
-
パスフレーズを入力してください: ここに安全なパスフレーズを入力します(大文字と小文字、数字、記号)
この時点で、エントロピーを使用してキーを生成する必要があります。 これは基本的に、システムに存在する予測不可能性の量を表す用語です。 GPGはこのエントロピーを使用して、ランダムなキーのセットを生成します。
これが実行されている間、新しいターミナルを開いてVPSにSSH接続するのが最善です。 いくつかのソフトウェアをインストールし、いくつかの作業を行い、マシンを可能な限り使用して、必要なエントロピーを生成させます。
システムをどれだけアクティブにできるかによっては、このプロセスに時間がかかる場合があります。 ここに、havegedを使用して追加のエントロピーを生成する方法に関する記事があります。これは役立つ場合があります。
失効証明書を作成する
セキュリティ違反が発生した場合、または秘密鍵を紛失した場合に備えて、鍵ペアを無効にする方法が必要です。 GPGソフトウェアでこれを行う簡単な方法があります。
これは、必要なときではなく、キーペアを作成したらすぐに実行する必要があります。 この失効キーは事前に生成し、コンピューターが危険にさらされたり操作できなくなったりした場合に備えて、安全な別の場所に保管する必要があります。 タイプ:
gpg--gen- your_emailを取り消す @住所 .com
取り消されている理由を尋ねられます。 利用可能なオプションのいずれかを選択できますが、これは事前に行われているため、詳細はわかりません。
次に、コメントを入力し、最後に選択を確認するように求められます。
その後、失効証明書が画面に生成されます。 これをコピーして安全な場所に貼り付けるか、後で使用するために印刷します。
Revocation certificate created.
Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable. But have some caution: The print system of
your machine might store the data and make it available to others!
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: A revocation certificate should follow
iQIfBCABAgAJBQJSTxNSAh0AAAoJEIKHahUxGx+E15EP/1BL2pCTqSG9IYbz4CMN
bCW9HgeNpb24BK9u6fAuyH8aieLVD7It80LnSg/+PgG9t4KlzUky5sOoo54Qc3rD
H+JClu4oaRpq25vWd7+Vb2oOwwd/27Y1KRt6TODwK61z20XkGPU2NJ/ATPn9yIR9
4B10QxqqQSpQeB7rr2+Ahsyl5jefswwXmduDziZlZqf+g4lv8lZlJ8C3+GKv06fB
FJwE6XO4Y69LNAeL+tzSE9y5lARKVMfqor/wS7lNBdFzo3BE0w68HN6iD+nDbo8r
xCdQ9E2ui9os/5yf9Y3Uzky1GTLmBhTqPnl8AOyHHLTqqOT47arpwRXXDeNd4B7C
DiE0p1yevG6uZGfhVAkisNfi4VrprTx73NGwyahCc3gO/5e2GnKokCde/NhOknci
Wl4oSL/7a3Wx8h/XKeNvkiurInuZugFnZVKbW5kvIbHDWJOanEQnLJp3Q2tvebrr
BBHyiVeQiEwOpFRvBuZW3znifoGrIc7KMmuEUPvA243xFcRTO3G1D1X9B3TTSlc/
o8jOlv6y2pcdBfp4aUkFtunE4GfXmIfCF5Vn3TkCyBV/Y2aW/fpA3Y+nUy5hPhSt
tprTYmxyjzSvaIw5tjsgylMZ48+qp/Awe34UWL9AWk3DvmydAerAxLdiK/80KJp0
88qdrRRgEuw3qfBJbNZ7oM/o
=isbs
-----END PGP PUBLIC KEY BLOCK-----
他のユーザーの公開鍵をインポートする方法
通信したい人から他の公開鍵を受け入れることができなければ、GPGはかなり役に立たないでしょう。
誰かの公開鍵をさまざまな方法でインポートできます。 テキストファイルで誰かから公開鍵を取得した場合、GPGは次のコマンドで公開鍵をインポートできます。
gpg --import name_of_pub_key_file
また、通信したい相手が自分の鍵を公開鍵サーバーにアップロードしている可能性もあります。 これらのキーサーバーは、世界中の人々の公開キーを格納するために使用されます。
情報を他のさまざまなサーバーと同期する一般的なキーサーバーは、MIT公開キーサーバーです。 Webブラウザでここにアクセスすると、名前または電子メールアドレスで人を検索できます。
http://pgp.mit.edu/
次のように入力して、GPG内からキーサーバーを検索することもできます。
gpg --keyserver pgp.mit.edu --search-keys search_parameters
キーを確認して署名する方法
生成された公開鍵ファイルを自由に配布でき、人々はこれを使用して暗号化された方法であなたに連絡できますが、最初の公開鍵送信には依然として信頼の問題があります。
他の人の身元を確認する
あなたに公開鍵を与える人が彼らが彼らが言っている人であることをどうやって知っていますか? 場合によっては、これは単純なこともあります。 ラップトップを開いてキーを交換している人のすぐ隣に座っている可能性があります。 これは、正しい正当なキーを受け取っていることを識別するための非常に安全な方法です。
しかし、そのような個人的な接触が不可能な他の多くの状況があります。 あなたは相手を個人的に知らないかもしれません、あるいはあなたは物理的な距離によって隔てられているかもしれません。 安全でないチャネルを介して通信したくない場合は、公開鍵の検証が問題になる可能性があります。
幸いなことに、両方の当事者の公開鍵全体を検証する代わりに、これらの鍵から派生した「指紋」を単純に比較できます。 これにより、両方が同じ公開鍵情報を使用していることが合理的に保証されます。
次のように入力すると、公開鍵のフィンガープリントを取得できます。
gpg --fingerprint your_email @住所 .com
pub 4096R /311B1F842013-10-04キーフィンガープリント= CB9EC70F 2421 AF06 7D72 F980 8287 6A15 311B1F84uidテストユーザー@住所