商用密码的安全性

密码的定义:采用特定变换的方法对信息进行加密保护、安全认证的技术、产品和服务

密码技术包括:密码编码、实现、协议、安全防护、分析破译、以及密钥产生、分发、传递、使用、销毁等技术

典型的密码技术包括:密码算法、密钥管理、密码协议

密码算法:实现密码对信息进行“明”“密”变换、产生认证“标签”的一种特定规则

密码协议:两个或两个以上参与者使用密码算法,为达到加密保护或安全认证目的而约定的交互规则

密码的重要作用:保护网络与信息安全

密码是保障网络与信息安全最有效、最可靠、最经济的手段

杂凑算法实现任意长信息压缩为固定长度摘要的功能

密码是:“基因”、“信使”、“卫士”

信息系统的要素有:计算机硬件、网络和通讯设备、计算机软件、信息资源、信息用户、规章制度

信息安全的主要目的:保障信息的保密性、完整性和可用性

密码技术最关键、最核心、最基础

密码是国家重要战略资源,是保障网络和信息安全的核心技术和基础支撑,是保护国家安全的战略性资源

密码具有的功能:信息的保密性、信息来源的真实性、数据的完整性、行为的不可否认性

信息的保密性:保证信息不被泄露给非授权的个人、进程等实体的性质,采用密码技术中的加密和解密技术可实现

信息来源的真实性:保证信息来源可靠、没有被伪造和篡改的性质,实体身份的真实性:信息收发双方身份与声称的相一致。采用密码技术中的安全认证技术可实现

数据的完整性:数据没有受到非授权的篡改或破坏的性质,采用密码杂凑算法可实现

行为的不可否认性:也称抗抵赖性,指一个已经发生的操作行为无法否认的性质,采用数字签名算法可实现

数据完整性并不要求数据来源的可靠性,但数据来源真实性一般要依赖于数据完整性

密码应用技术框架层次:密码资源、密码支撑、密码服务、密码应用

  • 密码资源层:底层提供序列、分组、公钥、杂凑、随机数生成等基础密码算法;上层以算法软件、算法IP核、算法芯片对底层基础密码算法进行封装
  • 密码支撑层:提供密码资源调用,有安全芯片类、密码模块类、密码整机类等各类密码产品组成,如可信安全模块、智能IC卡、密码卡、服务器密码机等
  • 密码服务层:提供密码应用接口,分为对称密码服务、公钥密码服务及其他密码服务三类,为上层应用提供数据的保密性保护、身份鉴别、数据完整性保护、抗抵赖等功能
  • 密码应用层:调用密码服务层提供的密码应用接口,实现所需的数据加密和解密、数字签名和验签等功能,典型应用如安全电子邮件系统、电子印章系统、安全公文传输、桌面安全防护、权限管理系统、可信时间戳系统等

密码管理基础设施作为一个相对独立的组件,为上述四层提供运维管理、信任管理、设备管理、密钥管理等功能

密码应用中的安全性问题:密码技术被弃用、乱用、误用

商用密码应用安全性评估(简称“密评”)的定义:在采用商用密码技术、产品和服务集成建设的网络与信息系统中,对其密码应用的合规性、正确性、有效性等进行评估

国际上重要的信息安全管理标准:国际:ISO/IEC TR 13335、中国:GB/T 22080-2016、英国:BS 7799、美国:NIST SP800

PDCA管理循环(戴明环)计划、实施(实施并运行)、检查(监视并评审)、改进

系统安全组件可以分为:技术组件、非技术组件

技术组件:计算机软硬件

非技术组件:各种规章、条例、操作守则等

建设一个信息系统,在信息安全管理的计划阶段,就应完成所需要使用的信息安全产品的选型;在制定密码应用方案时,也应完成所需使用的密码产品的选型

信息安全风险评估包括三个基本活动:确定评估范围和方法、收集和分析风险相关数据、解释分析评估结果

信息安全风险评估的定义:依据有关信息技术标准,对业务和信息系统及由其处理、传输和存储的信息的保密性、完整性和可用性等安全属性进行评价的过程

风险评估的目的:评价目标实体的安全风险

1位 = 1比特(bit) 8位=1字节(byte)

信息安全风险评估的基本要素:资产、威胁、脆弱性(漏洞)、风险、安全措施

资产:对组织有价值的信息或者资源,是安全策略保护的对象,包括:计算机硬件、通信设施、建筑物、数据库、文档信息、软件、信息符合和人员

威胁:可能对资产或组织造成损害的意外事件的潜在因素,分为人为威胁(故意或无意)和非人为威胁(自然和环境)

脆弱性(漏洞):可能被威胁利用的资产或若干资产的薄弱环节

风险:威胁发生时,给组织带来的直接或间接的损失或伤害

安全措施:保护资产、抵御威胁、减少脆弱性、减低安全事件的影响,以及打击信息犯罪而实施的各种实践和机制


商用密码的安全性
风险评估基本要素关系图

开展风险评估时,应考虑基本要素之间的以下关系:

  1. 组织的发展战略依赖业务实现,业务重要性与其在战略中所处的地位相关
  2. 业务的发展需要资产作为支撑,而资产会暴露出脆弱性
  3. 安全措施的实施要考虑需保障的业务以及所应对的威胁
  4. 风险的分析和计算,应综合考虑业务、资产、脆弱性、威胁和安全措施等基本因素

密码应用安全性评估时保障密码应用合规、正确、有效的重要手段

密码应用安全性评估活动贯穿于密码应用管理过程整个生命周期

