华为防火墙学习笔记05_加密与解密原理

加密与解密原理

加密技术发展

 

加密技术

  • 加密是利用数学方法将明文(需要被隐蔽的数据)转换为密文(不可读的数据)从而达到保护数据的目的。

 

加密技术作用

  • 加密是一个过程,它使信息只对正确的接收者可读,其他用户看到的是杂乱无序的信息,使其只能在使用相应的密钥解密之后才能显示出本来内容。通过加密的方法来达到保护数据不被非法人窃取、阅读的目的。加密在网络上的作用就是防止私有化信息在网络上被拦截和窃取。通过加密可保证信息的 机密性、完整性、鉴别性和不可否认性
  • 机密性:通过数据加密实现。提供只允许特定用户访问和阅读信息,任何非授权用户对信息都不可理解的服务。这是使用加密的普遍原因。通过小心使用数学方程式,可以保证只有对应接收人才能查看它。
  • 完整性:通过数据加密、散列或数字签名来实现,提供 确保数据在存储和传输过程中不被未授权修改(篡改、删除、插入和重放等)的服务。对安全级别需求较高的用户来说,仅仅数据加密是不够的,数据仍能够被非法破解并修改。
  • 鉴别性:通过数据加密、数据散列或数字签名来实现,提供与数据和身份识别有关的服务,即 认证数据发送和接受者的身份
  • 不可否定性:通过对称加密或非对称加密,以及数字签名等,并借助可信的注册机构或证书机构的辅助来实现,提供 阻止用户否认先前的言论或行为的抗抵赖服务。

 

加解密技术原理

 

加密技术分类

  • 对称加密
    • 又称为共享密钥加密,它 使用同一个密钥对数据进行加密和解密
  • 非对称加密
    • 加解密使用两个不同的密钥,私钥用来保护数据,公钥则由同一系统的人公用,用来检验信息及其发送者的真实性和身份。
    • 密钥:公钥&私钥。

对称加密算法

  • 甲与乙事先协商好对称密钥,具体加解密过程如下:
    • 甲使用对称密钥对明文加密,并将密文发送给乙。
    • 乙接收到密文后,使用对称密钥对密文解密,得到最初的明文。

 

非对称加密算法

  • 甲事先获得乙的公钥,具体加解密过程如下:
    • 甲使用乙的公钥对明文加密,并将密文发送给乙。
    • 乙收到密文后,使用自己的私钥对密文解密,得到最初的明文。

 

对称和非对称加密比较

  • 对称密钥加密的优点是效率高,算法简单,系统开销小,适合加密大量数据。缺点是实现困难,扩展性差。实现困难原因在于进行安全通信前需要以安全方式进行密钥交换;扩展性差表现在每对通信用户之间都需要协商密钥,n个用户的团体就需要协商n*(n-1)/2个不同的密钥。
  • 公钥加密的优点是无法从一个密钥推导出另一个密钥;公钥加密的信息只能用私钥进行解密。缺点是算法非常复杂,导致加密大量数据所用的时间较长,而且加密后的报文较长,不利于网络传输。
  • 基于公钥加密的优缺点, 公钥加密适合对密钥或身份信息等敏感信息加密,从而在安全性上满足用户的需求。

 

数据加密 - 数字信封

  • 数字信封是指 发送方采用接收方的公钥来加密对称密钥后所得的数据。采用数字信封时,接收方需要使用自己的私钥才能打开数字信封得到对称密钥。
  • 甲事先获得乙的公钥,具体加解密过程如下:
    • 甲使用对称密钥对明文进行加密,生成密文信息。
    • 甲使用乙的公钥加密对称密钥,生成数字信封。
    • 甲将数字信封和密文信息一起发送给乙。
    • 乙接收到甲的加密信息后,使用自己的私钥打开数字信封,得到对称密钥。
    • 乙使用对称密钥对密文信息进行解密,得到最初的明文。
  • 从加解密过程中,可以看出,数字信封技术结合了对称密钥加密和公钥加密的优点,解决了对称密钥的发布和公钥加密速度慢等问题,提高了安全性、扩展性和效率等。
  • 但是,数字信封技术还有个问题,如果***者拦截甲的信息,用自己的对称密钥加密伪造的信息,并用乙的公钥加密自己的对称密钥,然后发送给乙。乙收到加密信息后,解密得到的明文,而且乙始终认为是甲发送的信息。此时,需要一种方法确保接收方收到的信息就是指定的发送方发送的。

 

