`

(转)HTTPS与SSL

 
阅读更多

<p>&lt;p&gt;&amp;lt;p&amp;gt;源地址 &amp;lt;a href="http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/05/1261214.html"&amp;gt;http://www.cnblogs.com/cuihongyu3503319/archive/2008/08/05/1261214.html&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/p&gt;</p>

请大家先了解这几个概念
1.证书
2.对称加密,非对称加密。
3.密钥,公钥,私钥

SSL使用的是非对称加密。
     当使用 基于SSL/TLS(通常使用 https:// URL)向站点进行HTTP请求时,从服务器向客户机发送一个证书。客户机使用已安装的公共证书通过这个证书验证服务器的身份,然后检查 IP 名称(机器名)与客户机连接的机器是否匹配。客户机生成一些可以用来生成对话的私钥(称为会话密钥)的随机信息,然后用服务器的公钥对它加密并将它发送到服务器。服务器用自己的私钥解密消息,然后用该随机信息派生出和客户机一样的私有会话密钥。通常在这个阶段使用 RSA 公钥算法。然后,客户机和服务器使用私有会话密钥和私钥算法(通常是 RC4)进行通信。使用另一个密钥的消息认证码来确保消息的完整性。
 HTTPS 是用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的 完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。
     一台WEB Server,这台WEB Server上已经申请好了一张CA证书,这张CA证书中包含了一对密钥 ,一把公钥Pub 一把私钥Pri
     第一步,客户端以HTTPS://这种方式,来向WEB Server发起一个访问请求。
     第二步,服务器在接收到这个访问请求后,会把WEB Server已经由CA证书中包含的那把公钥回传给客户端。这时,客户端的IE浏览器上会弹出一个对话框,提示用户,有一张证书要下载,需要用户确认。这时用户选择是,下载服务器上的这把公钥。
    第三步,客户端用这把公钥,生成一把自己的私钥(KEY)
    第四步,客户端用服务器传送过来的那把公钥,加密自己生成的那把私钥,也就是KEY,回传给服务器。
    第五步,服务器接收到客户端回传的加密信息后,用自己的私钥,也就是Pri,把客户端生成的KEY解密出来。
     至此,HTTPS的连接才算建立,才可以真正的传输加密的数据。
    SSL用的是非对称加密。非对称加密,加密时用一把密钥,也就是公钥。解密是用另一把密钥,也就是私钥。对称加密,加密解密用的是同一把密钥。

 

 

SSL (Secure Socket Layer)
为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络
上之传输过程中不会被截取及qie ting。目前一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全
标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

SSL协议提供的服务主要有:
1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
2)加密数据以防止数据中途被窃取;
3)维护数据的完整性,确保数据在传输过程中不被改变。

SSL协议的工作流程:
服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器恢复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa和 MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。


https介绍
HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议
它是由Netscape开发并内置于其浏览器中,用于对数据进行压缩和解压操作,并返回网络上传送回的结果。HTTPS实际上应用了Netscape的完全套接字层(SSL)作为HTTP应用层的子层。(HTTPS使用端口443,而不是象HTTP那样使用端口80来和TCP/IP进行通信。)SSL使用40 位关键字作为RC4流加密算法,这对于商业信息的加密是合适的。HTTPS和SSL支持使用X.509数字认证,如果需要的话用户可以确认发送者是谁。。
https是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,https的安全基础是SSL,因此加密的详细内容请看SSL。
它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。这个系统的最初研发由网景公司进行,提供了身份验证与加密通讯方法,现在它被广泛用于万维网上安全敏感的通讯,例如交易支付方面。
限制
它的安全保护依赖浏览器的正确实现以及服务器软件、实际加密算法的支持.
一种常见的误解是“银行用户在线使用https:就能充分彻底保障他们的银行卡号不被偷窃。”实际上,与服务器的加密连接中能保护银行卡号的部分,只有用户到服务器之间的连接及服务器自身。并不能绝对确保服务器自己是安全的,这点甚至已被攻击者利用,常见例子是模仿银行域名的钓鱼攻击。少数罕见攻击在网站传输客户数据时发生,攻击者尝试qie ting数据于传输中。
商业网站被人们期望迅速尽早引入新的特殊处理程序到金融网关,仅保留传输码(transaction number)。不过他们常常存储银行卡号在同一个数据库里。那些数据库和服务器少数情况有可能被未授权用户攻击和损害。

分享到:
评论

相关推荐

    httpClient实例httpClient调用 http/https实例 忽略SSL验证

    这个实例主要涉及如何配置HttpClient来忽略SSL(Secure Socket Layer)验证,这对于在开发和测试环境中处理自签名证书或未认证的服务器非常有用。以下将详细介绍HttpClient的使用以及如何进行SSL验证的忽略。 首先...

    Tomcat更换SSL证书方法(jks与pfx转换)

    ### Tomcat更换SSL证书方法(JKS与PFX转换) 在IT行业中,为了保障网络通信的安全性,使用SSL证书加密已经成为了一种标准做法。对于使用Tomcat作为应用服务器的企业或个人来说,有时候会遇到需要更换SSL证书的情况,...

    SSL中各证书的转换

    在IT领域,特别是网络安全与加密通信中,SSL(Secure Sockets Layer)证书是确保数据传输安全的关键要素之一。本文将详细介绍如何在不同的证书格式之间进行转换,包括从`.cer`到`.jks`、从`.jks`到`.cer`、从`.p12`...

    Java中的SSL及HTTPS协议实例源码

    Java中的SSL(Secure Socket Layer)和HTTPS(Hypertext Transfer Protocol Secure)协议是网络通信安全的重要组成部分,尤其在处理敏感信息如用户登录凭证、支付数据等时,它们提供了必要的加密和身份验证机制。...

    阿里云ssl证书配置https和slb的http跳转到https-详细笔记总结

    阿里云 SSL 证书配置 HTTPS 和 SLB 的 HTTP 跳转到 HTTPS 摘要:本文主要介绍了阿里云 SSL 证书配置 HTTPS 和 SLB 的 HTTP 跳转到 HTTPS 的详细笔记总结,包括两种方案:一种是 SSL 证书配置在 SLB 上,访问 ...

    java https ssl 实例 例子

    Java HTTPS SSL 实例详解 一、HTTPS 简介 HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)是以安全为目标的 HTTP 协议,通过在 HTTP 和 TCP 之间添加一个安全层(SSL/TLS),使得数据传输更加...

    如何把你的http访问的页面转换成ssl支持的https访问

    如何把用http访问的网页转换用https访问 &lt;br&gt;关于http,https,SSL的理论不多说,只关注操作面上的技术。 &lt;br&gt;环境:Windows 2000 Server 组件:IIS5.0, 证书颁发机构(安装windows组件) 虚拟目录:...

    SSL及HTTPS配置文档

    SSL是一种协议,用于在互联网上建立安全的连接,而HTTPS则是HTTP协议与SSL/TLS(Transport Layer Security,SSL的后续版本)结合使用的结果,用于加密网页通信,保护用户的隐私和数据安全。 首先,我们要理解SSL...

    SSL证书生成软件、包括转换证书格式

    SSL证书生成软件、包括转换证书格式

    如何把http访问的页面转换成ssl支持的https访问.zip

    在互联网世界中,HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是两种主要的通信协议,用于浏览器与服务器之间的数据交换。HTTP是基础的无加密协议,而HTTPS是在HTTP之上添加了SSL/TLS(安全套接层/传输层...

    iOS AFNetworks https ssl加密

    当涉及到HTTPS和SSL加密时,确保数据传输的安全性变得至关重要。本文将深入探讨iOS中使用AFNetworking进行HTTPS SSL加密的相关知识点。 首先,HTTPS是一种基于HTTP协议的网络安全通信协议,它通过SSL/TLS(Secure ...

    SSL and TLS Theory and Practice.pdf

    ### SSL与TLS理论与实践 #### 一、引言 《SSL与TLS理论与实践》是一本关于安全套接层(Secure Sockets Layer, SSL)和传输层安全(Transport Layer Security, TLS)协议的专业书籍。本书第二版由Rolf Oppliger撰写...

    kettle中调用restful接口时的SSL信任证书问题

    当Kettle尝试访问一个通过HTTPS协议提供服务的RESTful API时,如果服务器使用的是自签名证书或者非信任机构颁发的证书,那么默认情况下,Kettle会拒绝与这样的服务器建立连接,因为它无法验证服务器的身份。...

    Linux 网络编程:加密通讯协议 SSL 编程

    在当今的网络安全领域,加密通讯协议SSL(Secure Sockets Layer,安全套接层)扮演着至关重要的角色。SSL协议能够为基于IP层的网络通讯提供加密和认证服务,保障数据传输的安全性,防止被窃听或篡改。在Linux环境下...

    F5 v11 ssl证书卸载及http跳转

    ### F5 v11 SSL证书卸载与HTTP到HTTPS跳转配置详解 #### 一、前言 在当今互联网安全日益重要的背景下,SSL/TLS证书的正确配置对于保护用户数据和提升网站信任度至关重要。本文将详细介绍如何在F5 v11版本中配置SSL...

    易语言TCP客户端模块 支持SSL

    4. **数据发送与接收**:在SSL/TLS连接上发送和接收数据,开发者需要使用特定的SSL函数,如`SSL_write`和`SSL_read`,在易语言中可能有对应的封装方法。 5. **错误处理**:在TCP和SSL/TLS通信过程中,可能出现各种...

    IOS,Android SSL双向认证HTTPS方式请求及配置证书

    `IOS`和`Android`平台都支持使用`SSL`(Secure Sockets Layer)和其升级版`TLS`(Transport Layer Security)进行加密通信,尤其是对于`HTTPS`协议,它是HTTP与SSL/TLS的结合,确保了数据在网络中的传输安全。...

    nginx、tomcat安装免费ssl安全证书配置

    在互联网世界中,HTTPS协议是确保网站数据传输安全的重要手段,它可以加密用户与服务器之间的通信,防止中间人攻击。SSL(Secure Sockets Layer)安全证书是实现HTTPS的基础,而Nginx和Tomcat是两种常用的Web服务器...

    puttygen客户端 各种SSL证书转换

    puttygen客户端 各种SSL证书转换 PuTTYgen 是一套可以產生金鑰的工具,它可生成 RSA 以及 DSA 的金鑰,做出來的公開以及私有金鑰,可以用於 PuTTY 、 PSCP 、 Plink 以及 Pageant 。

Global site tag (gtag.js) - Google Analytics