https is "Hyper Text Transfer Protocol" with Secure Sockets Layer (SSL)html
HTTPS的主要思想是在不安全的网络上建立一安全信道,并可在使用适当的加密包和服务器证书可被验证且可被信任时,对窃听和中间人攻击提供合理的保护。 HTTPS的信任继承基于预先安装在浏览器中的证书颁发机构(如VeriSign、Microsoft等)(意即“我信任证书颁发机构告诉我应该信任的”)。所以,一个到某网站的HTTPS链接可被信任,当且仅当:算法
从定义能够看出apache
HTTP协议和安全协议同属于应用层(OSI模型的最高层),具体来说,安全协议工做在HTTP之下,运输层之上:安全协议向运行HTTP的进程提供一个相似于TCP的套接字,供进程向其中注入报文,安全协议将报文加密并注入运输层套接字;或是从运输层获取加密报文,解密后交给对应的进程。严格地讲,HTTPS并非一个单独的协议,而是对工做在一加密链接(TLS或SSL)上的常规HTTP协议的称呼。 HTTPS报文中的任何东西都被加密,包括全部报头和荷载。除了可能的选择密文攻击(参见限制小节)以外,一个攻击者所能知道的只有在二者之间有一链接这一事实。浏览器
它加密了全部报头和荷载,相对来讲安全tomcat
要使一网络服务器准备好接受HTTPS链接,管理员必须建立一数字证书,并交由证书颁发机构签名以使浏览器接受。证书颁发机构会验证数字证书持有人和其声明的为同一人。浏览器一般都预装了证书颁发机构的证书,因此他们能够验证该签名。安全
对于怎么与证书颁发机构合做,果壳是这么说的:服务器
1.浏览器将本身支持的一套加密规则发送给网站。 2.网站从中选出一组加密算法与HASH算法,并将本身的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。 3.得到网站证书以后浏览器要作如下工做: a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),若是证书受信任,则浏览器栏里面会显示一个小锁头,不然会给出证书不受信的提示。 b) 若是证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码,并用证书中提供的公钥加密。 c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将以前生成的全部信息发送给网站。 4.网站接收浏览器发来的数据以后要作如下的操做: a) 使用本身的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。 b) 使用密码加密一段握手消息,发送给浏览器。 5.浏览器解密并计算握手消息的HASH,若是与服务端发来的HASH一致,此时握手过程结束,网络
其实跟数字签名一个道理,老板有私钥,员工有公钥就能够验证这个签名是否是老板签的,只要员工确定这个公钥是一个可信机构给的(CA),若是是路边给的固然就不相信了,若是是公司给的那也就是本身相信本身了。网站
在新版订票页面中,中国铁路客户服务中心使用了HTTPS以加密数据,可是中国铁路客户服务中心并未采用获得普遍承认的数字证书认证机构的证书,而是采用了由其本身签名的证书,证书机构的名称为“Sinorail Certification Authority”(SRCA)颁发的证书。 当浏览器检测到其根证书库当中没有“SRCA”这个证书时,就出于安全性的因素阻止用户访问网站。为此,12306网站要求用户手动安装根证书以便浏览器放行。[22]此方法并不是对全部浏览器有效,在使用某些浏览器时用户须要单独进行设置。 另外,每一个SSL数字证书都有一个密钥。通常密钥一旦失窃,正规认证机构及系统厂商就会宣布此证书无效,[23]对于较小的认证机构,通常为证书设立一个证书吊销列表(CRL)[24],当密钥失窃时,证书会自动被列为失效。SRCA的证书没有CRL,系统厂商也不会专门为此发布一个更新。[25]所以黑客可能会利用这个密钥以SRCA的身份发放证书。一旦黑客把这个证书颁发给了一些恶意网站,安装了SRCA证书的浏览器将放行这些网站,没法抵御由此引起的恶意攻击。为此有人在网络上提出用户在购票以后马上将SRCA的证书设置为不受信任或者只是单独将购票页面加入浏览器信任列表的建议。 当用户开始进行支付的时候(访问pay.12306.cn的时候),中国铁路客户服务中心就会向用户出示一份Verisign签发的有效证书,可是只能保证用户在支付时的安全,不能保证黑客利用SRCA密钥再次签发假证书制造恶意攻击。加密
以汤姆猫为例