数据验证 - 数字签名

  • 数字签名是指 发送方用自己的私钥对数字指纹进行加密后所得的数据。采用数字签名时,接收方需要使用发送方的公钥才能解开数字签名得到数字指纹。
  • 数字指纹又称为信息摘要,它是指发送方通过HASH算法对明文信息计算后得出的数据。采用数字指纹时,发送方会将数字指纹和明文一起发送给接收方,接收方用同样的HASH算法对明文计算生成的数据指纹,与收到的数字指纹进行匹配,如果一致,便可确定明文信息没有被篡改。
  • 甲事先获得乙的公钥,具体加解密过程如下:
    • 甲使用乙的公钥对明文进行加密,生成密文信息。
    • 甲使用HASH算法对明文进行HASH运算,生成数字指纹。
    • 甲使用自己的私钥对数字指纹进行加密,生成数字签名。
    • 甲将密文信息和数字签名一起发送给乙。
    • 乙使用甲的公钥对数字签名进行解密,得到数字指纹。
    • 乙接收到甲的加密信息后,使用自己的私钥对密文信息进行解密,得到最初的明文。
    • 乙使用HASH算法对明文进行HASH运算,生成数字指纹。
    • 乙将生成的数字指纹与得到的数字指纹进行比较,如果一致,乙接受明文;如果不一致,乙丢弃明文。
  • 从加解密过程中,可以看出, 数字签名技术不但证明了信息未被篡改,还证明了发送方的身份。数字签名和数字信封技术也可以组合使用。
  • 但是,数字签名技术还有个问题,如果***者更改乙的公钥,甲获得的是***者的公钥,***者拦截乙发送给甲的信息,用自己的私钥对伪造的信息进行数字签名,然后与使用甲的公钥的加密伪造的信息一起发送给甲。甲收到加密信息后,解密得到的明文,并验证明文没有被篡改,则甲始终认为是乙发送的信息。此时,需要一种方法确保一个特定的公钥属于一个特定的拥有者。

 

加解密常见算法

 

对称加密算法

  • 流加密算法
    • RC4
    • 分组加密算法
      • DES
      • 3DES
      • AES
      • IDEA
      • RC2,RC5,RC6
      • SM1,SM4

 

非对称加密算法

  • 非对称加密算法
    • DH
    • RSA
    • DSA

 

散列算法

  • 散列算法:把任意长度的输入变换成固定长度的输出。
  • 常见散列算法
    • MD5(Message Digest Algorithm 5)
    • SHA(Secure Hash Algorithm)
    • SM3(Senior Middle 3)

 

PKI证书体系

 

数字证书

 

数字证书

  • 数字证书简称证书,它是一个经证书授权中心(即在PKI中的证书认证机构CA)数字签名的文件,包含拥有者的公钥及相关身份信息。
  • 数字证书可以说是Internet上的安全护照或身份证。
  • 数字证书技术解决了数字签名技术中无法确定公钥是指定拥有者的问题。
  • 证书有四种类型
    • 自签名证书:又称为根证书, 是自己颁发给自己的证书,即证书中的颁发者和主体名相同。申请者无法向CA申请本地证书时,可以通过设备生成自签名证书,可以实现简单证书颁发功能。设备不支持对其生成的自签名证书进行生命周期管理(如证书更新、证书撤销等)。
    • CA证书CA自身的证书。如果PKI系统中没有多层级CA,CA证书就是自签名证书;如果有多层级CA,则会形成一个CA层次结构,最上层的CA是根CA,它拥有一个CA"自签名"的证书。申请者通过验证CA的数字签名从而信任CA,任何申请者都可以得到CA的证书(含公钥),用以验证它所颁发的本地证书。
    • 本地证书:CA颁发给申请者的证书。
    • 设备本地证书:设备根据CA证书给自己颁发的证书,证书中的颁发者名称是CA服务器的名称。申请者无法向CA申请本地证书时,可以通过设备生成设备本地证书,可以实现简单证书颁发功能。

 

