当前位置:首页 » 行业资讯 » 周边资讯 » 正文

探索HTTP请求背后的HTTPS安全机制

文章标题:揭秘HTTP请求背后的HTTPS安全机制

在互联网世界中,当我们访问任何网站或应用程序时,背后所进行的通信大多数基于HTTP或HTTPS协议。

其中,HTTPS协议由于其强大的安全性而备受推崇。

那么,HTTP请求是如何转化为HTTPS安全通信的呢?本文将深入探讨HTTPS背后的安全机制。

一、HTTP协议简介

我们需要了解HTTP协议。

HTTP(Hypertext Transfer Protocol)是一种应用层协议,是互联网中最常用的通信协议之一。

它用于在客户端和服务器之间传输数据,包括文本、图片、音频和视频等。

由于HTTP协议在设计之初并未考虑通信的安全性,因此其通信内容容易被中间人攻击和窃取。

二、HTTPS协议及其优势

为了解决HTTP协议的这一安全隐患,HTTPS协议应运而生。

HTTPS(Hypertext Transfer Protocol Secure)是一种通过SSL/TLS加密技术实现的安全通信协议。

其主要优势在于:

1. 数据加密:HTTPS协议使用对称或非对称加密算法对通信数据进行加密,确保数据在传输过程中的安全性。

2. 身份验证:通过对服务器进行身份验证,确保客户端正在与合法的服务器进行通信。

3. 防止篡改:通过检查数据的完整性,确保数据在传输过程中未被篡改。

三、HTTPS安全机制详解

1. SSL/TLS加密技术:HTTPS通过SSL(Secure Socket Layer)或TLS(Transport Layer Security)协议进行数据加密。这些协议使用对称和非对称加密算法对通信数据进行加密和解密。在通信过程中,服务器和客户端通过协商选择一种加密算法,并建立安全的通信通道。

2. 证书验证:为了确保服务器的合法性,HTTPS引入了证书验证机制。当客户端访问服务器时,服务器会向其发送一个数字证书。该证书包含服务器的公钥、颁发机构等信息。客户端会验证证书的合法性,以确保正在与合法的服务器进行通信。

3. 握手过程:在HTTPS通信中,服务器和客户端之间需要进行握手过程。握手过程中,双方会协商使用的加密算法、生成会话密钥等。通过握手过程,双方建立了一个安全的通信通道,后续的数据传输都会通过这个通道进行。

4. 数据完整性保护:HTTPS还提供了数据完整性保护机制。通过对数据进行哈希处理并比较哈希值,可以确保数据在传输过程中未被篡改。如果发现数据被篡改,通信双方会拒绝接受数据并终止通信。

四、HTTPS的实际应用与挑战

随着网络安全意识的提高,越来越多的网站和应用程序开始采用HTTPS协议进行通信。

在实际应用中,HTTPS也面临着一些挑战。

例如,部分网站由于证书配置不当或使用了不受信任的证书颁发机构,导致用户在使用时遇到安全问题。

HTTPS的部署和维护成本也相对较高,对于一些小型网站或应用程序来说可能难以承受。

五、结论

HTTPS协议在互联网通信中起到了至关重要的作用。

通过对HTTP请求进行加密、身份验证和数据完整性保护等措施,确保了数据在传输过程中的安全性。

在实际应用中,我们还需要关注证书配置、安全性等方面的问题。

未来,随着技术的不断发展,我们期待更加完善的网络安全技术来保护用户的隐私和安全。


ssl应用原理

SSL工作原理 2007-03-08 22:15 SSL 是一个安全协议,它提供使用 TCP/IP 的通信应用程序间的隐私与完整性。

因特网的 超文本传输协议 (HTTP)使用 SSL 来实现安全的通信。

在客户端与服务器间传输的数据是通过使用对称算法(如 DES 或 RC4)进行加密的。

公用密钥算法(通常为 RSA)是用来获得加密密钥交换和数字签名的,此算法使用服务器的SSL数字证书中的公用密钥。

有了服务器的SSL数字证书,客户端也可以验证服务器的身份。

SSL 协议的版本 1 和 2 只提供服务器认证。

版本 3 添加了客户端认证,此认证同时需要客户端和服务器的数字证书。

SSL 握手 SSL 连接总是由客户端启动的。

在SSL 会话开始时执行 SSL 握手。

此握手产生会话的密码参数。

关于如何处理 SSL 握手的简单概述,如下图所示。

此示例假设已在 Web 浏览器 和 Web 服务器间建立了 SSL 连接。

图SSL的客户端与服务器端的认证握手 (1) 客户端发送列出客户端密码能力的客户端“您好”消息(以客户端首选项顺序排序),如 SSL 的版本、客户端支持的密码对和客户端支持的数据压缩方法。

消息也包含 28 字节的随机数。

(2) 服务器以服务器“您好”消息响应,此消息包含密码方法(密码对)和由服务器选择的数据压缩方法,以及会话标识和另一个随机数。

注意:客户端和服务器至少必须支持一个公共密码对,否则握手失败。

服务器一般选择最大的公共密码对。

(3) 服务器发送其SSL数字证书。

(服务器使用带有 SSL 的 X.509 V3 数字证书。

) 如果服务器使用 SSL V3,而服务器应用程序(如 Web 服务器)需要数字证书进行客户端认证,则客户端会发出“数字证书请求”消息。

在 “数字证书请求”消息中,服务器发出支持的客户端数字证书类型的列表和可接受的CA的名称。

(4) 服务器发出服务器“您好完成”消息并等待客户端响应。

(5) 一接到服务器“您好完成”消息,客户端( Web 浏览器)将验证服务器的SSL数字证书的有效性并检查服务器的“你好”消息参数是否可以接受。