计划阶段:应详细梳理分析信息系统所包含的网络平台、应用系统和数据资料的信息保护需求,定义密码应用安全需求,设计密码应用总体构架和详细方案,也就是设计出具体的密码应用方案

实施阶段:信息系统责任方需要按照计划阶段产出的密码应用方案实施系统建设

检查阶段:密码应用安全性评估包括:初次评估、定期评估、应急评估。关键信息基础设施、网络安全等级保护第三级及以上信息系统,每年应至少评估一次。系统发生密码相关重大安全事件、重大调整或特殊紧急情况时,信息系统责任方应当及时开展密评,即应急评估

政务信息系统政府采购需求应当落实国家密码管理有关法律法规、政策和标准规范的要求,同步规划、同步建设、同步运行密码保障系统并定期进行评估

密码应用和密码安全要做到三同步原则:同步规划、同步建设、同步运行

关键信息基础设施定义:面向公众提供网络信息服务或支撑能源、通信、金融、交通、公共事业等重要行业运行的信息系统或工业控制系统

评估未通过,信息系统责任方应限期整改并重新评估,进入改进阶段,进入新一轮的PDCA管理循环。

密码应用安全性评估的模式类似于信息产品安全性检测的“CC+PP+ST”

  • CC:GM/T 0054-2018《信息系统密码应用基本要求》及其配套标准是信息系统密码应用准则
  • PP:针对某类型信息系统的密码应用要求类标准,如“金融IC卡发卡系统密码应用要求”
  • ST:某个信息系统的密码应用方案

产品的质量通常有第三方检查机构依据相关标准实施检测来保证,通过边界规划的方法,密码产品(如密码机、智能IC卡等)可以当作一个“密码模块”,按照密码模块的标准对密码产品自身的安全防护能力进行检测

用户可以根据需求(包括要保护资产的价值和密码产品的使用环境)选择和部署不同等级的密码产品搭建信息系统。但是,密码产品的安全等级与信息系统的安全等级无直接相关

密码应用安全性评估对信息系统采用的密码算法、密码技术、密码产品、密码服务进行全面规范,对密码应用技术和管理的各个层面提出系统性的要求,并在信息系统规划、建设和运行等阶段规范实施,能够有效保障密码应用的整体安全、系统安全、动态安全

密码应用安全是整体安全,不仅包括密码算法安全、密码协议安全、密码设备安全,还要立足系统安全、体系安全和动态安全

密码应用安全性评估借鉴了风险评估的原理和方法,产品人员需要具有系统化、专业化的密码应用安全性评估能力和一定的信息安全风险评估能力。

推进密码技术进步的两个主要动力:信息系统的应用需求和攻击威胁

阶段代表
古典密码

凯撒密码(加法密码)、维吉尼亚密码(多表代换密码、周期代换密码)

栅栏密码(置换密码)

机械密码恩尼格玛机(多表代换密码)
现代密码DESAESMD-5SHA-1

古典密码的两个主要体制:代换密码(单表代换、多表代换)、置换密码

置换密码又称为换位密码

单表代换密码的典型代表:仿射密码

多表代换密码的典型代表:恩尼格玛机、维吉尼亚密码

仿射密码的加法变换可以标识为 商用密码的安全性,其中密钥 商用密码的安全性商用密码的安全性为明文字表大小,商用密码的安全性为明文,商用密码的安全性商用密码的安全性互素。

商用密码的安全性 = 0时的变换称为乘法密码;当商用密码的安全性 = 1时的变换称为加法密码

多表代换:以多个代换表依次对明文消息的字母进行代换的加密方法

一台只有三个转子的恩尼格玛机大约1亿亿种不同的密码变换组合

密码学的两个分支:密码编码学、密码分析学

密码分析学的主要目的:研究加密消息的破译或消息的伪造

CPC的密码工作创建于:第二次国内革命战争时期(豪密)

1949 年香农发表《保密系统的通信理论》和《通信的数学理论》标志着现代密码学真正开始。

评价密码系统的五条标准:保密度、密钥量、加密操作的复杂度、误差传播、消息拓展

1976年,迪菲Diffie)和赫尔曼Hellman)在他们的论文《密码学的新方向》中提出了公钥密码的概念

里维斯特(Rivest)、沙米尔(Shamir)、埃德蒙(Adleman)提出RSA算法

RSA算法设计基于的数学难题:大整数因子分解问题

AES算法采用宽轨道策略设计,基于的数学结构是有限域商用密码的安全性

AES算法能够抵抗:差分分析、线性分析、代数攻击

AES 基本特性
AES密钥长度(比特)分组长度(比特)加密轮数
AES-12812812810
AES-19219212812
AES-25625612814

DES的密钥长度为64位,其中有效密钥长度(数据位)56位,校验位为8位

2004年王小云使用模差分分析方法破解MD-4MD-5SHA-1

有安全风险的密码算法:DESRSA(2048以下)MD-4MD-5SHA-1RC4

密码技术发展趋势:

  1. 抗量子攻击(基于格、多变量、编码、杂凑的密码)
  2. 量子密钥分发
  3. 抵抗密钥攻击(密钥泄露容忍、白盒密码)
  4. 密文计算
  5. 极限性能(轻量级对称密码算法设计、轻量级公钥密码算法设计)

抗量子攻击:

  • Shor算法可以在多项式时间内求解大整数因子分解和离散对数问题,影响RSAEIGamal算法安全
  • Grover算法实现了穷举算法的平方级的提升,可以将AES-128的破解难度从商用密码的安全性降为商用密码的安全性

目前主流的公钥密码算法都是基于大整数因子分解或离散对数问题

