https和http的区别

a) 区别
i. http连接简单无状态,https协议是由ssl和http协议构建的可进行加密传输身份认证、报文的完整性的网络协议,比http协议安全,采用混合加密的算法
ii. https协议需要到ca申请证书,一般免费证书较少,需要一定的费用
iii. http协议超文本传输是明文传输,https是具有ssl加密传输协议
iv. http使用80端口 https使用443端口
v. 在OSI网络模型中,http在应用层,https在传输层
vi. http在HTTP协议在TCP之上所有的传输内容都是明文,客户端和服务器端都无法验证对方的身份
vii. https是HTTP在SSL/LS之上,SSL/TLS运行在TCP之上,所有的传输内容都得经过加密,加密采用对称加密,但对称加密的密钥用服务器方的证书进行了非对称加密,此外客户端可以验证服务器的身份
b) 为什么用Https来进行通信?https在安全上做了哪些事情?
i. http的缺点:

  1. 尽管http已经具有相当优秀的方面,但是其依然还有很多不足
  2. 通信内容为明文,既为未加密,内容可能被监听
  3. 窃听可能在互联网通信的各个环节
  4. 通信双方的身份都没有进行验证,可能出现伪装身份的情况
  5. 所有人都可以对服务器发起请求-----对服务器来说无法确定自己返回的报文是否真正被客户端接受,对客户端来说无法确定这台web服务器是真的服务器,可能通过了伪装--------服务器全盘接收的缺点也有可能被利用进行dos攻击
  6. 接受的报文完整性无法确定,可能中途被更改 虽然Http提供了报文完整性的方法(MD5、SHA-1)但是也无法完全保证报文的完整性,因为MD5本身也有可能被攻击者改写 在SSL中,提供了认证和加密处理等功能,通过配合SSL可以达到保证报文完整性目的
    ii. 关于Https
  7. 鉴于http的缺点,https在http的基础上增加了
    a) 通信加密
    b) 证书认证
    c) 完整性保护
  8. SSL是如何配合HTTP来达到安全通信的?
    a) HTTP的通信接口部分采用了SSL协议来实现
    b) SSL是独立于HTTP协议的,同样也可以用于其他协议
  9. 普通的加密方式
    a) 共享密钥加密 客户端和服务器端都拥有一把相同的钥匙,对报文的加密解密都用这把钥匙,在通信中传递给对方,所以一旦在通信过程中这把密钥被攻击者获取,报文便失去了意义
    b) 公开密钥加密—共享密钥有一个问题:如何安全的把密钥传输给对方,公开密钥采用的是非对称的密钥,一把共有密钥,一把私有密钥,发送方使用共有密钥对报文进行加密,接收方使用私有密钥进行解密
  10. HTTPS采用的混合加密机制
    a) 由于共有密钥的机制相对复杂,导致处理速度特别慢,
    b) 只要解决了共享密钥的安全问题就能很好的传输
    c) Https首先通过公开密钥对享密钥进行加密,当共享密钥安全传输给对方,双方则使用共享密钥方式来加密报文
  11. https的握手机制
    a) 向服务器发送请求
    b) 取出共有密钥及证书发送给服务端
    c) 客户端判断共有私钥是否有效,无效则显示警告,有效则生成一个随机树数串,并以此生成客户端的共享密钥
    d) 用上述得到的共有密钥对该随机数串进行加密,发送到服务器
    e) 服务器得到加密报文,用私有密钥解密报文,得到随机数串,并以此生成服务器端的共享密钥,此时客户端和服务器端拥有相同的共享密钥,可以用该共享密钥进行安全通信
    f) 服务器对响应进行加密,客户端对报文进行解密
  12. 选择http还是https来搭建服务器
    a) SSL会使通信的速率降低 整体通信信息量增加
    b)
    c) 加密过程消耗资源 每个报文都需要进行加密解密的运算处理,比起http会消耗更多的服务器资源
    d) 证书开销
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章