.gpgファイルを開くときにのみパスワードを入力する方法


17

(私は以下のセキュリティへの影響を理解しており、それらには問題ありません。)

orgディレクトリに暗号化されたファイルが1つありますdiary.org.gpg。動作するように特別な設定をしたことはありませんが、

  1. ファイルにアクセスするたびに、暗号化パスワードの入力を求められます。それは素晴らしいです。
  2. バッファーを保存するたびに、もう一度パスワードの入力を求められます。それが私の問題です。

これが機能するように何も設定していないことに注意してください。そのため、エージェントまたはキーリングに関する回答には設定手順が必要です。

パスワードをファイル内のどこかに(ヘッダーまたはファイルの終わりのコメントで)書き続けることを考えました。そうすれば、保存するたびに、Emacsはバッファー内のパスワードを読み取り、プロンプトを表示する代わりにそれを使用できます。しかし、私がこれを調べ始めたとき、私は内部のどこかに完全に迷子になりましたepa.el

Q:バッファーを保存するときに、プロンプトが表示される代わりに、Emacsから暗号化システム/プロセスに直接パスワードを送信するにはどうすればよいですか?

残りのすべて(バッファー内のパスワードの検索)私は自分自身を把握できます。Emacsがgpgとどのようにインターフェースを取っているのかを理解しようとすると、迷子になりました。

Ubuntu、Arch Linux、およびWindowsを使用していることに注意してください。これが、私の最初のアイデアがemacs中心のソリューションであった理由です。
手動でそのファイルにアクセスできる限り、Windowsで動作しないソリューションを使用できます。


これを考えます:orgmode.org/worg/org-tutorials/encrypting-files.html#sec-5はあなたが望むもの(gpg-agent)です。
wvxvw

@wvxvwたぶん。保存については何も言わないので、試してみる必要があります。
マラバルバ

正直に言うと、GPGおよび関連するプログラムのユーザーインターフェイスは著しく悪いです。インターフェイスやドキュメントから何をするのか理解するのは本当に難しいです。しかし、私の目的の理解gpg-agentは、それssh-agentをアクティブにすると、持っているパスワードを単に保存することに似ているということです。そのため、ファイルを開いたり保存したりするときに(エージェントがパスワードを記憶している限り)パスワードの入力を求められることはありませんが、これはパスフレーズにまで拡張されるとは思いません。 、 真であれば。
wvxvw

おそらくgpg-agent、キーをしばらくキャッシュするように正しくセットアップしたいでしょうか?:)
ギュンターノアック

1
@wvxvwおそらくそうだったのでしょうか?ツールのマニュアルページはかなり詳細であり、(CLI)インターフェイスは端末ベースのプログラムに通常期待されるものであることがわかりました。
legends2k

回答:


12

パスワード+キーを使用した暗号化

これはパスワードをファイルに直接保存しませんが、セキュリティリスクなしで同様のことを行い、目的を達成するのに役立ちます。

  • パスワードがキーリング内のメールIDに関連付けられるように、非対称暗号化を使用する必要があります。

  • 以下を.gpgファイルの上部に保存します

-*- epa-file-encrypt-to: ("your@email.address") -*-

パスワードは、ファイルが最初に保存/作成されるときにプロンプ​​トが表示されます。ただし、その後、保存されたファイルを開くたびにパスワードが一度だけ要求されます

唯一の問題は、~/.gnupg/デフォルトで保存されているキーリングファイルを失わないことです。

GPGセットアップ

Emacsのセットアップ

emacsでこれを設定する必要はありません。

システム設定

ただし、GPG機能を機能させるには、いくつかのライブラリを備えたシステム環境を用意する必要があります。

これを設定するときに、次のものをインストールする必要がありました。

  • gpgme-1.5.3
  • libgpg-error-1.17
  • libksba-1.3.2
  • libassuan-2.2.0
  • libgcrypt-1.6.2
  • gnupg-2.0.26
  • pinentry-0.9.0

上記のライブラリの1つまたは2つが必要でしたが、他のライブラリは必須またはオプションの依存関係であったため、最終的にインストールしました。

すべてがインストールされたら、

> gpg --gen-key