基于格上的基础困难问题:格最早应用到密码学是作为一个分析工具出现的,即利用LLL格基约化算法来分析密码算法;基于带错误学习(LWE)问题的公钥加密算法是基于格的基础困难问题

基于多变量的公钥密码系统的安全性建立在:求解有限域上随机产生的非线性多变量多项式方程组的困难上

基于多变量的公钥密码系统的公钥由:两个仿射变换和一个中心映射复合而成

基于多变量的公钥密码系统的优缺点:优点:运算在较小的有限域上实现,效率较高;缺点:密钥量较大,且随着变量个数的增加及多项式次数的增加,密钥增长较快

基于编码的公钥密码的安全性依赖于:随机线性码译码的困难性

基于编码的公钥密码的密钥量也较大,大多数基于编码的公钥密码使用Goppa码,导致密码体系和密钥长度太大而使得效率很低

基于杂凑函数的密码:从设计的角度观察,只要有单向函数就可以设计数字签名算法,因此可以基于杂凑函数来设计数字签名算法,而不需要依赖于任何困难假设

量子通信提供了一种新的方式来实现密钥共享,其安全性依赖于物理原理而不是传统的数学和计算复杂度理论,能够从理论上确保通信的绝对安全

量子密钥分发需要通过“量子信道+经典信道”来完成

国内基于量子密钥分发的加密通信过程:①通信双方得到量子密钥(通过量子密钥分发得到的密钥);②再采用成熟的对称加密算法(如SM4)对通信数据进行加密和解密。这种通信实质上是使用了量子秘钥的经典加密通信

密钥泄露容忍主要研究:如何在密钥泄露的情况下保障密码方案的安全性

密钥泄露容忍只能作为一种辅助手段来对抗密码泄露攻击,而无法从根本上保护密码算法的安全性

白盒密码理论研究的问题:如何使用密码混淆技术将密钥和密码算法融合在一起,使得攻击者即使实施了上述的“白盒”攻击,也无法提取出密钥,从而降低开放环境下密码算法实现的密钥泄露风险

加密算法的基础要求:保证数据的保密性

全同态加密算法需要同时支持加法和乘法的同态操作才能完成对任意有效计算函数的同态操作

经典的RSAElGamal系列方案能支持乘法操作,Paillier类方案能支持加法操作,2009年美国密码学家Gentry提出了基于理想格上的困难问题设计全同态加密的思想,并给出了具体的密码方案,通过引入噪音使得加密算法同时满足加法、乘法的可交换

轻量级对称密码算法设计:低延迟、低功耗、易于掩码等除硬件性能,对8位处理器上的软件实现性能也有要求去,由于特殊的应用需求去,轻量级分组密码的分组长度不仅有64比特的版本,还出现了32比特、80比特和96比特的特殊版本。

轻量级密码算法填补了传统密码算法的一些空白,并没有替代传统密码算法的趋势

轻量级公钥密码算法设计:传统公钥密码算法的运算负载是弱终端无法承受的。目前基于格的密码算法的密文和密钥尺寸远大于经典公钥密码算法,这是需要解决的主要问题之一

在分组密码算法中,使用最后一个分组的输出结果作为MAC

商用密码的安全性
对称密码加密和解密基本流程
商用密码的安全性
序列密码和分组密码的加密流程

序列密码的特点:优点:密钥流可以在明文序列到来之前生成,执行速度快,计算资源的占用较少,便于硬件实施,常用于功耗或计算能力受限的系统中,没有或只有有限的错误传播。可用于实时性要求高的场景;缺点:低扩散、插入及修改的不敏感性

分组密码的特点:优点:明文信息良好的扩展性,对插入的敏感性,不需要密钥同步,较强的适用性,适合作为加密标准;缺点:加密速度慢,错误扩散和传播

分组密码算法根据分组数据块连的组合模式不同可分为七种工作模式:ECBCBCCFBOFBCTRBCOFBNLF

ECB(电码本)模式:

  1. 对某一个分组的加密或解密可独立于其他分组进行
  2. 对密文分组的重排将导致明文分组的重排
  3. 不能隐藏数据模式,即相同的明文分组会产生相同的密文分组
  4. 不能抵抗对分组的重放、嵌入和删除等攻击

CBC(密文分组链接)模式:用于生成消息鉴别码(不能使用初始向量IV,即IV全为0),用于加解密时IV 是一个初始向量,无须保密,但必须随着消息的更换而更换,且收发双方必须选用一个IV。计算的密文分组不仅与当前明文分组有关,而且通过反馈作用还与以前的明文有关。前一个密文分组与当前密文分组解密运算后的结果进行异或,得到对应的明文分组

  1. 链接操作使得密文分组依赖于当前的和以后的明文分组,密文分组的重新编排不会对相应明文重新编排
  2. 加密过程使用IV进行随机化,每次加密IV都必须重新生成,并且要保证IV的随机性。使用不同IV避免相同明文使用相同密钥产生相同密文的弊端
  3. 加密过程串行,无法并行化,解密过程并行

CTR(计数器)模式:该模式下消息长度可以不是分组长度的整数倍

  1. 支持加密和解密并行计算
  2. 只用到了分组密码算法的分组加密操作
  3. 错误密文中的对应比特只会影响解密后明文中的对应比特,即错误不会传播

对称加密:序列密码(流密码):ZUC;SNOW、RC4、chacha20-poly1305

分组密码(块密码):SM1(SCB2)、SM4、SM7、SSF33;RC5、DES、3-DES、AES、IDEA

非对称加密:SM2、SM9;RSA、Elgamal、背包算法(Knapsack)、Rabin、D-H、ECC、NTRU、

