web-dev-qa-db-ja.com

Vim暗号化:それを破る方法は?

最近、vimの:X暗号化機能を使用してエンジニアリングログを暗号化することにしました。パスワードを書き留めましたが、ファイルを復号化すると意味不明になるため、スペルを間違えたり、混乱させたりしたようです。さらに悪いことに、all私のバックアップはどういうわけか破損しています(質問しないでください、私も方法がわかりません)。

私は言い訳をするつもりはありません:私は私が台無しにしたことを知っています。今、私は自分が作った混乱をどのように修正できるかに焦点を当てたいと思います。

これが私が試したことです:

  1. Vimzipperを使用して暗号化されたファイルをZipでラップし、fcrackzip、zipcracker、pkcrack、Advanced Zip PasswordRecoveryなどの標準のZipクラッカーで解読できるようにします。残念ながらこれは機能しません。 VIMINFOのレジスタからの残りの情報を使用して、ファイルからプレーンテキストの行を回復しましたが、回復されたプレーンテキストのオフセットがファイルにありません。とにかく、3文字のvimパスワードを使用した単純なテストファイルであっても、Zipクラッキングは機能しませんでした。

    http://zeus.phys.uconn.edu/refs/crackers/vimzipper.c を参照)

  2. スワップファイルの回復は機能しませんでした。暗号化されたファイルを不正なパスワードで再度開くと、vimは「適切な」スワップファイルを上書きしました。

  3. 平文の大規模なデータベース(Project Gutenbergからの約30冊の本)を参照データとして使用してunixcrypt-breakerを実行します。これにより、復元された平文でunixcrypt-breakerをシードするだけでも、意味不明になります。さらに、この方法を使用してvimで暗号化された単純なテストファイルでさえも損益分岐点にあるようには見えません。 (参考までに、復号化を実行する前にVimCrypt〜01!マジックヘッダーを削除し、PASTEモードでvimを使用して削除するので、ファイルの内容を変更することはありません)。

  4. 私が想像できるすべてのパスワードとスペルミスを必死に推測します。私は少なくとも6時間かけて、スペルが間違っている可能性があるものを推測しました。 :)

プログラムからパスワードをすばやく試すために、crypt/makekeyの古いUNIXコピーをコンパイルしようとしましたが、その結果は、vimの-x暗号化と同じパスワードを使用して暗号化された同じファイルと同じではありません。

誰かが助けてくれるなら、私はそれを大いに感謝します。そうでない場合は、読んでいただきありがとうございます。 :)

31
Jurgen

VIMドキュメント から:

  • 使用されるアルゴリズムは壊れやすいです。約1時間で4文字のキー、1日で6文字のキー(Pentium 133 PCの場合)。これには、ファイルに表示する必要のあるテキストを知っている必要があります。専門家はどんな鍵でもそれを破ることができます。テキストが復号化されると、これはキーが明らかになり、同じキーで暗号化された他のファイルを復号化できることも意味します。

Pentium 133で実現可能であれば、非常に良いチャンスがあると思います。 :)

#vimを使用してアルゴリズムの詳細を尋ねるか、ソースコードを参照して暗号化がどのように機能しているかを把握してから、暗号解読プログラムを作成します。

23
ine

暗号化の問題に加えて、データ破損の問題が発生する可能性はありますか?

これを総当たり攻撃する場合は、辞書攻撃に進む前に使用できた可能性のあるパスワードのすべてのバリエーションを試し始めるアルゴリズムを作成すると思います。それでも、あなたの話を聞いた後、私はあなたがあなたのパスワードを忘れなかったというこのしつこい感じを持っていますが、むしろあなたのパスワード/ crypttext/cryptokey /何でも台無しにする途中のどこかにデータ破損の問題がありました。

10
Elijah

これが役立つかどうかわからない:

「crypt」で暗号化されたファイルを分割する方法を説明し、出発点を提供する可能性があります(少なくとも古いバージョンのviでは、暗号化はcryptに基づいていました)。

7
Jay

この古代 ニュースグループの投稿 あなたと同様の問題がありました:

私の問題は、viを使用して誤ってスクリプトを暗号化し、キーを思い出せなかったことです。回答してくれたすべての人に感謝します。

提案は次のとおりです。

  • vi -xを使用して、キーを推測します(私は成功せずにそれを試しました)
  • crypt呼び出しを行い、可能性のあるキーの組み合わせを試すプログラムを作成します。これを提案した人は、クラックするのに約5分かかると考えました
  • クラックに役立つアーカイブからCWB(クリプトブレーカーワークベンチ)をダウンロードする
  • 暗号化後のファイルの最初の128バイトと暗号化前のこれらのバイトを含む問題をsci.crypt.newsgroupに投稿すると(覚えていれば)、グループの誰かが私のためにそれをクラックする可能性があります
  • スクリプトを再入力します

これを破るのに必要な1つのベビーベッドは、パスワードが「あるべき」ものであったことを知っていることです。したがって、ランダムなタイプミスがあったとしても、意図したパスワードに少し似ています。たぶん、そこから始めて、意図したパスワードと1文字または2文字のスペルミス(追加)のすべての可能な組み合わせを生成するプログラムを作成することができます。

いずれにせよ、なんて素敵な運動/流用でしょう!

5
mmcdole

この質問はかなり古いものです。これが最新のソリューションです:

Hashcatを使用します( https://hashcat.net/hashcat/ )。 Hashcatには、暗号化アルゴリズムの幅広いセット用のプラグインがあり、紛失したパスワードについてまだ覚えているヒントを使用して、(ブルートフォースの開始点-)辞書ファイルを指定してシードすることができます。

0
count0