欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

SSL&TLS传输层加密协议实现图解

程序员文章站 2022-06-28 11:30:52
一、SSL&TLS     1.SSL:Secure Sockets Layer ,加密套接字协议层    ...

一、SSL&TLS
    1.SSL:Secure Sockets Layer ,加密套接字协议层
       1)SSL是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密
             Secure Socket Layer为Netscape网景公司1994年所研发,用以保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听。
       2)SSL协议可分为两层:记录协议、握手协议
           SSL Record Protocol:建立在可靠的传输协议如TCP之上为高层协议提供数据封装、压缩、加密等基本功能
           SSL Handshake Protocol:建立在SSL记录协议之上用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
         3)SSL版本:1.0v  2.0v  3.0v
              1.0版本未公布,2.0版本才发出就被暴出大量漏洞
              主流版为3.0。广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输,但近期被爆出安全漏洞
 
     2.TLS:Transport Layer Security,安全传输层协议
           1999年,IETF在仿照SSL发布,为防止SSL一家独大,基本和SSL协议兼容
           (1)版本:V1.0, V1.1, V1.2, V1.3
        V1.3现在为草案支持椭圆曲线算法,现在主流是V1.2
(2)分层设计:
       1)最底层:基础算法原语的实现,aes, rsa, md5
       2)向上一层:各种算法的实现;
       3)再向上一层:组合算法实现的半成品;
      4)用各种组件拼装而成的各种成品密码学协议软件;
 
    3.SSL和TLS实现网络安全性:http  -->  SSL/TLS --> https
          传输层协议有TCP,UDP,SCTP,不同主机上的进程间通信通过socket(ip:port)
          client ip:port  serverip:port
port:进程地址,进程向内核注册使用某端口(独占)
套接字一般处于监听模式:LISTEN(ip:port),占用端口,发起请求是启用服务
 
 
 
 
二、传输安全性实现:密钥算法协议
    1.网络传输安全性
           (1)安全的目标
       保密性:confidentiality
       完整性:integrity
       可用性:availability
           (2)攻击类型
      威胁保密性的攻击:窃听、通信量分析;
      威胁完整性的攻击:更改、伪装、重放、否认
      威胁可用性的攻击:拒绝服务(DoS)
           (3)解决方案
      技术层面:加密和解密
      服务层面:用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务
    2.密钥算法
         (1)对称加密:加密和解密使用同一个密钥;
                  1)特性:加密、解密使用同一个密钥;将原始数据分割成为固定大小的块,逐个进行加密;
                  2)缺陷:密钥过多;密钥分发困难;
                  3)种类:
               DES:Data Encryption Standard,数据加密标准;算法的入口参数有三个:Key、Data、Mode。
                                              Key为7个字节共56位,是DES算法的工作密钥;
                                              Data为8个字节64位,是要被加密或被解密的数据;
                                              Mode为DES的工作方式,有两种:加密或解密

               3DES:三轮加密的DES
               AES:Advanced Encryption Standard;  (128bits, 192bits, 256bits, 384bits)
               Blowfish、Twofish、IDEA、RC6、CAST5
         (2)公钥加密:密钥分为公钥与私钥
                  1)公钥:从私钥中提取产生;可公开给所有人;pubkey
       2)私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
       3)特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
       4)用途:身份认证,数字签名:主要在于让接收方确认发送方的身份;
             密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
             数据(特征码)加密:其加密速度比对称加密慢三个数量级,所以不能做全数据加密
        5)算法:RSA, DSA, ELGamal
   DSS: Digital Signature Standard
   DSA:Digital Signature Algorithm
         (3)单向加密:即提出数据指纹;只能加密,不能解密
                  1)特性:定长输出、雪崩效应;
       2)功能:完整性校验;
       3)算法:md5:Message Digest 5, 128bits,消息摘要算法,版本号为五
           sha1:Secure Hash Algorithm 1, 160bits ,安全的Hash算法
           sha224, sha256, sha384, sha512
    3.密钥交换协议:IKE(Internet Key Exchange)
           (1)公钥加密
           (2)DH(Deffie-Hellman)算法:密码本身无需在互联网上传输,但双方能得到一致的密码
                   扩展:ECDH(椭圆曲线DH)、ECDH(临时椭圆曲线DH)
      实现方案简介:
   1)A和B生成两个数字:p, g。p大素数和g,可以明文可以传输
               2)A和B各自自定义一个数字x、y,进行阶乘取模操作,将其结果传递给对方
            A私下生成x     --> p^x%g ==> B
            B私下生成y    --> p^y%g ==> A
    3)A和B进行解密操作
            A: (p^y%g)^x=p^yx%g  ; B: (p^x%g)^y=p^xy%g
    4.PKI:Public Key Infrastructure公钥基础设施
          (1)PKI组成
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库:CB,公共存储证书位置
          (2)X.509v3:定义了证书的结构以及认证协议标准
     版本号、序列号、签名算法ID、发行者名称、有效期限、主体名称、主体公钥、发行者的惟一标识
     主体的惟一标识、扩展、发行者的签名

 