杂凑算法加密:M-D模式:SM3;MD-5、SHA-1、SHA-2、RIPEMD

海绵模式:SHA-3( Keccak)

类型

子类型

名称

密钥长度(bit)

其他(bit)

应用

对称

密码

算法

序列密码

ZUC

128

种子密钥:128

初始向量:128

密钥流位宽:32

MAC(完整性算法):32

16级线性反馈移位寄存器(LFSR)

4G移动通信密码算法国际标准

加密算法(128-EEA3)

完整性算法(128-EIA3)

256

初始向量:184

认证标签:32/64/128

5G通信安全标准

分组密码

SM1

128

分组长度:128

芯片、智能IC卡、智能密码钥匙、加密卡、加密机、电子政务、电子商务及国民经济的各个应用领域(如国家政务通、警务通)

SM4

128

分组长度:128

S盒输入:8

S盒输出:8

线性置换输入:32

32轮迭代加密

无线局域网产品

SM7

128

分组长度:128

非接触式IC卡、票务类应用、支付通卡类

公钥

密码

算法

椭圆曲线

SM2

公钥:512

私钥:256

推荐参数:256

电子支付、通信保护、数字签名、密钥协商、公钥加密

标识密码

SM9

256

BN曲线:256

各种新兴应用的安全保障。如基于云技术的密码服务、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。

数据加密、身份认证、通话加密、通道加密

密码

杂凑

算法

M-D结构

SM3

-

生成杂凑值长度:256

填充分组:512整数倍

迭代输出长度:256

变量寄存器位数:32

64轮迭代

商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成

公钥加密算法:公钥加密,私钥解密

数字签名算法:私钥加密,公钥解密

商用密码的安全性

数字签名,RSA的公私钥加密与解密代码实现:数字签名,RSA的公私钥加密与解密_Hyacinth12138的博客-CSDN博客

ZUC算法在设计中引入了:素数域运算、比特重组、最优扩散的线性变换等先进理念和技术

ZUC算法为核心的机密算法128-EEA3和完整性保护算法128-EIA3,与美国AES、欧洲SNOW3G共同成为4G移动通信密码算法国际标准

从私钥可推导出公钥,但从公钥推导出私钥在计算上是不可行的

SM2椭圆曲线公钥密码算法是基于:椭圆曲线离散对数问题

SM2算法主要包括:数字签名算法、密钥交换协议、公钥加密算法

SM2公钥加密算法主要体现在:算法具有单向性、算法产生的明文和密文具备不可区分性、密文具备不可延展性

椭圆曲线不是椭圆,它们是用三次方程来表示的

SM9算法涉及:有限域和椭圆曲线、双线性对及安全曲线、椭圆曲线上双线性对的运算等基本知识和技术

SM9密码算法的应用和管理不需要数字证书、证书库和密钥库

SM3的实现过程主要包括:填充分组、迭代压缩

SM3采用的设计技术:16步全异或操作、消息双字介入、加速雪崩效应的P置换

SM3可以有效抵抗:强碰撞性的差分分析、弱碰撞性的线性分析、比特追踪

杂凑算法可用于:数字签名、完整性保护、安全认证、口令保护

SM2与RSA相比具有以下优势:安全性高、密钥短、私钥产生简单、签名速度快

SM9的特性:无需证书、易于使用、易于管理

杂凑算法的性质:

  • 抗原像攻击(单向性):为一个给定的输出找出能映射到该输出的一个输出计算上是困难的,即给定杂凑值商用密码的安全性,找到消息商用密码的安全性使得 商用密码的安全性 是困难的
  • 抗第二原像攻击(弱抗碰撞性):给定消息商用密码的安全性,找到另外一个消息商用密码的安全性使得商用密码的安全性是困难的
  • 强抗碰撞性:找到两个消息商用密码的安全性商用密码的安全性商用密码的安全性不同于商用密码的安全性)使得是商用密码的安全性困难的

安全认证主要目的:信息是否完整、信息是否被篡改、信息是否可靠、行为是否真实

HMAC(哈希运算消息认证码):是利用杂凑算法,将一个密钥和一个消息作为输入,生成一个消息摘要作为输出

MAC函数可以用HASH函数来构造,就叫做HMAC,也可以使用对称加密函数来构造

科克霍夫原则:评估一个密码算法安全性时,必须假定攻击者不知道密钥,但知道密码算法的所有细节

基于科克霍夫原则可知:密码算法的安全性应该基于密钥的保密(即密码不被攻击者所知),而不是所用算法的隐蔽性

密码分析可划分为:唯密文攻击、已知明文攻击、选择明文攻击、选择密文攻击

  • 唯密文攻击:攻击者只获得密文的信息(最常见)
  • 已知明文攻击:攻击者拥有某些密文以及相应的明文
  • 选择明文攻击:攻击者有接触加密机器的机会,不能打开机器找到密钥,但可以加密大量经过精心挑选的明文,然后利用所得的密文推断密钥的信息或试图对其他密文进行加密
  • 选择密文攻击:攻击者有接触解密机器的机会,对选择的密文进行解密操作,然后试着用所得结果推断密钥或试图对其他密文进行解密

公钥密码一般依赖于计算困难的数学问题,问题包括:大整数因子分解。离散对数、格中向量问题、子集和问题、线性纠错码译码、多变量多项式方程组求解、组合群论及椭圆曲线上的双线性Diffie-Hellman问题等

杂凑函数的分析方法主要包括:差分攻击、模差分攻击、中间相遇攻击

GM/T0054 密钥的生命周期:生成、存储、导入和导出、分发、使用、备份和恢复、归档、销毁

