Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在OpenSSL s_服务器上使用id_前缀_Ssl_Openssl_Tls1.2 - Fatal编程技术网

如何在OpenSSL s_服务器上使用id_前缀

如何在OpenSSL s_服务器上使用id_前缀,ssl,openssl,tls1.2,Ssl,Openssl,Tls1.2,我不确定必须传递什么参数才能切换-id\u prefix 我试图做的是在一侧运行openssl s_服务器,在另一侧运行openssl s_客户端,并验证会话ID和主密钥在两侧匹配 问题是,我只能在客户端看到会话ID和主密钥。我也不知道如何在服务器端获得它们,所以我可以比较它们。 id\u prefix似乎是一个选项,但我在客户端的会话id中没有看到前缀 有什么想法吗?我可以看到如何使用openssl s_服务器和openssl s_客户端检查主密钥,但不使用会话ID;我不知道为什么 这就是我所

我不确定必须传递什么参数才能切换
-id\u prefix

我试图做的是在一侧运行
openssl s_服务器
,在另一侧运行
openssl s_客户端
,并验证
会话ID
主密钥
在两侧匹配

问题是,我只能在客户端看到
会话ID
主密钥。我也不知道如何在服务器端获得它们,所以我可以比较它们。
id\u prefix
似乎是一个选项,但我在客户端的
会话id
中没有看到前缀


有什么想法吗?

我可以看到如何使用
openssl s_服务器
openssl s_客户端
检查主密钥,但不使用会话ID;我不知道为什么

这就是我所做的。首先,我启动了一台在本地运行的服务器:

$ openssl s_server -accept 4433 -cert ./server.pem -tls1_2
然后,在另一个终端/窗口中,我连接到该服务器:

$ openssl s_client -connect 127.0.0.1:4433 -debug
在服务器终端中,我看到SSL会话已启动:

Using default temp DH parameters
ACCEPT
-----BEGIN SSL SESSION PARAMETERS-----
MFUCAQECAgMDBALAMAQABDDAOWXb47pESLXfWW1DYfaccOPGQcfgeaHW4sFP/avj
ejwVgvWNXGXy1vn6U3uLOeWhBgIEVqrm26IEAgIcIKQGBAQBAAAA
-----END SSL SESSION PARAMETERS-----
...
CIPHER is ECDHE-RSA-AES256-GCM-SHA384
Secure Renegotiation IS supported
这里需要注意的关键是,SSL会话参数的base64编码数据。我将数据复制并粘贴到一个单独的文件中,例如
sess.pem

然后,我使用
openssl sess\u id
sess.pem
文件进行解码:

$ openssl sess_id -noout -text < ./sess.pem
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : C030
    Session-ID: 
    Session-ID-ctx: 01000000
    Master-Key:     9C921511052D3F212FF718704518FC526474D69FC26BC1165DBD203C6E221BB3A84686BC5D15A7BD9FA7BB72201A7276
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1454040610
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
所以我不确定为什么服务器输出没有显示生成的会话ID,但是您至少可以使用上面的内容来比较主密钥值。我尝试了使用
-context
-id\u前缀
命令行选项,用于
openssl s\u服务器
,例如:

但它并没有实质性地改变数据,也没有导致会话ID被
openssl s_服务器显示

希望这有帮助

...
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID:     417D443BFD5702BEA974C5758FD65A0FC217B0FD9750C4CECF0915895C4E616D
    Session-ID-ctx: 
    Master-Key:     9C921511052D3F212FF718704518FC526474D69FC26BC1165DBD203C6E221BB3A84686BC5D15A7BD9FA7BB72201A7276
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 7200 (seconds)
    TLS session ticket:
    ....
$ openssl s_server -accept 4433 -context FOO -id_prefix BAR ...