证书结构

  • 最简单的证书包含 一个公钥、名称以及证书授权中心的 数字签名。一般情况下证书中还包括密钥的有效期,颁发者(证书授权中心)的名称,该证书的序列号等信息,证书的结构遵循X.509 v3版本的规范。
  • 证书内容中各字段含义
    • 版本:即使用X.509的版本,目前普遍使用的是v3版本(0x2)。
    • 序列号:颁发者分配给证书的一个正整数,同一颁发者颁发的证书序列号各不相同,可用与颁发者名称一起作为证书唯一标识。
    • 签名算法:颁发者颁发证书使用的签名算法。
    • 颁发者:颁发该证书的设备名称,必须与颁发者证书中的主体名一致。通常为CA服务器的名称。
    • 有效期:包含有效的起、止日期,不在有效期范围的证书为无效证书。
    • 主体名:证书拥有者的名称,如果与颁发者相同则说明该证书是一个自签名证书。
    • 公钥信息:用户对外公开的公钥以及公钥算法信息。
    • 扩展信息:通常包含了证书的用法、CRL的发布地址等可选字段。
    • 签名:颁发者用私钥对证书信息的签名。

 

证书格式

  • 设备支持三种文件格式保存证书。

 

PKI体系架构

 

PKI必要性

 

PKI基本概念

  • 公钥基础设施PKI(Public Key Infrastructure),是一种遵循既定标准的证书管理平台,它利用公钥技术能够为所有网络应用提供安全服务。
  • PKI技术是信息安全技术的核心,也是电子商务的关键和基础技术。
  • 随着网络技术和信息技术的发展,电子商务已逐步被人们所接受,并得到不断普及。但通过网络进行电子商务交易时,存在如下问题:
    • 交易双方并不现场交易,无法确认双方的合法身份。
    • 通过网络传输时信息易被窃取和篡改,无法保证信息的安全性。
    • 交易双方发生纠纷时没有凭证可依,无法提供仲裁。
  • 为了解决上述问题,PKI技术应运而生,其利用公钥技术保证在交易过程中能够实现身份认证、保密、数据完整性和不可否认性。因而在网络通信和网络交易中,特别是电子政务和电子商务业务,PKI技术得到了广泛的应用。
  • PKI的核心技术就围绕着数字证书的申请、颁发和使用等整个生命周期进行展开,而在这整个生命周期过程中,PKI会使用到对称密钥加密、公钥加密、数字信封和数字签名技术。

 

PKI体系架构

  • 一个PKI体系由 终端实体、证书认证机构、证书注册机构和证书/CRL存储库四部分共同组成。

  • 终端实体EE(End Entity):也称为PKI实体,它是PKI产品或服务的 最终使用者,可以是个人、组织、设备(如路由器、防火墙)或计算机中运行的进程。
  • 证书认证机构CA(Certificate Authority):CA是PKI的信任基础,是一个用于 颁发并管理数字证书的可信实体。它是一种权威性、可信任性和公正性的 第三方机构,通常由服务器充当,例如Windows Server 2008。
    • CA通常采用多层次的分级结构,根据证书颁发机构的层次,可以划分为根CA和从属CA。
      • 根CA是公钥体系中第一个证书颁发机构,它是信任的起源。根CA可以为其它CA颁发证书,也可以为其它计算机、用户、服务颁发证书。对大多数基于证书的应用程序来说,使用证书的认证都可以通过证书链追溯到根CA。根CA通常持有一个自签名证书。
      • 从属CA必须从上级CA处获取证书。上级CA可以是根CA或者是一个已由根CA授权可颁发从属CA证书的从属CA。上级CA负责签发和管理下级CA的证书,最下一级的CA直接面向用户。例如,CA2和CA3是从属CA,持有CA1发行的CA证书;CA4、CA5和CA6是从属CA,持有CA2发行的CA证书。
    • 当某个PKI实体信任一个CA,则可以通过证书链来传递信任,证书链就是从用户的证书到根证书所经过的一系列证书的集合。当通信的PKI实体收到待验证的证书时,会沿着证书链依次验证其颁发者的合法性。
    • CA的核心功能就是发放和管理数字证书,包括:证书的颁发、证书的更新、证书的撤销、证书的查询、证书的归档、证书废除列表CRL(Certificate Revocation List)的发布等。
  • 证书注册机构RA(Registration Authority):是 数字证书注册审批机构,RA是CA面对用户的窗口,是CA的证书发放、管理功能的延伸,它负责接受用户的证书注册和撤销申请,对用户的身份信息进行审查,并决定是否向CA提交签发或撤销数字证书的申请。RA作为CA功能的一部分,实际应用中,通常RA并不一定独立存在,而是和CA合并在一起。RA也可以独立出来,分担CA的一部分功能,减轻CA的压力,增强CA系统的安全性。
  • 证书/CRL存储库:由于用户名称的改变、私钥泄漏或业务中止等原因,需要存在一种方法将现行的证书吊销,即撤消公钥及相关的PKI实体身份信息的绑定关系。在PKI中,所使用的这种方法为证书废除列表CR。任何一个证书被撤消以后,CA就要发布CRL来声明该证书是无效的,并列出所有被废除的证书的序列号。因此,CRL提供了一种检验证书有效性的方式。证书/CRL存储库用于 对证书和CRL等信息进行存储和管理,并提供查询功能。构建证书/CRL存储库可以采用LDAP(Lightweight Directory Access Protocol)服务器、FTP(File Transfer Protocol)服务器、HTTP(Hypertext Transfer Protocol)服务器或者数据库等等。其中,LDAP规范简化了笨重的X.500目录访问协议,支持TCP/IP,已经在PKI体系中被广泛应用于证书信息发布、CRL信息发布、CA政策以及与信息发布相关的各个方面。如果证书规模不是太大,也可以选择架设HTTP、FTP等服务器来储存证书,并为用户提供下载服务。

 

