GPG秘密鍵をどのように安全にバックアップしますか?


25

passという非常に興味深いCLIパスワードマネージャーを見つけました。これを使用するには、GPG2キーペアを生成し、ツールを使用してgpg2暗号化ファイルにパスワードを保存します。

ファイルを暗号化(新しいパスワードを追加)するために、公開キーを使用します。

ファイルを復号化する(保存されたパスワードを取得する)ために、パスワードが必要な秘密鍵を使用します。

これはうまく機能します。

ツールがすべてのパスワードを保存しているので、コンピューターがクラッシュした場合にすべてのオンラインアカウントからロックアウトされないように、このすべてのデータをバックアップします。

このツールはgitとうまく統合されているため、別のコンピューター上のプライベートgitリポジトリに.gpgファイルを簡単にプッシュできました。私が理解していることから、これらのファイルはそれらを解読するための秘密鍵がなければ役に立たない。

私の質問はこれです。秘密鍵と公開鍵を安全な方法でバックアップし、必要に応じて別のマシンで「データベース」を復元するにはどうすればよいですか?gitリポジトリに公開キーと秘密キーの両方を保存し、後で別のマシンにインポートすることはできますか?または、プライベートなローカルgitリポジトリにプライベートキーを保存することは安全でないと考えられていますか?gitリポジトリにアクセスするにはパスワードが必要です。秘密鍵は暗号化されており、開くためにパスワードが必要です-それは安全に保管できますか?

回答:


10

PGP秘密鍵をリビジョン管理システムに保存すること自体は、重大なセキュリティ問題を引き起こしません。秘密鍵をローカルの非公開(非公開) gitリポジトリに保存することは、同じコンピュータ上でgitリポジトリの外部に秘密鍵を保存することと比べて、セキュリティに大きな影響はありません。

私が考えることができる唯一の問題は、バージョン管理された方法で秘密キーを保存することから来ます。古いリビジョンを何らかの方法で破棄できない限り、キーパスフレーズの変更は通常よりもはるかに少ない保護を購入することです。

独自のセキュリティへの影響は、他の誰かがキーファイルにアクセスできるように秘密キー保存することです。このような状況では、攻撃者とキーの間にあるのは、パスフレーズの強さだけです。

ストレージのセキュリティは完璧ではないことを認識しており、人々が定期的にクラウドサービス(文字通り「誰かのコンピューター」を意味する)にバックアップする現代の環境では、私たちは通常、秘密鍵をパスフレーズで保護しています。gpg-agentなどを実行している場合でも、同じことをしていると信じています。

一番下の行は、それであるにも比較的安全であるべき誰か他の人のコンピュータ上の暗号化キーファイルのコピーを保存する限り、パスフレーズが良いよう。

しかし、それは非常に大きなものです。ほとんどの人のパスワードまたはパスフレーズは、それらを解読するコンピューター化された試みに関する限り、かなりひどいものです。GnuPGは与えられたものと同じように機能するようにかなりの努力をしますが、確実なデータ保護のために、適切なパスフレーズ必要であり、秘密キーをgitリポジトリインポートするに設定する必要があります。キーがインポートされた後、攻撃者は原則としてそのバージョンを攻撃する可能性があり、特定のリビジョンが低品質のパスフレーズを持っていると信じる理由がある場合はその可能性が高くなります。そのため、パスフレーズは慎重に選んでください。パスワードの処理方法に関する簡単な入門書を作成しました。覚えておく必要があるパスワードまたはパスフレーズの選択方法に関する提案


6

最近、同様の設定を検討しています。あなたの質問に取り組む前に、私がそれについて私を悩ますことを指摘させてください。これはここで非常に詳細に説明されます。要するに、PassがGPGを呼び出すと、内部で不要な非対称(RSA / EC)暗号化を実行します。不要 -ここには信頼できない当事者がいないため。

非対称暗号は対称暗号よりも将来性が低いため、これは面倒です。例えば、今日の非対称暗号は、まだ存在しない十分に大きな量子コンピューターによって破壊されています。より一般的には、非対称暗号は、解決方法がわからない「数学の問題」に依存しており、対称暗号よりもはるかに重要です。

この弱点を緩和するためにできることは、たとえば(潜在的な)量子攻撃がこの公開鍵を必要とするため、GPG公開鍵をPassで使用することですこちらを参照してください

実際の質問では、gitリポジトリ(パスワード付き)をパブリックに保存するかプライベートに保存するかは不明です。プライベートに保ちたい場合は、ほぼ何でもできます。GPGプライベートキーのセキュリティを、レポジトリをバックアップするメディアのセキュリティに下げることができます。ただし、それは鶏と卵の問題になる可能性があります。レポジトリがプライベートの場合、クラッシュした場合にどのように戻すのですか?言い換えると、「悪いクラッシュ」の場合、最初に取得するものが必要です。そのため、gitリポジトリを非公開にしたい場合がありますが、最初に取得できる方法でGPGキーをバックアップします。

