\r\n\r\n

Linuxでgpgを使ってファイルを暗号化・復号化する方法

linuxのgpgコマンドでプライバシーを保護する。世界最高水準の暗号化技術で、あなたの秘密を守りましょう。gpgを使って鍵を扱い、ファイルを暗号化し、復号化する方法を紹介します...

Linuxのgpgコマンドでプライバシーを保護する。世界最高水準の暗号化技術で、あなたの秘密を守りましょう。gpgを使った鍵の扱い方、ファイルの暗号化、復号化の方法を紹介します。

gnuprivacyguard (GPG) は、指定された受信者だけが復号化できるようにファイルを安全に暗号化することができます。具体的には、GPGはOpenPGPという規格に準拠しています。1991年にPhil Zimmermanが作成したPretty Good Privacy(PGP)というプログラムがモデルになっています。

GPGは、一人につき2つの暗号鍵を持つという考え方に依拠しています。各人が秘密鍵と公開鍵を持ち、公開鍵は秘密鍵で暗号化されたものを復号化することができます。

ファイルを安全に送信するには、ファイルを秘密鍵と受信者の公開鍵で暗号化します。ファイルを復号化するには、受信者の秘密鍵とあなたの公開鍵が必要です。

このことから、公開鍵は共有されなければならないことがおわかりいただけると思います。ファイルを暗号化するには受信者の公開鍵が必要で、受信者はファイルを復号化するためにあなたの公開鍵が必要です。公開鍵を公開しても危険はありません。実は、後述するように、まさにこの目的のために公開鍵サーバが存在するのです。秘密鍵は秘密にしておかなければならない。公開鍵がパブリックドメインにある場合、秘密鍵は秘密かつ安全に保たれなければなりません。

GPGのセットアップには、それを使用するよりも多くの手順があります。

鍵の生成

gpgコマンドは、Ubuntu、Fedora、Manjaroなど、チェックしたすべてのLinuxディストリビューションにインストールされています。

メールにGPGを使う必要はありません。ファイルを暗号化してダウンロードできるようにしたり、物理的に受信者に届けたりすることができます。ただし、メールアドレスと生成された鍵の関連付けは必要ですので、使用するメールアドレスを選択してください。

これは鍵を生成するためのコマンドです。full generate keyオプションは、ターミナルウィンドウ内の対話型セッションでキーを生成します。また、パスワードのフレーズを入力するよう促されます。パスワードの語句は必ず覚えておいてください。句読点を含む3つか4つの単純な単語は、パスワードとパスフレーズのための良い、堅牢なモデルです。

gpg --full-generate-key

メニューから暗号化の種類を選択するように指示されますので、特に理由がない限り、1と入力してEnterキーを押してください。

暗号化キーのビット長を選択する必要があります。Enterキーを押して、デフォルト値を受け入れます。

鍵の持続時間を指定する必要があります。システムをテストする場合は、5 日間など短い期間を入力します。キーを保持したい場合は、より長い期間を入力します(例:1y、1年間持続)。鍵の有効期限は12カ月なので、1年後に更新が必要です。Yで選択を確定する。

名前とメールアドレスの入力が必要で、希望すればコメントを追加することもできます。

パスワードを入力する画面が表示されますが、これはキーを使うときに必ず必要なものなので、必ず覚えておいてください。

gpgを使用する際にこのウィンドウが表示されますので、パスワードのフレーズを覚えておくようにしましょう。

キーが生成され、コマンドプロンプトに戻ります。

失効証明書の作成

他人があなたの秘密鍵を知っている場合、新しい鍵を生成するためには、あなたのロゴから古い鍵のリンクを解除する必要があります。そのためには、証明書を失効させる必要があります。今は安全な場所に置くことにします。

出力オプションの後には、作成する証明書のファイル名を指定する必要があります。gpgの --gen revokeオプションは、失効した証明書を生成するようにします。鍵の生成に使用した電子メールアドレスを入力する必要があります。

gpg --output ~/revocation.crt --gen-revoke [email protected]

証明書を生成するかどうかの確認画面が表示されます。Yキーを押しながら、Enterキーを押します。証明書を生成する理由を聞かれます。事前に行っているため、まだ確定ではありません。適当な推測として1を押し、Enterキーを押してください。

必要に応じて、説明を入力することができます。説明を終了するには、Enterキーを2回押します。

設定を確認する画面が表示されますので、Yを押してEnterを押してください。

証明書が生成され、この証明書を保護する必要があることを強調するメッセージが表示されます。

マロリーという人は、上記の通りです。暗号の議論では、通信する2人としてボブとアリスを使ってきました。他にも脇役はいるんですよ。Eveは盗聴者、Malloryは悪意のある攻撃者である。必要なのは、クレデンシャルを確保することだ。

少なくとも、私たちのもの以外の証明書の権限をすべて削除してみましょう。

chmod 600 ~/revocation.crt

lsを確認して、パーミッションが今どうなっているか見てみましょう。

ls -l

ファイルの所有者以外は、証明書に対して何もすることができません。

他人の公開鍵をインポートする

他人が復号できるメッセージを暗号化するには、その人の公開鍵が必要です。

それらのキーがファイル中に提供されている場合、以下のコマンドでインポートすることができます。この例では、キーファイルの名前は "mary"-geek-key です。"

gpg --import mary-geek.key

キーがインポートされ、キーに関連する名前と電子メールアドレスが表示されます。明らかに、これはあなたがキーを受け取った人と一致するはずです。

鍵が必要な相手も、公開鍵サーバに鍵をアップロードしている可能性があります。これらのサーバーには、世界中の人々の公開鍵が保管されています。鍵サーバは定期的に同期され、鍵は普遍的に利用可能である。