そして、自分用の無期限のキーを生成し、それを実際の名前とメールに関連付けます。

生成されたキーは~/.gnupg/ディレクトリに保存されます。

キーリングの場所を変更する

キーリングの場所を変更するには$GNUPGHOME、を使用するか、--homedirまたはの--keyringオプションを使用しますgpg

からman gpg

--keyring file

キーリングの現在のリストにファイルを追加します。ファイルがチルダとスラッシュで始まる場合、これらは$ HOMEディレクトリに置き換えられます。ファイル名にスラッシュが含まれていない場合、GnuPGホームディレクトリにあると見なされます(--homedirまたは$ GNUPGHOMEが使用されていない場合は「〜/ .gnupg」)。

これにより、現在のリストにキーリングが追加されることに注意してください。指定したキーリングのみを使用する場合は、-keyringと--no-default-keyringを使用します。

emacsでGPGを使用する

emacsでは、単に.gpg拡張子を持つファイルを作成します。たとえば、ファイルが元々あった場合、auth.el名前をに変更しauth.el.gpgます。

この行をファイルの先頭に配置します。

;; -*- epa-file-encrypt-to: ("your@email.address") -*-

;;ここではサンプルファイルとしてelispコメント文字を使用していることに注意してくださいauth.el.gpg

鍵生成時に使用した正確なメールアドレスを使用してください。

保存しようとすると、emacsはこのプロンプトをバッファーに表示します。

Select recipients for encryption.
If no one is selected, symmetric encryption will be performed.  
- `m' to mark a key on the line
- `u' to unmark a key on the line
[Cancel][OK]

  u <GPG KEY> <YOUR NAME> (<YOUR GPG KEY NAME>) <<YOUR GPG KEY EMAIL>>

キーを含む行にポイントを移動し、を押しますm

ポイントを[OK]ボタンに移動してを押します<return>

これで、ファイルを保存して、そのファイルバッファーを強制終了できます。

次回、その.gpgファイルを開くと、パスワードの入力が1回だけ求められ、その後連続してパスワードを入力する必要がなくなります。

より詳しい情報

  • 以下は、emacsとGPGのセットアップについて説明しているブログ投稿の1つです。これも参照できます。
  • EasyPG-emacswiki.org

キーリングファイルを紛失しても、通常のパスワードで暗号化されたファイルを開くことができますか、それとも永久に失われますか?
マラバルバ

@Malabarba試したことはありませんが、永遠に失われたと思います。ただし、電子メールとパスワードをキーリング要素に関連付けると、そのファイルは一度しか生成されないのが良い点です。それ以降、キーリング要素を追加するまで(パスワードとメールのペアを追加するまで)変更されません。そのファイルのバックアップをUSBキーとDropboxに保存し、パスワードが非常に安全であることを確認します。
カウシャルモディ

対称的に暗号化されたドキュメントが移植可能であることをテストしました。Linuxのemacsで何かを暗号化し、Windowsで利用できる無料のGPG解読ツールの1つを使用してそれを開きました。それはキーリングを要求し、Dropboxでの私のバックアップを指し示し、それが機能した。
カウシャルモディ

念のため:キーファイルを失うと、暗号化されたファイルへのアクセスも永久に失われます。暗号化を解除するには、パスワードと秘密キーファイルの両方が必要です。これは、非対称暗号化のGPGセキュリティモデルの一部です。
タイラー

結局のところ、この答えに行かなければならないようです。キーリングファイルの場所を変更する方法を知っていますか?
マラバルバ

9

私がしなければならなかったことはすべてでした

(setq epa-file-cache-passphrase-for-symmetric-encryption t)

このソリューションは、LinuxとWindowsの両方で機能し、help-gnu-emacsのTedとMichaelの厚意により提供されています。


これがあなたのために働くことを知っているのは良いことです!Emacsの設定でこの設定を何年も使用していましたが、ある時点で機能しなくなりました。私はgnome-keyring-daemon(これはgpgキーリングとしても機能します)の使用に関係していると思われます。
パプリカ

4
docstringからepa-file-cache-passphrase-for-symmetric-encryption:「GnuPG 2.0を使用する場合、このオプションは効果がないことに注意してください。」
ウィルフレッドヒューズ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.