オフラインバックアップソリューションは多数あります。弁護士、地下室などはこちらをご覧ください。しかし、地下室は万人向けではないので、オンラインソリューションを提案させてください。

  • 長年入力することを意図していない、非常に強力なパスフレーズを作成します。提案:個人的に重要なフレーズ、または検索する必要がある場合にコピーが尽きることのない本の、記憶に残る長いスペルミス。

  • エクスポートされたGPG秘密鍵と、おそらくSSH資格情報を使用してtarballを作成します。

  • パスフレーズで対称的に暗号化します:gpg --symmetric --armor

  • 無料のgitホスティングアカウントを作成します。

  • 資格情報なしで複製できるパブリックリポジトリを作成します。

  • そこに暗号化された装甲タールボールを入れます。

「悪いクラッシュ」の後にそれを取得するには:

  • ライブUSBスティックを起動します。

  • パブリックリポジトリを複製します。

  • gpg --decrypt

対称パスフレーズは、ゾンビに対する主な保護になります。パスフレーズの選択に関して、人々はあなたや匿名の読者に疑いの恩恵を与えないことがあります。しかし、パスフレーズが適切であれば、対称暗号は堅固でなければなりません。

GPG秘密鍵をエクスポートすると、独自のパスフレーズで暗号化されます。GPGの最近のバージョンでは、暗号化されていないエクスポートは許可されません。ここで「通常の」GPGパスフレーズを使用できます。クラッシュが発生した場合、GPG秘密鍵に到達するには両方のパスフレーズが必要になることに注意してください。


4

私が使用する別のオプションは次のとおりです。キーを紙に印刷します

詳細はリンクされた回答にあります。大きな利点は、必要な場所に簡単に保存できることと、見ただけでまだ良い形であるかどうかを確認できることです。しかし、最大の利点は、バックアップを保存してそれを取得する場所に実際にいることなく、誰もハッキングできないことです。


私の知る限り、この場合、紙はリムーバブルメディアに勝る利点はありません。また、キーを回復する必要がある場合、キーの意味不明な文字をすべて入力する必要があるという欠点もあります。
MAP

利点は、はるかに耐久性があり、コンピューターがなくても自分の目でそれがまだ読めるかどうかを確認できることです。使用できないすべてのフロッピーディスク、CD、またはDVDに1ドルがあれば、今では回復不可能なデータエラーが発生しているので、そのお金で休日を過ごすことができます。何も入力する必要はありません!PaperBackは、エラー修正を追加した2Dコードとして印刷します。スキャンするか写真を撮るだけで、プログラムはそれを前に印刷するために与えたものに戻します。
ジョセフは、モニカを復活させる

もちろん、それを行うための技術がまだあると仮定します。
MAP

まあ、20年以内にそのオープンソースソフトウェアのコピーでWineを備えたWindows VMまたはLinuxを簡単に入手できる可能性は、ハードウェアにフロッピーディスク/ CDを読み取らせる可能性よりもはるかに高いと思います。 / DVD。私が1990年にそれをしたと仮定してください。今では、ブラウザでソフトウェアを実行することさえできます。しかし、現代のPCで5 1/4インチのフロッピーを読むことができるハードウェアを手に入れようとして頑張ってください。
ジョセフは、モニカを復活させる

2

これに対する別の答えは「オフライン」です。つまり、安全でコンピューターに接続されていない場所に保存します。すべてのキーの完全な暗号化されていないコピーをフロッピーディスクに保管します(私は長い間この方法で行ってきましたが、今では習慣になっています)。銀行のメディアでそれらを暗号化しないでおく理由は、キーを「失う」ための潜在的なシナリオの1つはパスフレーズを忘れることです使用できません)。私はそのコピーからそれを取り戻すことに頼る必要はありませんでしたが、最悪の事態を計画しています。

さらに、メディアには重要な失効があり、相続人にそれをどうするかについて指示するメモがあります。


マスター署名秘密鍵をバックアップする場合、それを使用して失効証明書を生成することはできませんか?失効証明書のバックアップはどのようなシナリオで役立ちますか?
マテイデビッド

ああ、しかし、あなたは、リクエストを実行する人がどれほどコンピュータに精通しているか確信が持てないことを理解しなければなりません(それを使うのは私ではなく、「私の相続人」です)。そのため、失効がすでに生成されており、「このファイルを添付してメールを送信するだけ」という指示が誤って管理される可能性は低くなります。
MAP

@MateiDavid最初にキーペアを作成するときに失効証明書を生成し、その失効証明書を保存すると、キーが使用できなくなった場合にキーを失効させることができます。これが発生する可能性のある有効なシナリオがあります。もちろん、失効証明書を十分に保護する必要があります。証明書を入手した人は誰でも公開できるため、キーペアを失効させることができます。ただし、失効証明書がOPの状況にどのように適用されるのかはよくわかりません。
からCVn

はい、私たちはネズミ穴を掘り下げました。申し訳ありませんが、失効証明書についての私の言及は、私がとる手順の説明の完全性のためであり、元の質問とは何の関係もありませんでした。
MAP
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.