导航:首页 > 文档加密 > htts加密过程

htts加密过程

发布时间:2024-04-30 18:53:48

1. 如何实现https加密传输

1、生成证书请求文件CSR

用户进行https证书申请的第一步就是要生成CSR证书请求文件,系统会产生2个密钥,一个是公钥就是这个CSR文件,另外一个是私钥,存放在服务器上。要生成CSR文件,站长可以参考WEB SERVER的文档,一般APACHE等,使用OPENSSL命令行来生成KEY+CSR2个文件,Tomcat,JBoss,Resin等使用KEYTOOL来生成JKS和CSR文件,IIS通过向导建立一个挂起的请求和一个CSR文件。

温馨提醒:如果是在沃通申请https证书,其数字证书商店(https://buy.wosign.com)已经支持CSR文件由系统自动生成,用户无需事先在Web服务器上生成CSR文件。请参考:SSL证书请求文件(CSR)生成指南网页链接

2、将CSR提交给CA机构认证

CA机构一般有2种认证方式:

(1)域名认证,一般通过对管理员邮箱认证的方式,这种方式认证速度快,但是签发的证书中没有企业的名称,只显示网站域名,也就是我们经常说的域名型https证书。

(2)企业文档认证,需要提供企业的营业执照。国外https证书申请CA认证一般一小时之内,紧急时5分钟。

同时认证以上2种方式的证书,叫EV https证书,EV https证书可以使浏览器地址栏变成绿色,所以认证也最严格。EV https证书多应用于金融、电商、证券等对信息安全保护要求较高的领域。

3、获取https证书并安装

在收到CA机构签发的https证书后,将https证书部署到服务器上,一般APACHE文件直接将KEY+CER复制到文件上,然后修改HTTPD.CONF文件;TOMCAT等需要将CA签发的证书CER文件导入JKS文件后,复制到服务器,然后修改SERVER.XML;IIS需要处理挂起的请求,将CER文件导入。

2. HTTPS 到底加密了些什么内容

https其实是有两部分组成:http + SSL / TLS,也就是在http上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。具体是如何进行加密,解密,验证的,且看下图。

1. 客户端发起https请求

客户端发起https请求就是指用户在浏览器里输入一个https网址,然后连接到server的443端口。

2. 服务器端的配置

采用https协议的服务器必须要有一套SSL数字证书,需要向CA组织(如WoSign沃通CA)申请。这套SSL证书其实就是一对公钥和私钥。如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

3. 传送证书

这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,证书过期时间等等。

4. 客户端解析证书

这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。

5. 传送加密信息

这部分传送的是用SSL证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

6. 服务段解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

7. 传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

8. 客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容。整个过程第三方即使监听到了数据,也束手无策。

3. HTTPS 加密算法过程

1、HTTP 协议(HyperText Transfer Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。

2、HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。

3、SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。

4、TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)。

如上图所示 HTTPS 相比 HTTP 多了一层 SSL/TLS。

1、对称加密

有流式、分组两种,加密和解密都是使用的同一个密钥。

例如:DES、AES-GCM、ChaCha20-Poly1305等

2、非对称加密

加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。

例如:RSA、DSA、ECDSA、 DH、ECDHE

3、哈希算法

将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。

例如:MD5、SHA-1、SHA-2、SHA-256 等

4、数字签名

签名就是在信息的后面再加上一段内容(信息经过hash后的值),可以证明信息没有被修改过。hash值一般都会加密后(也就是签名)再和信息一起发送,以保证这个hash值不被修改。

C++音视频开发学习资料 :点击 音视频开发(资料文档+视频教程+面试题)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

HTTP协议在浏览器/服务器间进行数据的传输是明文的,不做任何的加密,通俗来说,就是“裸奔”,这样会产生什么样的问题那,我们来举一个例子:

在这里插入图片描述

上述我们通过两个人物模仿了服务器和客户端的交互,我们可以看出,小明和小花之间进行数据通信的时候采用的是明文传输的、那么此时很有可能被中间人获取信息、并进行数据篡改,这种行为就叫 中间人攻击。

所以 HTTP 传输面临的风险有:

(1) 窃听风险:黑客可以获知通信内容。

(2) 篡改风险:黑客可以修改通信内容。

(3) 冒充风险:黑客可以冒充他人身份参与通信。

哈哈、此时你是不是不能很愉快的上网冲浪了呀,别担心,我们此时可以对明文进行加密:

这样是不是比原来安全多了呀!但是这样就足够安全了吗?显然不是的,如果小明和小花在第一次聊天的时候,信息被中间人截取到了,那么中间人是不是也就有密钥了,同样可以对数据进行加解密和修改了那

这可怎么办那? 加密的数据还是不安全的啊? 别急,上面我们采用的是对称加密(换句话说就是我们发送的密钥技能加密、也能解密,那么中间人只要拿到密钥消息对他而言就是透明的了),我们还可以采用非对称加密方式进行加密数据(非对称加密一般都会有一个私钥和公钥组成。可以通过公钥加密,私钥解密,也可以通过私钥加密,公钥解密两种方式) ,对密钥的传送在格外加一层保护,当小明和小花在建立通信的时候,小花会把公钥KEY发送给小明,当小明拿到公钥KEY 后,会自己生成一个 密钥 KEY2 , 并用 KEY 对KEY2 进行加密(此时小明用的是公钥加密)

在通信过程中,即使中间人一开始就获取到了公钥KEY ,但是他不知道私钥,就对数据无法进行解密,仍旧是没办法获取KEY2。这样加密后,数据是不是就安全多了呀。这种情况下就可以和妹子愉快的进行聊天了吗?别急、所谓道高一尺魔高一丈,常言道:流氓不可怕,就怕流氓有文化。这种状态下我们的数据,相当来说是比较安全的,但是如果此时中间人获取公钥后,发送给小明一个伪公钥,又会产生什么问题那?

好吧,说到这里,大家是不是快恨死这个中间人了啊,哈哈~~~还有据俗话别忘记了,魔高一尺道高一丈,对于这种情况。我们可以借助与第三方证书平台,证书平台具备产生证书的功能,服务器(小花)可以去证书机构申请证书,证书机构通过小花提供的信息(网址、机构、法人等、公钥),生成公钥和私钥(证书机构的),通过私钥进行数据的非对称加密生成证书、将证书颁发给小花。那么此时小花就可以在进行数据交互的时候,传递证书了。

小明只需要知道证书的发证机构、就可以很方便的获取到证书的公钥、从而对证书进行校验并获取公钥、然后进行后续的操作。

那么此时小伙伴是不是又有疑问了,如果 中间人 获取到证书、并伪造证书给小明、怎么破???

不错不错、如果大家有这个想法的话,说明大家都在认真思考了。那么我们假设中间人获取到了证书、中间人也可以在证书机构获取公钥,并通过证书机构公钥获取 服务器发送的公钥,中间人此时也可以自己生成公钥,并向证书机构申请证书、并发送伪证书给小明,但是因为证书是经过签名认证的,包含(网址、机构、法人等、公钥)等信息,小明在拿到伪证书后,通过证书公钥很容易就发现证书是不合法的(网址、法人的信息可定不符,否则申请不到证书的)。

上述我们分享的内容就是HTTPS的主体思想,HTTPS增加了SSL安全层,上述介绍的所有认证流程都是在SSL安全层完成验证的。今天我就分享HTTPS的实现原理就说这么多了。 ﹏

HTTPS 缺点:

(1)SSL 证书费用很高,以及其在服务器上的部署、更新维护非常繁琐。

(2)HTTPS 降低用户访问速度(多次握手)。

(3)网站改用HTTPS 以后,由HTTP 跳转到 HTTPS 的方式增加了用户访问耗时(多数网站采用302跳转)。

(4)HTTPS 涉及到的安全算法会消耗 CPU 资源,需要增加大量机器(https访问过程需要加解密)。

阅读全文

与htts加密过程相关的资料

热点内容
怎么从appstore商城买东西 浏览:182
大秀直播平台源码 浏览:418
java视屏 浏览:932
电脑中如何给程序加密 浏览:238
java排序容器 浏览:942
职称证书在哪个app下载 浏览:362
四九算法算男女 浏览:659
javawindows8 浏览:496
2021世界程序员节 浏览:484
php翼支付 浏览:882
盈通服务器ip地址 浏览:789
3des算法的c语言实现 浏览:873
网上怎样购买服务器地址 浏览:813
新氧app都在哪个城市 浏览:731
十二大加密货币图片 浏览:315
数据库日志自动压缩 浏览:929
手机表格文档用哪个app 浏览:77
找人开发app的公司怎么样 浏览:652
android蓝牙发送数据 浏览:428
范文澜中国通史pdf 浏览:756