GNU/Linux >> Linux の 問題 >  >> Linux

LinuxでのGPGを使用したファイルの暗号化と復号化[初心者向けハンズオン]

一般にGPGとして知られているGnuPGは非常に用途の広いツールであり、電子メール、メッセージ、ファイル、または誰かに安全に送信する必要があるものなどを暗号化するための業界標準として広く使用されています。

GPGの使用を開始するのは簡単で、数分で使用できるようになります。

このチュートリアルでは、GPGを使用してファイルを暗号化および復号化する方法を説明します。 これは簡単なチュートリアルであり、Linuxシステムでもすべてを試してみることができます。これは、GPGコマンドを練習し、まったく慣れていないときに理解するのに役立ちます。

最初にチュートリアル全体を読んでから、自分でそれを始めてください。

GPGは暗号化のためにどのように機能しますか?

GPGの使用を開始するには、最初にGPGキーが必要です。

GPGキーは、チュートリアルの後半でファイルを暗号化(または復号化)するために使用するものです。また、名前やメールアドレスなどもキーに関連付けられて、身元を特定するために使用されます。

GPGキーは、秘密キーと公開キーの2つのファイルを使用して機能します。これらの2つのキーは相互に関連付けられており、GPGのすべての機能、特にファイルの暗号化と復号化を使用するために両方が必要です。

GPGでファイルを暗号化する場合、秘密鍵が使用されます。その場合、新しい暗号化されたファイルはのみ 復号化 ペアの公開鍵を使用します。

秘密鍵は、その名前に直接記載された方法で保存されることを目的としています。秘密鍵であり、誰にも渡されることはありません。

一方、公開鍵は、他の人、またはファイルを復号化できるようにしたい人に渡されることを目的としています。

ここで、GPGの暗号化に対する主なアプローチが役立ちます。これにより、ファイルをローカルで暗号化して、受信したファイルが実際にあなたから送信されたことを他の人が確認できるようになります。 復号化できる唯一の方法として ファイルはyourにあります 公開鍵。ファイルが暗号化されている場合にのみ機能します。 あなたのを使用する そもそも秘密鍵。

これは逆方向にも機能します! 他の人はあなたの公開鍵を使用してファイルを暗号化できます。ファイルを復号化できる唯一の方法はあなたの秘密鍵を使用することです。したがって、他の人がファイルを読むことができる以外に、他の人が心配することなくファイルを公開して投稿できるようになります。

つまり、ファイルが秘密鍵で暗号化されている場合、そのファイルは対応する公開鍵でのみ復号化できます。また、ファイルが公開鍵で暗号化されている場合は、対応する秘密鍵でのみ復号化できます。

あなたはすでにGPGを気づかずに使用しています

GPGを使用する最も一般的な例の1つは、Linuxパッケージマネージャー、特に外部リポジトリーです。開発者の公開鍵をシステムの信頼できる鍵に追加します。開発者は、自分の秘密鍵を使用してパッケージに署名(署名を生成)します。 Linuxシステムにはパブリックファイルがあるため、パッケージが実際には信頼できる開発者からのものであることがわかります。

多くの暗号化されたサービスは、気付かないうちにその下にある種のGPG実装を使用します。ただし、現時点ではこれらの詳細には触れない方がよいでしょう。

概念に少し慣れてきたので、GPGを使用してファイルを暗号化し、それを使用して復号化する方法を見てみましょう。

GPGを使用したファイルの暗号化と復号化

これは非常に単純なシナリオです。システムが1つだけで、GPGがどのように機能するかを確認したいと思います。ファイルを他のシステムに送信していません。ファイルを暗号化してから、同じシステムで復号化します。

もちろん、これは実際の使用例ではありませんが、このチュートリアルの目的でもありません。私の目的は、GPGコマンドと機能を理解してもらうことです。その後、この知識を実際の状況で使用できます(必要な場合)。そのために、公開鍵を他の人と共有する方法を紹介します。

ステップ1:GPGのインストール

GPGは、箱から出してすぐにほとんどのディストリビューションのリポジトリにあります。

DebianおよびUbuntuベースのシステムでは、gpgパッケージをインストールします。

sudo apt install gpg

Archベースのディストリビューションを使用する場合は、pacmanコマンドを使用してgnupgパッケージをインストールします。

sudo pacman -S gnupg

ステップ2:GPGキーを生成する

システムでGPGキーを生成するのは、簡単な1つのコマンド手順です。

次のコマンドを実行するだけで、キーが生成されます(以下の下線付きのセクションに示されているように、ほとんどの質問にデフォルトを使用できます):

gpg --full-generate-key

GPGキーの確認

次に、秘密鍵と公開鍵の両方が、 pubの下に表示されているIDによって相互に関連付けられていることがわかります。 –list-secret-keysを使用する および–list-public-keys それぞれコマンド:

ステップ3:GPGを使用してファイルを暗号化する

GPGキーを設定したので、ファイルの暗号化を開始できます!

次のコマンドを使用してファイルを暗号化します。

gpg --encrypt --output file.gpg --recipient [email protected] file

そのコマンドが実際に何をするのかを簡単に見てみましょう:

最初に–encryptを指定しました オプション。これは、ファイルを暗号化することをGPGに通知するだけです。