MITの公開鍵サーバは一般的な鍵サーバであり、定期的に同期がとられているので、そこで検索すると成功するはずです。誰かが最近キーをアップロードしたばかりの場合、表示されるまでに数日かかることがあります。

--keyserverオプションの後には、検索対象となる鍵サーバーの名前を指定する必要があります。--search keysオプションの後には、検索したい人の名前か、その人の電子メールアドレスを入力する必要があります。メールアドレスを利用させていただきます。

gpg --keyserver pgp.mit.edu --search-keys [email protected]

一致するものをリストアップし、番号を表示します。インポートする場合は、番号を入力し、Enterキーを押してください。この例では、一致するのは1つだけなので、「1」と入力し、Enterキーを押します。

鍵がインポートされ、鍵に関連する名前とメールアドレスが表示されます。

認証キーと署名キー

知人から公開鍵ファイルを渡されたら、その人のものだと言って差し支えないでしょう。公開鍵サーバからダウンロードした場合、その鍵がその鍵のユーザのものであることを確認する必要性を感じるかもしれません。

-fingerprintオプションは、gpgが4つの16進数文字からなる10のグループからなる短いシーケンスを作成するようにします。鍵の指紋を送ってもらってもかまいません。

その後、-fingerprintオプションで16進数で同一のフィンガープリントのシーケンスを生成し、それらを比較することができます。一致すれば、その鍵がその人のものであることがわかります。

gpg --fingerprint [email protected]

指紋を生成する。

鍵が本物で、その鍵に関連付けるべき人のものであることが確信できたら、その鍵に署名することができます。

そうでなくても、その人からのメッセージやその人へのメッセージの暗号化・復号化に使用することができます。しかし、gpgは鍵が署名されていないため、続けるかどうか毎回聞いてきます。適切な名前の --sign key オプションを使い、gpg が署名するための鍵を知っているように、その人の電子メールアドレスを提供します。

gpg --sign-key [email protected]

鍵や人物に関する情報が表示され、本当に鍵に署名するかどうか確認されます。Yキーを押しながらEnterキーを押すと、キーに署名します。

公開鍵の共有方法

鍵をファイルとして共有するには、gpgのローカルキーストアから鍵をエクスポートする必要があります。そのためには、--exportオプションを使用します。このオプションの後には、鍵を生成するために使用した電子メールアドレスを付ける必要があります。出力オプションの後には、キーをエクスポートするファイル名を指定する必要があります。armorオプションは、バイナリファイルの代わりにASCIIのarmor出力を生成するようgpgに指示します。

gpg --output ~/dave-geek.key --armor --export [email protected]

キーファイルを安価に閲覧することができます。

less dave-geek.key

キーは、その栄光の姿を現します。

公開鍵は、公開鍵サーバで共有することも可能です。send keysオプションは、鍵を鍵サーバに送信します。 --keyserverオプションの後に、公開鍵サーバのURLを記述する必要があります。送信する鍵を特定するために、鍵の指紋をコマンドラインから提供する必要があります。なお、4つの文字セットの間にスペースはありません。

(鍵の指紋を見るには --fingerprint オプションを使います)。

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

キーが送信されたことを確認するメッセージが表示されます。

暗号化されたドキュメント

最終的にファイルを暗号化してMaryに送ることができます。ファイル名はcrow.txtです。

encryptオプションはファイルを暗号化することを指示し、--signオプションはあなたの情報を使ってファイルに署名をすることを指示します。armorオプションは、gpgにASCIIファイルを作成するように指示します。r(受信者)オプションの後には、ファイルを送信する相手の電子メールアドレスを入力する必要があります。

gpg --encrypt --sign --armor -r [email protected]

元のファイルと同じ名前で、ファイル名に".asc "を付けたファイルを作成します。

less Raven.txt.asc

このファイルは完全に判読不能で、あなたの公開鍵とMaryの秘密鍵を持っている人にしか解読できません。

これで、誰にも解読されないと確信して、このファイルをメアリーに送ることができる。

ドキュメントの復号化

メアリーが返事を書いてくれました。encoded.ascというファイルに入っているので、-decryptオプションで簡単に復号化できる。その出力をplain.txtという別のファイルにリダイレクトすることにします。

なお、gpgファイルが誰から来たものかは、暗号化されたファイルの内容から答えることができます。

gpg --decrypt coded.asc > plain.txt

プレーンな.txtファイルを見てみましょう。

less plain.txt

ファイルの復号化に成功しました。

キーをリフレッシュする

定期的にgpgに依頼して、保持している鍵を公開鍵サーバと照合し、変更された鍵があれば更新することができます。数ヶ月に一度、または新しい連絡先からキーを受け取ったときに行うことができます。

Refresh keysオプションは、gpgがチェックを行うようにします。--keyserverオプションの後には、任意のキーサーバーを指定する必要があります。公開鍵サーバ間で鍵の同期がとれれば、どれを選んでも問題ない。

gpg --keyserver pgp.mit.edu --refresh-keys

gpg はチェックした鍵の一覧を表示し、変更された鍵や更新された鍵があるかどうかを教えてくれます。

プライバシーが注目される

最近、プライバシーに関するニュースが後を絶ちません。あなたの情報を安全かつプライベートに保ちたいと思う理由が何であれ、gpgはあなたのファイルや通信に信じられないほど強力な暗号化を適用する簡単な方法を提供します。

gpgを使う方法は他にもあります。 EnigmailというThunderbirdのプラグインを入手することができます。gpg の設定に直接フックし、Thunderbird 内からメールを暗号化することができます。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