运维学习之加密与解密:

   众所周知,在网络的世界里不存在绝对的安全性。各种钓鱼网站,病毒等等危害着我们的网

络环境。所以,作为一个运维人员,在我们利用网络进行通信时,保证通信的机密性、完整性、可用性是必要的。

   我们的日常生活中有以下三点威胁网络安全的行为:

      1.威胁机密性的***行为,它的途径是窃听、嗅探、扫描和通信量分析

      2.威胁完整性的***行为,它的途径是更改、伪装、重放、否认

      3.威胁可用性的***行为,它的途径是拒绝服务

   为应对以上问题,我们在技术和服务两方面提出了解决方案:

      从技术上我们使用加密和解密的技术来保证网络通信的安全性。其中加密算法又分为传统加密算法和现代加密算法;在服务方面我们提出了身份认证和访问控制机制来解决安全问题。


 下面我们来学习了解一下基本的加密算法:

     1.对称加密算法:其特点是加密和解密使用同一密钥,优缺点比较明显。

        优点是:每对通信主机都需要保有一套相同的密钥,用于加密和解密,将原始的数据、  分割成固定大的块,逐个加密;加密和解密速度比较快;

        缺点是:加密解密所需要保有的密钥数量过多,密钥分发过于困难

       其主流的加密算法有:DES:Data Encryption Standard,数据加密标准

                              56位的密钥,64位块,逢8不加密

                         3DES:三轮DES加密,用了两个密钥:首先,使用第一个密钥加密数据,然后使用第二个密钥将加密后的数据解密你,然后再利用第一个密钥再次加密

                         AES:Advanced Encryption Standad,高级加密标准;

                         AES128bit,AES192bit,AES256bit

     2.公钥加密算法:

          这个算法的特点是:

            1.使用密钥对进行加密和解密;使用私钥加密的数据,必须使用从中抽取的公解

              密;使用公钥加密,必须使用与之相对的私钥才能加密;私钥:通过特定的工具创建生成,由使用者自己留存,务必保证其私密性;公钥:从私钥中提取生成,公钥给所有人使用:public key

            2.密钥长度都比较常规,加密之后的数据的安全等级会比较高

          缺陷是:

            1.加密数据的时候,消耗的系统资源和时间都较多,很少用来加密大批量的数据


         它的用途是:

            数字签名:数字指纹

               主要用于让接收方确认发送方的身份;使用发送方的私钥加密数据,到了接收方之后,使用发送方的公钥解密数据;

            密钥交换:

               发送数据的一方使用接收方的公钥加密对称密钥,把加密后的对称密钥发给对方

            数据加密:通常用于加密小数据;

     3,单项加密算法:只能进行加密解密

          特性:

                1.定长输出:

                2.雪崩效应

                  功能:保证数据的完整性

          常用的算法:

                md5:Messsge Digest Version 5,信息摘要算法的第5版

                  128bit定长输出

                sha系列:

                  sha-1:160bit定长输出,Secure Hash Algorithm

     加密算法的联合应用:

           1.首先,通信双方互相交换证书,并到信任到的CA进行证书验证;

           2.发送方使用某种堆成加密算法对数据进行加密;对加密后的数据使用单项加密计算其特征值;放送方再用自己的私钥加密其特征值,以证明数据来源的可靠

           3.放送方世玉接收方的证书加密对称密钥

           4.接收方在收到数据之后,先使用自己的私钥解密对称密钥,使用放送方的公钥解密特征值,再使用相同的单向加密算法,重新结算加密数据的特征值;比较两个特征值;如果特征值一致,则表明数据完整;再用解密出来的对称密钥你解密出原始数据 

         证书里面主要包括:

           拥有者的名称

           拥有者所提交的公钥

           有效期

           证书的版本号

           证书的序列号

           签发算法ID

           签发CA的名称

           主题名称

         证书的签证机构:CA

         注册机构:RA

         证书吊销列表:CRL

         整数存取库:CAB,Cerification Access Base



    CA是如何发挥其作用的:

      1.通信双方交换证书

      2.双方协商加密算法

      3.双方验证整数的真伪

      4.用CA的公钥解密证书中CA的签名,能解密说名整数的来源可靠

      5.用通用的加密算法加密证书,取得特征值;与解密出来的特征值比较,如果相同,说明证书完整性可靠

      6.检查证书的有效期是否在合法时间范围,如果过期则证书不被认可

      7.检查证书的主体名称和此次通信的目标是否能够对应


  SSL:Secure Socket Layer,安全的套接字层;

     1994年,Netscape公司最先发明并实施


    TLS:Tranport Layer Scurity,传输层安全协议

       IETF:互联网工程项目小组


       TLS V1.0

       TLS V1.1,2006

       TLS V1.2草案  2008,将椭圆曲线加密算法引入TLS;


       分层设计:

         1.最底层:基础算法的原语的实现;AES,md5,sha……

         2.向上一层:各种算法的基本实现

         3再向上一层:各种算法组合实现的半成品

         4.最高层:用各种组件拼装而成的各种成品密码学协议软甲


     SSL/TLS的handshake握手的四个阶段

       1.客户端向服务器索要整数并验证证书

            Client Hello发送的信息内容:

                支持的协议的版本,

                客户端生成一个随机数,稍后用户生成会话密钥

                然后互相讨论各自支持的加密算法,AES,DES,RSA……

                可能协商各自所支持的压缩算法

       2.双方协商生成会话密钥

           Server hello发送的信息内容

             确认使用的加密协议的信息内容

             服务器生成一个随机数,稍后用于生成会话密钥

             确认加密算法及压缩算法


       3.双方采用已经生成的会话密钥进行安全加密的通信

            客户端验证服务器证书,确认无误之后取出公钥;

              验证服务器证书需要验证下述内容:

                 验证发证机构(CA)

                 验证证书的完整性

                 去验证证书的持有者信息

                 验证证书的有效期

                 验证证书的吊销列表

            客户端要发送一些信息给服务器

               一个随机数用于服务器上的公钥加密

               编码格式变更的通知,表示随后的信息随后的信息用双方已经协商好的加密算法和密钥进行加密发送

            客户端握手结束;

       4.双方互相通告握手结束的信息

          服务器会收到客户端发送来的此次握手阶段额第三个随机数;计算生成本次会话所用到的会话密钥,向客户端发送相关信息

             编码变更通知,表示随后的信息都将用双方已经协商好的加密算法和密钥进行加密发送


             服务器端握手结束

SSL handshake