gpt4 book ai didi

ssl - 在 SSL 中解析 ServerKeyExchange 消息

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:09 24 4
gpt4 key购买 nike

我正在构建一个 Java 解析器来读取和处理 SSL 握手消息。每ietf spec ,ServerKeyExchange消息表示如下:

struct {
select (KeyExchangeAlgorithm) {
case dh_anon:
ServerDHParams params;
case dhe_dss:
case dhe_rsa:
ServerDHParams params;
digitally-signed struct {
opaque client_random[32];
opaque server_random[32];
ServerDHParams params;
} signed_params;
case rsa:
case dh_dss:
case dh_rsa:
struct {} ;
/* message is omitted for rsa, dh_dss, and dh_rsa */
/* may be extended, e.g., for ECDH -- see [TLSECC] */
};
} ServerKeyExchange;

..而 ServerDHParams 定义如下:

struct {
opaque dh_p<1..2^16-1>;
opaque dh_g<1..2^16-1>;
opaque dh_Ys<1..2^16-1>;
} ServerDHParams; /* Ephemeral DH parameters */

现在,当我使用 wireshark 查看包含服务器 key 交换实例的示例跟踪时,我看到一种不符合上述定义的格式:

Screenshot from wireshark

如何使用 ietf 定义来解析这样的服务器 key 交换消息?

最佳答案

他们都是对的。 DHE 和 ECDHE 是不同的算法。 RFC 5246 中的结构定义指定了 DHE 的消息格式,而在 Wireshark 中,您看到的是 ECDHE key 交换。对于 ECDHE,您可以在 RFC 4492 中找到它的定义。 ,这与您在 WireShark 中看到的相同:

ec_diffie_hellman: Indicates the ServerKeyExchange message contains an ECDH public key.

select (KeyExchangeAlgorithm) {
case ec_diffie_hellman:
ServerECDHParams params;
Signature signed_params;
} ServerKeyExchange;

struct {
ECParameters curve_params;
ECPoint public;
} ServerECDHParams;

关于ssl - 在 SSL 中解析 ServerKeyExchange 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36191226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com