PKI生命周期

  • PKI的核心技术就围绕着本地证书的 申请、颁发、存储、下载、安装、验证、更新和撤销的整个生命周期进行展开。

  • 证书申请:证书申请即证书注册,就是一个PKI实体向CA自我介绍并获取证书的过程。
  • 证书颁发:PKI实体向CA申请本地证书时,如果有RA,则先由RA审核PKI实体的身份信息,审核通过后,RA将申请信息发送给CA。CA再根据PKI实体的公钥和身份信息生成本地证书,并将本地证书信息发送给RA。如果没有RA,则直接由CA审核PKI实体身份信息。
  • 证书存储:CA生成本地证书后,CA/RA会将本地证书发布到证书/CRL存储库中,为用户提供下载服务和目录浏览服务。
  • 证书下载:PKI实体通过SCEP或CMPv2协议向CA服务器下载已颁发的证书,或者通过LDAP、HTTP或者带外方式,下载已颁发的证书。该证书可以是自己的本地证书,也可以是CA/RA证书或者其他PKI实体的本地证书。
  • 证书安装:PKI实体下载证书后,还需安装证书,即将证书导入到设备的内存中,否则证书不生效。该证书可以是自己的本地证书,也可以是CA/RA证书,或其他PKI实体的本地证书。通过SCEP协议申请证书时,PKI实体先获取CA证书并将CA证书自动导入设备内存中,然后获取本地证书并将本地证书自动导入设备内存中。
  • 证书验证:PKI实体获取对端实体的证书后,当需要使用对端实体的证书时,例如与对端建立安全隧道或安全连接,通常需要验证对端实体的本地证书和CA的合法性(证书是否有效或者是否属于同一个CA颁发等)。如果证书颁发者的证书无效,则由该CA颁发的所有证书都不再有效。但在CA证书过期前,设备会自动更新CA证书,异常情况下才会出现CA证书过期现象。PKI实体可以使用CRL或者OCSP(Online Certificate Status Protocol)方式检查证书是否有效。使用CRL方式时,PKI实体先查找本地内存的CRL,如果本地内存没有CRL,则需下载CRL并安装到本地内存中,如果证书在CRL中,表示此证书已被撤销。使用OCSP方式时,PKI实体向OCSP服务器发送一个对于证书状态信息的请求,OCSP服务器会回复一个"有效"(证书没有被撤消)、"过期"(证书已被撤消)或"未知"(OCSP服务器不能判断请求的证书状态)的响应。
  • 证书更新:当证书过期、密钥泄漏时,PKI实体必须更换证书,可以通过重新申请来达到更新的目的,也可以使用SCEP或CMPv2协议自动进行更新。
  • 证书撤销:由于用户身份、用户信息或者用户公钥的改变、用户业务中止等原因,用户需要将自己的数字证书撤消,即撤消公钥与用户身份信息的绑定关系。在PKI中,CA主要采用CRL或OCSP协议撤销证书,而PKI实体撤销自己的证书是通过带外方式申请。

 

