このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

【Linux】GnuPG:gpgコマンド

GnuPG:gpgコマンド

 GnuPG(GNU Privacy Guard)は、ファイルの暗号化とデジタル署名のために使用されるオープンソースのソフトウェアです。GnuPGを使用することで、データの機密性と認証性を確保し、情報の安全なやり取りを実現することができます。GnuPGは、公開鍵暗号方式および共通鍵暗号方式の両方をサポートしており、それぞれの用途に応じて使用することが可能です。ファイルの暗号化や署名の作成には、gpgコマンドが使用されます。

gpgコマンド

 gpgコマンドは、GnuPGを使用してファイルの暗号化、復号化、署名の作成、署名の検証などを行うためのコマンドです。このコマンドを使用することで、データの機密性や認証性を確保するための様々な操作を実行することができます。

【構文】
gpg [オプション]

主なオプションと説明

オプション説明
-c ファイル名共通鍵を使用してファイルを暗号化します。
-o ファイル名出力ファイル名を指定します。
--help使用可能なオプションやコマンドの概要を表示します。
主なオプションと説明

共通鍵でのファイルの暗号化

 GnuPGでは、共通鍵を使用して簡易的にファイルを暗号化することができます。この方法は、デジタル署名を使用しないため、データの送信者の正当性を保証することはできません。しかし、安全な共有手段が存在する場合、迅速かつ効率的にデータを暗号化する方法として利用されます。

コマンドの使用例と解説

 ここでは、GnuPGを使用して共通鍵でファイルを暗号化し、他のユーザー(root)と共有する方法の手順を試していきます。

1.暗号化するファイルを作成します。

まず、暗号化するためのテキストファイルを作成します。

・「nano file.txt」コマンドを実行します。

user01@ubuntu-vm:~$ nano file.txt

・次の内容をファイルに入力またはコピーアンドペーストします。

あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
まみむめも
やゆよ
らりるれろ
わゐゑを
ん

nanoエディタの場合、「Ctrl」+「s」で保存し、「Ctrl」+「x」で終了します。

2.共通鍵を使ってファイルを暗号化します。

次に、gpgコマンドを使用してファイルを暗号化します。以下のコマンドを実行します。

・「gpg -c file.txt」コマンドを実行します。

 初回の実行時には、~/.gnupgディレクトリに関連ファイルが作成されるメッセージが表示されます。その後、適切なパスフレーズを入力してファイルを暗号化します。暗号化されたファイルは、.gpgという拡張子が付き、元のファイルと同じディレクトリに保存されます。

user01@ubuntu-vm:~$ gpg -c file.txt

3.暗号化したファイルを確認します。

・「ls -l」コマンドを実行します。

user01@ubuntu-vm:~$ ls -l
合計 48
-rw-rw-r-- 1 user01 user01  155  9月  2 23:02 file.txt
-rw-rw-r-- 1 user01 user01  196  9月  2 23:05 file.txt.gpg
-rw------- 1 user01 user01 1475  8月 19 02:13 mbox
drwx------ 4 user01 user01 4096  5月  5 14:52 snap
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 ダウンロード
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 テンプレート
drwxr-xr-x 2 user01 user01 4096  6月 29 01:36 デスクトップ
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 ドキュメント
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 ビデオ
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 ピクチャ
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 ミュージック
drwxr-xr-x 2 user01 user01 4096  1月  1  2024 公開

・「cat file.txt.gpg」コマンドを実行します。

暗号化されていることが確認できます。

user01@ubuntu-vm:~$ cat file.txt.gpg 
�       �&���#�ҳ�u��)��J���D
'���&�l���q�����v)�p����t&"���8�+���ܞZ�(��'���V�z��;�~��V-
                      ��B�~��:V�/�E    
��N,9�����QEy+����&d}P�dŒ��?�
             �s����/q�&hF7�;0l`�4�������q��ѕb�%�
user01@ubuntu-vm:~$

4.rootユーザーに暗号化ファイルを送ります。

暗号化されたファイルを他のユーザーに送信します。

ファイルを/tmpディレクトリにコピーします。次のコマンドを実行します。

・「cp file.txt.gpg /tmp」コマンドを実行します。

user01@ubuntu-vm:~$ cp file.txt.gpg /tmp

rootユーザーに切り替えてファイルをコピーします。次のコマンドを実行します。

  • su -」コマンド
  • cp /tmp/file.txt.gpg .」コマンド
user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~# cp /tmp/file.txt.gpg .

5.暗号化ファイルを共通鍵で復号します。

暗号化されたファイルを復号するには、gpgコマンドを使用します。

次のコマンドを実行します。

・「gpg file.txt.gpg」コマンドを実行します。

暗号化時に使用したパスフレーズを入力し、ファイルを復号します。

root@ubuntu-vm:~# gpg file.txt.gpg
gpg: ディレクトリ'/root/.gnupg'が作成されました
gpg: keybox'/root/.gnupg/pubring.kbx'が作成されました
gpg: *警告*: コマンドが指定されていません。なにを意味しているのか当ててみます ...
gpg: AES256.CFB暗号化済みデータ
gpg: 1 個のパスフレーズで暗号化

6.復号化したファイルの中身を確認します。

・「cat file.txt」コマンドを実行します。

ファイルが復号されていることが確認できます。

root@ubuntu-vm:~# cat file.txt
あいうえお
かきくけこ
さしすせそ
たちつてと
なにぬねの
はひふへほ
まみむめも
やゆよ
らりるれろ
わゐゑを
ん

まとめ

 GnuPGを使用することで、ファイルの暗号化と復号化を簡単に行うことができます。共通鍵を使用した暗号化は、迅速かつ効率的ですが、安全な鍵共有が必要です。gpgコマンドを使用してファイルを暗号化し、他のユーザーと安全にデータを共有する方法を理解することで、セキュリティを強化し、データの保護を実現することができます。