写在前面

本文全部内容摘自《信息安全工程师》教材,通过博客方式记录每天学习内容和进度。同时也让感兴趣的人能够一同学习。本文只作学习交流使用,如要商用,请联系该书出版社和作者,PS:博客内容偏理论,请知悉。如果侵权,请告知,立删博文!

密码学基本理论

密码学概况

密码技术是保障网络与信息安全的核心技术和基础支撑。本节主要介绍密码学的发展简况、密码学的基本概念以及密码系统的安全性分析方法。

密码学发展简况

密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要由密码编码和密码分析两个部分组成。其中,密码编码学研究信息的变换处理以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息。
早期的密码学主要用于军事和外交通信。密码技术经历了由传统密码学到现代密码学的发展。传统密码学中的技术主要是换位和置换,这种加密方式易遭到统计分析破译,如字母的频率、字母的组合关系是分析传统密码的基本方法。
1949年,香农发表了著名的论文《保密系统的通信理论》,提出交替使用换位和置换以抵御统计分析,增加了混乱(Confusion)和扩散(Diffusion)的密码技术新方法。20世纪70年代,密码技术出现重大创新变化,一是Diffie-Hellman算法、
RSA算法的提出开辟了公钥密码学的新纪元;二是美国政府正式发布了数据加密标准(DES),以提供给商业公司和非国防政府部门使用。这些研究成果的出现标志着现代密码学的诞生。

之后其他的公钥密码相关方案相继出现,如Rabin体制、ElGamal公钥体制、椭圆曲线密码公钥体制以及基于代理编码理论的MeEliece体制和基于有限自动机理论的公钥密码体制等。1984年,针对传统公钥认证和证书管理的问题,
Shamir提出了基于身份的公钥密码系统的思想,简化了证书管理。在这种公钥密码体制的密钥生成过程中,公钥直接为实体的身份信息,例如唯一的身份证号码、电子邮件地址等,因而基于身份的公钥密码体制可以很自然地解决公钥与实体的绑定问题。
RSA算法及Diffie-Hellman算法的发明者都相继获得了计算机领域的图灵奖。
密码算法的安全性不是一成不变的,随着量子计算技术日渐成熟,RSA算法的安全性受到挑战,抵抗量子计算的密码算法成为新的需求。后量子时代密码(Post-Quantum Cryptography)研究工作是当前密码学的研究热点。
网络与信息技术的发展极大地带动了密码学的应用需求,电子政务、电子商务、网络银行、个人信息等领域的安全保护都普遍使用了密码技术。密码工作直接影响国家安全,关系公民、法人和其他组织机构的切身利益。
目前,密码成为网络与信息安全的核心技术和基础支撑,密码学的应用得到社会广泛认同,正影响着网络与信息技术的发展。2005年4月1日起国家施行《中华人民共和国电子签名法》。2006年我国政府公布了自己的商用密码算法,成为我国密码发展史上的一件大事。2019年
网络与信息技术的发展极大地带动了密码学的应用需求,电子政务、电子商务、网络银行、个人信息等领域的安全保护都普遍使用了密码技术。密码工作直接影响国家安全,关系公民、法人和其他组织机构的切身利益。目前,密码成为网络与信息安全的核心技术和基础支撑,
密码学的应用得到社会广泛认同,正影响着网络与信息技术的发展。2005年4月1日起国家施行《中华人民共和国电子签名法》。2006年我国政府公布了自己的商用密码算法,成为我国密码发展史上的一件大事。2019年
《中华人民共和国密码法》草案已经发布。

密码学基本概念

密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。所谓明文是指需要采用密码技术进行保护的消息。而密文则是指用密码技术处理过明文的结果,通常称为加密消息。将明文变换成密文的过程称作加密,
其逆过程,即由密文恢复出原明文的过程称作解密。加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称作解密算法。加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。

密码安全性分析