GB/T 39786 的密钥生命周期:产生、分发、存储、使用、更新、归档、撤销、备份、恢复、销毁

密钥生成的两种主要方式:利用随机数直接生成、通过KDF(密钥派生函数)生成(随机数间接生成)

使用KDF生成密钥主要有两类情形:在密钥协商过程中从共享秘密派生密钥(如:SM2/SM9的密钥协商和公钥加密算法中使用的基于SM3KDF)、从主密钥派生密钥(如:大规模分发智能IC卡)

口令生成密钥的密钥空间依赖于口令的复杂度,但相对于密钥的预期复杂度(比如SM4密钥空间为商用密码的安全性),口令仅提供小得多的熵(8位数字口令提供商用密码的安全性),极大降低了穷举搜索攻击的难度

密钥存储:存储在密码产品中、加密保存在通用存储设备中

密钥的导入和导出方式包含:加密传输、知识拆分

密钥分发主要分为:人工(离线)分发、自动(在线)分发

一个密钥不能用于不同用途,主要有以下几个原因:

  1. 将一个密钥用于不同的用途可能会降低密钥的安全性
  2. 不同用途的密钥对密钥的要求互不相同
  3. 限制密钥的用途可以降低密钥泄露时可能造成的损失

密钥备份的主要目的:保护密钥的可用性

密钥备份和密钥存储非常类似,只不过备份密钥处于不激活状态(不能直接用于密码计算),只有完成恢复后才能激活

密钥备份需要保护:备份密钥的保密性、完整性及其拥有者身份和其他信息的关联关系

密钥归档和密钥备份的主要区别:密钥归档是在密钥的生命周期外(销毁之后)对密钥进行保存,在现有系统中该密钥已经不再使用;而密钥备份则针对仍在生命周期内的密钥

密钥销毁主要有两种情况:正常销毁、应急销毁

密钥分散:上级的密钥与本级的特征相结合(分散处理)形成本级的密钥,广泛应用于现在的金融IC卡和其他对于安全要求高的行业

点对点结构的主要问题:若有商用密码的安全性个成员相互通信,那么需要发放的KEK数为商用密码的安全性,在大型的网络中KEK的分发变得极难处理

数据密钥(DK),密钥加密密钥(KEK)

商用密码的安全性
密钥装换中心结构
商用密码的安全性
密钥分发中心结构

两种密钥中心结构:密钥转换中心、密钥分发中心

ITU-T标准化部门制定的X.509标准,为解决X.500目录中的身份鉴别和访问控制问题而设计,是目前使用最广泛、最成功的证书格式

IETF公钥基础实施工作组(PKIX)为互联网上使用的公钥证书定义了一系列标准,旨在是X.509标准中所做的证书和证书撤销列表工作

美国RSA公司制定的公钥密码学标准(PKCS)对PKI体系的加密和解密、签名、密钥交换、分发格式及行为等内容进行了规范

GM/T 0034-2014《基于SM2密码算法的证书认证系统密码及其相关安全技术规范》等系列标准对我国公众服务的数字证书认证系统的设计、建设、检测、运行及管理进行了规范

PKI主要解决:公钥属于谁的问题(这里所说的公钥属于谁,实际上是指拥有与该公钥配对的私钥,确认公钥属于谁是希望确认谁拥有对应的私钥)

PKI通过数字证书解决密钥归属问题

PKI是基于公钥密码技术实施的具有适应性的基础设施,可用于提供信息的保密性、信息来源的真实性、数据的完整性、行为的不可否认性等安全服务。

PKI 公钥基础设施 Public Key Infrastructure

公钥基础设施(PKI)组件:

  1. 证书认证机构(CA):负责为其他人签发证书,用自己的密钥来验证用户的公钥信息
  2. 证书持有者:拥有自己的证书和与证书中公钥匹配的私钥,持有者信息和对应的公钥会出现在证书中
  3. 依赖方:一般将PKI应用过程中使用其他人的证书来实现安全功能(保密性、身份鉴别等)的通信实体称为依赖方
  4. 证书注册机构(RA):作为CA与申请者的交互接口,专门负责各种信息的检查和管理工作,证书申请、审核、用户证书下载、安全审计、安全管理、多级审核。
  5. 资料库:用于实现证书分发,负责存储所有的证书,供依赖方下载
  6. 证书撤销列表(CRL):包含了所有被撤销证书的标识,验证者根据最新的CRL就能判断证书是否被撤销
  7. 在线证书状态协议(OCSP):实时检查证书撤销状态的协议标准。是一种“请求-响应”协议,OCSPCRL相比,OCSP的实时性更高,部署相对复杂
  8. 轻量目录访问协议(LDAP):提供访问控制和维护分布式信息的目录信息,CA通过把新签发的证书和证书撤销链发送到LDAP目录服务器,供用户查询、下载
  9. 密钥管理系统(KM):PKI系统中其他实体提供专门的密钥服务,包括生成、备份、恢复、托管等多种功能

签名密钥对由用户自己生成,KMC不备份私钥;加密密钥对由密钥管理中心(KMC)生成,且KMC对加密私钥进行备份。签名证书和加密证书由CA签发

证书认证机构CA)为认证权威机构,也称为数字证书管理中心


数字证书结构:

商用密码的安全性
数字证书结构

数字证书的生命周期:①产生、②使用、③撤销、④更新、⑤归档

商用密码的安全性

