https传输过程及原理

1. 基础知识

  • SSL:一般情况下,网站使用的都是明文方式传输数据,但是在涉及到一些隐私信息时(如银行交易),这个时候网站就会跳转到 SSL,SSl的功能就是提供加密数据。这样的话,TCP/IP协议只要做好的自己的事情,数据加密就全权委托给SSL协议完成

  • TLS:TLS是对SSL的扩展和优化,他可以提供数据安全的同时,确保数据的完整性

  • HTTPS:超文本传输安全协议。就是http+ssl/tls,可以理解为安全版http

  • 对称加密:对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据

  • 非对称加密:使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密

  • 证书认证:个人生成的公钥和私钥是不被信任的,只有经过CA认证后后才会被认为是可信任的密钥。目前大多浏览器都内置了国际知名CA的根证书中心,如果我们的密钥被CA中心签名过,那么就是合法的数字证书。但其CA验证密钥过程复杂,所以很多人使用自签名的数字证书

非对称加密使用的是公钥加密和私钥解密机制

2. 图解https的传输过程

  1. 客户端发起https请求,连接到服务端的443端口
  2. 服务端采用的https有一套数字证书,这个证书可以自己配置,也可以像证书管理组织申请,证书的本质是公钥(发给任何人)和私钥(服务端保留)
  3. 服务端将公钥传送证书传递给客户端,证书中包含了很多信息,比如证书的颁发机构,过期时间,网址,公钥等
  4. 客户端解析证书,由客户端的TLS完成,首先会验证公钥是否有效,比如颁发机构,过期时间等。如果有异常,就会弹出警告信息。(这个我们上网应该遇到过,一般都是提示说该网站的证书不可信任,是否继续等)。证书没问题后会随机生成随机值(这个很重要,用于对称加密),然后使用第三步中的证书对这个随机值进行非对称加密
  5. 将证书非对称加密后的随机值传到服务器
  6. 服务器使用私钥对其进行非对称解密后,得到客户端的随机值,然后把内容通过该随机值进行对称加密
  7. 服务端将对称加密后的信息发给客户端
  8. 客户端用之前的生成的随机值来进行对称解密,获取内容明文

3. CA

SSL/TLS 工作流-图二

 

CA: 证书授权中心 (certificate authority)。 它呢,类似于国家出入境管理处一样,给别人颁发护照;也类似于国家工商管理局一样,给公司企业颁发营业执照。
它有两大主要性质:

    1. CA 本身是受信任的 // 国际认可的
    1. 给他受信任的申请对象颁发证书 // 和办理护照一样,要确定你的合法身份,你不能是犯罪分子或造反派。
      当然,你需要被收保护费,同时,CA 可以随时吊销你的证书

3.1 CA证书详细的工作流

 

1)申请认证:服务器需自己生成公钥私钥对 pub_svr & pri_svr,同时根据 pub_svr 生成请求文件 csr, 提交给 CA,csr 中含有公钥、组织信息、个人信息 (域名) 等信息。(图二中 server.req 就是 csr 请求文件)
2)审核信息:CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等。
3)签发证书:如信息审核通过,CA 会向申请者签发认证文件 - 证书。 证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名。 签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名。(图二中生成 server.crt)
4)返回证书:client 如果请求验证服务器,服务器需返回证书文件。(图二中 handshake 传回 server.crt
5)client 验证证书:client 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法。客户端然后验证证书相关的域名信息、有效时间是否吊销等信息。 客户端会内置信任 CA 的证书信息 (包含公钥),如果 CA 不被信任,则找不到对应 CA 的证书,证书也会被判定非法。(图二中 check 可选,我们可以选择不验证服务器证书的有效性)
6)秘钥协商:验证通过后,Server 和 Client 将进行秘钥协商。接下来 Server 和 Client 会采用对称秘钥加密。(对称加密时间性能优)(图二中 pre-master/change_cipher_spec/encrypted_handshake_message 过程)
7)数据传输:Server 和 Client 采用对称秘钥加密解密数据。

3.2 创建一个自签名的SSL证书(X509)



作者:金波_xu
链接:https://www.jianshu.com/p/4a3280585353
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
计算机网络传输原理是指在计算机网络中,数据是如何从发送方传输到接收方的。该过程通常是通过网络协议进行管理和控制的。网络协议是一系列规则和约定,用于确保数据在网络中的可靠传输。计算机网络传输原理可以分为以下几个步骤: 1. 发送端将数据进行分割并添加头文件。头文件包含了一些必要的信息,如源地址、目标地址、数据长度等。这些信息帮助网络设备识别和处理数据。 2. 分割后的数据被封装成数据包,每个数据包都有自己的头文件和数据部分。头文件中的信息包括源地址、目标地址、数据包序号等。 3. 数据包通过路由器和交换机等网络设备进行转发。这些设备根据目标地址和路由表来确定数据包的下一跳。 4. 接收端的网络设备接收到数据包后,会解析头文件信息并将数据包重新组装成完整的数据。 5. 最后,数据会被传递到接收端的应用程序,完成整个数据传输过程。 头文件是在数据传输过程中携带有关数据的元数据。它包含了发送方和接收方的地址信息、数据大小、序号等。通过解析头文件,网络设备可以正确地路由和处理数据。同时,头文件中的校验和字段可以用来检测传输过程中是否有错误发生。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [转载-计算机网络原理](https://blog.csdn.net/greatliuda/article/details/123303328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值