根据密码分析者在破译时已具备的前提条件,人们通常将密码分析攻击类型分为五种,分别叙述如下。
(1)唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。
(2)已知明文攻击(known-plaintext attack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文。
(3)选择明文攻击(chosen-plaintext attack)。密码分析者能够得到当前密钥下自己选定的明文所对应的密文。
(4)密文验证攻击(ciphertext verification attack)。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
(5)选择密文攻击(chosen-ciphertext attack)。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。

密码体制分类

根据密钥的特点,密码体制分为私钥和公钥密码体制两种,而介于私钥和公钥之间的密码体制称为混合密码体制。

私钥密码体制

私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥,如图3-1所示。私钥密码体制可看成保险柜,密钥就是保险柜的号码。持有号码的人能够打开保险柜,放入文件,然后再关闭它。
获取到号码的其他人可以打开保险柜,取出文件,而没有号码的人就必须摸索保险柜的打开方法。当用户应用这种体制时,消息的发送者和接收者必须事先通过安全渠道交换密钥,以保证发送消息或接收消息时能够有供使用的密钥。以下为私钥密码体制示意。
私钥密码体制原理示意图
显而易见,私钥密码体制的密钥分配和管理极为重要。为了保证加密消息的安全,密钥分配必须使用安全途径,例如由专门人员负责护送密钥给接收者。同时,消息发送方和接收方都需要安全保管密钥,防止非法用户读取。除了密钥的安全分配和管理外,
私钥密码体制的另外一个问题是密钥量的管理,由于加密和解密使用同一个密钥,因此,在不同的接收者分别进行加密通信或信息交换时,则需要有几个不同的密钥。假设网络中有n个使用者,使用者之间共享一个密钥,则共有n(n-1)/2个密钥。如果n很大,
密钥将多得无法处理。在私钥密码体制中,使用者A和B具有相同的加、解密能力,因此使用者B无法证实收到的A发来的消息是否确实来自A。私钥密码体制的缺陷可归结为三点:密钥分配问题、密钥管理问题以及无法认证源。虽然私钥密码体制有不足之处,
但私钥密码算法处理速度快,人们常常将其用作数据加密处理。目前,私钥密码典型算法有DES、IDEA、AES等,其中DES是美国早期数据加密标准,现在已经被AES取代。

公钥密码体制

1976年,W.Diffie和M.E.Hellman发表了《密码学的新方向》一文,提出了公钥密码体制的思想。公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。
在安全性方面,密码算法即使公开,由加密密钥推知解密密钥也是计算不可行的。公钥密码体制原理如图所示。
非对称秘钥
公钥密码体制可看成邮局的邮筒,任何人都能轻易地把邮件放进邮筒,只要从邮筒口投进去就行了。把邮件放进邮筒是一件公开的事情,但打开邮筒却是很难的。如果持有秘密信息(钥匙或组合密码),就能很容易地打开邮筒的门锁了。与私钥密码体制相比较,公钥密码体制有以下优点。
(1)密钥分发方便,能以公开方式分配加密密钥。例如,因特网中个人安全通信常将自己的公钥公布在网页中,方便其他人用它进行安全加密。
(2)密钥保管量少。网络中的消息发送方可以共用一个公开加密密钥,从而减少密钥数量。只要接收方的解密密钥保密,就能实现消息的安全性。
(3)支持数字签名。
目前,有三种公钥密码体制类型被证明是安全和有效的,即RSA体制、ELGamal体制及椭圆曲线密码体制。

混合密码体制

混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。
第一步,消息发送者Alice用对称密钥把需要发送的消息加密。
第二步,Alice用Bob的公开密钥将对称密钥加密,形成数字信封。然后,一起把加密消息和数字信封传送给Bob。
第三步,Bob收到Alice的加密消息和数字信封后,用自己的私钥将数字信封解密,获取Alice加密消息时的对称密钥。
第四步,Bob使用Alice加密的对称密钥把收到的加密消息解开。
示意图如下:
TDEA加解密

常见密码算法

DES

DES(Data Encryption Standard)是数据加密标准的简称,由IBM公司研制。DES是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。DES是世界上应用最广泛的密码算法。但是,随着计算机系统运算速度的增加和网络计算的进行,
在有限的时间内进行大量的运算将变得更可行。1997年,RSA实验室发出了破解DES密文的挑战。由Roche Verse牵头的一个工程小组动用了70000多台通过互联网连接起来的计算机,使用暴力攻击程序,大约花费96天的时间找到了正确的DES密钥。1998年7月,
电子前沿基金会(EFF)花费了250000美元制造的一台机器在不到3天的时间里攻破了DES。因此,DES56比特的密钥长度已不足以保证密码系统的安全。NIST于1999年10月25日采用三重DES(Triple Data Encryption Algorithm, TDEA)作为过渡期间的国家标准,
以增强DES的安全性,并开始征集AES(Advanced Encryption Standard)算法。其中, TDEA算法的工作机制是使用DES对明文进行“加密→解密→加密”操作,即对DES加密后的密文进行解密再加密,而解密则相反。设EK( )和D K( )代表DES算法的加密和解密过程,
K代表DES算法使用的密钥,I代表明文输入,O代表密文输出,则TDEA的加密操作过程如下:
TDEA加密
此为TEDA加密过程
TDEA解密
此为TEDA解密过程

IDEA

IDEA(International Data Encryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。该算法是由来学嘉(X.J.Lai)和Massey提出的建议标准算法,已在PGP中得到应用。
IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自不同代数群中的运算”。

AES

1997年美国国家标准技术研究所(NIST)发起征集AES(Advanced Encryption Standard)算法的活动,并专门成立了AES工作组,其目的是确定一个非保密的、公开的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息。
NIST规定候选算法必须满足下面的要求:
· 密码必须是没有密级的,绝不能像商业秘密那样来保护它;
· 算法的全部描述必须公开披露;
· 密码必须可以在世界范围内免费使用;
· 密码系统支持至少128比特长的分组;
· 密码支持的密钥长度至少为128、192和256比特。
参与AES的候选算法中,Rijndael提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此NIST确定选择Rijndael作为AES。

RSA

RSA算法是非对称算法,由Ronald Rivest 、Adi Shamir、Leonard Adleman三人共同在1977年公开发表。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。
目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA签名验证是网络连接系统中最常见的执行操作之一。
RSA算法基于大整数因子分解的困难性,该算法的步骤如下:
第一步,生成两个大素数p和q。
第二步,计算这两个素数的乘积n = pq。
第三步,计算小于n并且与n互素的整数的个数,即欧拉函数φ(n)=(p-1)(q-1)。
第四步,选取一个随机数e,且满足1<e<φ(n),并且e和φ(n)互素,即gcd(e, φ(n))=1。
第五步,计算d=e-1 mod φ(n)。
第六步,保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥。
下面,举一个RSA加密的具体实例。设素数p=3, q=17,并令e=13,则RSA的加密操作如下:
第一步,计算n, n=pq=3×17=51,得出公钥n=51, e=13。
第二步,计算φ(n)和d, φ(n)=(p-1)(q-1)=2×16=32。因为d=e-1 modφ(n),所以,其中k是p -1和q -1的最大公约数。由此算出d=(2×32+1)/13=5,即解密密钥d=5。
第三步,加密和解密处理计算。假设Bob的公开密钥是e=13、n=51, Alice需要将明文“2”发送给Bob,则Alice首先用Bob的公开密钥加密明文,即:
C=Me mod n=213mod 51=8192 mod 51=32
然后,Bob收到Alice发来的密文C后,用自己的私钥d解密密文C,即:M=Cd mod n=325mod 51=1024×1024×32 mod 51=512 mod 51=2
RSA安全性保证要做到选取的素数p和q足够大,使得给定了它们的乘积n后,在事先不知道p或q的情况下分解n是计算上不可行的。因此,破译RSA密码体制基本上等价于分解n。基于安全性考虑,要求n长度至少应为1024比特,然而从长期的安全性来看,
n的长度至少应为2048比特,或者是616位的十进制数。

国产密码算法

国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。1999 年国务院发布实施的《商用密码管理条例》第一章第二条规定: “本条例所称商用密码,是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产
品。”目前,已经公布的国产密码算法主要有SMl 分组密码算法、SM2 椭圆曲线公钥密码算法、SM3 密码杂凑算法、SM4 分组算法、SM9 标识密码算法。各国产商用密码算法的特性统计如表3-1 所示。
国产密码算法
其中, SMl 算法是一种对称加密算法,分组长度为128 比特,密钥长度为128 比特。
SM2 算法基千椭圆曲线,应用于公钥密码系统。对千一般椭圆曲线的离散对数问题,目前只存在指数级计算复杂度的求解方法。与大数分解间题及有限域上离散对数问题相比,椭圆曲线离散对数问题的求解难度要大得多。因此,在相同安全程度的要求下,椭圆曲线密码较其他公钥密码所需的密钥规模要小得多。SM2 算法可以用千数字签名、密钥交换、公钥加密。详见GM/T0009一2012 《SM2 密码算法使用规范》。
SM3 杂凑算法对长度为l (l < 264) 比特的消息m, 经过填充、迭代压缩,生成杂凑值,杂凑值输出长度为256 比特。详见GM/T0004—2012 《SM3 密码杂凑算法》。
SM4 密码算法是一个分组算法。该算法的分组长度为128 比特,密钥长度为128 比特。加密算法与密钥扩展算法都采用32 轮非线性迭代结构。数据解密和数据加密的算法结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。详见GM/T0002—2012 《SM4分组密码算法》。
SM9 是标识密码算法。在标识密码系统中,用户的私钥由密钥生成中心(KGC) 根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,因而用户不需要通过第三方保证其公钥的真实性。与基千证书的公钥密码系统相比较,标识密码系统中的密钥管理环节可以得到简化。SM9 可支待实现公钥加密密钥交换、数字签名等安全功能,详见GM/T0044—2016 《SM9
标识密码算法》。

Hash 函数与数字签名

本节主要介绍Hash 函数的特性以及常用的Hash 算法,同时给出Hash 算法在数字签名中的应用。

Hash 函数

杂凑函数简称Hash 函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字
摘要或消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的。令h 表示Hash 函
数,则h 满足下列条件:
(l) h 的输入可以是任意长度的消息或文件M;
(2) h 的输出的长度是固定的;
(3) 给定h 和M, 计算h(M) 是容易的;
(4) 给定h 的描述,找两个不同的消息Ml 和M2, 使得h(M1)=h(M2) 是计算上不可行的。Hash 函数的安全性,是指在现有的计算资源下,找到一个碰撞是不可能的。Hash 函数在
网络安全应用中,不仅能用于保护消息或文件的完整性,而且也能用作密码信息的安全存储。例如,网页防篡改应用。网页文件管理者首先用网页文件生成系列Hash 值,并将Hash 值备份存放在安全的地方。然后定时再计算这些网页文件的Hash 值,如果新产生的Hash 值与备份的
Hash 值不一样,则说明网页文件被篡改了。

Hash 算法

Hash 算法是指有关产生哈希值或杂凑值的计算方法。Hash 算法又称为杂凑算法、散列算法、哈希算法或数据摘要算法,其能够将一个任意长的比特串映射到一个固定长的比特串。常
见的Hash 算法有MD5 、SHA 和SM3 。
1.MDS 算法
MD5 (Message Digest Algorithm-5) 算法是由Rivest 设计的,千1992 年公开, RFC 1321对其进行了详细描述。MD5 以512 位数据块为单位来处理输入,产生128 位的消息摘要,即MD5 能产生128 比特长度的哈希值。MD5 使用广泛,常用在文件完整性检查。但是,据最新研究表明, MD5 的安全性受到挑战,王小云教授及其研究团队提出了Hash 函数快速寻找碰撞攻击的方法,相关研究工作表明MD5 的安全性已经不足。
2.SHA 算法
SHA (Secure Hash Algorithm) 算法由NIST 开发,并在1993 年作为联邦信息处理标准公布。SHA-1 与MD5 的设计原理类似,同样也以512 位数据块为单位来处理输入,产生160 位的哈希值,具有比MD5 更强的安全性。SHA 算法的安全性不断改进,已发布的版本有SHA-2 、
SHA-3 。SHA 算法产生的哈希值长度有SHA-224 、SHA-256 、SHA-384 、SHA-512 等。
3.SM3 国产算法
SM3 是国家密码管理局千2010 年公布的商用密码杂凑算法标准。该算法消息分组长度为512 比特,输出杂凑值长度为256 比特,采用Merkle-Damgard 结构。

数字签名

数字签名(Digital Signature) 是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。数字签名的目的是通过网络信息安全技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖
性。数字签名具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。数字签名至少应满足以下三个条件:
(1) 非否认。签名者事后不能否认自己的签名。
(2) 真实性。接收者能验证签名,而任何其他人都不能伪造签名。
(3) 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。
一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA 签名体制、Rabin签名体制、ElGamal 签名体制和DSS (Data Signature Standard) 标准。签名与加密很相似,一
般是签名者利用秘密密钥(私钥)对需签名的数据进行加密,验证方利用签名者的公开密钥(公钥)对签名数据做解密运算。签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。
下面我们给出数字签名工作的基本流程,假设Alice 需要签名发送一份电子合同文件给Bob 。Alice 的签名步骤如下:
第一步, Alice 使用Hash 函数将电子合同文件生成一个消息摘要;
第二步, Alice 使用自己的私钥,把消息摘要加密处理,形成一个数字签名;
第三步, Alice 把电子合同文件和数字签名一同发送给Bob 。Alice 的签名过程如图3-4所示。
数字签名流程示意

密码管理与数字证书

密码管理

密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理、密码管理政策、密码测评。

  1. 密钥管理
    密钥管理主要围绕密钥的生命周期进行,包括密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计。
    (1) 密钥生成。密钥应由密码相关产品或工具按照一定标准产生,通常包括密码算法选择、密钥长度等。密钥生成时要同步记录密钥的关联信息,如拥有者、密钥使用起始时间、密钥使用终止时间等。
    (2) 密钥存储。一般来说密钥不应以明文方式存储保管,应采取严格的安全防护措施,防止密钥被非授权的访问或篡改。
    (3) 密钥分发。密钥分发工作是指通过安全通道,把密钥安全地传递给相关接收者,防止密钥遭受截取、篡改、假冒等攻击,保证密钥机密性、完整性以及分发者、接收者身份的真实性。目前,密钥分发的方式主要有人工、自动化和半自动化。其中,自动化主要通过密钥交换
    协议进行。
    (4) 密钥使用。密钥使用要根据不同的用途而选择正确的使用方式。密钥使用和密码产品保持一致性, 密码算法、密钥长度、密码产品都要符合相关管理政策, 即安全合规。使用密钥前,要验证密钥的有效性,如公钥证书是否有效。密钥使用过程中要防止密钥的泄露和替换,
    按照密钥安全策略及时更换密钥。建立密钥应急响应处理机制,以应对突发事件,如密钥丢失事件、密钥泄密事件、密钥算法缺陷公布等。
    (5) 密钥更新。当密钥超过使用期限、密钥信息泄露、密码算法存在安全缺陷等情况发生时,相关密钥应根据相应的安全策略进行更新操作,以保障密码系统的有效性。
    (6) 密钥撤销。当密钥到期、密钥长度增强或密码安全应急事件出现的时候,则需要进行撤销密钥,更换密码系统参数。撤销后的密钥一般不重复使用,以免密码系统的安全性受
    到损害。
    (7) 密钥备份。密钥备份应按照密钥安全策略,采用安全可靠的密钥备份机制对密钥进行备份。备份的密钥与密钥存储要求一致,其安全措施要求保障备份的密钥的机密性、完整性、可用性。
    (8) 密钥恢复。密钥恢复是在密钥丢失或损毁的情形下,通过密钥备份机制,能够恢复密码系统的正常运行。
    (9) 密钥销毁。根据密钥管理策略,可以对密钥进行销毁。一般来说销毁过程应不可逆,无法从销毁结果中恢复原密钥。特殊的情况下,密钥管理支持用户密钥恢复和司法密钥恢复。
    (10) 密钥审计。密钥审计是对密钥生命周期的相关活动进行记录,以确保密钥安全合规,违规情况可查可追溯。

密码管理政策

密码管理政策是指国家对密码进行管理的有关法律政策文件、标准规范、安全质晕测评等。目前,国家已经颁布了《商用密码管理条例》,内容主要有商用密码的科研生产管理、销售管理、使用管理、安全保密管理。《中华人民共和国密码法》也已颁布实施,相关工作正在推进。
《中华人民共和国密码法》明确规定,密码分为核心密码、普通密码和商用密码,实行分类管理。核心密码、普通密码用千保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理。商用密码用千保护不属千国家秘密的信息,公民、法人和其他组织均可依法使用
商用密码保护网络与信息安全。为规范商用密码产品的设计、实现和应用, 国家密码管理局发布了一系列密码行业标准,主要有《电子政务电子认证服务管理办法》《电子政务电子认证服务业务规则规范》《密码模块安全检测要求》《安全数据库产品密码检测准则》《安全隔离与信息交换产品密码检测指南》
《安全操作系统产品密码检测准则》《防火墙产品密码检测准则》等。

密码测评

密码测评是指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行。目前,国家设立了商用密码检测中心,其主要职责包括:
商用密码产品密码检测、信息安全产品认证密码检测、含有密码技术的产品密码检测、信息安全等级保护商用密码测评、商用密码行政执法密码鉴定、国家电子认证根CA 建设和运行维护、密码技术服务、商用密码检测标准规范制订等。

数字证书

数字证书(D屯ital Certificate) 也称公钥证书,是由证书认证机构(CA) 签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。如图3-6 所示是一个国外机构颁发的数字证书样式。
数字证书示意
为规范数字证书的格式,国家制定了《信息安全技术公钥基础设施数字证书格式》(征求意见稿)。其中,数字证书的基本信息域格式要求如表3-2 所示。
数字证书格式
用户证书的结构实例如表3-3 所示。

数字证书按类别可分为个人证书、机构证书和设备证书,按用途可分为签名证书和加密证书。其中,签名证书是用千证明签名公钥的数字证书。加密证书是用于证明加密公钥的数字证书。
当前,为更好地管理数字证书, 一般是基千PK.I 技术建立数字证书认证系统(简称为CA) 。CA 提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成及部署如图3-7 所示,主要有目录服务器、OCSP 服务器、注册服务器、签发服务器等。
数字证书认证系统构成及部署

安全协议

介绍常见的密钥交换协议及SSH 。

Diffie-Hellman 密钥交换协议

W.Diffie 和M.E. Hellman 于1976 年首次提出一种共享秘密的方案,简称Dillie-Hellman 密钥交换协议。Dillie-Hellman 密钥交换协议基千求解离散对数问题的困难性,即对千下述等式:
C的d次方 =MmodP
其中, d 称为模P 的以C 为底数的M 的对数,在已知C 和P 的前提下,由d 求M 很容易,只相当于进行一次指数计算。而再由M 反过来求d, 则需要指数级次计算。随着P 取得足够大,
就能实现足够的安全强度。现在假设Alice 和Bob 使用Diffie-Hellman 密钥交换协议,在一个不安全的信道上交换密钥,则其操作步骤如下:第一步, Alice 和Bob 确定一个适当的素数p 和整数a, 并使得a 是p 的原根,其中a 和p 可以公开。
第二步, Alice 秘密选取一个整数aA ,计算YA = aaAmod p’ 并把YA 发送给Bob 。
第三步, Bob 秘密选取一个整数aB ,计算yB =aaBmodp ,并把yB 发送给Alice 。YA 和yB
就是所说的Diffie-Hellman 公开值。
第四步, Alice 和Bob 双方分别计算出共享密钥K, 即:
Alice 通过计算K=(y. 尸modp 生成密钥K;
Bob 通过计算K=(yA 尸modp 生成密钥K。
因为:
K=(Ys 尸modp= (沪modp尸modp
= (aa• 尸mod p = aaBaA mod p
= (aaA 尸modp = (a0Amodp尸modp
=(yA 尸modp
所以Alice 和Bob 生成的密钥K 是相同的,这样一来就实现了密钥的交换。Alice 和Bob
采用Diffie-Hellman 密钥交换的安全性基千求解离散对数问题的困难性,即从YA 或者yB 以及a
计算aA 或aB 在计算上是不可行的。

SSH

SSH 是Secure Shell 的缩写,即“安全外壳”,它是基于公钥的安全应用协议,由SSH 传输层协议、SSH 用户认证协议和SSH 连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。SSH 最初是芬兰的学术研究项目, 1998 年开始商业化。SSH研究开发的目的是以一种渐进的方式来增强网络安全,通过利用现代密码技术,增强网络中非
安全的服务。例如Telnet 、Rlogin 、FTP 等,实现服务器认证、用户认证及安全加密网络连接服务。目前, SSH 已有两个版本SSHl 和SSH2, 其中SSHl 因存在漏洞而被停用,现在用户使用的是SSH2 。SSH2 的协议结构如图3-8 所示。

SSH 传输层协议提供算法协商和密钥交换,并实现服务器的认证,最终形成一个加密的安全连接,该安全连接提供完整性、保密性和压缩选项服务。SSH 用户认证协议则利用传输层的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户。SSH 连接
协议在前面两个协议的基础上,利用已建立的认证连接,并将其分解为多种不同的并发逻辑通道,支持注册会话隧道和TCP 转发(TCP-forwarding) ,而且能为这些通道提供流控服务以及通道参数协商机制。SSH 的工作机制共分7 个步骤,如团3-9 所示。

目前,用户为了认证服务器的公钥真实性,有三种方法来实现。第一种,用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机;第二种,从公开信道下载服务器的公钥和它对应的指纹后,先通过电话验证服务器的公钥指纹的真实性,然后用HASH 软件生成服务器的公钥新指
纹,比较下载的指纹和新生成的指纹,若比较结果相同,则表明服务器的公钥是真实的,否则服务器的公钥是虚假的;第三种,通过PK.I 技术来验证服务器。
在实际的应用中, SSH 在端口转发技术(如图3-10 所示)的基础上,能够支持远程登录(Telnet) 、rsh 、rlogin 、文件传输(scp) 等多种安全服务。Linux 系统一般提供SSH 服务, SSH的服务进程端口通常为22 。

虽然SSH 是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击。

密码学网络安全应用

密码技术广泛应用在网络信息系统的安全保障的各个方面.本节分析密码技术的应甲场景类型,给出了路由器、网站、电子邮件等应用参考。

密码技术常见应用场景类型

密码技术主要应用场景类型阐述如下。

网络用户安全

采用密码技术保护网络用户的安全措施主要有:一是基于公钥密码学技术,把用户实体信息与密码数据绑定,形成数字证书,标识网络用户身份,并提供身份鉴别服务;二是使用加密技术,保护网络用户的个人敏感信息。

物理和环境安全

采用密码技术保护物理和环境的安全措施主要有:一是对物理区域访问者的身份进行鉴别,保证来访人员的身份真实性;二是保护电子门禁系统进出记录的存储完整性和机密性;三是保证视频监控音像记录的存储完整性和机密性。

网络和通信安全

采用密码技术保护网络和通信的安全措施主要有:一是对通信实体进行双向身份鉴别,保证通信实体身份的真实性; 二是使用数字签名保证通信过程中数据的完整性; 三是对通信过程中进出的敏感字段或通信报文进行加密;四是使用密码安全认证协议对网络设备进行接入认
证,确保接入的设备身份的真实性。

设备和计算安全

采用密码技术保护设备和计算的安全措施主要有:一是使用密码安全认证协议对登录设备用户的身份进行鉴别; 二是使用Hash 函数及密码算法建立可信的计算环境; 三是使用数字签名验证重要可执行程序来源的真实性;四是使用加密措施保护设备的重要信息资源,如口令文
件;五是使用SSH 及SSL 等密码技术,建立设备远程管理安全信息传输通道。

应用和数据安全

采用密码技术保护应用和数据的安全措施主要有:一是使用安全协议及数字证书对登录用
户进行身份鉴别,保证应用系统用户身份的真实性; 二是加密应用系统访问控制信息; 三是应用SSH 及SSL 等密码技术,传输重要数据,保护重要数据的机密性和完整性;四是加密存储重要数据,防止敏感数据泄密;五是使用Hash 函数、数字签名等密码技术,保护应用系统的完整性,防止黑客攻击篡改。

业务应用创新

采用密码技术进行业务应用创新的措施主要有: 一是利用数字证书和数字签名等密码技术,构建网络发票; 二是使用Hash 函数等密码技术,构建区块链; 三是利用密码技术,建立电子证照。

路由器安全应用参考

路由器是网络系统中的核心设备,其安全性直接影响着整个网络。目前,路由器面临的威胁有路由信息交换的篡改和伪造、路由器管理信息泄露、路由器非法访问等。为了解决路由器的安全问题,密码学现已被广泛应用到路由器的安全防范工作中,其主要用途如下。

路由器口令管理

为了路由器口令的安全存储,路由器先用MD5 对管理员口令信息进行Hash 计算,然后再保存到路由器配置文件中。

远程安全访问路由器

远程访问路由器常用Telnet, 但Telnet 容易泄露敏感的口令信息,因此,管理员为增强路由器的安全管理,使用SSH 替换Telnet 。

路由信息交换认证

路由器之间需要进行路由信息的交换,以保证网络路由正常进行,因此需要路由器之间发送路由更新包。为了防止路由欺诈,路由器之间对路由更新包都进行完整性检查,以保证路由
完整性。目前,路由器常用MD5-HMAC 来实现。如果路由信息在传输过程中被篡改了,接收路由器通过重新计算收到路由信息的Hash 值,然后与发送路由器的路由信息的Hash 值进行比较,如果两个Hash 值不相同,则接收路由器拒绝路由更新包,如图3-11 所示。

Web 网站安全应用参考

Web 网站是网络应用的重要组成部分,许多重要的网络应用业务如网络银行、新闻发布、电子商务等都基于Web 服务开展,其安全性变得日益重要。Web 网站已成为黑客攻击的重点目
标,其安全威胁主要有信息泄露、非授权访问、网站假冒、拒绝服务等。密码学在Web 方面的安全应用有许多,包括Web 用户身份认证、Web 服务信息加密处理以及Web 信息完整性检查
等。目前,重要信息网站通过数字证书和SSL 共同保护Web 服务的安全。利用SSL 和数字证书,可以防止浏览器和Web 服务器间的通信信息泄密或被篡改和伪造。

电子邮件安全应用参考

电子邮件是最常见的网络应用,但是普通的电子邮件是明文传递的,电子邮件的保密性难以得到保证,同时电子邮件的完整性也存在安全问题。针对电子邮件的安全问题,人们利用PGP(PrettyGood Privacy) 来保护电子邮件的安全。PGP 是一种加密软件,目前最广泛地用千电子邮件安全。
它能够防止非授权者阅读邮件,并能对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP 应用了多种密码技术,其中密钥管理算法选用RSA、数据加密算法IDEA、完整性检测和数字签名算法,采用了MD5 和RSA 以及随机数生成器, PGP 将这些密码技术有机集成在一起,
利用对称和非对称加密算法的各自优点,实现了一个比较完善的密码系统。