1)证书的产生:密钥生成、提交申请、审核审查和证书签发

  1. 密钥生成:证书申请者在本地生成一个公私密钥对。此公钥应包含在申请材料中,如果申请成功,CA所颁发的数字证书中将把此公钥和申请者的个人信息绑定。
  2. 提交申请:证书的申请者向CA或者RA提交申请材料,CA一般会提供在线或离线方式以供选择。在线方式:指用户通过互联网等登陆到用户注册管理系统后申请证书;离线方式:用户到指定的RA申请证书。
  3. 审核检查:CA(或被授权的RA)应对申请材料进行相应的审核,判断材料来源和申请者身份的真实性,以及审定可签发的数字证书种类
  4. 证书签发:可细分为证书的签署和证书的发布。

证书的签署:CA首先按照数字证书的标准格式组合出证书所需的各项数据内容,然后用自己的私钥对这些数据内容的杂凑值进行签名,并在数据内容后附上签名结果。CA签署证书后就应把证书公开发布,共各依赖方使用,CA会向申请者发送其获得的CA证书,同时CA也会把该证书放入数字证书资料库中供他人获取

证书的发布:分为在线发布和离线发布,由于数字证书的公开性质,数字证书的发布不必采用保密信道

2)证书的使用:证书获取、验证使用和证书存储

证书获取:

根CA自签名证书:由于无法通过PKI系统的技术手段对其进行验证,所以只能采用带外方式获取

用户证书:可以从CA的数字证书资料库获取证书,也可以是证书的持有者通过其他途径发送给依赖方

验证使用:证书中数字签名的有效性、证书的有效期和证书的撤销状态

在进行证书验证时:应首先验证证书中数字签名的有效性,只有签名有效性验证通过之后,才能进一步提前证书其他信息进行验证。具体验证过程:①从签发该证书的CA证书中获取公钥;②从证书中提取出签名算法信息,再对证书除去签名算法和签名结果的部分进行签名验证。如果验证通过,那么就能确保证书的完整性,可以继续其他方面的验证;否则就说明证书是伪造的活被篡改,不用进行其他的检查,直接认为此证书无效

证书有效期的验证:主要检查当前时间是否在证书的有效期字段对应的时间段内,若在有效期内,对证书进行进一步验证,否则证书无效

证书撤销状态的查询:通常采用查询CRLOCSP的方式。若发现证书已被撤销,那么证书无效,用户不能使用该证书

证书存储:用户将证书存储在本地,主要使用形式就是直接发送给其他实体,供其鉴别自己的身份。用户的私钥也存储在本地,以便进行后续签名或者解密等。一般用硬件设备保护、对称加密保护的方式保障私密的存储安全

3)证书撤销:证书的生命不一定持续到失效日期,当用户个人身份信息发生改变或用户私钥丢失、泄露或者疑似泄露时,证书用户应及时向CA提出证书撤销申请,CA将吃证书放入CRL或更新OCSP服务内容

4)证书的更新:此时的审核签发过程与第一次申请不同,更新后的证书与原证书内容基本相同,甚至可以沿用以前的公钥,仅序列号、生效和失效时间不同

5)证书的归档:已能在需要时为PKI系统依赖方找到所需要的旧数字证书和CRL为原则,无固定形式,但必不可少

双证书体系:公钥密码的密钥既可以用于加密应用,又可以用于签名应用。我国双证书体系中用户同时具有两个私钥,分别称为签名私钥和加密私钥;签名私钥由用户在本地生成并专有掌握,对应的证书称为“签名证书”;加密私钥用于解密和密钥交换,由专门的可信机构(如密钥管理中心)生成并和用户共同掌握,对应的证书被称为“加密证书”。


密码协议

Diffie-Hellman密钥交换协议:只能提供会话密钥的功能,不能抵抗中间人攻击,不能提供相互鉴别的安全保障

MQV密钥交换协议:在经典Diffie-Hellman密钥交换协议的基础上,MQV密钥交换协议在协议交互过程中用到了双方公钥信息,只有拥有相应私钥的用户才能计算出对方相同的会话密钥,从而达到隐式交换的效果。选择椭圆曲线加法作为基本的计算群。

SM2密钥交换协议:MQV的变种,同样具有鉴别通信双方身份真实性的功能

实体鉴别协议

一次传递鉴别:只需要进行一次消息传递过程,方法有:采用对称加密算法、采用密码校验算法、采用数字签名技术

为防止重放攻击,一次传递鉴别的Token中应当包含时间值商用密码的安全性或序列号商用密码的安全性

两次传递鉴定:采用“挑战-响应”,B发起鉴别过程,将随机数商用密码的安全性作为挑战发送给AA通过对称加密、计算密码校验值或私钥签名的方法计算Token,并发送给B作为自己的身份证明,B通过对称解密、重新计算密码校验值或签名验证的方法验证Token的有效性,从而对A的身份进行鉴别

商用密码的安全性

综合密码协议

采用IPSec和SSL密码协议为共用网络中通信数据提供的安全功能:加密、完整性校验、数据源身份鉴别、抗重放攻击

