zoukankan      html  css  js  c++  java
  • 生动详解TLS加密体系

    谈到这个词,可能大家的第一印象就是加密,而对TLS了解甚少。那么在介绍 TLS 加密体系之前先来讲一讲加密。
    一提到加密,可能很多人脑海中会浮现出电视剧里特务的场景,他们拿出一台电报机,“滴滴滴滴”按下情报报文,接收方带着耳机,紧张的记录下对方发来的情报;然后拿出密码本(通常是一本书甚至是一本地图),进行信息的解密工作。他们将信息进行加密的目的 就在于让无关者无法获取到信息。因为一旦机密信息泄露,后果将不堪设想。
    在21世纪,这个信息化迅速发展,科学技术取得重大突破的几天,加密工作依然存在,并且扮演着越来越重要的角色。
    大家都知道,互联网内容访问遵循HTTP协议规范,但是HTTP协议采用明文传输,可能存在信息窃听或身份伪装等安全问题。在这个过程中,有效数据被窃取,无关人员进行身份伪装等不安全因素,可能会对公司、机构等造成不可估量的损失。


    接下来,来和大家说一下,TLS的含义:传输层安全性协议(英语:Transport Layer Security,缩写就是TLS)及其前身安全套接层(Secure Sockets Layer,缩写作SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
    网景公司在1994年推出首版网页浏览器,网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。HTTPS协议混合对称密钥加密和非对称加密机制,在保证可认证的前提下,提高加密传输速度。这个密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听,安全性也就大大增强。


    在上面的介绍中,我们知道可以通过密钥进行对数据信息的加密,https混合对称密钥加密和非对称加密机制,那么接下来我们就来详细了解一下这两种加密机制。
    首先,我们先来看第一种,对称密钥加密。它呢,是指传输双方共享相同的秘钥,通用相同的秘钥实现数据的加密和解密过程。
    接下来我们来举个实例帮助大家理解对称密钥加密的工作过程。
    假设现在甲和乙是一对生意搭档,他们住在不同的城市。由于生意上的需要,他们经常会相互之间邮寄重要的货物。为了保证货物的安全,他们商定制作一个保险盒,将物品放入其中。他们打造了两把相同的钥匙分别保管,以便在收到包裹时用这个钥匙打开保险盒,以及在邮寄货物前用这把钥匙锁上保险盒。
    上面是一个将重要资源安全传递到目的地的传统方式,只要甲乙小心保管好钥匙,那么就算有人得到保险盒,也无法打开。这个思想被用到了现代计算机通信的信息加密中。

    对称加密算法的优点是算法公开、计算量小、加密速度快、加密效率高。
    对称加密算法的缺点是在数据传送前,发送方和接收方必须商定好秘钥,然后使双方都能保存好秘钥。其次如果一方的秘钥被泄露,那么加密信息也就不安全了。
    另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一秘钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

    在了解了对称密钥加密后,我们来看一下非对称秘钥加密。
    非对称加密算法需要两个密钥:公钥和私钥。公钥与私钥是一对,公钥匙可以公开的,私钥需要保密,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法
    接下来和大家探讨一下,非对称秘钥加密的工作过程:
    1.A要向B发送信息,A和B都要产生一对用于加密非对称加密算法
    和解密的公钥和私钥。
    2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
    3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
    4.A将这个消息发给B(已经用B的公钥加密消息)。
    5.B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

     

    对于非对称秘钥加密算法,它的安全性可靠性极高,在非对称体系下可以实现签名认证和加密传输功能,但是非对称秘钥加密代价高,不适合大量数据传输。

    为了便于理解,接下来我们来看一个实例让大家都签名认证和非对称秘钥加密有一个更深入更具体的了解。
    假设现在张三要向李四传送信息,为了保证信息传送的保密性、真实性,我们就需要对传送的信息进行数字加密和签名
    在介绍其传送过程之前,我们先来确定一下我们的发送方和接收方
    大家可以看到最上面的这个,蓝色头像,我们假设他是张三,在这里也就是我们的发送方,下面的这个红色的头像呢,就是李四,也就是我们的接收方
    接下来我们来通过实例了解一下签名认证的整个过程:
    (1)首先,从发送方张三这出来了我们要发送的信息,也就是“我叫张三”这句话,张三对这句话用自己的私钥加密得到数字签名,附在信息后面,也就是我们这里产生的密文X
    (2)对于密文X,用李四的公钥,对要发送的信息进行加密,也就是这里形成的密文Y。这里为什么要用李四的公钥呢?
    大家可以思考一下。答案很明显,只有用自己的公钥和私钥才能解密成功,那么我们吧数据传送给李四,李四肯定要用自己的私钥进行解密,与之相对应的,我们就应该用李四的公钥进行这里的加密操作。
    (3)加下来将密文Y通过公网进行传输,传送给我们的接收方李四
    (4)李四收到传递来的信息之后,先用自己的私钥对得到信息进行解密处理,得到密文X。
    (5)私钥处理过后,接下来我们用张三的公钥进行解密,解密成功也就得到了我们想要传递的信息了。
    至此,就完成了我们要讲述的签名认证过程。如下图所以:

    HTTPS协议使用TLS加密体系,通过第三方认证机构(CA)颁发和公开公钥证书。客户端通过CA认证公钥真实性。
    CA是证书的签发机构, CA是负责签发证书、认证证书、管理已颁发证书的机关。CA 也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。

    下面这幅图大概向我们展现了CA验证的过程:
    (1)如果用户想得到一份属于自己的证书,他应先向 CA 提出申请,发送访问请求
    (2)在 CA 判明申请者的身份后,便为他分配一个公钥,并且 CA 将该公钥与申请者的身份信息绑在一起,并为之签字后,便形成证书发给申请者
    (3)如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签字进行验证,一旦验证通过,该证书就被认为是有效的。

    转自:https://blog.csdn.net/qq_43584847/article/details/95042107?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-6.control

  • 相关阅读:
    azure虚拟机创建后如何ssh私钥连接
    VisualStudio在本地创建新解决方案后如何推送到devops
    【转载】sar命令详解
    【转载】Redis【入门】就这一篇!
    【转载】算法复杂度解析,何为O()
    centOS data格式文件
    linux centOS命令整理
    机器学习中评估计算:PR,ROC,AUC计算方法
    Python中中文输出显示以及列表初始化坑坑
    SKLearn中模型持久化
  • 原文地址:https://www.cnblogs.com/4AMLJW/p/jiamijiemi20210605173955.html
Copyright © 2011-2022 走看看