网络安全:信息加密、认证(鉴别)、数字签名(CA)、密钥安全分发

网络安全:安全威胁、安全服务、安全机制、安全管理网规笔记 | 网络安全:恶意软件与病毒、典型网络攻击及防御本期内容:一、数据保密性与加密机制:对称密钥密码体制(DES、3DES、IDEA、AES、RC4/5),公钥密码体制(RSA、ECC、DH),国产密码算法(SM1~4、SM9)二、报文鉴别与数据完整性机制:报文完整性鉴别,散列(哈希)函数,报文摘要算法(MD5,SHA1~3,SM3),散列报文鉴别码三、抗否认性与数字签名机制:具有保密性的数字签名(私钥签名、公钥验签,公钥加密、私钥解密)四、实体鉴别与认证机制:重放攻击(不重数+对称/公钥密码体制),中间人攻击(密钥安全分发及身份认证)五、密钥分发与公证机制:密钥分配中心KDC、认证中心CA与数字证书、公钥基础结构PKI一、数据保密性与加密机制1. 密码学相关基本概念1)将发送的数据变换成对任何不知道如何做逆变换的人都不可理解的形式,从而保证数据的机密性,这种变换称为加密 (Encryption )。2)加密前的数据被称为明文(Plaintext)。3)加密后的数据被称为密文(Ciphertext)。4)通过某种逆变换将密文重新变换回明文,这种逆变换称为解密(Decruption)。5)加密和解密过程可以使用密钥(Key)作为参数。6)密钥必须保密,但加密和解密的过程可以公开。7)只有知道密钥的人才能解密密文,否则即使知道加密或解密算法也无法解密密文。问题:为什么依靠密钥进行保密而不依靠密码算法进行保密呢?解析:若算法失密需频繁修改算法(开发成本高),而密钥可通过大密钥空间为多用户提供加密服务(同一算法复用)。数据加密一般模型加密密钥和解密密钥可以相同,也可以不同(即使不同,这两个密钥也必然有某种相关性),这取决于采用的是对称密钥密码体制还是公开密钥(公钥)密码体制。密文在传送过程中,可能被攻击者截获或篡改,如果不论攻击者截获了多少密文,在密文中都没有足够的信息来唯一地确定出对应的明文,则这一密码体制称为无条件安全的,或称为理论上是不可破的。然而,在无任何条件限制下,目前几乎所有实用的密码体制均是可破的。因此,人们关心的是在计算上(而不是理论上)是不可破的密码体制。如果一个密码体制中的密码不能在一定时间内被可以使用的计算资源破解,则这一密码体制称为在计算上是安全的。一般情况下,通过使用的密钥可以有效增加破解密文的难度,但同时也使得加密方和解密方的计算量加大。2. 对称密钥密码体制定义:加密与解密使用相同密钥的加密方法。逻辑:加密方用密钥将明文转换为密文,解密方用同一把密钥将密文还原为明文。特点:密钥单一性,算法公开性(安全性仅依赖于密钥的保密性),计算高效性(对称加密的数学运算相对简单,适合对大量数据,如文件、网络流量等进行快速加密)。典型算法:常见对称密钥算法包括DES(数据加密标准,已逐步淘汰)、IDEA(混合运算、长密钥)、3DES(三重DES,增强版DES)、AES(高级加密标准,目前主流)。应用场景:VPN数据加密、文件加密传输(如ZIP加密)、数据库字段加密等需要高效处理大量数据的场景。1)数据加密标准(DES)历史背景:1977年由美国国家标准局(NBS,现NIST)发布,曾为全球主流加密算法。DES的分组加密方法DES技术参数:分组长度:64位(实际有效密钥56位,8位用于奇偶校验)。密钥长度:56位(弱密钥空间导致安全性不足)。DES弱点:密钥长度过短:易受暴力破解攻击(2^56次计算可破解)。结构缺陷:差分密码分析等方法可高效破解。DES淘汰原因:易被破解,1999年后被三重DES和AES取代。2)分组加密(Block Encryption)分组加密是对称密钥密码体制的一种主流实现方式,其核心是将明文分割为固定长度的分组(Block),逐组进行加密处理。分组流程:分组划分:将明文按固定长度(如64位、128位)分割为多个分组。若最后一组长度不足,需填充(如PKCS#7填充方案)。分组加密:每个分组独立或依赖前序分组的状态,通过加密算法(如AES)和密钥转换为密文分组。密文拼接:将所有密文分组按顺序拼接,得到最终密文。加密模式(影响安全性的关键):分组加密需选择不同的"加密模式"来处理分组间的关联,常见模式包括:ECB模式(Electronic Codebook,电码本):每个分组独立加密,相同明文生成相同密文(易被分析,不安全)。CBC模式(Cipher-block chaining,密码分组链接):每个分组加密前与前一个密文分组异或,引入随机初始化向量(IV),相同明文生成不同密文(更安全,广泛使用)。CFB模式(Cipher Feedback,密文反馈):将前一个密文分组作为输入生成伪随机流,与当前明文异或后加密(支持流式加密)。3)3DES(Triple DES)为了解决56比特DEA密钥太短的问题,同时避免直接淘汰旧系统(需兼容DES),提出了三重DES;3DES使用3个密钥执行三次DES算法。3DES加密3DES解密改进原理:对DES进行三次迭代加密(加密→解密→加密),密钥长度扩展至112位或168位。分组长度:64位(继承自DES)。密钥长度:112位(双密钥3DES)或168位(三密钥3DES)。模式1(三密钥3DES):使用三个不同的密钥 (总长度168位),安全性最高。模式2(双密钥3DES):使用两个密钥 (其中 ),总长度112位(因 重复使用)。此模式因兼容性更好曾被广泛使用,但安全性弱于三密钥模式。优势:通过多次加密抵御暴力破解;支持旧系统升级过渡。被AES取代:2001年NIST正式发布AES(高级加密标准)后,3DES因安全性、效率不足逐渐退出主流。目前,3DES仅在部分旧系统或需严格兼容DES的场景中保留(如某些嵌入式设备)。4)IDEA加密算法全称:International Data Encryption Algorithm(国际数据加密算法)。提出时间:1990年由瑞士联邦理工学院学者来学嘉(James Lai)与James Massey联合提出。设计目标:也是替代当时因密钥过短(56位)而逐渐不安全的DES算法。分组长度:64位(与DES相同),即将明文/密文分割为64位的块进行处理。密钥长度:128位(远长于DES的56位有效密钥),提供更高的密钥空间(种可能),抗暴力破解能力更强。轮数(迭代次数):固定为8轮(每轮包含多步运算),通过多轮变换增强混淆与扩散效果。抗攻击能力:设计时已抵御差分密码分析和线性密码分析(1990年代主流攻击手段);128位密钥在经典计算环境下仍具较高安全性。潜在弱点:密钥扩展算法存在一定规律性,可能被优化攻击利用;现代量子计算环境下,128位密钥可能面临风险(需升级至256位)。历史地位:1990年代至2000年代初,IDEA因安全性高、效率好,被广泛应用于加密软件(如PGP早期版本)、VPN等领域。现代局限:因专利限制(已过期)及AES(2001年成为标准)的普及,IDEA逐渐退出主流;仍用于部分遗留系统或特定领域(如嵌入式设备)。5)AES(高级加密标准)AES(Advanced Encryption Standard,高级加密标准) 是美国国家标准与技术研究院(NIST)于2001年正式发布的对称密钥分组加密算法。旨在替代因密钥过短(56位)而逐渐不安全的DES(数据加密标准),并解决3DES(三重DES)效率低下的问题。据美国国家标准与技术研究院(NIST)估计:若破解56比特密钥的DES仅需1秒的计算机,破解128比特密钥的AES需约149万亿年。背景与地位:2001年由NIST选定,取代DES成为国际通用标准(FIPS-197)。分组长度:固定为128位(将明文/密文分割为128位的块处理,是DES分组长度64位的2倍)。密钥长度:支持三种可选长度------128位、192位、256位(分别记为AES-128、AES-192、AES-256),对应不同的安全强度与应用场景。普通场景(AES-128满足需求),高安全场景(AES-256或结合硬件加密模块)。核心优势(安全性与效率):抗已知攻击(如差分、线性分析),密钥空间极大(2^256);支持硬件加速,适用于小型移动设备与高性能场景。AES的应用:自2001年起成为全球主流的对称加密算法,广泛应用于以下场景:网络通信:TLS/SSL协议(如HTTPS)中用于加密客户端与服务器间的会话数据。数据存储:硬盘加密(如BitLocker、LUKS)、云存储加密(如AWS S3的服务器端加密)。移动支付:金融交易中的敏感信息(如银行卡号、CVV码)加密。物联网(IoT):设备间低功耗安全通信(如ZigBee、LoRa协议)。AES是现代对称加密的"黄金标准",通过128位分组长度、灵活的密钥选项(128/192/256位)和多轮复杂变换(字节替换、行移位、列混淆、轮密钥加),在安全性与效率之间取得了完美平衡。它不仅解决了DES和3DES的安全缺陷,更成为5G、云计算、人工智能等新兴技术中数据保护的核心工具。6)RC4与RC5加密算法RC4(Rivest Cipher 4) 是由密码学家Ron Rivest于1987年设计的流加密算法,属于对称密钥密码体系。其核心特点是"流式处理"------无需将明文分割为固定分组,而是通过密钥生成一个伪随机密钥流(Key Stream),与明文逐位异或(XOR)生成密文。RC5(Rivest Cipher 5) 同样由Ron Rivest设计(1994年),是对称密钥分组加密算法,属于RC系列的分组密码代表。其核心设计目标是"通过参数可变性平衡安全性与效率",支持灵活的分组长度、密钥长度和轮数。3. 公钥密码体制公钥密码体制(Public-Key Cryptosystem) ,又称"非对称密码体制",是一种加密与解密使用不同密钥的密码体系。1)公钥密码体制的产生原因公钥密码体制的诞生是为了解决对称密钥密码体制(如DES、AES)在实际应用中的根本缺陷。对称密钥体制的核心问题是"密钥分发"和"多用户管理"的困难。2)公钥密码体制的核心机制公钥密码体制使用不同的加密密钥和解密密钥,其概念由美国斯坦福大学的研究人员 Diffie 和 Hellman 于 1976年 提出。加密密钥或公钥(Public Key,PK):公开分发(如通过网络传输或公开存储),任何人均可获取。解密密钥或私钥/密钥(Secret Key,SK):需严格保密,仅持有者知晓。算法公开性:加密算法 E 和解密算法 D 都是公开的,安全性仅依赖密钥。一般表示式尽管 SK 由 PK 决定,但根据公钥 PK 不能计算出私钥 SK ;并且,公钥 PK 不可用于解密,因此, PK 是可以公开的。公钥加密,私钥解密显然,采用公钥密码体制更容易解决密钥分发的问题。公钥密码体制提出不久,研究人员就找到了三种公钥密码算法。1976年由美国三位科学家Rinvest,Shami和Adleman提出,并在1978年正式发表的 RSA(Rivest、Shamir and Adlerman)算法,就是目前最著名的公钥密码算法,它是基于数论中大数分解问题的算法。公钥密码体制不仅用于加密,还可以很方便用于鉴别和数字签名。目前的公钥密码算法比对称密钥密码算法慢好几个数量级。公钥密码体制通常用于会话密钥的建立;对称密钥密码体制被用于其他大多数情况下的加密。公钥密码体制通常用于会话密钥的加密如图所示,用户A与用户B要进行加密通信,纵坐标为时间。A首先选择了一个用于加密数据并且与B共享的DES或AES密钥(这使用的是对称密钥密码体制。由于该密钥仅用于A和B之间的这次会话,因此被称为会话密钥。为了让B知道该会话密钥,A必须将该会话密钥通过秘密渠道告知B。为此,A用B的RSA公钥加密该会话密钥后发送给B。B收到加密的会话密钥后,就用自己的私钥对其解密,得到会话密钥。很显然,这使用的是公钥密码体制。此后,A与B之间就可以用该会话密钥加密通信的数据。从本例可以看出,使用公钥密码体制加密会话密钥(很少的数据量),而使用对称密钥密码体制制加密大量数据。注意:任何加密方法的安全性取决于密钥的长度和攻破密文所需的计算量,而不是简单地取决于加密体制。因此不能简单地判断,对称密钥密码体制与公钥密码体制相比,哪个密码体制的安全性更好。3)公钥密码体制的优势4)典型公钥密码算法5)公钥密码体制的应用示例6)公钥密码体制的局限性7)对称加密 vs 公钥加密8)公钥密码体制小结公钥密码体制通过非对称加密机制解决了传统对称加密的密钥分发难题,奠定了现代互联网安全(如HTTPS、数字支付)的基础,但其计算效率限制了纯公钥加密的大规模应用,通常与对称加密结合使用。4. 国产密码算法《中华人民共和国密码法》密码分为核心密码、普通密码和商用密码,实行分类管理。核心密码、普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理。商用密码用于保护不属于国家秘密的信息,公民、法人可用。国产密码算法:指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前已经公布的国产密码算法如下:二、报文鉴别与数据完整性机制1. 报文完整性鉴别在计算机网络中,报文(Message) 是网络通信中数据传输的基本逻辑单元,是发送方需要传递给接收方的完整信息。在OSI参考模型或TCP/IP模型中,不同层次的报文有不同的名称和功能:如果报文被攻击者篡改或伪造,则报文就不具备完整性。对报文进行完整性验证就是进行报文鉴别,也就是鉴别报文的真伪。使用加密技术通常就可以达到报文鉴别的目的,因为被篡改的报文解密后一般不能得到可理解的内容。然而,对于不需要保密而只需要报文鉴别的网络应用(例如从因特网的某个网站下载一个应用软件,用户只关心该软件是否与官方发布的一致),对整个报文进行加密和解密,会使计算机花费相当多的CPU时间。使用报文摘要(Message Digest, MD)进行报文鉴别是一种更有效的方法。2. 报文摘要算法报文摘要算法:通过哈希算法(如MD5、SHA系列)生成的固定长度的唯一标识报文内容的数据指纹(如MD5生成128位摘要),用于快速验证完整性。加密技术需处理整个报文数据,而MD仅需计算摘要,效率提升显著。1)报文鉴别的基本原理用加密的报文摘要进行报文鉴别的基本原理如下:发送方将待发送的长度可变的长报文 进行报文摘要算法,得出固定长度的报文摘要。然后使用密钥 对报文摘要进行加密,得到加密后的报文摘要,并将其附加在报文的后面发送出去。接收方收到后,使用密钥 对加密后的报文摘要进行解密,得到报文摘要。接收方将收到的报文进行报文摘要运算,也得到一个报文摘要。如果该报文摘要与解密得到的报文摘要相同,则可判定收到的报文就是发送方产生的报文 。否则可判定收到的报文不是发送方产生的报文 。2)使用报文摘要对报文进行鉴别的好处计算高效:仅需加密固定长度的摘要(如128位),而非整个报文(可能长达数MB)。安全性等效:若摘要加密算法安全,攻击者无法通过伪造摘要欺骗接收方。密钥 的作用共享性:仅通信双方持有密钥,第三方无法获取。防伪造性:无密钥的攻击者无法生成合法的加密摘要,确保鉴别真实性。3)报文摘要算法需满足的条件为了抵御攻击者的篡改,报文摘要算法必须满足以下条件:(1)对于任意给定的某个报文摘要值 ,若想找到一个报文 使得, 在计算上是不可行的。(2)若想找到任意两个报文 和 ,使得,在计算上是不可行的。满足上述两个条件表明:对于发送方产生的报文 和其相应的报文摘要 ,攻击者不可能伪造出另一个报文 ,使得 与 具有同样的报文摘要。4)报文鉴别码附加在报文后面用于报文鉴别的码串,即加密后的报文摘要称为报文鉴别码(Message Authentication Code, MAC)。说明:通过密钥 加密报文摘要形成报文鉴别码(MAC),接收方解密出报文摘要,同时对发送的报文用MD算法生成报文摘要,两两比对用于证明报文未被篡改且来源可信。密钥共享:仅通信双方持有密钥 ,确保攻击者无法伪造合法MAC值。3. 散列(哈希)函数1)基本概念报文摘要算法MD是散列函数(Hash Function)的一种应用,用于接收方对收到的数据进行检查以便发现是否有误码。散列函数:又称为杂凑函数、哈希函数,它能够将任意长度的信息转换成固定长度较短的散列值(报文摘要),并且任意不同消息或文件所生成的散列值是不一样的。多对一映射:多个输入可能映射到同一散列值,但无法通过散列值逆推原始输入,输入与输出非唯一映射关系。2)散列函数的应用• 用于报文完整性校验(如帧检验序列、首部检验和)。

• 接收方通过比对散列值检测数据是否被篡改或传输错误。3)散列函数的特点4)报文摘要算法的安全要求抗弱碰撞性:给定任意散列值 ,无法找到另一个输入 使得 。抗强碰撞性:无法找到任意两个不同输入 和 使得 。满足上述要求的哈希函数就称为密码散列函数或安全散列函数。密码哈希函数实际上是一种单向函数,由于无法通过报文摘要还原出原文,因此可把密码散列函数运算看作没有密钥的加密运算。4. 实用的报文摘要算法最有名的报文摘要算法(或称密码散列函数/数列算法)有MD5(Message Digest 5)和安全散列算法1(Secure Hash Algorithm,SHA-1)。此外,国产算法SM 3,符合国家密码安全标准,抗碰撞性优于MD5和SHA-1。1)报文摘要算法 MD5MD5是Rivest于1991年提出并获得了广泛应用的报文摘要算法(RFC 1321),MD5输出128比特的摘要。MD5希望达到的设计目标:根据给定的MD5报文摘要,想要找出一个与原报文具有相同报文摘要的另一个报文,其难度在计算上几乎是不可能的。但是,2004年,我国学者王小云发表了震动世界的密码学论文,证明了可以用系统的方法找出一对报文,这对报文具有相同的MD5报文摘要,而这仅需要15分钟至不到1小时的时间。这使得"密码散列函数的逆变换是不可能的"这一传统观念受到了颠覆性的动摇。之后,又有许多学者开发了对MD5的实际攻击方法,这导致MD5最终被安全序列算法SHA-1新替代。2)报文摘要算法 SHA-1SHA是由美国标准与技术研究院NIST提出的一个散列算法系列。1995年发布的新版本SHA-1RFC 3174比MD5在安全性方面有了很大的提高。SHA-1输出160比特的报文摘要,但计算要比MD5慢一些。SHA-1比MD5安全,但后来也被证明其实际安全性并未达到设计目标,并且也曾被王小云教授的研究团队攻破。尽管现在SHA-1仍在使用,但很快就会被SHA-2和SHA-3所替代。微软已于2017年1月1日起停止支持SHA-1证书,而以前签发的SHA-1证书也必须更换为SHA-2证书。谷歌也宣布将在Chrome浏览器中逐渐降低SHA-1证书的安全指示。5. 散列报文鉴别码利用密码散列函数的特殊性质,可以设计出无需对报文摘要进行加密的报文鉴别方法,只要通信双方预共享一个称为鉴别密钥的秘密比特串 即可。直接使用密码散列函数"单向加密""鉴别密钥 + 报文 "实现报文鉴别的技术又称为散列报文鉴别码(Hashed MAC,HMAC)。由于攻击者不知道仅由通信双方共享的鉴别密钥 ,也不能从截获的散列报文鉴别码 HMAC 中计算出 ,因此不能伪造报文 产生 的 HMAC 。6. 常见散列算法对比1)安全性对比MD5:已知存在碰撞攻击(如md5("QNKCDZO") = md5("240610708"))。SHA-1:Google团队于2017年演示了SHA-1("abc")碰撞攻击。SHA-2/3:目前无有效碰撞攻击方法 。SM3:通过国家密码管理局GM/T 0004-2012标准认证。2)合规性要求中国法规:等保2.0明确要求使用SM3/SM4替代MD5/SHA-1 。国际标准:PCI DSS禁止SHA-1用于支付签名,推荐SHA-256及以上。是否涉及国家安全/金融交易?