1)IPSec(Internet Protocol Security,互联网安全协议

IPSec工作在网络层 ,IPSec协议实际上是一套协议集合,一般用于两个子网之间的通信,称为站对站的通信。它为网络层上的通信数据提供一整套的安全体系结构,包括:IKE协议、认证头(AH)协议、封装安全载荷(ESP)协议 和 用于网络身份鉴别及加密的一些算法 等

IPSec通过加密安全服务确保通信安全

IPSec的主要功能:提供加密措施

IPSec协议可以分为两个环节:IKE是第一个环节:完成通信双方的身份鉴别、确定通信时使用的IPSec安全策略,第二个环节:使用数据报文封装协议和IKE中协定的IPSec安全策略和密钥,实现对通信数据的安全传输。

IPSec密钥协商方式有两种:①手工方式;②IKE自动协商

IPSec提供加密和认证安全机制

AHESP协议可以工作在传输模式或隧道模式下

传输模式一般用于端到端的应用场景,只有IP载荷部分被保护,对IP头不做改动

隧道协议对整个IP数据报文提供加密和认证功能,并在次基础上添加新的IP头,一般用于创建虚拟专用网(VPN)隧道链路

SA:安全联盟 ISAKMP:互联网安全联盟和密钥管理协议 SK:临时密钥

Nonce:一个只被使用一次的任意或非重复的随机数值

IKE协议:

IKE协议用于:鉴定通信双方身份、创建安全联盟(SA)、协商加密算法和生成共享会话密钥等

IKE协商两种SA:IKE SA(双向SA)、IPSec SA(单向SA

IKE可以为IPSec协商关联,为L2TP协商安全关联,为SNMPv3等要求保密的协议协调安全参数

ISAKMP分为两个阶段:

第一阶段:主模式,通信双方建立一个ISAKMP SA,并实现双方的身份鉴别和密钥交换,得到工作密钥,该工作密钥用于保护第二阶段的协商过程

第二阶段:快速模式,使用已建立的ISAKMP SA提供保护,实现通信双方IPSec的协商,确定通信双方IPSec安全策略和会话密钥。其中IPSec安全策略定义了哪些服务以何种形式提供给IP数据报文

商用密码的安全性
ISAKMP的主模式工作流程

1)ISAKMP主模式:身份保护交换,作用:身份鉴别,密钥交换

消息1:发起方告知响应方它优先选择的密码协议(如ISAKMPAHESP)以及希望协商中SA采用的密码算法

消息2:响应方发送SA载荷和双证书,SA载荷表明它接受发起方发送的SA提议,双证书用于随后密钥交换时的数据加密和身份鉴别

消息3和4:双方完成身份鉴别(基于数字签名),通过交换数据的得到第二阶段(快速模式)提供保护的工作密钥。Nonce载荷(商用密码的安全性商用密码的安全性)是生成工作密钥所需的参数,身份标识载荷(商用密码的安全性商用密码的安全性),这些数据使用双方各自随机生成的临时密钥SK进行对称加密保护,SK用对方加密证书中的公钥进行加密保护。双方各自对交换数据数字签名(使用签名证书中对应的私钥完成),并将签名结果发送给对方

消息3和4完成后,通信双方利用Nonce载荷等交换数据经伪随机函数(PRF)派生出基本密钥参数,并通过PRF用基本密钥参数派生出三个对称密钥,分别为:用于产生会话密钥的密钥参数、用于验证完整性和数据源身份的工作密钥、用于加密的工作密钥。

消息5和6:双方对协商过程内容进行鉴定确认。消息使用工作密钥进行对称加密保护,双方通过计算HMAC验证身份和协定的SA信息检查交换内容。

商用密码的安全性
ISAKMP的快速模式工作流程

2)ISAKMP快速模式:

作用:协商建立通信时使用的IPSec,包括IPSec安全策略和会话密钥

快速模式中的数据由主模式协定的ISAKMP SA提供保护。ISAKMP头后的HMAC载荷用于验证交换数据的完整性和数据源身份,将主模式中派生的用于产生会话密钥的密钥参数经PRF计算得到会话密钥,PRF输入还包括双方Nonce载荷、主模式建立的ISAKMP SA中获取的协议值和安全参数索引(SPI),其中SPI用于唯一标识一个数据报文对应的SA。用于加密的会话密钥与用于完整性和数据源身份的会话密钥按照密码算法要求的长度,从会话密钥素材中一次选取

AH协议

商用密码的安全性
传输模式和隧道模式下AH位置

封装前:IP头-协议头-数据

传输模式封装后:IP头-AH-协议头-数据

隧道模式封装后:新建外部IP头-AH-原IP头-协议头-数据

注意:因为NATIPSec有冲突,需要通过NATT技术来实现隧道通信

AH协议的主要作用是:为整个IP数据报文(IP头和IP载荷)提供高强度完整性校验,确保被篡改过的数据包被检查出来

AH提供的功能:完整性与认证

AH使用MAC(此处为HMAC)对IP数据报文进行认证,HMACIP数据报文处理所用的密钥为IKE协议用于完整性和数据源身份的会话密钥

传输模式时:AH为整个IP数据报文(原IP头和IP载荷)提供认证保护

隧道模式时:AH为整个原IP数据报文及新建外部IP头提供认证保护

AH不提供加密服务,不得单独用于封装IP数据报文,应与封装安全载荷协议ESP嵌套使用

ESP协议

商用密码的安全性
传输模式和隧道模式下ESP头位置

封装前:IP头-协议头-数据

传输模式封装后:IP头-ESP-协议头-数据-ESP尾-ESP认证数据

隧道模式封装后:新建外部IP头-ESP-原IP头-协议头-数据-ESP尾-ESP认证数据

ESP协议与AH协议相比,增加了对数据报文的加密功能,可同时使用用于加密的会话密钥及用于验证完整性和数据源身份的会话密钥,为数据提供全面保护

ESP提供身份认证

ESPAH结合使用时,无须ESP提供数据源身份鉴别,由AH提供该安全服务

传输模式时:ESP头为后面的载荷提供保密性保护,为源IP头后的内容提供认证服务

隧道模式时:ESP头为整个原IP报文提供保密性保护,为新建外部IP头后的内容提供认证保护

协议协议号

AH流量

51
ESP流量50

2)SSL(Secure Sockets Layer,安全套接字协议)