次に、 –output file.gpgを指定しました 。これは何でもかまいませんが、通常は暗号化するファイルの名前に .gpgを加えたものです。 拡張子(つまり、 message.txt message.txt.gpgになります 。

次に、 –受信者[メール保護]と入力します 。これは、このシステムにはまだ実際にはまだ存在していない、対応するGPGキーの電子メールを指定します。

まだ混乱していますか?

これが機能する方法は、ここで指定する電子メールがローカルシステムの公開鍵に関連付けられている必要があるということです。

通常、これは別の人の公開GPGキーからのものであり、これを使用してファイルを暗号化します。その後、ファイルはそのユーザーの秘密鍵でのみ復号化できるようになります。

以前のGPGキーを[メール保護]で使用します この例では。したがって、ロジックは、ファイルを publicで暗号化することです。 hのキー[メール保護] 、これは privateでのみ復号化できるようになります [メール保護]のキー 。

公開鍵を持っているのは、他の誰かのためにファイルを暗号化している場合だけですが、自分でファイルを暗号化しているので、システムには両方の鍵があります。

最後に、暗号化するファイルを指定するだけです。この例では、 message.txtという名前のファイルを使用しましょう。 次の内容で:

We're encrypting with GPG!

同様に、メールが[メール保護]の場合 、新しいGPGコマンドは次のようになります:

gpg --encrypt --output message.txt.gpg --recipient [email protected] message.txt

次にファイルを読み込もうとすると、それがぎこちないように見えることがわかります。ファイルが現在暗号化されているため、これは予想されることです:

暗号化されていないmessage.txtファイルを削除して、message.txt.gpgファイルが元のファイルがなくても実際に正常に復号化されることを確認しましょう。

ステップ4:暗号化されたファイルをGPGで復号化する

最後に、暗号化されたメッセージを実際に復号化しましょう。次のコマンドを使用してこれを行うことができます:

gpg --decrypt --output file file.gpg

ここで議論を進めて、最初に –decryptを指定します 、ファイルを復号化することをGPGに通知します。

次に、 –outputと入力します ファイル。これは、ファイルを復号化した後、暗号化された形式のファイルを保存するファイルをGPGに通知するだけです。

最後に、 file.gpgと入力します 、これは暗号化されたファイルへのパスにすぎません。

例に従うと、使用するコマンドは次のようになります。

gpg --decrypt --output message.txt message.txt.gpg

そして出来上がり、これで完了です。 GPGを使用してファイルを暗号化および復号化する場合は、これですべてです。

他に知りたいのは、公開鍵を他の人と共有して、ファイルを送信する前に暗号化できるようにする方法だけです。

GPGキーの送受信

誰かにGPGキーを送信するには、最初にキーチェーンからGPGキーをエクスポートする必要があります 、これにはすべての公開鍵と秘密鍵が含まれています。

キーをエクスポートするには、キーチェーンでキーIDを見つけてから、次のコマンドを実行し、idを置き換えます。 キーのIDとkey.gpg 保存するファイルの名前:

gpg --output key.gpg --export id

キーをインポートするには、(前のコマンドからの)出力ファイルを他のユーザーに渡してから、次のコマンドを実行してもらいます。

gpg --import key.gpg

ただし、キーを通常どおりに使用するには、GPGがキーを適切に信頼できるように、キーを確認する必要があります。

これは、 –edit-keyを実行することで実行できます。 キーに署名した後、他のユーザーのシステムでコマンドを実行します。

最初にgpg --edit-key idを実行します :

次に、 fprを実行します コマンド。キーのフィンガープリントを表示します。このコマンドの出力は、同じ –edit-key を実行することで確認できる、自分のマシンの出力に対して検証する必要があります。 システム上のコマンド:

すべてが一致する場合は、記号を実行するだけです。 コマンドを実行すると、すべての準備が整います:

それでおしまい!他のユーザーは、以前と同じように公開鍵を使用してファイルの暗号化を開始できるようになり、秘密鍵を使用してファイルを復号化した場合にのみファイルを読み取ることができるようになります。

これがGPGの基本です!

まとめ

これで、自分や他の人のためにファイルを暗号化するなど、GPGの使用を開始するために必要なすべてのことを確認できました。先に述べたように、これはGPGの暗号化と復号化のプロセスがどのように機能するかを理解するためだけのものです。習得したばかりの基本的なGPGの知識は、実際のシナリオに適用すると、次のレベルに進むことができます。

まだ何かを理解するのに助けが必要ですか、それとも正しく機能していない何かが必要ですか?以下のコメントに自由に残してください。

元の記事


Linux
  1. Linuxでのキーベースの認証にssh-keygenと共有を使用する

  2. Linuxサーバーインフラストラクチャを監視するためのCheckmkの使用

  3. Linuxでファイルを検索するには、検索と検索を使用します

  1. Linuxでパスフレーズを使用してファイルを暗号化および復号化する

  2. TarとOpenSSLを使用してファイルとディレクトリを暗号化および復号化する方法

  3. Python for Linux を使用したキー押下イベントのシミュレート

  1. Linuxでsedを使用してテキストファイルを検索および置換する

  2. GnuPGを使用してLinuxでファイル/フォルダーを暗号化および復号化する方法

  3. Linux で GnuPG を使用してファイルを暗号化および復号化する方法