2016-04-22 20 views
0

私は手動でopensslライブラリを使用してssl/httpトラフィックを解読するツールを持っています。ほとんどの場合、うまく動作しますが、拡張されたマスターシークレットの拡張に失敗しました。TLS拡張マスターシークレット - セッションハッシュを計算する

テストエンコードされたデータの大部分が実行されたハンドシェークの最後の段階でフェイルが発生しました。

私はこの拡張機能が正しく動作することを理解しているので、ハンドシェイクバッファを特定のTLSフィールド(クライアントのhello、サーバーhello、キー交換)で正しく埋めて、ハンドシェイクバッファをハッシュしてマスターキーを生成する必要があります。

不幸にも、私にとってはうまくありません。

私の質問 - 正確には、適切なマスターキーを生成するためにpackedsをハッシュする必要がありますか?

コメントはすべてgratefullになります。おかげさまで

PS:この機能が実装されているgithubからopensslのexperementalバージョンをダウンロードしました。

openssl s_server/s_clientはcorespond extensionを使用しています.Wiresharkで見ることができ、サーバーのpemファイルでトラフィックをデコードすることができます。あなたが先着順で暗号化された握手以外のすべてのハンドシェイクメッセージを、追加)セッションハッシュ

1を生成するために、次の操作を行う必要があり

+0

スタックオーバーフローは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[スーパーユーザー](http://superuser.com/)や[情報セキュリティスタックエクスチェンジ](http://security.stackexchange.com/)の方が良いかもしれません。また、[Dev Opsについての質問はどこに投稿しますか?](http://meta.stackexchange.com/q/134306)。 – jww

+0

opensslはプログラミングの暗号化フレームワークです。tls1_generate_master_secret関数を呼び出す前にどの関数を呼び出す必要がありますか(そしてどの順序で呼び出す必要があるか)は疑問でした。 なぜこの質問は発展していないのですか?ありがとう。 – user1503944

+0

質問にはコード参照が含まれていません。特別なツールやOpenSSLの行は含まれていません。これはプログラミングとは関係がありません:*** "...私の質問 - 適切なマスターキーを生成するために正確にパックされたものはハッシュされるべきです" ***。あなたはあなたの質問のために設計されたサイトにそれを持って行くべきです。または、ここにおいて答えを得ないでください。あなた自身に訴える。 – jww

答えて

1

は、握手にレコードヘッダを含めないでください。メッセージのみメッセージが ハッシュアルゴリズムは暗号スイートとProtocal版 TLS1とTLS1.1 SHA1とMD5のその混合物(16ビット毎) TLS1に基づいて変化する、と言って、単純な、

2)それらが基づくハッシュヘッダー。 2そのほとんどが暗号スイートに基づくSHA256またはSHA384です。

関連する問題