有爹知道 https 双向认证时候,服务端使用客户端证书干了什么么?

2024-03-15 10:19:23 +08:00
 main1234

在单向认证时候,服务端发给客户端证书,客户端校验证书然后用证书里面的公钥加密了一个 random ,服务端收到 random 后用私钥解密,为双方的第三个 random

那么在双向认证时候,客户端发给服务端证书,服务端到底用客户端证书干了什么???查了一些博客,现在有几种说法

1.只验证 2.验证+服务端用客户端公钥加密了加密套件,客户端用私钥解密加密套件 3.验证+服务端用客户端公钥加密 random-S

在第二种说法中,加密套件不是 client hello 时候客户端发过去的么?在 server hello 后服务端会选择一个加密方案,双向认证时候,加密套件在客户端验证完服务端证书后发送??

7607 次点击
所在节点    程序员
50 条回复
Belmode
2024-03-15 10:22:41 +08:00
别客气。

不是很清楚~
suzhenyu
2024-03-15 10:27:01 +08:00
@Belmode 哈哈哈,这人太坏了,还配合上这个头像。
Hf1G1sGBYS8QSLN8
2024-03-15 10:27:30 +08:00
ThirdFlame
2024-03-15 10:29:38 +08:00
客户端将发送的信息 算哈希。 将哈希用客户端自己的私钥加密。发送给服务端。

服务端用客户的公钥解密,得到哈希。 并那这个哈希和客户端发送来的信息哈希比较,如果一致就说明这个信息时客户端发来的,并且没有被篡改。
busier
2024-03-15 10:33:57 +08:00
服务端会获取客户端证书的信息 诸如 CN 等等。

你可以拿 phpinfo()测试一下,好像是在 SERVER[ ]里面

利用这个特性可以实现证书登陆验证
FaiChou
2024-03-15 10:37:22 +08:00
这篇讲的很详细,可以参考下

http://www.884358.com/https-auth/
tool2d
2024-03-15 10:39:17 +08:00
没你想那么复杂。

做微信支付的时候,官方 API 要求 SSL 请求必须带客户端证书,好知道你是谁。客户端证书就仅仅是校验用户身份的作用,和你用证书来登录远程 SSH 一样,没啥区别。

内容加密还是走老一套 TLS 。
gps949
2024-03-15 10:44:22 +08:00
Od37v61n5s89gXx8
2024-03-15 10:48:21 +08:00
孩子你可以抓包看交互的过程
tool2d
2024-03-15 10:55:46 +08:00
"在 server hello 后服务端会选择一个加密方案,双向认证时候,加密套件在客户端验证完服务端证书后发送??"

不是,是一起发送的。你可以看 6 楼的文章里的 curl 输出,第一行是客户端证书,第二行是加密套件里的 key(也就是双方随机数计算的 pre-master secret),第三行是用客户端密钥计算的 hash 校验,防中间人篡改,三个包是连续一起发送的。

如果客户端证书没问题,那么服务器直接就 SSL 握手完成了,不会再次请求加密 KEY 。

* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS handshake, CERT verify (15):
wyh19970626
2024-03-15 11:09:54 +08:00
只做验证,服务端自签的 ca 签发客户端证书,用户携带客户端证书访问系统,服务端 Ca 校验客户端证书有效性。
siweipancc
2024-03-15 11:36:33 +08:00
……这个不是有规范文档吗,还是我看的那份是假的?
bruce0
2024-03-15 11:49:11 +08:00
我理解的, 单向的 https 中, 只有客户端,校验服务端是否是正确的(一般来说,会校验域名和证书是否一致)

在双向认证的 https 中, 不光客户端校验服务端, 服务端也会校验客户端是否靠谱(使用服务端保存的客户端根证书来校验客户端发来的公钥)
ShinichiYao
2024-03-15 11:54:22 +08:00
就像你确认服务器是你要访问的服务器一样,可以确认访问服务器的是你
yuepu
2024-03-15 12:37:43 +08:00
可以看看 SSL 的握手:
yuepu
2024-03-15 12:38:12 +08:00
awalkingman
2024-03-15 12:46:58 +08:00
评论区很和谐有爱
yulgang
2024-03-15 12:58:30 +08:00
luzemin
2024-03-15 13:10:09 +08:00
这就是提问的艺术!你看评论区有冷嘲热讽的吗?没有。
Dynesshely
2024-03-15 13:19:41 +08:00
@luzemin 确实很聪明,op 有意思

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1023857

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX