当你在国内访问www.baidu.com的时候实际上会发现其最终跳转的地址为:https://www.baidu.com,而且追加了一个绿色的锁:
- HTTP:HTTP-Hypertext transfer protocal。是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。HTTP只是简单的数据传输协议。
- HTTPS:HTTP-Hypertext transfer protocal over Secure Socket Layer,是以安全为目标的HTTP通道,简单讲就是HTTP的安全版。HTTPS的安全基础是SSL,因此加密的详细内容就需体系要SSL;它是一个URL scheme(抽象标识符),句法类同http体系。
- 两者区别:https协议需要到ca申请证书,一般免费证书很少,需要交费。http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
HTTP会产生安全问题,黑客可能会伪造表单并提交到服务器;给用户植入了某些程序,那么用户的所有请求访问都将被黑客拦截。如果数据以明文传递,那么该黑客就能窃取你所有资料。
而HTTPS在传送者和接受者之间有一道加密的管道,有了这个管道之后,即使别人窃取到你的数据,他也无法正常进行操作。这个管道是一个证书完成的,证书就相当于展览的门票。
HTTP报文组成
HTTP报文是由一行行简单字符串组成的,是纯报文,可以很方便地对其进行读写,一个简单事务所使用的报文。HTTP协议传输的都是明文信息。
那么如何保证HTTP传输的安全呢?
- 服务器认证(客户端需要明确地知道在与可靠的服务器通讯)
- 客户端认证(服务端明确与真正的客户端通讯)
- 完整性(客户端与服务器端的数据不会被篡改)
- 加密(客户端和服务器端采用私密交流)
- 效率(执行速度更快的算法,使客户端和服务器端都可以快速处理)
- 普适性(服务端与客户端都支持的协议)
- 管理的可拓展性(安全访问不受区域位置的限制)
- 适应性(适应当前流行的安全操作)
HTTPS报文组成
超文本传输安全协议(HTTPS,也被称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种网络安全传输协议
- SSL:Secure Socket Layer,安全套接字层
- TLS:Transport Layer Security,传输层安全协议
HTTPS开发的主要目的,是提供对网络服务器的认证,保证交换信息的机密性和完整性。
HTTPS比HTTP在传输的时候多了加密的操作处理。而加密的处理有两种形式:SSL、TLS。
SSL可以理解为是最初进行加密的协议,而TLS是在SSL之后产生的,可以理解为补充版。SSL和TLS就是手机和贴膜的关系。
SSL和TSL
在https之中最为重要的核心概念就是数据的加密传输了。而整个的加密传输都需要通过SSL或TSL协议来完成。
SSL和TLS
SSL协议由两层组成:SSL记录协议和SSL握手协议。SSL核心概念:加密算法,数字证书,CA。
TLS是传输层加密协议,它的前身是SSL协议,最早由netscape公司于1995年发布,1999年经过IETF讨论和规范后,改名为TLS。
如果没有特殊要求,可以简单地理解为TSL与SSL都属于同一协议。
TLS、SSL加密算法——对称加密。
加密算法
SSL和TLS核心的概念就是进行数据的加密和解密的操作处理。
TLS、SSL加密算法——对称加密算法
在对称加密算法中,使用的密钥只有一个,收发信双方都是用这个密钥对数据进行加密和解密,这就要求解密方实现必须知道加密密钥。
对称加密虽然对称加密可以保证数据的安全性问题,但是这也会存在一个问题,一旦通信的实体多了,那么管理秘钥就会成为问题。
TLS、SSL加密算法——非对称加密算法(加密和签名)
- 非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key);
- 公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;
- 服务器发送加密锁给客户端;
- 定期更换公开密钥;
TLS、SSL加密算法——数字证书
你们会发现虽然提供有https访问,但是很多的网上银行的都会发给用户一个U盾,里面实际上保存的就是一个证书。这个证书客户端可以保留,只有有了这个证书才可以和网上银行的服务器端进行交互。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息,使用的加密算法以及公开密钥的文件。
以数字证书为核心的加密技术可以对网络上的传输的信息进行加密和解密、数字签名和签名验证,确保网上传递信息的机密性、完整性及交易的不可抵赖性。
TLS、SLL处理机制
安全操作,即数据部分编码(加密)和解码(解密)的工作是由SSL一层来完成,而其他的和HTTP协议没有太多的不同。
- 握手协议:告诉你我准备和你进行通信
- 记录协议:你把你的数据发来了,我用我的私钥解密
身份认证
身份认证是建立每一个TLS连接不可或缺的部分。比如,你有可能和任何一方建立一个加密的通道,包括攻击者,除非我们可以确定通信的服务端是我们可以信任的,否则,所有的加密(保密)工作都没有任何作用。
而身份认证的方式就是通过证书以数字方式签名的声明,它将公钥和持有相应私钥的主体(个人、设备和服务)身份绑定在一起。通过在证书上签名,CA可以核实与证书上公钥相应的私钥为证书所指定的主体所拥有。
如果要想实现证书签名,那么必须要进行证书的逐层的签发。
首先要有一个最初认证的根证书(Root CA证书),�“根证书”要往上发一个“中级证书”,“中级证书”再往上发一个“站点证书”。没有根证书什么都发不了,而每一个根证书上都有一个“匹对”的过程,【Root名称——机构名称】、【Root公钥——机构签名】,【拥有者名称——机构名称】,【拥有者公钥——机构签名】,这样能保证数据的安全性。
网友评论