证书申请

  • 通常情况下PKI实体会生成一对公私钥,公钥和自己的身份信息(包含在证书注册请求消息中)被发送给CA用来生成本地证书,私钥PKI实体自己保存用来数字签名和解密对端实体发送过来的密文。
  • PKI实体向CA申请本地证书有以下两种方式
    • 在线申请
    • 离线申请(PKCS#10方式)
  • 在线申请:PKI实体支持通过SCEP(Simple Certificate Enrollment Protocol)或CMPv2(Certificate Management Protocol version 2)协议向CA发送证书注册请求消息来申请本地证书。
  • 离线申请:是指PKI实体使用PKCS#10格式打印出本地的证书注册请求消息并保存到文件中,然后通过带外方式(如Web、磁盘、电子邮件等)将文件发送给CA进行证书申请。

 

PKI工作机制

 

PKI工作过程

  • 针对一个使用PKI的网络,配置PKI的目的就是为指定的PKI实体向CA申请一个本地证书,并由设备对证书的有效性进行验证。

  1. PKI实体向CA请求CA证书,即CA服务器证书。
  2. CA收到PKI实体的CA证书请求时,将自己的CA证书回复给PKI实体。
  3. PKI实体收到CA证书后,安装CA证书。
  4. PKI实体向CA发送证书注册请求消息(包括配置的密钥对中的公钥和PKI实体信息)。
  5. CA收到PKI实体的证书注册请求消息。
  6. PKI实体收到CA发送的证书信息。
  7. PKI实体间互相通信时,需各自获取并安装对端实体的本地证书。PKI实体可以通过HTTP/LDAP等方式下载对端的本地证书。在一些特殊的场景中,例如IPSec,PKI实体会把各自的本地证书发送给对端。
  8. PKI实体安装对端实体的本地证书后,通过CRL或OCSP方式验证对端实体的本地证书的有效性。
  9. 对端实体的本地证书有效时,PKI实体间才可以使用对端证书的公钥进行加密通信。
  10. 如果PKI认证中心有RA,则PKI实体也会下载RA证书。由RA审核PKI实体的本地证书申请,审核通过后将申请信息发送给CA来颁发本地证书。

 

证书应用场景 - 通过HTTPS登录Web

  • 管理员可以通过HTTPS方式安全地登录HTTPS服务器的Web界面,并通过Web界面对设备进行管理。
  • 为了提高双方建立SSL连接时的安全性,在设备上为HTTPS客户端指定由Web浏览器信任的CA颁发的本地证书。这样,Web浏览器可以验证本地证书的合法性,避免了可能存在的主动***,保证了管理员的安全登录。

 

证书应用场景 - IPSec ***

 

  • 设备作为网络A和网络B的出口网关,网络A和网络B的内网用户通过公网进行相互通信。
  • 因为公网是不安全的网络,为了保护数据的安全性,设备采用IPSec技术,与对端设备建立IPSec隧道。 通常情况下,IPSec采用预共享密钥方式协商IPSec。但是,在大型网络中IPSec采用预共享密钥方式时存在密钥交换不安全和配置工作量大的问题。为了解决上述问题,设备之间可以采用基于PKI的证书进行身份认证来完成IPSec隧道的建立。

 

证书应用场景 - SSL ***

  • SSL ***可以为出差员工提供方便的接入功能,使其在出差期间也可以正常访问内部网络。
  • 通常情况下,出差员工使用用户名和密码的方式接入内部网络。但是,这种安全手段存在保密性差的问题,一旦用户名和密码令泄漏,可能导致非法用户接入内部网络,从而造成信息泄漏。为了提高出差员工访问内部网络的安全性,设备可以采用PKI的证书方式来对用户进行认证。

 

猜你喜欢

转载自blog.51cto.com/14472940/2497919
今日推荐