重用会话时更改 SSL 协议版本
Change SSL protocol version while reusing session
我正在使用 ssl3
连接到服务器。当 -change_session_version
选项与 -reconnect
一起指定时,我希望会话协议从 SSLv3
更改为 SSLv2
这是我的命令:apps/openssl s_client -connect 10.102.113.3:443 -reconnect -change_session_version -ssl3
现在,我知道我应该有这个代码:
if(change_session_version)
s->session->ssl_version = SSL2_VERSION;
或此代码:
if(change_session_version)
s->version = SSL2_VERSION;
虽然我不知道把这段代码放在哪里。
我已将 change_session_version
声明为 ssl.h
中的 int
,如果指定了 -change_session_version
选项,则将其设置为 1
。
请帮帮我!
我认为这是不可能的。首先,SSLv2 实际上不再受支持,大多数堆栈甚至不实现它,而其他堆栈已禁用它。然后根本不支持 SSLv2 中的会话恢复。
你的问题是用语自相矛盾。 SSL 中的 'session' 包括协议、密码套件、密钥 material 和对等证书。如果不创建新会话,则无法更改其中任何一个。
EDIT 仅更改一块本地内存中的变量不可能完成任何有用的事情。对等点不会知道它,在其他连接上共享会话的其他对等点也不会知道它。您必须重新握手并协商 新 会话。
我正在使用 ssl3
连接到服务器。当 -change_session_version
选项与 -reconnect
一起指定时,我希望会话协议从 SSLv3
SSLv2
这是我的命令:apps/openssl s_client -connect 10.102.113.3:443 -reconnect -change_session_version -ssl3
现在,我知道我应该有这个代码:
if(change_session_version)
s->session->ssl_version = SSL2_VERSION;
或此代码:
if(change_session_version)
s->version = SSL2_VERSION;
虽然我不知道把这段代码放在哪里。
我已将 change_session_version
声明为 ssl.h
中的 int
,如果指定了 -change_session_version
选项,则将其设置为 1
。
请帮帮我!
我认为这是不可能的。首先,SSLv2 实际上不再受支持,大多数堆栈甚至不实现它,而其他堆栈已禁用它。然后根本不支持 SSLv2 中的会话恢复。
你的问题是用语自相矛盾。 SSL 中的 'session' 包括协议、密码套件、密钥 material 和对等证书。如果不创建新会话,则无法更改其中任何一个。
EDIT 仅更改一块本地内存中的变量不可能完成任何有用的事情。对等点不会知道它,在其他连接上共享会话的其他对等点也不会知道它。您必须重新握手并协商 新 会话。