├─ 是 → 使用SM3

└─ 否 → 是否需国际互认?

├─ 是 → SHA-2/SHA-3

└─ 否 → 性能优先选SHA-2,长期规划选SHA-3

三、抗否认性与数字签名机制1. 基本概念(抗否认性)我们日常生活中的书信或文件可以依据亲笔签名或印章来证明其真实来源。类似地,在计算机网络中传送的报文可以使用数字签名(Digital Signature)来证明其真实来源。数字签名必须保证以下三点:1)接收方能够核实发送方对报文的数字签名。2)包括接收方在内的任何人都不能伪造对报文的数字签名。3)发送方事后不能抵赖(抗否认性)对报文的数字签名。2. 数字签名的实现现在已有多种实现数字签名的方法。采用公钥密码算法比采用对称密钥密码算法更容易实现数字签名。数字签名的实现注意:解密运算D仅仅是一个数学运算,运算结果只是将报文 变成了某种不可读的密文,并非想将报文 加密而是为了数字签名。由于除 外的其他任何人都没有 的私钥,所以除 外没有其他任何人能产生带有数字签名的报文,而任何伪造的报文经过运算后都不会得到可理解的内容。因此, 就通过这种方式核实了报文 的确是 签名发送的。如果要抵赖曾发送报文,可以把报文和带有数字签名的报文出具给第三方。第三方很容易用 的公钥 去证实 确实发送过报文 给 。反之,若 把报文 伪造为 ,则不能在第三方前出示带有数字签名的报文,因为 不可能具有 的私钥 ,这样就证明伪造了报文。很显然,数字签名实现了对报文来源的鉴别。需要说明的是,由于公钥密码算法的计算代价非常高,对整个报文进行数字签名是一件非常耗时的事情,更有效的方法是仅对报文摘要进行数字签名。3. 具有保密性的数字签名之前介绍的数字签名过程仅对报文 进行了数字签名,但对报 本身并没有保密。因为知道发送方 的身份的任何人,通过查阅手册就可获得 的公钥 ,这时截获使用 的私钥 进行数字签名的报文 后,就可使用 的公钥 还原出原文 。那么如何在对报文 进行数字签名的同时,还确保报文 的保密性呢?具有保密性的数字签名如图所示,这是发送方 的待发送报文 。 用自己的私钥 对其进行数字签名,然后用接收方 的公钥 对带有数字签名的报文 进行加密。发送方 将加密后的带有数字签名的报文 发送给 。接收方 收到后,用自己的私钥 对其进行解密,得到带有数字签名的报文 。 用 的公钥 核实其数字签名,得到原报文 。由于其他人无法知道接收方 的私钥 ,因此无法对加密后的带有数字签名的报文 进行解密。这样就实现了既对报文进行数字签名,又确保了报文的保密性。发送方:私钥签名、公钥加密;接收方:私钥解密、公钥验签。四、实体鉴别与认证机制1. 基本概念实体鉴别就是通信双方的一方验证另一方身份的技术,常简称为鉴别。实体可以是人、客户进程或服务器进程。下面仅介绍如何验证通信的对方确实是所要通信的实体,而不是其他伪装者。通信实体的鉴别通常是两个通信实体之间传输实际数据之前或进行访问控制之前的必要过程,这是很多安全协议的重要组成部分。实体鉴别的最简单方法就是使用用户名和口令。为了应对用户名和口令被攻击者截获的安全威胁,需要对用户名和口令进行加密。2. 重放攻击用户 A 将自己的用户名和口令发送给用户 B,以便 B 对 A 进行实体鉴别。然而,直接在网络中传输用户名和口令,面临着被攻击者截获的安全威胁。为了应对用户名和口令被攻击者截获的安全威胁,需要对用户名和口令进行加密。如下图,用户 A 向 B 发送包含有自己用户名和口令的报文,并且使用双方共享的对称密钥 K 进行加密。然而,这种简单的实体鉴别方法存在明显的漏洞。例如,攻击者 C 可以从网络中截获 A 发送给 B 的加密报文。C 并不需要对该报文进行解密,而是以后把该报文发送给 B,使 B 误认为 C 就是 A。之后,B 就向伪装成 A 的 C,发送许多本来应当发送给 A 的报文,这就是重放攻击。重放攻击为了应对重放攻击,可以使用不重数(nonce)。所谓"不重数",就是指一个不重复使用的大随机数。1)不重数+对称密码体制在实体鉴别过程中,不重数可以使用户把重复的实体鉴别请求和新的实体鉴别请求区分开。不重数+对称密码体制如图所示,纵坐标为时间,用户 A 首先挑选了一个随机的不重数 。然后将自己的用户名和不重数 封装在一个报文中,发送给用户 B 。B 收到后,也挑选了一个随机的不重数 ,然后用 A 和 B 共享的密钥 加密 A 发来的不重数 ,并将自己选择的不重数 和加密后的不重数 封装在一个报文中,发送给 A 作为响应。由于 是 A 和 B 共享的密钥,因此这里使用的是对称密钥密码体制,A 收到后使用共享密钥 解密出不重数 。这样 A 就验证了 B 的身份。A 使用共享密钥 加密 B 发过来的不重数 ,然后将其封装在一个报文中发送给 B。B 收到后需要共享密钥 解密出不重数 。这样 B 就验证了 A 的身份。上例使用的是不重数和对称密钥密码体制来实现实体鉴别。实际上,使用公钥密码体制和不重数也可以实现实体鉴别。2)不重数+公钥密码体制不重数+公钥密码体制使用公钥密码体制在实现实体鉴别时,仍可能受到中间人攻击。C伪装成A,给B发送我是A的报文3. 中间人攻击A 想与 B 通信,于是向 B 发送我是 A 的报文。该报文被攻击者 C 截获,并原封不动的转发给 B。 B 选择一个不重数 发送给 A。但同样被 C 截获,并原封不动的转发给 A 。中间人攻击C 先用自己的私钥 对 加密后发送给 B 。使 B 误认为这是 A 发来的。A 收到 后,也用自己的私钥 对 加密后发送给 B ,但被 C 截获并丢弃。B 向 A 发送报文,要求 A 把解密用的公钥 发送过来。但该报文被 C 截获并转发给 A 。C 把自己的公钥 冒充是 A 的公钥发送给 B,而 C 也截获到 A 发送给 B 的公钥 ,但不会将其转发给 B 。B 收到公钥 ,但却误认为是公钥 ,以后就用 对数据进行加密后发送给 A 。中间人攻击C 截获 B 发送的加密数据后,用自己的私钥 对其解密,这样 C 就得到了 B 发送给 A 的数据。C 还需要再用 A 的公钥 对该数据加密后发送给 A 。A 收到 C 发送的加密数据后,用自己的私钥 对其解密。这样,A 也得到了 B 发送的数据。就这样,A 以为和 B 进行了保密通信。但实际上,B 发送给 A 的加密数据已被中间人 C 截获并解密,然而 A 和 B 却都不知道。通过上例可以看出,密钥的分发以及真实性的认证也是一个非常重要的问题。由此引出密钥分配中心 KDC 以及认证中心 CA 的建立,来保障密钥的分发的安全性以及实体真实性的认证。五、密钥分发与公证机制1. 基本概念在对称密钥密码体制中,通信双方共享的密钥是需要保密的。在公钥密码体制中,公钥是公开的,但私钥仍然需要保密。密钥分发是密钥系统中一个非常重要的问题。密钥必须通过安全的通路进行分发。密钥系统的安全性完全依赖于对密钥的安全保护!网外密钥分发:可以通过非常可靠的信使携带密钥分发给相互通信的各用户。密钥必须定期更换才能确保可靠,随着网络用户的增多,这种分发密钥的方法不再适用。网内密钥自动分发 :通过网络自动分发密钥。2. 密钥分配中心KDC:对称密钥分发对于对称密钥密码体制,目前常用的密钥分发方式是建立密钥分配中心(Key Distribution Center,KDC)。KDC是一个公众都信任的机构,其任务就是给需要进行秘密通信的用户临时分配一个会话密钥。【举例】假设用户A和B都是KDC的登记用户,他们在KDC登记时就分别拥有了与KDC通信的主密钥 和 。用户A和B通过KDC安全获得他们之间共享的、用于一次会话的密钥 的过程如下:用户A向KDC发送报文,该报文无需加密。在该报文中,给出了用户A和B在KDC登记的身份,并表明 A 希望与 B 通信。KDC收到后会构建一个响应报文。在该报文中,包含有KDC使用随机数产生的一个一次一密的会话密钥 ,供A和B的一次会话使用。另外,在该响应报文中,还包含有一个需要由A转发给B的加密票据。该票据的内容为A和B在KDC登记的身份,以及A和B这次会话将要使用的密钥 。该票据由KDC使用B的主密钥 进行加密。由于A并没有B的主密钥 , 因此A无法知道该票据的内容。实际上,A也无需知道该票据的内容。KDC使用A的主密钥 对构建好的响应报文进行加密,然后将其发送给A。A收到KDC发来的经过加密的响应报文后,用自己的主密钥 对其解密,就可得到由KDC分发的用于自己与B进行一次会话的密钥 ,以及需要转发给B的加密票据,于是A将加密票据转发给B。B收到A转发来的加密票据后,是用自己的主密钥 对其进行解密。就知道A要与自己进行通信,同时也知道了KDC为这次自己与A通信所分配的会话密钥 。此后,A和B就可以使用会话密钥进行这次会话了。密钥分配中心 KDC 流程├─ 用户私有主密钥:

│ ├─ A:

│ └─ B:

├─ 会话密钥生成:

│ └─ ,票据(A,B,)

└─ 通信过程:

├─ A → KDC: 请求会话密钥

├─ KDC → B: 用 加密票据

├─ KDC → A: 用 加密 {+用 加密后的票据}

└─ A → B 使用 进行安全通信注意1)在网络上传送的密钥都是用于加密的密钥,并且需要加密后才能传送,解密用的密钥都不在网上传送。2)KDC分配给用户的主密钥(例如上述例子中的 和 )应当定期更换以减少攻击者破译密钥的机会。3)KDC可以在报文中加入时间戳,以防止报文的截获者利用之前已记录下的报文进行重放攻击。由美国麻省理工学院MIT开发出的Kerberos,是目前最出名的密钥分发协议RFC15103. 认证中心CA:公钥的分发公钥密码体制中的公钥是公开的,而私钥是用户私有的(保密的)。如果每个用户都知道其他用户的公钥,用户之间就可以实现安全通信。然而,如果通过网络来随意公布用户的公钥,会面临极大的安全风险。【举例】攻击者C伪装成用户A来欺骗用户B。C可向B发送一份伪造是A发送的报文。C用自己的私钥 对该报文进行数字签名,并附上C自己的公钥 ,谎称该公钥是A的。那么B收到后,如何知道公钥 不是A的呢?显然,这需要有一个值得信赖的机构将公钥与其对应的实体(人或机器)进行绑定(binding)。这种机构被称为认证中心(Certification Authority,CA),一般由政府出资建立。需要发布公钥的用户可以让 CA 为其公钥签发一个证书(Certification)。证书中包含有公钥及其拥有者的身份标识信息(人名、公司名或IP地址等)。CA(证书颁发机构)签发数字证书流程1)身份核验CA必须核实用户真实身份(如通过营业执照、域名验证等)关键作用:确保证书绑定的实体身份真实性2)密钥对生成与证书创建CA为用户生成公钥·私钥对(数学绑定关系)生成包含以下信息的证书:用户公钥用户身份标识(名称/IP地址等)CA签名算法标识证书有效期3)证书签名CA使用自身私钥对证书内容进行数字签名安全机制:通过非对称加密确保证书不可篡改4)证书分发通过网络直接发送给通信实体(如HTTPS握手)存储于公共证书库(如浏览器根证书库)服务器供自由下载验证技术特性:证书公开分发,但私钥始终由用户秘密保存注意1)CA为用户产生的公钥-私钥对中的私钥,必须由证书拥有者自己秘密保存。2)任何人都可从可信的地方(例如代表政府的报纸)获取CA自身的公钥,并用这个公钥来验证某个证书是否是该CA签发的真实证书。一旦证书被鉴别是真实的,则可以相信证书中的公钥确实属于证书中声称的用户。如何在电脑中查看都安装有哪些证书?它们的发证机构信息是什么?Windows命令双击查看详细信息4. 数字证书数字证书采用公钥体制,即利用一对相互匹配的密钥进行加密和解密。数字证书是由证书颁发机构(CA)签名的包含公开密钥拥有者信息、公开密钥签发者信息、有效期以及扩展信息的一种数据结构。在X.509标准中,数字证书的一般格式包括的数据域如下:

(1)版本号:用于区分X.509的不同版本。

(2)序列号:由同一发行者(CA)发放的每个证书的序列号是唯一的。

(3)签名算法:签署证书所用的算法及参数。

(4)发行者:指建立和签署证书的CA的X.509的名字。

(5)有效期:包括证书有效期的起始时间和终止时间。

(6)主体名:指证书持有者的名称及有关信息。

(7)公钥:有效的公钥以及使用方法,证书所有人的公钥。

(8)发行者ID:任选的名字唯一地标识证书的发行者。

(9)主体ID:任选的名字唯一地标识证书的持有者。

(10)扩展域:添加的扩充信息。

(11)认证机构的签名:用CA私钥对证书的签名。5. 公钥基础结构 PKI单CA系统缺陷:"如果全世界仅使用一个CA来签发证书,则会出现负载过重和单点故障等问题。"PKI体系标准:因特网采用的是RFC 5280(现在是建议标准)给出的、在全球范围内为所有因特网用户提供证书签发与认证服务的公钥基础结构(Public Key Infrastructure,PKI)。下级CA的证书由上级CA签发和认证。所有用户都信任顶级的根CA,但可以信任也可以不信任中间的CA。用户可以在自己信任的CA获取个人证书,当要验证来自不信任CA签发的证书时,需要到上一级CA验证该证书的真伪。如果上一级CA也不可信则需要到更上一级CA进行验证,一直追溯到可信任的一级CA,这一过程最终有可能会追溯到顶级的根CA。1)证书链【举例】设用户A已从证书发放机构X1处获得证书,用户B已从X2处获得证书。如果用户A不知道X2的公钥,他虽然能读取用户B的证书,但是无法验证用户B证书中X2的签名,因此用户B的证书对用户A来说是没用的。如果两个证书发放机构X1和X2之间已经安全地交换了公钥,则用户A可以通过以下过程获取用户B的公钥:① 用户A从目录中获取由X1签署的X2的证书X1《X2》,因为用户A知道X1的公开密钥,所以能验证X2的证书,并从中得到X2的公钥。用户A再从目录中获取由X2签署的用户B的证书X2《B》,并由X2的公钥对此加以验证,然后从中得到用户B的公钥。在以上过程中,用户A是通过一个证书链来获取用户B的公钥的,证书链可以表示为X1《X2》X2《B》。② 如果有N个证书的证书链,可以表示为:X1《X2》X2《X3》...XN《B》。2)证书的吊销证书有效期与吊销:每个证书都有有效期,但可能因私钥泄露或用户身份变更被CA提前吊销。证书吊销列表(CRL):CRL(Certificate Revocation List)存放所有未到期而被吊销的证书,包括CA发放给用户和其他CA的证书。签名要求:CRL必须由签发它的CA签字。存储方式:存放在目录中供他人查询。3)PKI总结PKI(Public Key Infrastructure)是基于公钥密码学的数字证书管理体系核心组件:CA(证书颁发机构):签发并管理数字证书RA(注册机构):验证用户身份真实性证书库:存储已签发的证书和吊销列表(CRL)核心功能:身份认证(通过数字证书绑定公钥与实体)数据加密(使用接收方公钥加密信息)数字签名(用私钥签名确保不可抵赖性)运作流程:证书申请 → CA审核 → 签发证书 → 证书分发 → 证书吊销(CRL更新)PKI是通过CA签发数字证书、RA验证身份、密钥分级管理构建的信任体系,实现网络环境中的安全通信与身份认证。

相关推荐
运维行者_10 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
国强_dev11 小时前
技术探讨:使用 stunnel 加密转发数据库连接时,如何获取客户端真实 IP?
数据库·网络协议·tcp/ip
Coder_Shenshen12 小时前
西门子S7CommPlus协议鉴权算法原理与流程详解
网络·后端·算法
HavenlonLabs15 小时前
Havenlon 对抗性完整(十七):安全不是“防住攻击”,而是控制失败方式
网络·人工智能·架构·安全威胁分析·安全架构·havenlon
fei_sun15 小时前
路径MTU发现
linux·运维·网络
tachibana217 小时前
hot100 回文链表(234)
java·网络·数据结构·leetcode·链表
从零开始的代码生活_18 小时前
NAT、代理服务与内网穿透详解
linux·服务器·网络·c++·http·智能路由器
云栖梦泽在18 小时前
Claude Code / Codex 使用卡顿怎么办?AI 编程 Agent 连接失败与网络排查思路
网络·人工智能·网络协议·chatgpt·性能优化
Jeremy_WW18 小时前
QSFP-DD MSA Hardware协议解读(二)
网络·模块测试·智能硬件