单向认证下,客户端的信息传输虽然被加密,但服务端返回的数据还有可能被中间人获取,如果解决这种情况? 目前想到的就是遇到敏感信息请求,前段在请求中附带公钥,服务端返回数据时用公钥加密后再返回
1
musi 2023-09-13 21:56:52 +08:00 via iPhone
那前端的私钥是怎么来的
|
2
chendy 2023-09-13 21:57:58 +08:00
单向认证,单向的是认证,只认服务端不认客户端,不是只加密请求不加密响应啊…
|
3
w99wjacky 2023-09-13 22:01:35 +08:00
参考 TLS
|
4
hxndg 2023-09-13 22:03:17 +08:00
中间人不能获取服务器的返回数据吧?
|
5
voidmnwzp OP @chendy 返回的数据是用私钥加密的 ,中间人也有可能获取到服务器公钥进行解密吧,虽然无法篡改但也能看到
|
6
XiLingHost 2023-09-13 22:07:39 +08:00
@voidmnwzp 实际上,是不行的,你可以了解一下 DH 算法
|
7
Juszoe 2023-09-13 22:11:05 +08:00
HTTPS 后续是用的对称加密,不存在你说的这种问题,除非客户端本身被入侵了(或者安装了某些软件)
|
8
raysonx 2023-09-13 22:23:10 +08:00
传输的内容的用客户端和服务端两端协商的对称密钥(比如 AES )加密的。
|
9
jones2000 2023-09-13 22:26:51 +08:00
用 probuffer 压下,起码不是明文传输了。
|
10
cccer 2023-09-13 22:27:05 +08:00
建议了解一下基础的 HTTPS 加密流程吧,证书不用来加解密用户数据。
|
11
IvanLi127 2023-09-13 22:40:55 +08:00 via Android
不会被中间人获取的。。除非用户终端信任了中间人的证书
|
12
voidmnwzp OP 看来是我搞错了 这贴可以沉了
|
13
lasuar 2023-09-13 22:49:00 +08:00
1. 中间人拿到的加密数据 无法用服务器证书公钥破解,而是用事先双方交换的对称算法秘钥(先了解 HTTPS 的传输过程);
2. 中间人想要看到明文数据,只有从连接建立开始的时候就介入了,拿到了对称秘钥,才能解密数据。怎么介入?搜一下抓包软件(如 fiddler 、charles )的原理 |