web-dev-qa-db-ja.com

個人のプライベートGPGキーはどこに保存しますか?

それで、私は pass の使用を開始したいのですが、これにはGPGキーが必要です。このアプリケーションはすべてのパスワードを保存します。つまり、生成された秘密キーを紛失しないことが重要です

ハードディスクが壊れ、クラウドプロバイダーは一般的に信頼されていません。私が彼らに私の鍵を乱用しないことを信頼しないというわけではありませんが、彼らのセキュリティは危険にさらされる可能性があり、すべての私のパスワードが見つかる可能性があります。

では、GPG秘密鍵はどこに安全に保管できますか?

199

私は私のものを紙に保管するのが好きです。

JavaScript(読み取り:オフライン) QRコード ジェネレーターを使用して、秘密鍵のイメージをASCII装甲フォームで作成し、これを印刷します。キーIDをメモして、物理的に安全な場所に保管します。

JavaScriptをサポートするブラウザーを使用している限り、使用するオペレーティングシステムに関係なく機能するものを次に示します。

Windowsユーザーの場合:

JavaScript QRコードジェネレーターをダウンロードするには、ここをクリックしてください: https://github.com/davidshimjs/qrcodejs/archive/04f46c6a0708418cb7b96fc563eacae0fbf77674.Zip

どこかにファイルを抽出してから、以下の手順に従ってindex.htmlを編集してください。

MacOSまたはUnixユーザーの場合:

$ # This specific version is to avoid the risk that if someone hijacks `davidshimjs`'s 
$ # repository (or he goes rogue), you will still be using the version that I vetted.
$ # For the truly paranoid you don't trust GitHub either, and you will want to verify the code you download yourself.
$ wget https://github.com/davidshimjs/qrcodejs/archive/04f46c6a0708418cb7b96fc563eacae0fbf77674.Zip
$ unzip qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674.Zip
$ cd qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674/
$ # We need to edit index.html so that it supports pasting your PGP key
$ # Open the file in a text editor like Notepad, vi, or nano
$ vi index.html

11行目を次のように変更します。

<input id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /><br />

に:

<textarea id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /></textarea><br />

ここで、Explorer、Finder、またはNautilusなどを使用して、ここに取得したディレクトリに移動します。

例えば:

$ pwd
/Users/george/Documents/Code/qrcodejs/qrcodejs-04f46c6a0708418cb7b96fc563eacae0fbf77674
$ open .

Viewing the directory in Finder

次に、編集して保存したindex.htmlファイルをダブルクリックします。

QR code being generated

後で簡単にスキャンできる素敵な大きなQRコードを作成するには、ほとんどの場合、PGPキーを4分の1以下に分割する必要があります。テキスト領域に貼り付けた後、テキストボックス以外の場所をクリックすると、QRコードが表示されます。あなたが行くときにそれぞれを保存し、それらに適切な名前を付けて、それらの順序がわかるようにしてください!

すべてのコードを作成したら、たとえば、携帯電話のQRコードスキャナーアプリでコードをスキャンします。パラノイアについては、バーコードリーダーをインストールした後は、このデバイスをオフラインのままにし、デバイスをオンラインに戻す前に、デバイスのフルワイプと出荷時設定へのリセットを実行してください。これにより、QRスキャナーアプリがPGPキーを漏洩するのを防ぎます。


大きなキーまたは多数のキーがある場合は、 paperbak をお勧めしますが、後でデータを回復する方法の説明を必ず書き留めてください。バックアップと同じくらい重要なのは、バックアップから復元する方法です。ダミーデータを使用してこれがどのように機能するかを正確に理解するために、私はおそらくこれを試します。

注目に値するcan秘密鍵をパスフレーズで保護するため、クラウドプロバイダーでホストされていても、秘密鍵を見ることができません。すべてのパスワードセキュリティは、完全な秘密キーではなく、そのパスフレーズにまで低下します。クラウドプロバイダーは一晩で消えることは言うまでもありません。

164
deed02392

私のパラノイアが完熟トマトのようである日に、私にそれを選ぶように頼み、私は秘密鍵(当然それはすでにパスフレーズで保護されています)を半分に分割し、それらをXORすることで3番目の文字列を作成します。次に、各文字列に単純なパスワード暗号化(gpg --symmetric)を使用し、それぞれを別の大陸のリモートサーバーに配置します。理想的には、各リモートサーバーは異なるISPまたはクラウドプロバイダーを使用しています。

しかし、薬が効いていたとき-少なくとも私がNSAがいかに野心的であるかを理解するまで-私が過去に実際に行ったことは、単に(全体の)秘密鍵を暗号化しただけです(再びgpg --symmetric)を使用してスマートフォンに配置します。

さて、他の答えを読んで、私は3つの家族写真に埋め込まれた3つのQRコードのアイデアを見つけました。より強い薬の時間ですか?

55
Darren Cook

これは私が現在使用しているものではありませんが、私はそれについて考えています:

  1. 非常に長い対称暗号鍵で秘密鍵を暗号化する
  2. Shamir's Secret Sharing を使用して対称暗号化キーを(Voldemortのように)7個に分割し、正常にマージするには少なくとも5つの共有が必要です。
  3. どこに置くかを考え出す 7つの秘密のバックアップ 、いくつかのアイデア:
    • 自宅の金庫のメディアカード
    • 私の財布に印刷された紙
    • dropbox
    • 海外金庫
    • 皮膚インプラント
    • ランダムな男の墓に埋葬された
    • tattoed to poisonous pet snake

このようにして、私はいくつかの共有にアクセスできなくても、キーにアクセスできます。一方、攻撃者は、私が簡単にアクセスできるが、家の前にあるその黒い車の邪悪なダークロードヘンチマンにとっては難しい、5か所の個別に安全な場所を妥協する必要があります。

28
Lie Ryan

1つのオプションは、パスフレーズを使用してキーを暗号化し、暗号化されたキーをクラウドサービスに保存することです。

ラップトップ(ハードウェア暗号化ドライブ)と外部ハードドライブのTruecryptコンテナーにバックアップとしてキーがあります。 OK、データ損失のリスクはゼロではありませんが、私が許容できるレベルまで下がっています。

17
paj28

秘密鍵をフラッシュドライブに保管し、このドライブをロッカーに保管できます。また、一部のマルウェアに感染させる可能性のあるアクティビティには、このフラッシュドライブを使用しないでください。

15
Jor-el

キー(およびユーザー名/パスワードリストのような他の機密データ)を truecrypt コンテナで暗号化します。このコンテナは大規模なパスフレーズによって保護されています。コンテナーはクラウドストレージにもバックアップされるため、私のコンピューターによる編集は同期されます。

完璧ではありませんが、クラウドプロバイダーが停止した場合でも、コンピューター上で同期されます。ファイル自体が侵害された場合、truecyrpt句のキーパスフレーズを解読する必要があります。

6

ステガノグラフィーを使用して、たとえば、いくつかのクラウドストレージ(box、dropbox、ovh)にアップロードする一連の100枚の写真に暗号化されたキーを配置します。
まず、それらの画像に何かがあることを知り、何を見つけてそれを復号化する必要があります。
それは少し極端ですが、紙よりも火に強く耐性があります。

4
Kiwy

2つのキーがあります。1つは安全性が低く、もう1つは OpenPGPカード に保存されています。後者は、秘密鍵neverがチップをカードに残さないため、可能な限り安全です。 (ただし、数年前は、最高のセキュリティのために、カードのPINをPCのキーボードから取得するのではなく、キーロガー攻撃を受けやすい可能性があるため、gpgを少し変更してカードリーダーの安全なキーパッドを使用する必要がありました。)

4
JimmyB

非常に長期にわたる最後の手段としてのバックアップを紙に書いておくというアイデアは本当に気に入っています。 (安全な場所にある暗号化されたアーカイブCDと一緒に)秘密鍵の全長をサポートするQRジェネレーターが見つからず、AES鍵の生成を修正するまで、paperbakを信頼しません(さらに、 Windowsのみである必要があります)。

私は optar を見つけました。これは、任意の長さのデータを機械可読形式にエンコードしますが、今のところ、Cから手動でコンパイルする必要があります。 [Mac人のためにHomebrewに何かを置くのは難しくありません。サマリタンがうまく機能することが証明されれば、おそらくWindowsビルドを維持できます。]