商用密码的安全性
SSL协议栈

SSL由多个协议组成的两层协议集合,工作与应用层和传输层之间

SSL协议分为握手协议和记录协议

保密性:传输的数据均是采用Session Key加密,保证了保密性;

真实性:双方握手时对对方的身份均有验证,因此可以保证对方的真实性

完整性:每部分数据均有MAC验证,验证时计算数据的MAC然后与接收到的MAC比较,即可确定数据是否完整。

不可否认性:SSL不能提供交易的不可否认性。SSL协议是基于Web应用的安全协议,它只能提供安全认证,保证SSL链路上的数据完整性和保密性。却不能对电子商务的交易应用层的信息进行数字签名,因此,SSL不能提供交易的不可否认性。

握手协议

作用:①通信双方对彼此进行身份鉴别;②协商连接会话所需的密码参数(如密码算法、密钥)

商用密码的安全性
握手协议工作流程

阶段一:Client HelloServer Hello消息用于在客户端和服务端之间进行密码套件协商及确定安全传输能力(包括协议版本、会话标识等属性),并且产生和交换随机数。

阶段二:身份鉴别和密钥交换,服务端发送证书Server Certificate(签名证书和加密证书)和服务端密钥交换消息Server Key Exchange(用于生成预主密钥)。若服务端需要验证客户身份,向客户端发送请求消息Certificate Request,之后发送Server Hello Done标识Hello消息阶段结束等待客户端返回信息

阶段三:若服务端发送证书请求信息,客户端必须返回证书消息Client Certificate。客户端发送密钥交换信息Client Key Exchange,内容取决于双方Hello消息协商出的密码交换算法,若交换算法为ECC,则客户端产生46字节(368比特)随机数与版本号一起构成预主密钥,并采用服务端的加密公钥进行加密并放在ClientKey Exchange消息中发送给服务端;若交换算法为ECDHE,则ClientKey Exchange消息包含计算预主密钥的客户端密钥交换参数,同时,客户端根据双方的密钥交换消息生成预主密钥。若客户端发送了证书消息Client Certificate,也应发送一个带数字签名的消息Certificate Verify供服务端验证客户端身份。

注:交换数据的加密运算采用对方加密证书中的公钥来完成;交换数据的签名运算采用本方签名私钥来完成,而且签名计算的输入应包括加密证书

阶段四:客户端发送密码规格变更消息,并立即使用刚协商的算法和密钥,发送加密的握手结束消息。服务端回应密码规格变更消息,使用刚协商的算法和密钥,发送加密的握手结束消息,双方可开始进行数据安全传输。

  1. 密钥计算:主密钥为48字节(368比特)对称密钥,有预主密钥、客户端随机数、服务端随机数、常量字符串,经PRF计算生成。工作密钥,生成方法与主密钥相同,具体长度由选用的密码算法决定,工作密钥包含两个对称密钥:用于加密的工作密钥、用于验证完整性和数据源身份的工作密钥。
  2. 会话重用:若干双方决定重用之前的密钥,可不必重新协商安全参数

记录层协议

商用密码的安全性
记录层协议
  • 第1步:数据分段,每一个记录块长度为商用密码的安全性字节或更小
  • 第2步 :数据压缩,使用当前会话状态指定的算进行压缩,应采用无损压缩,并且增加长度不超过1024字节
  • 第3步 :数据添加MAC,使用模式协议密码套件中协定的密码杂凑算法和用于校验的工作密钥,对每块明文记录计算MAC
  • 第4步 :对数据和MAC加密,使用模式协议密码套件中协定的对称密码算法和用于加密的工作密钥
  • 第5步 :附加SSL记录报头,增加有内容类型、主要版本、次要版本和压缩长度组成的头部

密码功能实现示例

1)保密性实现:三种基本方法

  1. 访问控制:防止敌手访问敏感信息
  2. 信息隐藏:避免敌手发现敏感信息的存在
  3. 信息加密:允许敌手观测到消息的表示,但是无法从表示中得到原始信息的内容或提炼有用的消息

加密是数据通信和数据存储中实现保密性保护的一种主要机制,保密性保护也是密码技术最初的目标

对于加密机制的应用,需要考虑密码体制的选取(对称密码体制或者公钥密码体制)、算法的选择、工作模式、填充需要、初始化需要等因素

商用密码的安全性
基于MAC的消息完整性保护过程
商用密码的安全性
基于数字签名的消息完整性保护流程

2)完整性实现:两种基本方法,一般通过消息鉴别码(MAC)或数字签名机制来实现完整性保护

  1. 访问控制:限制非授权实体修改被保护的数据
  2. 损坏检测:无法避免数据损坏,但能确保这些损坏能够被检测出来,并能够被纠正或报警

3)真实性实现:核心:鉴别。常用的鉴别方法:基于对称密码、公钥密码技术,基于静态口令的鉴别机制,基于动态口令的鉴别机制,基于生物特征的鉴别机制。(后三种鉴别方式不是直接基于密码技术进行鉴别,但是鉴别过程中仍需密码技术提供保护或支撑)

静态口令或个人识别码(PIN)是最常用的鉴别信息之一

基于生物特征的鉴别机制:对一个自然人实体进行鉴别,包括指纹、声音、虹膜、人脸等

4)不可否认性实现:网络环境中的不可否认可以分为起源的不可否认和传递的不可否认,主要通过数字签名技术实现。

  1. 起源的不可否定:使用发起者的数字签名、使用可信第三方数字签名
  2. 传递的不可否定:使用接受者的签名确认、使用可信传递代理、使用两阶段传递

本章完