把这几天学习到的关于ssl和https协议的内容在这里分享一下,适合一些像我一样的网络协议初学者。
ssl协议的起源和历史我就不再多说了,就是那个Netscape 网景公司开发的,它的作用主要是提供了一种安全传输方式,我们知道网上有很多的时候需要我们去输入用户名和密码,那么假设我们自己的电脑防病毒还可以,但是用户名和密码肯定还是要通过互联网来传到服务器那里,这个步骤就要经过很多的路由等,如果明文传输,就可以在你的局域网内或者通过的路由中监听,窃取你的用户名密码。
SSL协议位于TCP/IP协议与各种应用层协议之间。当我们打开一个https的网页时,步骤如下:
1. 客户端通过SSL协议把服务器需要的客户端的SSL版本信息,加密算法设置,会话数据,发送给服务器。
2. 服务器通过SSL协议把自己的SSL的版本信息,加密算法设置,会话数据和其他通信需要的信息发给客户端。服务器也把服务器的证书发给客户端,另外如果客户端请求服务器资源需要客户端认证,服务器端就会请求客户端的证书。
3. 客户端使用这些服务器发来的信息认证服务器。如果服务器不能被认证,那么客户将被提示一个警告,并且通知客户不能建立加密和认证连接。如果服务器被成功认证,客户端将进入第四步。
4. 使用到目前为止的所有数据生成握手过程。客户端(和服务器合作之下)为会话创建一个pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字)。使用服务器的公共密钥加密(在第二步的服务器的证书中获得公共密钥),然后把这个加了密的pre-master secret发送给服务器。
5. 如果服务器请求客户端认证(在握手过程是可选项),客户端也需要标记一个特殊的数据包,客户端和服务器都知道的。在这个过程中,客户端发送一个通过pre-master secret加密过的标记的数据包和客户端自己的证书给服务器。
6. 如果服务器请求了客户端的认证,那么服务器就要尝试去认证客户端。(具体的看客户端认证细节)如果客户端认证不通过,会话将被终止。如果客户端被认证通过,服务器将使用私有密钥解密pre-master secret,然后执行一系列步骤生成master secret
7. 客户端和服务器端使用master secret去生成会话密钥。会话密码是在ssl 会话的时候对称密钥被用来加密,解密信息校验信息完整性的密钥。(检查会话过程中任何数据改变)
8. 客户端发送一个信息给服务器端,通知服务器端未来的信息将被会话密码加密,然后客户端发送一个单独(加密)信息指示客户端部分的握手会话已经完成。
9. 服务器发送一个信息通知客户端未来的会话信息将被会话密码加密,然后服务器发送一个单独(加密)信息指示服务器部分的握手部分已经完成
10. SSL握手结束,开始正式会话。客户端和服务器端使用对称会话密钥加密解密数据并且互相传送校验完整性。
11. 这是一个正常的操作过程和加密隧道。在任何时候,当内部或者外部触发条件(不是自动就是用户手动),任何一端就要从新协商会话,所有的流程将从新开始。
有几个问题我在学过之后一直在考虑:
1. 如果中间的路由从双方发送证书的时候就开始监听的话呢,是否就可以窃取内容了?
答:否,服务器那边有一个非对称密钥加密系统,首先他将公开密钥发送给客户端,客户端接收之后为会话创建一个pre-master secret(一个用在对称加密密钥生成中的 46 字节的随机数字),然后用服务器发送过来的公开密钥加密,然后将加密后的内容发送给服务器,这两个阶段,如果有人监听,即使窃取到也没办法,首先公开密钥对所有人其实都是公开的,用公开密钥加密后的内容是非常非常难解密的,只有用服务器自己有的私有密钥解密才可以。服务器获取到46字节的随机数字之后,通过这个来对将来要发送的加密内容加密,而这个解密方法之后对应的那个客户端才知道,钥匙是通过公开密钥加密的,其他人都不知道,所有就保证了内容的安全性。
2. 我们自己建设的网站有时会使用没有正式证书的ssl加密,浏览器会提醒用户,默认建议关闭,证书是必要的吗?
答:经过认证的证书其实就是确保网站的真实性,还有一些专门的使地址栏显示为绿色的也都是确保网站的真实性,防止一些页面一模一样的钓鱼网站。
3. 用ssl协议之后,我们输入用户名密码就绝对安全了吗?
答:否,ssl协议只能保证server和client传输之间的安全,如果你的电脑有木马病毒,例如监听键盘,浏览器恶意插件等,ssl可管不了这些。。。还有如果server收到攻击,它的信息流失丢掉,这也不能保证的。
分享到:
相关推荐
IP和相关协议<br>第9章 IP协议家族 77<br>9.1 TCP/IP模型 77<br>9.1.1 解剖TCP/IP模型 78<br>9.1.2 协议组件 78<br>9.2 理解网际协议(IP) 79<br>9.2.1 IPv4结构 79<br>9.2.2 IP做什么 80<br>9.3 理解传输控制协议...
3 -<br>2.1.2 PPTP协议 - 4 -<br>2.1.3 L2F协议 - 4 -<br>2.1.4 L2TP协议 - 5 -<br>2.1.5 IPSec协议 - 6 -<br>2.1.6 GRE协议 - 7 -<br>2.1.7 SSL协议 - 8 -<br>2.2 网络安全中的主要技术 - 9 -<br>2.2.1 防火墙技术...
IP和相关协议<br>第9章 IP协议家族 77<br>9.1 TCP/IP模型 77<br>9.1.1 解剖TCP/IP模型 78<br>9.1.2 协议组件 78<br>9.2 理解网际协议(IP) 79<br>9.2.1 IPv4结构 79<br>9.2.2 IP做什么 80<br>9.3 理解传输控制协议...
Serv-U FTP Server 6.4.0.1 final<br><br>Serv-U 是一种被广泛运用的FTP服务器端软件,支持 9...它具有非常完备的安全<br>特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过<br>SSL加密连接保护您的数据安全等。
Serv-U 是一种被广泛运用的FTP服务器端软件,支持 9x/ME/<br>NT/2K 等全Windows系列。...它具有非常完备的安全<br>特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过<br>SSL加密连接保护您的数据安全等。<br>
基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发源码-SSL及HTTPS协议实例源码.zip 基于java的开发...
跨行汇款<br>- 跨境汇款 | **转账汇款**<br>- 活期转账汇款<br>- 定活互转<br>- 向企业转账<br>- 跨行转账 | ##### 表二:银行网上企业业务比较 | 招商银行 | 中国银行 | 工商银行 | 建设银行 | | --- | --- | --- ...
Serv-U 是一种被广泛运用的FTP服务器端软件,支持 9x/ME/<br>NT/2K 等全Windows系列。...它具有非常完备的安全<br>特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过<br>SSL加密连接保护您的数据安全等。
APMServ 5.2.0 是一款拥有图形界面的快速搭建Apache 2.2.3、PHP 5.2.0...<br>SQLiteManager 1.2.0 [SQLite数据库在线管理工具]<br>ZendOptimizer 3.2.0 [PHP脚本加速引擎]<br>OpenSSL 0.9.8d [HTTPS(SSL)安全传输协议]
<secureScheme>https</secureScheme> <securePort>8443</securePort> </httpConfig> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>8080</port> ...
SSL协议是HTTPS的基础,它通过在客户端和服务器之间建立加密通道来保护数据的隐私性。SSL协议主要包含三个关键过程:握手协议、密钥交换和数据传输。在握手阶段,客户端和服务器会交换证书,确认彼此的身份,并协商...
[其他选项]<br> xscan -file <主机列表文件名> <检测项目> [其他选项]<br><br> 其中<检测项目> 含义如下:<br> -active : 检测目标主机是否存活<br> -os : 检测远程操作系统类型(通过NETBIOS和SNMP协议)<br> ...
SSL协议主要用于保护网络通信,防止数据在传输过程中被窃取或篡改。它包含以下几个核心组件: 1. **密钥交换**:SSL协议使用非对称加密技术进行密钥交换。公钥用于加密信息,私钥用于解密。客户端和服务器端在建立...
3. **表格和表单**:`<table>`元素用于创建表格,`<tr>`定义行,`<td>`和`<th>`定义单元格。`<form>`用于创建表单,`<input>`、`<select>`、`<textarea>`等元素用于用户输入。 4. **CSS和JavaScript集成**:通过`...
action=download-manifest&url=https://yourserver.com/manifest.plist">安装应用</a> ``` 其中,`https://yourserver.com/manifest.plist`是你的服务器上托管的manifest.plist文件的URL。 2. **manifest.plist...
它具有非常完备的安全特性,支持SSl FTP传输,支持在多个Serv-U和FTP客户端通过SSL加密连接保护您的数据安全等。<br><br> <br><br>Serv-U 是目前众多的FTP 服务器软件之一。通过使用Serv-U,用户能够将任何一台PC ...
SSL协议的核心功能包括身份验证、密钥交换和数据加密。当客户端(如浏览器)与服务器进行通信时,SSL首先会进行握手过程,以确保双方的身份,并协商一个安全的加密算法。服务器会提供它的数字证书,其中包含了公钥,...
2. 在 Web 开发中,通常使用 SSL/TLS 加密协议确保数据传输的安全。 其他 1. 在 Web 开发中,通常使用 JPEG 和 PNG 两种图像格式。 2. 在 Web 开发中,通常使用 `<a>` 元素定义超链接。 3. 在 Web 开发中,通常...
SSL协议主要包括握手协议、记录协议、密钥交换协议和证书协议等组件。在握手过程中,客户端和服务器会协商加密算法、交换公钥,生成会话密钥,并验证彼此的身份。 HTTPS是HTTP协议的安全版本,它在HTTP的基础上结合...