为什么要有HTTPS
在之前介绍HTTP时,曾说过它有一些缺点
无状态:在加入Cookie机制之后得到解决
明文传输
不安全
为什么要有HTTPS
为什么要有HTTPS?因为HTTP是明文传输不安全;
由于HTTP天生就是明文传输,整个传输就是透明的,任何人都能在链路中截获、修改或者伪造请求/响应的报文,使得数据具有不可信;
举个蛎子(看懂的人请联系我)
之前介绍的代理服务,它是处于通信的中间人,在数据的上下行的时候,可以去修改报文中的数据包括头字段/body,这对客户端和服务器来说都是未知的,无法判断报文的真假,这是一件很可怕的事情;
对于普通的网民来说,HTTP不安全的隐患就更大了,上的网站不知道真假,被黑客钓鱼了,伪装的银行网站,输入了自己的银行密码,盗取了个人的敏感信息;很不好的;
对于【不安全】什么是【安全】呢?
通常认为,通行过程具备了如下四个特性就可以认为是安全的;
机密性
完整性
身份认证
不可否认
机密性
简单来说就是不能让不相关的人看见不该看的数据
就是指数据时【保密的】,只能由可信的人访问,对其他人是不可见的【秘密 】
完整性
就是指数据在传输过程中没有被窜改;
机密性可以让数据成为秘密,但是不能保证被替换或者窜改;
身份认证
就是确保对方的真实身份,也就是【证明你真的是你】保证消息只能发送给可信的人;
比方说通信的另一方是伪造的网站,那么你的数据在完整在保密也是没用的啊,完全可以用伪造的网站套出各种信息;
不可否认
叫做不可抵赖,意思是不能否认已经发生过的行为,不能说话不算数;
比方说就是你发出的请求就是你的行为,不能耍赖;
就好比某某人向你借钱,没打借条,后来反悔了没办法证明想你借钱,就是耍无赖嘛;
HTTPS的出现
HTTPS增加了刚才所说的四大特性,保证了安全;
HTTPS也是一个协议,协议名为【https】、端口为【443】,其他的协议格式和字段都是和HTTP等价的;
HTTPS同时能够鉴别危险的网站。尽最大的可能保证用户的上网安全;
HTTPS的保证安全是怎么做到的
HTTPS的杀手锏就在于这个【S】
HTTP协议的下层是使用TCP/IP传输协议的,但是HTTPS是把【TCP/IP】协议替换成了【SSL/TLS】
由【HTTP over TCP/IP】变成了【HTTP over SSL/TLS】
让HTTP运行在安全的SSL/TLS协议上,收发报文不再使用Socket API,调用专门的安全接口;
由此看下SSL/TLS真实太牛掰了,简直是跨世纪的伟大发明啊;
SSL/TLS
SSL
SSL叫做安全套接层(Secure Sockets Layer),处于OSI的会话层,是由网景公司发明的;
SSL发展到V3版本时时一个非常好的安全通信协议,于1999年改名为TLS(传输层安全)
TLS
TLS属于正式标准化了,版本号从1.0开始,TLS1.0就是SSLv3.0
TLS发展至今出了三个版本了。紧跟随密码学和互联网的发展,这个密码学在安全保护上真的是起了太大的作用;
TLS中综合使用了对称加密、非对称加密、身份认证等你许多密码学的前沿技术;
扩展
除了HTTP,SSL/TLS也可以承载其他应用的协议,比如【FTP】
OpenSSL
OpenSSL是一个著名的开源密码学程序库和工具包,已经成为事实上的标准,许多应用软件都会使用它来做为底层库来实现TLS工程
包括常用的Web服务器【Apache】、【Nginx】;