如果服务器请求客户端数字证书,客户端将发送其数字证书;或者,如果没有合适的数字证书是可用的,客户端将发送“没有数字证书”警告。

此警告仅仅是警告而已,但如果客户端数字证书认证是强制性的话,服务器应用程序将会使会话失败。

(6) 客户端发送“客户端密钥交换”消息。

此消息包含 pre-master secret (一个用在对称加密密钥生成中的 46 字节的随机数字),和 消息认证代码 ( MAC )密钥(用服务器的公用密钥加密的)。

如果客户端发送客户端数字证书给服务器,客户端将发出签有客户端的专用密钥的“数字证书验证”消息。

通过验证此消息的签名,服务器可以显示验证客户端数字证书的所有权。

注意: 如果服务器没有属于数字证书的专用密钥,它将无法解密 pre-master 密码,也无法创建对称加密算法的正确密钥,且握手将失败。

(7) 客户端使用一系列加密运算将 pre-master secret 转化为 master secret ,其中将派生出所有用于加密和消息认证的密钥。

然后,客户端发出“更改密码规范” 消息将服务器转换为新协商的密码对。

客户端发出的下一个消息(“未完成”的消息)为用此密码方法和密钥加密的第一条消息。

(8) 服务器以自己的“更改密码规范”和“已完成”消息响应。

(9) SSL 握手结束,且可以发送加密的应用程序数据。

如何通过HTTPS方式访问web service

web service在企业应用中常常被用作不同系统之间的接口方式。

但是如果没有任何安全机制的话,显然是难以委以重任的。

比较直接的web service加密方式就是使用HTTPS方式(SSL证书加密)加密连接,并且只允许持有信任证书的客户端连接,即SSL双向认证。

这样就保证了连接来源的可信度以及数据在传输过程中没有被窃取或篡改。

通过HTTPS加密方式访问web service具体方法如下:【准备工作】(1)检查JDK的环境变量是否正确。

本文使用JDK 1.6(2)准备web服务器,这里选用TOMCAT 6.0(3)准备web service服务端和客户端。

【生成证书】这里用到的文件,这里存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。

1生成服务端证书开始-运行-CMD-在dos窗口执行下执行命令:keytool -genkey -v -aliastomcat -keyalg RSA -keystore D:/SSL/server/ -dnameCN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN -validity 3650-storepass zljzlj -keypass zljzlj说明:keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help-genkey 创建新证书-v 详细信息-alias tomcat 以”tomcat”作为该证书的别名。

这里可以根据需要修改-keyalg RSA 指定算法-keystoreD:/SSL/server/ 保存路径及文件名-dnameCN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN 证书发行者身份,这里的CN要与发布后的访问域名一致。

但由于这里是自签证书,如果在浏览器访问,仍然会有警告提示。

真正场景中建议申请CA机构(wosign)签发的SSL证书更安全。

-validity 3650证书有效期,单位为天-storepass zljzlj 证书的存取密码-keypass zljzlj 证书的私钥2 生成客户端证书执行命令:keytool ‐genkey ‐v ‐aliasclient ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐dnameCN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN ‐validity 3650 ‐storepassclient ‐keypass client说明:参数说明同上。

这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。

下面要做的工作才是建立2者之间的信任关系。

3 导出客户端证书执行命令:keytool ‐export ‐aliasclient ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client‐rfc ‐file D:/SSL/client/说明:-export 执行导出-file 导出文件的文件路径4 把客户端证书加入服务端证书信任列表执行命令:keytool ‐import ‐aliasclient ‐v ‐file D:/SSL/client/ ‐keystoreD:/SSL/server/ ‐storepass zljzl说明:参数说明同前。

这里提供的密码是服务端证书的存取密码。

5 导出服务端证书执行命令:keytool -export -aliastomcat -keystore D:/SSL/server/ -storepass zljzlj -rfc -fileD:/SSL/server/说明:把服务端证书导出。

这里提供的密码也是服务端证书的密码。

6 生成客户端信任列表执行命令:keytool -import -fileD:/SSL/server/ -storepass zljzlj -keystoreD:/SSL/client/ -alias tomcat –noprompt说明:让客户端信任服务端证书【 配置服务端为只允许HTTPS连接】1 配置Tomcat 目录下的/conf/代码:<Connectorport=8443 protocol=HTTP/1.1 SSLEnabled=truemaxThreads=150 scheme=https secure=trueclientAuth=true sslProtocol=TLSkeystoreFile=D:/SSL/server/ keystorePass=zljzljtruststoreFile=D:/SSL/server/ truststorePass=zljzlj />说明:在里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。

其中的clientAuth=true 指定了双向证书认证。

怎样连接启用安全机制的计算机网络

你好,在URL地址栏(网址栏)中,在HTTP后面加上一个S,即https://地址即可。这是加密机制,有些网页必须用这样过方式才能打开,,当然,有些网页用这个方式打不开,,普遍的还是 http:// 地址谢谢,希望我的回答对你有所帮助

未经允许不得转载:虎跃云 » 探索HTTP请求背后的HTTPS安全机制
分享到
0
上一篇
下一篇

相关推荐

联系我们

huhuidc

复制已复制
262730666复制已复制
13943842618复制已复制
262730666@qq.com复制已复制
0438-7280666复制已复制
微信公众号
huyueidc_com复制已复制
关注官方微信,了解最新资讯
客服微信
huhuidc复制已复制
商务号,添加请说明来意
contact-img
客服QQ
262730666复制已复制
商务号,添加请说明来意
在线咨询
13943842618复制已复制
工作时间:8:30-12:00;13:30-18:00
客服邮箱
服务热线
0438-7280666复制已复制
24小时服务热线