PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

HTTPS只是单向加密么,也就是上传加密,下载不加密?

[复制链接]
跳转到指定楼层
1#
点击数:7647|回复数:20
本帖最后由 haierccc 于 2015-10-5 17:53 编辑

在学习HTTPS的时候,说到WEB服务器要求使用公钥(证书),但客户端不强制使用公钥(证书)
这就是奇怪的地方
服务器端有公钥,客户端就可以用服务器端的公钥加密数据上传给web服务器
但客户端自己没有公钥,那岂不是web服务器发给客户端的数据,都没有加密啊
而且视频教程里面也说,从细节上说,也不是直接用公钥加密,而是2边其实是用DH算法得出对称密钥加密的
但DH算法需要双方的公钥/私钥作为参数代进去进行计算啊,客户端都没有公钥私钥,怎么用DH算法协商呢?难道直接用公钥加密?



2#
世纪冰雷 发表于 2015-10-5 23:57 | 只看该作者
LZ没弄懂什么是HTTPS吧。。大侠请重头再来……算了 再给点提示吧 LZ研究得深了 却把最基本的忘了
3#
haierccc  楼主| 发表于 2015-10-6 07:19 | 只看该作者
本帖最后由 haierccc 于 2015-10-6 08:24 编辑
世纪冰雷 发表于 2015-10-5 23:57
LZ没弄懂什么是HTTPS吧。。大侠请重头再来……算了 再给点提示吧 LZ研究得深了 却把最基本的忘了
...

是不是这样:
其实,客户端无论如何都需要生成自己的公钥/私钥,这样才能跟WEB服务器进行加密通讯
WEB服务器所谓的“客户端不需要证书”,指的是不需要客户端证明自己的身份,但其实还是需要客户端证书进行加密通信
换句话说,RSA 的2个功能:身份认证和加密,客户端只用到了后者,而WEB服务器端2者都用到了


4#
世纪冰雷 发表于 2015-10-6 11:45 | 只看该作者
haierccc 发表于 2015-10-6 07:19
是不是这样:
其实,客户端无论如何都需要生成自己的公钥/私钥,这样才能跟WEB服务器进行加密通讯
WEB服务 ...

你弄清楚密钥是拿来干嘛的 这个问题就迎刃而解了
5#
haierccc  楼主| 发表于 2015-10-6 15:07 | 只看该作者
就密钥本身而言,就是加密和解密用的
对称密钥的加密和揭秘用同一把,而RSA用公钥加密,私钥解密
身份认证是结合了哈希算法
6#
世纪冰雷 发表于 2015-10-6 16:31 | 只看该作者
haierccc 发表于 2015-10-6 15:07
就密钥本身而言,就是加密和解密用的
对称密钥的加密和揭秘用同一把,而RSA用公钥加密,私钥解密
身份认证 ...

再给个关键字吧 隧道
7#
haierccc  楼主| 发表于 2015-10-7 09:03 | 只看该作者
世纪冰雷 发表于 2015-10-6 16:31
再给个关键字吧 隧道

双方通过公钥加密,把HTTP数据流让入其中,形成SSL隧道
8#
世纪冰雷 发表于 2015-10-7 11:03 | 只看该作者
haierccc 发表于 2015-10-7 09:03
双方通过公钥加密,把HTTP数据流让入其中,形成SSL隧道

既然已经形成隧道了 还有上传下载的区别么
9#
haierccc  楼主| 发表于 2015-10-7 21:52 | 只看该作者
世纪冰雷 发表于 2015-10-7 11:03
既然已经形成隧道了 还有上传下载的区别么

这个隧道需要双方的公/私钥参与才能形成啊
就是不知道为啥不用另一方的私钥
10#
世纪冰雷 发表于 2015-10-7 21:59 | 只看该作者
haierccc 发表于 2015-10-7 21:52
这个隧道需要双方的公/私钥参与才能形成啊
就是不知道为啥不用另一方的私钥
...

那你得研究的是密钥的交换了 详细的原理我也记不太清了 似乎是确实不需要的
11#
维他命W 发表于 2015-10-7 22:19 | 只看该作者
在服务端和客户端试图建立安全通讯时,有三种情况:

1、服务端没有证书/或证书无效,无法建立安全连接,回到普通的 HTTP;
2、服务端证书有效,且客户端证书也有效,满足双向身份验证;
3、服务端证书有效,客户端无证书(或忽略证书),满足单向身份验证(客户端生成临时的随机公钥)。

撇开 1不谈……你的理解局限在 2,但是真实的公网 WEB环境,多数情况下,是 3。
12#
维他命W 发表于 2015-10-7 22:42 | 只看该作者
补充一下~

当我们插上U盾,和银行进行业务交易;或者启动支付宝安全控件,和支付宝进行业务交易的时候;或者有些企业级VPN……进行的是 模式2 的双向身份验证。

但大多数不需要进行业务交易的网站,其实是不需要双向身份验证的,仅仅需要客户验证服务器的合法性就可以了……服务器并不在意客户端是否合法~
13#
shmwyd 发表于 2015-10-8 07:18 | 只看该作者
围观模式........
14#
Pale_Cheung 发表于 2015-10-8 09:31 | 只看该作者
haierccc 发表于 2015-10-6 07:19
是不是这样:
其实,客户端无论如何都需要生成自己的公钥/私钥,这样才能跟WEB服务器进行加密通讯
WEB服务 ...

要不要求客户端证书和加密没关系了。

客户端证书是来验证客户机的身份。和服务器证书一样,防止假冒者(man in middle)

安全要求高的环境里可以要求客户机出示证书来验证身份。验证身份后才有认证(比如用户名密码)


另外像 IKEv2 类型的vpn就可以用客户端证书来代替用户名密码认证。
15#
haierccc  楼主| 发表于 2015-10-8 15:21 | 只看该作者
维他命W 发表于 2015-10-7 22:19
在服务端和客户端试图建立安全通讯时,有三种情况:

1、服务端没有证书/或证书无效,无法建立安全连接,回 ...

谢谢,关键就是这个“随机的公钥”
我感觉因为DH算法的存在,协商双方必然要有公私钥的
16#
Epic 发表于 2015-10-8 21:44 | 只看该作者
17#
haierccc  楼主| 发表于 2015-10-8 21:48 | 只看该作者
Epic 发表于 2015-10-8 21:44
https://zh.wikipedia.org/zh/%E8%BF%AA%E8%8F%B2%EF%BC%8D%E8%B5%AB%E5%B0%94%E6%9B%BC%E5%AF%86%E9%92%A5 ...

谢谢!
18#
红色狂想 发表于 2015-11-8 19:11 | 只看该作者
证书加密SSL/TLS原理听着如绕口令看着如读天书,但自从看了度娘小明与小红的故事,一切迎刃而解了,原来如此简单。这里科普一下:http://zhidao.baidu.com/daily/view?id=6262
19#
bigww 发表于 2015-11-8 20:13 | 只看该作者
红色狂想 发表于 2015-11-8 19:11
证书加密SSL/TLS原理听着如绕口令看着如读天书,但自从看了度娘小明与小红的故事,一切迎刃而解了,原来如 ...

的确简单明了。。
突然想到晚上吃饭和老爸说的,大学教授未必能教的好小学生。。

20#
红色狂想 发表于 2015-11-8 20:40 | 只看该作者
bigww 发表于 2015-11-8 20:13
的确简单明了。。
突然想到晚上吃饭和老爸说的,大学教授未必能教的好小学生。。

以后就这样给爹娘解释SSL/TLS的原理了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部