web-dev-qa-db-ja.com

ブルートフォーシングSSHキー

私の問題はよくある問題です。SSHキーを削除し、rmが.trashファイルを指すように設定するのを忘れました。公開鍵を持っているので、このサーバーに入らなければなりません。私ではない他の人のサーバーでこれを行う。それを行うのに十分なリソースがあります。プログラムが必要です。

4

(既存のテクノロジーを使用して)公開鍵から秘密鍵を再構築することが可能である場合、誰もがそれを実行します。

非対称アルゴリズムはそれを回避するように設計されています。 RSAの場合、公開鍵から秘密鍵を再構築することは、 整数因数分解 と同等(*)です。これは、整数サイズが大きくなると、非常に急激に難易度が上がる難しい問題です。特別ではない整数(つまり、適切に生成されたRSA鍵)の現在の世界記録は 768ビット であり、かなりの労力を要し、約2000 CPU年と推定されました。重要な点は、アルゴリズムの一部には、ロット非常に高速なRAM(ここではテラバイト単位で話しています)、1024ビットのRSAモジュラスの場合、既存のテクノロジーでその部分を処理する方法はまだ誰も知りません。それを実現する可能性がある特殊なハードウェアの予備設計がいくつかありますが、コストが高く(単なる数百万ドルではありません)、かなり大きくなります。

結論としては、利用可能な最高のハードウェアを使用していても、SSHキーのクラックに成功しないということです。


(*)RSAのクラッキングは、「偽造された署名の計算」のように、整数分解と同等であると証明されていません。ただし、秘密鍵の再構築は、係数を因数分解することと同じです。
12
Thomas Pornin

他の答えがすでにあなたに言っているように、総当たりの鍵については忘れてください。それはできません。 100万年ではない(少なくとも100万ドルではない)。

(キーが バグのある実装 で生成された場合を除きます。)

あなたができるかもしれませんが、それが保証されているわけではありませんが、削除されたファイルを回復することです。ファイルを削除しても、ディレクトリリストからは削除されるだけで、ファイルの内容は消去されないため、コンテンツがディスク上に残っている可能性があります。スペースは空きとしてマークされているため、別のファイルで再利用できます。そのため、ディスクへの書き込みをすぐに停止する必要があります。ダーティシャットダウンが望ましいです。

ファイルを含むパーティションのコピーを作成し、そのコピーから作業します。それが安全です。カービングツール( TestDisk は、適切なコレクションを含む起動可能なLinuxディストリビューションです)を使用して、プライベートキーファイルのようなものを含む空きブロックを見つけます。ファイルは-----BEGIN RSA PRIVATE KEY-----で始まります。秘密鍵ファイルは、ほとんどのファイルシステムで1ブロック未満なので、断片化されません。最初のブロックが見つかれば、すべてが揃います。

この方法で秘密鍵ファイルを見つけることができる場合とできない場合があります。すでに上書きされている可能性があります。見つかった場合でも、回復環境のセットアップと削除されたブロックの調査に何時間も費やすことを期待してください。サーバーにアクセスする別の方法を準備することは、より少ない労力である可能性があります。

将来的には、秘密鍵などのすべての重要なデータのバックアップを作成することを忘れないでください。もちろん、それらを安全な場所に保管してください。ただし、availability(内容をアクセス可能に保つ)はセキュリティプロパティであり、機密性(保管アクセスできないもの)。

非対称暗号化の要点は、公開鍵から秘密鍵を復元することが不可能であることです。だからあなたがしたいことは完全に実行不可能です。

新しいキーペアを生成し、古いキーペアの回復を忘れます。

1
user10211