上一章讲到的基础技术是信息安全技术体系的重要支撑,接着学习一下密码技术和访问控制。
密码技术结合数学、计算机科学、电子与通信等多学科合一的交叉科学。
访问控制是对信息系统中的资源访问作出可选的限制,也就是根据资源管理者、所有者所设置的访问策略,不同的访问者有不同的权限访问不同的资源。
密码技术
密码体制
定义
- 一对数据变换,一个变换在明文转密文(加密转换),另一个则相反(解密转换)
对称密码体制
定义
- 加解密密钥完全相同,如DES、AES以及IDEA
优点
- 运行占用空间小
- 加解密速度快
- 对加密的数据没有长度限制。
缺点
- 密钥交换有信道限制,信息发送者和授权接收者要在一条单独的安全通道传输密钥。
- 规模庞大且复杂,信息发送者要与其他不同用户保持不同的密钥,密钥数量巨大,密钥的存储和管理困难
- 未知实体间通信困难,两个未知实体间没有通信历史,难以确定对方身份,以保证密钥共享顺利进行。
- 对称中心服务结构,在这个结构中团队内任一实体与中心服务器共享一个密钥,中心服务器存储密钥数量与团队人数几乎一致,而且服务器要保证一直在线,服务器便成为通信的中心以及攻击的重点。
公开密钥密码体制
定义
- 非对称,使用两个不同的密钥,基于数学函数,并非置换和代替,有加密模型和认证模型
加密模型
- 一个收录各通信方的公开公钥目录,发送者获取并使用接收者公开密钥加密信息,接收者使用该公钥对应的私钥对信息进行解密。
认证模型:
- 认证模型可以保证数据的完整性和真实性,但不能保证数据的机密性。
- 将公开的密钥作为解密密钥,任何人都可以从目录中获取公开密钥,解读加密信息,而只有拥有私钥的人才可以产生消息。
应用
- RSA公钥加密体制
- ElGamal公钥加密体制
- 椭圆曲线公钥加密体制
主流公钥密码体制
- 基于大整数因子分解问题,RSA、Rabin密码体制
- 基于离散对数问题,ElGamal体制、椭圆曲线密码体制
公钥密码体制的优点
- 密钥交换安全方便,不需要单独的安全通道发布密钥且不需要密钥管理中心进行协调。
- 未知实体间通信便捷,由于非对称的性质可以公开公钥保留私钥。
- 保密服务,可以利用自己的私钥和对方的公钥直接保密通信,或者可以进行密钥协商后用对称密码通信。
- 认证服务,能够正确验证而不具备假冒能力,大规模网络所需要的。
密码算法
定义
- 密码算法是用于加密和解密的数学函数,是密码协议安全的基础。
对称密码算法
主流对称密码算法
- DES算法
- 3DES算法
- AES算法
非对称密码算法
- RSA算法
该算法基于一个事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
- DSA算法
DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 签名算法的变种,它基于整数有限域离散对数难题,被美国 NIST 作为 DSS (DigitalSignature Standard)。从安全性来说,与RSA算法差不多。
- ECC算法
椭圆加密算法(ECC)是一种公钥加密算法,基于椭圆曲线上点群的离散对数难题设计的椭圆曲线密码体制。
优点
- 同等安全级别中,ECC计算量小,处理速度快。
- 同等密钥长度中,ECC计算更复杂,安全性更高。
- 可用于加解密、签名验证以及ECDH等。
缺点
- 加密和解密操作的实现比其他机制花费的时间长。
国密算法
SM2算法椭圆曲线公钥密码算法
- 非对称加密,基于ECC算法,签名速度和密钥生成速度都快于RSA
- SM2采用的是ECC256的一种,安全强度比RSA2048位高,运算速度快于RSA.
SM3算法杂凑密码算法
- 算法执行过程:消息填充、消息扩展、迭代压缩、输出结果
SM4算法分组密码算法
- 主体运算是非平衡Feistel网络,32轮非线性迭代结构,在最后一轮迭代加上了反序变换,如解密密钥是加密密钥的反序,加密算法和解密算法一致
- 密钥长度和分组长度均为128位
密钥管理
概述
在授权各方之间实现密钥关系的建立和维护的一整套技术和程序,涉及密钥从产生到最终销毁的整个过程,包括密钥的生成、存储、分发与协商、使用、备份与恢复、更新、撤销和销毁等。
主要内容
1. 密钥的生成
- 密钥的安全性是生成密钥的重点。
- 密钥长度需足够长以保证猜测密钥的难度。
- 可以使用密钥生成器随机生成比特串。
2. 密钥分发
- 对称密钥通过公钥密码加密后进行分发交换。
- 使用密钥封装技术进行分发,不适合大规模使用。
3. 密钥存储
- 密钥存储要保证密钥的完整性、认证性、机密性。
- 要尽可能减少系统中驻留的密钥量。
- 密钥在存储、交换、装入和传送过程中的核心是保密,其密钥信息流动应是密文形式。
4. 密钥使用与更新
- 密钥使用的主要问题是密钥长度以及密钥的更新频率。
- 密钥更新要遵循密钥的生命周期,过期的密钥必须要进行更换。
5. 密钥销毁
- 密钥更新后,旧密钥必须进行销毁,不仅要销毁密钥,还包括密钥相关的其他操作。
密钥管理原则
- 明确密钥管理策略和机制
- 全面安全原则
- 最小权利原则
- 责任分离原则
- 密钥分级原则
- 密钥更换原则
- 密钥足够的长度
- 密钥体制不同,管理也不同
密钥管理的层次结构
定义
- 按密钥的生存周期、功能和保密级别,分为会话密钥、密钥加密密钥以及主密钥
流程
系统使用主密钥通过某种算法加密密钥加密密钥,再用密钥加密密钥通过某种加密算法保护会话密钥,会话密钥通过某种加解密算法对明文数据进行保护。
- 会话密钥(Session Key)
会话密钥主要用于对两个通信终端用户的交换数据进行加密,也称数据加密密钥(Data Encrypting Key)。会话密钥的生存周期非常短,通常在会话建立初生成,在会话结束后销毁,主要用来对传输的数据进行保护。会话密钥大多数是临时的、动态生成的,可由通信双方协商得到,也可由密钥分配中心分配。
- 密钥加密密钥(Key Encrypting Key)
密钥加密密钥主要用于对要传送的会话密钥进行加密,也称为二级密钥(SecondaryKey)、次主密钥或辅助密钥。密钥加密密钥的生存周期相对较长,由于它主要用来协商或传送会话密钥,一旦泄露可导致在其使用周期内的所有会话密钥泄露。
- 主密钥(Master Key)
主密钥主要用于对密钥加密密钥或会话密钥的保护,使得这些密钥可以实现在线分发。主密钥对应于层次化密钥结构中的最高层次,它是由用户选定或由系统分配给用的、可在较长时间内由用户所专有的秘密密钥,在某种程度上,主密钥还起到标识用户的作用。它的生存周期最长,受到严格的保护。
密钥生命周期
生命周期
密钥从产生到销毁的整个过程。
密钥状态
- 使用前:不能用于正常的密码操作。
- 使用时:密钥可用,可正常操作。
- 使用后:密码不再正常使用,但出于某种目的可以对其进行离线访问。
- 过期:不再使用,所有密钥记录被删除。
密钥分发
密码系统的强度取决于密钥分配技术,分为无中心密钥分发和有中心密钥分发
无中心密钥分发
无中心的密钥分发方式不需要密钥分发中心的参与,用户直接将密钥传送给对方,参与各方需要事先共享系统参数或秘密密钥,或对方的公开密钥等。
有密钥的密钥分发
通信方之间预先通过秘密渠道分配一个共享密钥(密钥加密密钥),或者知道对方的公钥。
无密钥的密钥分发
有中心密钥分发
引入密钥分发中心(KDC,Key Distribution Center)来对密钥的分发进行管理,每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,用于这一对用户之间的保密通信。通信完成后,会话密钥即被销毁。系统中的每个用户只需要保存与密钥分发中心之间的预分配密钥。
1978年Needham-Schroeder 密钥分发协议
该协议由中心生成秘密密钥
派生协议Kerberos密钥分发协议。
密钥协商技术
密钥协商目的
是通信双方在网络中通过交换信息来生成一个双方共享的会话密钥。
典型协议
Diffie-Hellrman密钥交换协议(无身份认证要求的双方密钥协商方案)
Station-to-Station Pratocol 协议
1992年在Diffie-Hellrman密钥交换协议基础上改进而来,基于公钥基础设施引入数字签名算法,在通信过程中对双方身份进行认证。
密钥托管
定义
- 密钥托管也称为托管加密,是指为公众和用户提供更好安全通信的同时,也允许授权者(包括政府保密部门、企业专门技术人员和特殊用户等)为了国家、集团的利益监听某些通信内容并能解密相关密文。
- 其实现手段是把已加密的数据和数据恢复密钥联系起来,数据恢复密钥不必是直接解密的密钥,但由它可得解密密钥。
密钥托管密码体制基本组成
- 用户安全分量
由硬件设备或软件程序构成,用于用户安全通信中的数据加密和解密,支持密钥托管功能和数据恢复功能。在传送秘密信息的同时传送数据恢复域(DRF,Data Recovery Field),可帮助授权机构采用应急解密措施介入通信。
- 密钥托管分量
由密钥托管代理、数据恢复密钥、数据恢复业务和托管密钥防护4分组成,主要完成密钥托管代理操作、数据复密的存储和使用以及其他部分业务服务。
- 数据恢复分量
由专用算法、协议和必要的设备组成,能够从密文、DRF、KEC所提供的托管密钥K恢复出明文。DRC 的功能包括实时解密、审查处理等。但是,只有在执行规定的合法数据恢复时才能使用 DRC。
托管加密标准
1993年4月美国政府提出Clipper计划和密钥托管加密技术。
- 密钥托管技术的实质是建议联邦政府和工业界使用新的具有密钥托管功能的联邦加密标准,即托管加密标准(EES,Escrowed Encryption Standard),又称Clipper建议。EES标准于1994年2月正式被美国政府公布采用。
- EES标准的核心是一个称为Clipper的防窜扰芯片,是由美国国家安全局(NSA)主持开发的软硬件实现的密码部件,主要特征:
- 一个密码算法。内部利用Skipjack的分组密码算法实现,密钥长度为80bit,明文和密文长度均为64bit,有ECB、CBC、OFB、CFB共4种工作模式。芯片的单元密钥(UK)由两个称之为Escrow的机构联合提供,用于加解密用户间通信的消息。
- 法律实施部门提供“后门恢复”保护的权限。即通过法律强制访问域(LEAF,Law Enforcement Access Field),在此控制域的范围内,有关部门可在法律的授权下,实现对用户通信的解密。
完整性校验与数字签名
完整性校验
信息的防篡改、防删除、防插入的特性称为数据完整性保护。
校验过程
- 发送者对发送的消息产生附件,并将附件连同消息一起发送给接收者
- 接收者将消息当作真实消息接收前,检查接收到的消息内容和附件是否一致
- 先对数据进行修改,基于修改后的文件生成附件。一个密钥生成一个附件,使用密钥的人才能打开该附件,验证其真实性。
实现数据完整性所需要求
- 数据完整性应该能被消息接收者所验证。
- 数据完整性应与消息相关,不同消息,产生的附件数据不同。
完整性校验所依赖数学方法
- Hash函数
- HMAC方法
数字签名
定义
所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名
数字签名分类
普通数字签名和特殊数字签名。
- 普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。
- 特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,与具体应用环境密切相关。
数字签名的特点
数字签名技术大多基于哈希摘要和非对称密钥加密体制来实现。
- 报文鉴别
接收者能够核实发送者对报文的签名,确信该报文世发送者发送的,其他人无法伪造报文的签名。
- 报文的完整性
接收者确信所收到的数据和发送者发送的完全一致而没有被篡改过。
- 不可否认
发送者事后不能抵赖对报文的签名
基于哈希算法的数字签名与验证
签名过程:
- 在正式的数字签名中,发送方首先对发送文件采用哈希算法,得到一个固定长度的消息摘要( Message Digest);
- 再用自己的私钥对消息摘要进行签名,形成发送方的数字签名。
- 数字签名将作为队件和原文一起发送给接收方;接收方首先用发送方的公钥对数字签名进行解密得到发送方的数字摘要,然后用相同的哈希函数对原文进行哈希计算,得到一个新的消息摘要,最后将消息摘要与收到的消息摘要做比较。
基于非对称密钥加密体制的数字签名与验证
目前已有多种实现数字签名的算法,但是采用公钥算法要比采用对称加密算法更容易实现。
为了进行签名,A使用其私钥SKA对报文X进行D运算,如下图。A把经过D运算得到的密文传送给B,B为了核实签名,用A的公钥进行E运算,还原出明文X。
- 除A外没有别人持有A的私钥,所以除A外没有别人能够产生密文DSKA(X)。这样B就相信报文是A签名发送的。以此实现报文鉴别。
- 其他人如果篡改了报文,但由于无法得到A的私钥SKA来对X进行加密,那么B对篡改的报文进行解密后,就会得到不可读的报文,以此判断报文的完整性。
- 若A要抵赖曾发送过报文给B,B可以X及DSKA(X)出示给进行公证的第三方,第三方就很容易通过PKA去证实A确实发送X给了B,以此判断不可否认性。
三项的关键点在于:第三方无法持有A的私钥SKA。
上述过程仅对报文进行了数字签名,未对报文进行加密。因为截获到密文DSKA(X)并知道发送者的身份时,可通过查阅手册即可获得发送者的公钥PKA,因此可以知道报文的内容。
数字签名作用
- 防冒充(伪造):私有密钥只有签名者自己知道,所以其他人不可能构造出正确的。
- 鉴别身份:由于传统的手工签名一般是双方直接见面的,身份自可一清二楚。在网络环境中,接收方必须能够鉴别发送方所宣称的身份。
- 防篡改(防破坏信息的完整性):签名与原有文件已经形成了一个混合的整体数据,不可能被篡改,从而保证了数据的完整性。
- 防重放:采用了对签名报文添加流水号、时间戳等技术,可以防止重放攻击。
- 防抵赖。在数字签名体制中,要求接收者返回一个自己的签名表示收到的报文,给对方或者第三方或者引入第三方机制。如此操作,双方均不可抵赖。
- 机密性(保密性)。手工签字的文件(如同文本)是不具备保密性的,文件一旦丢失,其中的信息就极可能泄露。可以对数字签名的报文进行加密。
密码模块安全
密码模块是软、硬件、固件等的组合,实现经过验证的安全功能,在一定的密码系统边界之内实现。
相关标准:
- 我国行业标准GM/T 0028-2014《密码模块安全技术要求》
安全一级:最低级要求,阐明了密码模块的基本安全要求。
安全二级:在一级基础上增加了拆卸证据的要求。
安全三级:更强的物理安全机制,防止对密码模块内敏感安全参数的非授权访问。
安全四级:最高级别,包括了所有安全特性以及一些扩展特性。
- 美国NIST的FIPS 140系列标准
量子密码技术
历史
- 1970年Stephen Wiesner提出量子密码学。
- 1984年第一个量子密码协议BB84发布,该协议的安全性依赖于量子状态的不可克隆定理以及海森堡不确定性原理。
量子密钥分配
- 是通信双方生成一个其他方不可获取的共享随机密钥,该密钥用于双方通信加密
- 量子密钥分配将通信编码按位加入量子态上,当第三方窃取密钥时,必须以某种方式对通信进行监听测量,该监听行为会导致量子状态发生变化,通信双方立即丢弃该量子态携带的编码。
- 阈值如果被窃听的编码率水平低于某个阈值,可以使用剩下正确接受的编码产生密钥,且该密钥是安全的,通信双方随后使用该协商好的密钥进行安全通信,否则不能安全产生密钥,通信中止。
访问控制
基本概念
- 访问控制是计算机安全的核心元素
- 广义上讲所有计算机安全都涉及访问控制
主客体
- 主体:访问对象的实体。
- 客体:一类实体,被访问的资源。
访问权限
- 主体对客体的相关访问方式集合,如读、写、执行、删除、创建、查找等
访问控制策略
自主访问控制DAC
- 基于请求者身份以及访问规则进行访问控制,一个实体根据自己意愿让另一个实体访问资源,安全性相对较低。
强制访问控制MAC
- 基于对客体安全级别与主体安全级别的比较来进行访问控制。
基于角色的访问控制RBAC
- 基于主体再系统中承担的角色进行的访问控制,而不是基于主体的身份。根据主体不同的责任划分分配不同的角色。
- 角色成为访问控制中主体和客体之间的中间人。
安全等级
- 美国国防部《可信计算机系统评估准则》
- 欧洲《信息技术安全性评估准则》
- 我国《计算机信息系统安全保护等级划分准则》
- 第一级用户自主保护级
- 第二级系统审计保护级
- 第三级安全标记保护级
- 第四级结构化保护级
- 第五级访问验证保护级