paperkey は、印刷/ OCRを使用して秘密鍵を復元し、バーコード/ QRコードジェネレーターに最小限の文字を作成するのに適しています。

3
Duke

私はKeePassXで暗号化されたファイルに自分のファイルを保存します。このファイルは、パスワードを使用する必要があるすべてのマシンで複製するgitリポジトリに保存されます。追加の利点は、何らかの理由でサーバーがファイルを破壊した場合でも、クローンされたリポジトリのいずれかを常に使用できる一方で、パスワードの同期を維持できることです。私が偏執的である場合、KeePassX暗号化ファイルを含むtruecryptボリュームを置くことができます。

Gitはバージョン管理も提供するので、いつでも以前のバージョンのパスワードファイルに戻すことができます。

3
dendini

以下をせよ:

  1. RCの2つの数字を選択します。
  2. 秘密鍵の行Rと列Cに移動し、そこにある文字Xを記憶します。
  3. その文字を他のランダムな値に変更します。
  4. 変更した秘密鍵を複数のクラウドサービス(地理的に異なる場所)に安全に保存します。

そこに格納されているキーは、RC、およびXがないと役に立ちません(もちろん、トリックを知っていれば)。 RC、およびXを見つける時間がある場合は、まあ...私のパスワードを推測できるように頑張ってください。

また、RCXを記憶することは、変更を導入する側の観点からは非常に簡単です。

ヒント:文字列の最初または最後では行わないでください。そこでは従うべきパターンがあり、変化を推測するのは非常に簡単です。

0

覚えてみてください...

人間がgzipのようなアルゴリズムを使用して圧縮して記憶することは可能かもしれません。あなたは曲にエンコードしてそれを覚えることができます、

0
0xcaff

秘密鍵はすでに暗号化されています。ただし、対称的に暗号化しても問題はありません。その後は、物理的なセキュリティについて心配する必要があります。メディアの耐久性とオフサイトでの安全性が主な考慮事項です。 USBポートが使用可能である限り、USBキーは少なくとも10年間は​​問題ありません。キーを安全な場所に置きます。セーフティボックスまたは安全なオフサイトが良い可能性です。これにより、使用中のシステムが回復不能な方法で中断した場合の回復が可能になります。 USBスティックのラベルと日付を記入します。鍵の失効証明書の暗号化されたコピーも一緒に保存する必要があります。 USBスティックの障害が心配な場合は、複製をいくつか作成してください。

0
Rick

免責事項:私が書いているコードの一部/あなた自身の「小さな」ソリューションを示しています

この種の問題を解決するために(そしてより一般的には紙に重要で中程度のサイズのものを「アーカイブ」)私はqrdumpに取り組んでいます。これは自動的に

  • 1)データをQRコードに収まるほど小さい部分に分割する
  • 2)一連のQRコードにダンプする
  • 3)事前定義されたレイアウトでqrコードをPDFにアセンブルします。

もちろん、逆変換も実装されています。

例えば:

bash-4.4$ FOLDER_TESTS=$(mktemp -d)
bash-4.4$ cd $FOLDER_TESTS/
bash-4.4$ head -c 4096 </dev/urandom > dummy.dat # create a random file, 4096 bytes
bash-4.4$ sha256sum dummy.dat 
02f2c6dd472f43e9187043271257c1bf87a2f43b771d843e45b201892d9e7b84  dummy.dat
bash-4.4$ bash ~/Desktop/Git/qrdump/src/qrdump.sh --create-A4 --base64 --safe-mode --output ./pdf_dump.pdf --input dummy.dat # crete a printable qr-codes pdf of the file
SAFE to use: success restoring check
bash-4.4$ rm dummy.dat # the file is removed, so from now on only way to get it back is to restore from the pdf
bash-4.4$ bash ~/Desktop/Git/qrdump/src/qrdump.sh --base64 --read-A4 --input pdf_dump.pdf --output ./ # restore
bash-4.4$ sha256sum dummy.dat # the digest should be the same as the initial one to confirm good restore
02f2c6dd472f43e9187043271257c1bf87a2f43b771d843e45b201892d9e7b84  dummy.dat

興味がある場合は、こちらをご覧ください:

https://github.com/jerabaul29/qrdump

0
Zorglub29