2009年9月18日

[Apache-Users 7426] Re:誤消去してしまった秘密鍵の復元

** Apache ユーザーズメーリングリスト **
** 注意:このメールへの返信は Apache-Users へ行きます **

 前田です。@apache.jpに送ったので流れなかったみたいです。

 過去に秘密鍵の復元をやったことはありませんが、もし私がやるなら
こうするだろうなということを述べてみますので、現実的な対応かどうか
ご判断ください。


 ひょっとすると、ディスク上は、同じセクタへの上書きではなく、ファイル
の実体が残っている可能性があるかも知れませんので、まずディスクイメージの
ダンプを保存するでしょう。

 まず、もう一つ同じような環境を大急ぎで確保します。これは、練習と
実験用です。今の秘密鍵がメモリ上にある環境は、貴重な環境なので、手法は
別の環境で確立する必要があります。

 現在動いているApacheやmod_ssl、OpenSSLと同じバージョンのソースを
用意し、可能な限り同じコンパイルオプションでビルドしておきます。
現在動作中のhttpsdにgdbでアタッチして、まずダンプを保存しておきます。

 別にビルドしたマップファイルを使って、若干のズレはあるかと思いますが、
メモリ上に保持されている秘密鍵の構造体を探り当てるか、あやしいところを
片っ端から探してみて、秘密鍵構造体から秘密鍵を組み立てるコードを書いて、
現在の公開鍵に対応する正しい秘密鍵を組み立てられることを確認する。

 といった流れになるでしょう。

 過去に、OpenSSLのソースを追ったときの記憶では、特にメモリ上の秘密鍵
の操作を困難にするような仕掛けは無かったと思いますので、ApacheやOpenSSL
のソースを読めて、gdbでのデバッグが可能なスキルがあれば可能ではないか
と思います。

 もう一つ、メモリ全体のダンプから、指定した公開鍵に対応する秘密鍵を
見つけ出す様なツールが、世の中に存在するかも知れません。

 こちらは、今から探して見ますので、見つけたらご報告を。
#探してみていました、まだ、見つけていませんが、アングラ界隈には
#ありそうな気配がします。

--
MAEDA 'kei' Katsuyukii <kei@xxxxx> http://www.nantoka.com/~kei/
「終わらないプロジェクトはない。終わっちゃうプロジェクトはあるけど。」
--
入退会・変更・配送一時停止は以下へ
http://www.apache.jp/mailman/listinfo/apache-users


投稿者 xml-rpc : 2009年9月18日 13:56
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/88670
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。