单向认证下,客户端的信息传输虽然被加密,但服务端返回的数据还有可能被中间人获取,如果解决这种情况? 目前想到的就是遇到敏感信息请求,前段在请求中附带公钥,服务端返回数据时用公钥加密后再返回
![]() | 1 musi 2023-09-13 21:56:52 +08:00 via iPhone 那前端的私钥是怎么来的 |
![]() | 2 chendy 2023-09-13 21:57:58 +08:00 单向认证,单向的是认证,只认服务端不认客户端,不是只加密请求不加密响应啊… |
![]() | 3 eInKLX6Kh6sS3wyc 2023-09-13 22:01:35 +08:00 参考 TLS |
![]() | 4 hxndg 2023-09-13 22:03:17 +08:00 中间人不能获取服务器的返回数据吧? |
![]() | 5 voidmnwzp OP @chendy 返回的数据是用私钥加密的 ,中间人也有可能获取到服务器公钥进行解密吧,虽然无法篡改但也能看到 |
![]() | 6 KagurazakaNyaa 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 )的原理 |