一、SSL&TLS
    1.SSL:Secure Sockets Layer ,加密套接字协议层
       1)SSL是为网络通信提供安全及数据完整性的一种安全协议,在传输层对网络连接进行加密
             Secure Socket Layer为Netscape网景公司1994年所研发,用以保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听。
       2)SSL协议可分为两层:记录协议、握手协议
           SSL Record Protocol:建立在可靠的传输协议如TCP之上为高层协议提供数据封装、压缩、加密等基本功能
           SSL Handshake Protocol:建立在SSL记录协议之上用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
         3)SSL版本:1.0v  2.0v  3.0v
              1.0版本未公布,2.0版本才发出就被暴出大量漏洞
              主流版为3.0。广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输,但近期被爆出安全漏洞
 
     2.TLS:Transport Layer Security,安全传输层协议

           1999年,IETF在仿照SSL发布,为防止SSL一家独大,基本和SSL协议兼容
           (1)版本:V1.0, V1.1, V1.2, V1.3
        V1.3现在为草案支持椭圆曲线算法,现在主流是V1.2
(2)分层设计:
       1)最底层:基础算法原语的实现,aes, rsa, md5
       2)向上一层:各种算法的实现;
       3)再向上一层:组合算法实现的半成品;
      4)用各种组件拼装而成的各种成品密码学协议软件;
 
    3.SSL和TLS实现网络安全性:http  -->  SSL/TLS --> https
          传输层协议有TCP,UDP,SCTP,不同主机上的进程间通信通过socket(ip:port)
          client ip:port  serverip:port
port:进程地址,进程向内核注册使用某端口(独占)
套接字一般处于监听模式:LISTEN(ip:port),占用端口,发起请求是启用服务
 
 
 
 
二、传输安全性实现:密钥算法协议
    1.网络传输安全性
           (1)安全的目标
       保密性:confidentiality
       完整性:integrity
       可用性:availability
           (2)攻击类型
      威胁保密性的攻击:窃听、通信量分析;
      威胁完整性的攻击:更改、伪装、重放、否认
      威胁可用性的攻击:拒绝服务(DoS)
           (3)解决方案
      技术层面:加密和解密
      服务层面:用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务
    2.密钥算法
         (1)对称加密:加密和解密使用同一个密钥;
                  1)特性:加密、解密使用同一个密钥;将原始数据分割成为固定大小的块,逐个进行加密;
                  2)缺陷:密钥过多;密钥分发困难;
                  3)种类:
               DES:Data Encryption Standard,数据加密标准;算法的入口参数有三个:Key、Data、Mode。
                                              Key为7个字节共56位,是DES算法的工作密钥;
                                              Data为8个字节64位,是要被加密或被解密的数据;
                                              Mode为DES的工作方式,有两种:加密或解密
               3DES:三轮加密的DES
               AES:Advanced Encryption Standard;  (128bits, 192bits, 256bits, 384bits)
               Blowfish、Twofish、IDEA、RC6、CAST5
         (2)公钥加密:密钥分为公钥与私钥
                  1)公钥:从私钥中提取产生;可公开给所有人;pubkey
       2)私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key;
       3)特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然;
       4)用途:身份认证,数字签名:主要在于让接收方确认发送方的身份;
             密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方;
             数据(特征码)加密:其加密速度比对称加密慢三个数量级,所以不能做全数据加密
        5)算法:RSA, DSA, ELGamal
    DSS: Digital Signature Standard
   DSA:Digital Signature Algorithm
         (3)单向加密:即提出数据指纹;只能加密,不能解密
                  1)特性:定长输出、雪崩效应;
       2)功能:完整性校验;
       3)算法:md5:Message Digest 5, 128bits,消息摘要算法,版本号为五
           sha1:Secure Hash Algorithm 1, 160bits ,安全的Hash算法
           sha224, sha256, sha384, sha512
    3.密钥交换协议:IKE(Internet Key Exchange)
           (1)公钥加密
           (2)DH(Deffie-Hellman)算法:密码本身无需在互联网上传输,但双方能得到一致的密码
                   扩展:ECDH(椭圆曲线DH)、ECDH(临时椭圆曲线DH)
      实现方案简介:
   1)A和B生成两个数字:p, g。p大素数和g,可以明文可以传输
               2)A和B各自自定义一个数字x、y,进行阶乘取模操作,将其结果传递给对方
            A私下生成x     --> p^x%g ==> B
            B私下生成y    --> p^y%g ==> A
    3)A和B进行解密操作
            A: (p^y%g)^x=p^yx%g  ; B: (p^x%g)^y=p^xy%g
    4.PKI:Public Key Infrastructure公钥基础设施
          (1)PKI组成
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库:CB,公共存储证书位置
          (2)X.509v3:定义了证书的结构以及认证协议标准
     版本号、序列号、签名算法ID、发行者名称、有效期限、主体名称、主体公钥、发行者的惟一标识
     主体的惟一标识、扩展、发行者的签名