引 言
在商用密码应用安全性评估过程中,需要密评工程师具备大量和扎实的密码应用基础知识,本系列为密评工程师学习扎记,供大家共同探讨交流。
01.
密码
指采用特定变换的方法对信息等进行加密保护(保证保密性)、安全认证的技术(保证真实性)、产品(实现加密保护与安全认证的设备与系统)和服务(基于密码技术产品实现密码功能的行为)。
02.
密码学
分为密码编码学与密码分析学。编码有三个分支:对称密码学,非对称密码学和密码协议。分析的方法有很多,包括数学分析法,穷举法、差分分析法等等,其中最有效的攻击手段是社会工程学。以1949年美国数学家、信息论创始人香农发表《保密系统的通信理论》为标志,成为一门现代学科。
03.
密码技术
密码技术核心内容为密码算法、密钥管理、密码协议。
算法是明密变换、产生认证标签的一种特定规则,有加密算法、解密算法、数字签名算法、杂凑算法。我国的商用密码算法ZUC、SM2、SM3、SM9已成为国际标准。
密钥是密码算法中控制密码变换的关键参数。
密码协议是两个或两个以上参与者使用密码算法而约定交互规则。
04.
密码技术框架
包括:密码资源(基础的资源)、密码支撑(芯片、模块或整机)、密码服务(对称、公钥或其他密码API)、密码应用(调用密码服务层提供密码应用接口,实现加解密、签名验签等功能)。
05.
密码应用中的安全性问题
因弃用、乱用、误用密码技术,从而不满足合规、正确、有效地使用密码。
弃用:为图方便故意忽视密码技术。
乱用:不严格执行标准,简化使用,如SSL应用中不验证公钥/数字证书的绑定关系,不检查根证书配置和实体身份标识就存在中间人攻击的风险。
误用:如使用固定值而不是随机数作为加密算法初始向量、使用计数器代替数字签名中的随机数、颠倒身份鉴别的挑战者与响应者角色、使用已被实际破解的算法(MD5、SHA-1等)。
06.
密码保障信息安全四大属性
加密算法保障机密性、可认证性与不可抵赖性要数字签名和哈希函数共同作用、完整性由哈希函数保障。
07.
密码系统的评价五标准
保密度、密钥量、加密操作的复杂性、误差传播、消息扩展。
08.
对称密码
加密和解密用的是同一个密钥。对称密钥和沟通原理一样,N个人就要N(N-1)/2对密钥。
09.
公钥密码
又称非对称密码。有公钥不能计算出私钥,有私钥能计算出公钥。1976年,DH(Diffie和Hellman)发表《密码学新方向》,引入了公钥密码,其安全性基于离散对数求解的困难性。N个人只需N对密钥。基于大整数因子分解(RSA算法),然后就是基于离散对数、椭圆曲线上的离散对数的算法。
10.
杂凑算法
又称散列算法、哈希算法,任意长度消息压缩成某一固定长度消息摘要,可用于数字签名、安全认证、完整性保护、口令保护。2004年王小云破解MD4、MD5、SHA-1。
11.
SHA-3算法
2012年NIST宣布Keccak算法成为新杂凑算法标准,即SHA-3算法。具有抗原像攻击(单向性)、抗第二原像攻击(弱抗碰撞性),给一个输入,找到另一个输入能使H(M1)=H(M2))、强抗碰撞性(发现不同的输入,找到能使H(M1)=H(M2)的输出)。
12.
生日攻击
原自"生日问题"(birthday problem)的数学原型:一个班级需要有多少人,才能保证每个同学的生日都不一样?一个23人的班级有50%的概率,至少两个同学生日相同。哈希碰撞所需耗费的计算次数,跟取值空间的平方根是一个数量级。这种利用哈希空间不足够大,而制造碰撞的攻击方法,就被称为生日攻击(birthday attack)。
13.
标识密码算法
标识密码(Identity-Based Cryptography,IBC),基于传统的公钥基础设施(Public Key Infrastructure PKI),但通信双方不需要交换公私钥信息、不需要保存密钥的目录服务等基础设施、不需要使用第三方提供认证服务,易于部署和使用。每个人的公钥就是他的身份标识,如电话、email,所以密钥管理相对简单。用户私钥由密钥生成中心根据主密钥和用户标识计算出,用户公钥由用户标识唯一确定,用户不需要通过第三方来保证公钥来源的真实性。
14.
量子密钥分发(QKD)
量子通信提供了一种新方式来密钥共享,是基于物理原理而不是数学和计算,理论上是绝对安全。但当前还没有相关的实用化技术和产品。目前的量子通信或量子密码通信通常指量子密钥分发以及基于量子密钥分发的加密通信。通信双方协商得到一串相同的随机数,通信中不传输密文。量子通信并不是现代密码技术的代替品,是现代密码学体系的一种有益补充。
15.
后量子密码
抗量子攻击的公钥密码算法也叫后量子密码算法,目前有基于格密码、基于多变量的密码和基于杂凑函数的密码。格密码算法的安全性基于困难问题的最大困难性。
16.
同态加密
直接操作密文实现对明文的任意操作。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
17.
密码算法分析
柯克霍夫斯(Kerckhoffs)原则:评估密码算法安全性时,假定攻击者不知道密钥,但知道密码算法的所有细节。
唯密文攻击:只知道密文。
已知明文攻击:攻击者有某些密文以及相应的明文。如截获一份加密通信稿,又看到了解密后的通信稿。
选择明文攻击:能接触加密机器,不能找到密钥,但可以大量挑选明文来做加密,然后利用密文来推断密钥或试图解密。
选择密文攻击:能接触解密机器,选择密文进行解密,来推断密钥或试图解密。
18.
商用密码产品形态类型
分为六类:软件、芯片、模块(单一芯片或多芯片组装在一块电路板上,实现专用密码功能的产品)、板卡(如智能IC卡、密码卡、智能密码钥匙)、整机、系统。
19.
商用密码产品功能类型
分为七类:密码算法、数据加解密(VPN、密码机、加密硬盘)、认证签别(认证网关、动态口令、签名验签)、证书管理(证书认证系统)、密钥管理(KMS)、密码防伪(电子印章、时间戳)、综合类(含有两种以上功能的产品,如ATM机)。
20.
椭圆曲线
椭圆曲线并不是椭圆,之所以称之为椭圆是因为它们都是三次方程来表示,且该方程计算椭圆周长的方程相似。
21.
FBE/保形加密
格式保留加密(Format-Preserving-Encryption)是一种特殊的对称加密算法。FPE可以保证加密后的密文格式与加密前的明文格式完全相同。
22.
雪崩效应
指明文或密钥的少量变化会引起密文的很大变化。如RSA不具用雪崩效应。
23.
消息认证码(MAC)
解决消息是来自可信一方,还是来自伪装者。通过发送方与接收方共享密钥,通过该共享密钥对计算 MAC 值。
(1)发送方 A 与接收方 B 共享密钥。
(2)发送方 A 通过密钥计算 MAC 值 = MAC-A。
(3)发送方 A 发送原消息 + MAC-A。
(4)接收方 B 对原消息通过密钥计算 MAC 值 = MAC-B。
(5)接收方 B 比较 MAC-A 与 MAC-B,若一致则成功。
24.
HMAC
带密钥的杂凑算法叫HMAC。将一个密钥和一个消息作为输入,生成一个消息摘要作为输出。IPsec、SSL协议中都用到了HMAC。
25.
数字签名
明文先hash,再用私钥对hash加密形成数字签名。发送明文+数字签名。所以是用非对称密钥。因为私钥只有发送者有,所以能防抵赖。
由于 MAC 无法解决否认的问题是由于采用的相同的密钥,那么采用公私钥对就可以解决啦。采用非对称加密的消息认证码的技术,就是数字签名。
(1)在非对称加密中,私钥用来解密,公钥用来加密。
(2)在数字签名技术中,私钥用来加密,公钥用来解密。加密是签名,解密是验签。
26.
群签名(群数字签名)
一个群体中的任意一个成员可以以匿名的方式代表整个群体对消息进行签名。
27.
门限签名
又称多重签名,m of n 门限签名,即系统中共有n个用户,任意m个用户聚在一起可以恢复出secret,任意少于m个用户聚在一起都不能恢复出secret。类似金库钥匙要多人合成。
28.
盲签名
盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术。相当于将文件放入信封,签名者在信封上对文件进行签名,而不知道具体的文件内容。进行盲化处理的方法很多,例如,可随机选取某个数,称该随机数为盲因子,把原消息数值化后,与盲因子相乘即可得到盲消息。签名者不能追踪签名(就是签名者不知道是给谁签名的)。
29.
证书
对数字签名所发布的公钥进行权威的认证,便是证书。证书可以有效地避免中间人攻击的问题。Public-Key Certificate,公钥证书,简称证书。CA(Certification Authority),认证机构。
30.
双证书体系
解决了加密应用的密钥要求在用户之外得到备份,但数字签名应用的私钥不能在用户外有备份。签名私钥由用户本地生成并专有掌握,加密私钥由专门的可信机构(如密钥管理中心)生成并和用户共同掌握。
根据所保护公钥的用途,数字证书可以分为加密数字证书(Encryption Certificate)和签名验证数字证书(Signature Certificate)。
(1)加密数字证书:用来保护加密用途的公钥。
(2)签名验证数字证书:用来保护签名用途的公钥。
(3)两种类型的公钥可以同时放在同一证书中。
一个数字证书内容可能包括证书域(证书的版本、序列号、签名算法类型、签发者信息、有效期、被签发主体、签发的公开密钥)、CA对证书的签名算法和签名值等。
31.
数字信封
明文,非对称私钥形成数字签名,再随机对称密钥进行加密,用接收者的公钥进行加密。
32.
密评中的优势证据
工具测试结果> 配置检查结果> 实地察看结果 >文档审结果> 访谈结果 。工具测试与配置检查两项目结果中只要有一种不符合就判定结果不符合。
33.
零知识证明
证明者可以在不暴露任何有用信息的前提下,让验证者相信某个论断是正确的。
34.
国密算法
其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。SM1其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。SM7适用于非接触式IC卡,应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通等。
35.
SM2
基于椭圆曲线(ECC)设计,含密钥协商、数字签名、公钥加解密。密钥256位强度已超RSA2048,速度快RSA百倍以上。加密结果增加96个字节,768位。
36.
SM3
分组长度512位,摘要值长度256位,压缩函数迭代64轮。与SHA-256相当。用于数字签名与验证,消息验证码生成与验证、随机数生成等。SM3执行过程的四个步骤:消息填充(最后几位,描述消息长度,多余填充)、消息扩展、迭代压缩、输出结果。首轮有IV输入,第1个组的输出当第2个组的输入(同IV的作用)。MAC:带密钥的认证模式。H-MAC是利用杂凑算法,将一个密钥和一个消息作为输入,生成一个消息摘要作为输出。HMAC可用作数据完整性检验,检验数据是否被非授权修改;也可用作消息鉴别,保证消息源的真实性。
37.
SM4
分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
38.
SM9
基于椭圆曲线和双线性对设计。等同于3072位RSA加密算法,用于身份认证。将用户的标识作为公钥,省略了公钥交换过程。
39.
密钥归档与备份
密钥归档是在密钥的生命周期之外(销毁之后)对密钥进行保存,在现有系统中该密钥已经不再使用;密钥备份则针对仍在生命周期内的密钥。签名密钥对的私钥不应进行归档。
40.
密评项与分数
密码应用测评要求共41项,技术22项,管理19项;通用测评要求5项。测评满分100分,技术70分(物理和环境10分、网络和通信20分、设备和计算10分、应用与数据30分),管理制度、人员、建设与应急共30分。得分不小于60分,且无高危风险为基本符合。
密码产品应用测评中:智能IC卡/智能密码钥匙口令长度不小于6个字符,错误口令登录验证次数不大于10次。动态口令PIN码长度不小于6位数字,输入错误超过5次至少要等待1小时才可继续尝试,超过最大尝试次数的情况超过5次,则要求锁定。
本文内容仅供参考与学习,更多商用密码应用知识,欢迎关注“中尔安全实验室”,与我们共同探讨。