PGP暗号化







かなり大規模な企業で、データ、通信チャネル、およびメール通信の暗号化が必要な理由を完全に理解していない(または理解したくない)場合があります。 この状況は私の仕事でも発生します。 クライアントバンクのデータが奇妙に失われる状況は、このゴーディアン結び目を切るのに役立ちました。



現在、いくつかの段階で、チームはgpgプログラムの基本的な操作方法のトレーニングを受けています。 GnuPGユーティリティを使用してメール通信、ファイルを暗号化することを決定したのは、さまざまなLinuxディストリビューションで利用できるためです。 Linuxが企業で何をしているのか尋ねることができます。 私はこれに答えます-3か月の継続的な作業の結果、約200個のPCのネットワークがLinuxに移行され、90%の成功を収めました。これについては、あとで説明します。





暗号化の基本と原則から始めましょう。 公開鍵暗号化と呼ばれるシステムを分析します。これは、あらゆる種類の情報を暗号化するための事実上の標準になりました。



このスキームでは2つのキーを使用します。1つはユーザーのみが保存する秘密キーで、もう1つは公開キーであり、公開されて他のユーザーに送信されます。 ユーザーまたは暗号化された情報を送信したいユーザーに属する公開鍵は、暗号化に使用されます。 また、対応する秘密鍵の所有者のみがデータを復号化できます。 セッションキーと呼ばれる3番目のキーもあります。 これは自動的に生成され、暗号化と復号化に使用されます。 そして、これはすべて自動的に行われるため、プロセスの説明で言及されることはめったにありません。



広く普及しているのは、2つの公開キー暗号化パッケージです。 1つ目は、商用PGP(Pretty Cood Privacy)、GPG(GNU Privacy Guard)です。これは、PGPの無料実装です。 2番目はOpenSSHです。 さらに、オープン性と普及率を考慮して、GPGのみを検討します。



GPGの主な目標は、ファイルの暗号化を実行することです。 OpenSSHのように、安全なデータチャネルを確立しません。 データを単に暗号化し、その整合性をチェックします。



GPGでの作業を開始する前に最初に行うことは、パブリックとプライベートのキーペアを作成することです。 これは、常に作業しているアカウントで行うのが最適です。 キーを作成するコマンドは次のとおりです。



gpg --gen-key



生成プロセス中に、キーのタイプ(最初のオプションがデフォルトで適切です)、サイズ、有効期間、ユーザー名、電子メール、パスワードを選択する必要があります。 これらすべてのポイントは直感的であり、私はそれらにこだわるつもりはありません。



生成が完了し、一対のキーを使用する準備が整いました。 pubring.gpg(公開キーチェーン)とsecring.gpg(プライベートキーチェーン)の両方のファイルは、$ HOME / .gnupgディレクトリにバイナリで保存されます。 公開鍵は、バイナリコードの形式とテキスト形式の2つの形式で提示できます。 デフォルトの形式はバイナリです。 キーをテキスト形式に変換するには、次を実行する必要があります。



gpg -a --export user> user.pub.key.asc



「> user.pub.key.asc」コマンドの一部は、出力を画面ではなくファイルにリダイレクトするために使用されます。



キー識別子を確認するには、キーチェックを実行します。これにより、pubring.gpgファイルにキーのリストが表示されます。



gpg --list-key



この瞬間まで、私たちはキーで操作を行いました。 しかし、他のユーザーのキーはどうですか? これを行うには、サイドから受け取った公開キーを公開キーチェーンに挿入します。



gpg --import otherkey.pub.key.gpg.asc (otherkey.pub.key.gpg.ascは受信したキーファイルです)



暗号化は、情報の整合性と信頼性を検証する唯一の方法です。 別の方法は、ファイルに署名することです。 この方法では、ファイルの特性に基づいて、秘密鍵データが含まれる署名の種類が作成されます。 ファイルが署名されてから受信されるまでの間にファイルが変更されていない場合、GPGを使用して復号化またはチェックすると、次のメッセージが表示されます。



[ユーザー@ホスト] $ gpg --verify foo.txt.asc foo.txt

gpg:DSAキーID 12EA888Dを使用して、2009年3月18日木曜日14:10:50 ESTに作成された署名

gpg:「******」からの良好な署名



「file」という名前のファイルに署名するには、次の操作を行う必要があります。



gpg -bファイル



このコマンドの結果として、バイナリファイルが作成されます。 ASCII表現に変換するには、これを行う必要があります。



gpg -baファイル



「-b」オプションは、個別の署名ファイルを作成するために使用されます。 署名ファイルの名前は署名ファイルと同じですが、バイナリで署名されているかASCIIで署名されているかに応じて、拡張子が.gpgまたは.ascのみです。



最後に、ファイル自体を暗号化する方法を説明します。 ユーザーに公開鍵があり、暗号化されたファイルを送信したいとします。 これを行うには、次のコマンドを実行する必要があります。



gpg -r user -e file (「user」は暗号化されたファイルの所有者に送信される束のキーの識別子、「file」は暗号化されたファイルの名前です)



結果は、送信可能なfile.gpgファイルです。 また、出力のテキストビューですぐにファイルを取得することもできます。



gpg -r user -ea file (ここで、「user」は暗号化されたファイルの所有者に送信される束のキーの識別子、「file」は暗号化されたファイルの名前です)



このようなファイルを受け取ったら、次を実行するだけです。



gpg -d file.gpg (または.asc



暗号化と署名を1つのコマンドで組み合わせる:



gpg -r user -beaファイル



その結果、暗号化されたファイルを取得します。このファイルの復号化中に、そのファイルの署名を作成する手順が実行されます。



オリジナルはブログにあります。



All Articles