Closed14

学習記録#38 250724

ろみぃ(konatsu)ろみぃ(konatsu)

ファイルを暗号化したいとき、LinuxではGnuPG(GNU Privacy Guard)が利用できる

GnuPGは公開鍵暗号を使って、ファイルの暗号化、復号、電子署名などができるオープンソースソフトウェア

ろみぃ(konatsu)ろみぃ(konatsu)

gpgコマンドを使って、GnuPGを使用する

最初に公開鍵と秘密鍵の鍵ペアを作る必要がある

$ gpg --gen-key

これで~/.gnupgというディレクトリが作成され、その中に公開鍵のキーリングと秘密鍵のキーリングが作成される。
公開鍵のキーリング:pubring.gpg
秘密鍵のキーリング:secring.gpg

ろみぃ(konatsu)ろみぃ(konatsu)

鍵には失効証明書が必要。これは、パスフレーズが漏れたり忘れた場合に鍵を無効化するために使う

失効証明書を作成する書式は以下

gpg -o 失効証明書ファイル名 --gen-revoke メアド

これを安全な場所に保存しておく。

鍵を無効化したときは以下のように使う

$ gpg --import revoke.asc
ろみぃ(konatsu)ろみぃ(konatsu)

gpgコマンドを使った暗号化の中で最も簡単なのは、共通鍵を使う方法
書式は

gpg -c ファイル名
ろみぃ(konatsu)ろみぃ(konatsu)

例)
secret.txtファイルを暗号化する

$ gpg -c secret.txt ←暗号化。secret.txt.gpgが作成される
$ gpg secret.txt.gpg ←secret.txt.gpgを複合する。指定したパスフレーズを入力する
ろみぃ(konatsu)ろみぃ(konatsu)

公開鍵暗号では、公開鍵と秘密鍵とをペアで使う

公開鍵を使って暗号化したものは、ペアとなる秘密鍵でのみ複合できる

ろみぃ(konatsu)ろみぃ(konatsu)

暗号化されたデータを受け取る側は、通信相手に公開鍵を送るため、公開鍵をファイルにエクスポートする

gpg -o 出力ファイル名 -a --export 自分のメアド

これで公開鍵がpubkeyファイルにエクスポートされる。このファイルを通信相手に送る

ろみぃ(konatsu)ろみぃ(konatsu)

暗号化ファイルの送り先(=通信相手)から公開鍵を受け取ったら、それをインポートする

$ gpg --import pubkey

受け取った公開鍵が信頼できるなら、鍵に署名を行う
署名を行わないと、「信頼できない」とみなされ毎回警告が表示される

ろみぃ(konatsu)ろみぃ(konatsu)

受け取った公開鍵を使って、秘密鍵の持ち主だけが複合できるようにする

例)
linuxuser@example.comのみが複合できるような設定で、ファイルimportant.txtを暗号化

書式

gpg -e -a -r 送り先のメアド 暗号化するファイル名

これで、important.txt.ascが作成される

ろみぃ(konatsu)ろみぃ(konatsu)

ファイルに署名することで、そのファイルの作成者が本人か、ファイルの内容が改善されてないかが確認できる

ファイルに署名する際は、--signオプションを使う。-oオプションで署名ファイルを指定する

$ gpg -o secret.txt.sig --sign secret.txt
このスクラップは2ヶ月前にクローズされました