信息安全概论
计算机网络安全的基本概念
信息就是消息,是关于客观事实的可通讯的知识。信息可以被交流、存储和使用。信息在信源和信宿之间传递的,其中信息由信源产生,又能被信宿访问。
为了保证传递的有效性,我们希望:
信源是可用的、可靠的、受保护的;
传递是可控的、保密的;
信宿所获得信息是期望的、完整的、不可否认的。
表达信源、信息、信宿以及信息传递地有效性的图示:
信息安全的ISO定义:采用的技术和管理手段为数据处理系统建立的安全保护,保护计算机硬件、软件和数据不因偶然和恶意的原因遭到破坏、更改和泄露。
现代信息安全的内涵包括了三个层面:
信息安全:机密性、完整性、不可否认性、可用性;
网络安全:保障各种网络资源稳定可靠的运行,受控合法地使用;
信息系统安全:网络可靠性、系统本身的缺陷、恶意攻击或破坏、信息安全问题。
信息安全工作的目标就是为了在安全法律、法规、政策的支持与指导下,通过采用合适的安全技术与安全管理措施,实现信息安全的各基本需求。
计算机网络安全的需求:
保密性(Confidentiality):确保信息只被授权人访问
完整性(Integrity):保护信息和信息处理方法的准确性和原始性
可用性(Availability):确保授权的用户在需要时可以访问信息
可审查性(Accountability):确保实体的行动可被跟踪
可控性(Controllability):是对安全措施信任的基础,保障是指系统具有足够的能力保护无意的错误以及能够抵抗故意渗透
计算机网络安全的层次:物理安全、逻辑安全、操作系统安全和联网安全。
计算机网络安全设计的内容包括先进的技术、严格的管理和威严的法律。
计算机网络的中的安全威胁
计算机网络实体面临威胁,实体是指计算机网络中的各种关键设备,包括各种计算机、网络和通信设备、存放数据的媒体、传输线路、供配电系统,以及防雷系统和抗电磁干扰系统等。
计算机网络系统面临的威胁把包括窃听、重传、伪造、篡改、非授权访问、拒绝服务攻击、行为访问、旁路控制、电磁/射频截获、人员疏忽等。
恶意程序的威胁包括计算机病毒、网络蠕虫、间谍软件和木马程序。
计算机网络面临来自潜在对手的威胁,包括来自国家、黑客、恐怖分子、工业竞争的带来的恶意攻击和粗心或未受到良好训练的工作人员带来的非恶意破坏。
计算机网络中的不安全因素
不安全的主要外部因素:
偶然因素:电源故障、设备功能失常、软件漏洞、逻辑错误等;
自然灾害:地震、风暴、水灾、火灾、环境污染;
人为因素:主动恶意的攻击或非专业人员的无心之失。
人为因素的攻击主要分为以下几个方面:
被动攻击:监视明文、解密通信数据、口令嗅探、通信量分析
主动攻击:修改、重放、会话拦截、伪装和利用、拒绝服务
临近攻击:修改数据或手机信息、系统干涉、物理破坏
内部人员攻击和分发攻击
被动攻击主要威胁信息的保密性,通常采用数据加密的方式预防;主动攻击主要威胁信息的完整性、可用性和真实性,其应对主要靠数据加密和适当的身份鉴别。
不安全的主要内部因素:
互联网的不安全性:网络的开放性、国际性和自由性、网络协议及应用软件的漏洞
操作系统的不安全性:漏洞、后门、操作系统程序的动态链接性、进程的远程创建与激活
数据库的安全问题
传输线路的安全问题
网络安全管理问题:缺少安全管理人员、缺少安全管理技术规范、缺少定期测试与检查、缺少安全监控等
计算机网络安全的体系结构
一个典型的安全信息传输模型如下:
安全的信息传输包括两个方面的内容:
对发送多个信息进行安全转换,如进行加密;
收发双方共享的某些秘密信息,如加密密钥。
可信任的第三方的作用:
负责向通信双方分发秘密信息;
通信双方发生争执的时候进行仲裁。
设计安全服务应该包含以下四个方面:
设计一个恰当的安全变换算法;
产生安全变换中所需要的秘密信息;
设计分配和共享秘密信息的方法;
知名通信的黄芳使用的协议。
OSI安全体系结构定义了以下五类安全服务,鉴别服务、访问控制服务、数据机密性服务、数据完整性服务和抗抵赖性。
阻止安全攻击及恢复系统的机制成为安全机制。
ISO定义的安全机制包括加密机制、数字签名机制、访问控制机制、数据完整性机制、鉴别交换机制、通信业务流填充机制、路由控制机制和公正机制。
安全目标、安全需求、安全服务、安全机制的关系:
全部安全需求的实现才能达到安全目标
不同的安全服务的联合能够实现不同的安全需求
一个安全服务可能是多个安全需求的组成要素
不同的安全机制联合能够完成不同的安全服务
一个安全机制也可能是多个安全服务的构成要素
P2DR模型是一种常用的信息安全模型,分别指Protection保护、Detection检测、Response响应、Policy策略。
P2DR模型通过两个公式来描述安全的要求,,指入侵者危害安全目标之前就能够被检测到并及时处理;,如果,意义是安全目标系统被暴露的时间越小越安全。
P2DR理论说明了安全不能单纯靠静态防护。也不能单纯靠技术手段解决。但P2DR模型也有一个明显的弱点,就是忽略了内在的变化因素。
MP2DDR模型包括:管理、安全策略、访问控制机制、入侵检测机制、安全响应机制和备份恢复机制。
网络安全技术包括:物理安全措施、数据传输的安全措施、内外网隔离技术、入侵检测技术、访问控制技术、审计技术、安全漏洞检测技术、防病毒技术、备份技术和计算机网络终端安全技术。
物理安全
物理安全概述
物理安全是整个计算机网络系统安全的前提,是保护计算机网络设备、设施以及其他媒体免遭地震、水灾、火灾等环境事故、人为操作失误或各种计算机犯罪行为导致的破坏的过程。
物理安全主要考虑的问题是环境、场地和设备的安全、物理访问控制和应急处置计划。物理安全包括四个方面:机房环境安全、通信线路安全、设备安全和电源安全。
物理安全是相对的。
机房环境安全
机房环境安全包括计算机机房的安全保卫技术、计算机机房温湿度等环境条件保持技术、计算机机房的用电安全技术和计算机机房安全管理技术。
机房环境需要满足安全要求、防盗要求、三度要求(机房的温度、湿度、洁净度并称三度)、防静电要求、接地与防雷要求、防火和防水措施。
通信线路安全
电缆加压技术通过向线缆的两端充气加压,并监测压力来监视线路,如果出现压力下降,意味着电缆可能被破坏了。
光纤通信技术使用光纤作为通信线路,光纤没有电磁辐射,不能被电磁感应窃听,但是光纤有长度限制,超过一定长度需要使用度至七放大信号,复制器给光纤通信带来了安全薄弱环节。
Modem通信安全:当允许用户通过拨号连接到Modem访问计算机网络系统时,要确保Modem的电话号码不被列于电话簿上。
设备安全
- 计算机网络的硬件设备要做好维护和管理工作,电磁兼容和电磁辐射的防护工作、信息存储媒体的安全管理工作等。
电源安全
电源系统电压的波动、浪涌电流和突然断电等意外情况的发生容易导致计算机系统存储信息的丢失、存储设备的损坏等安全问题。
室内电源的安全要考虑电力能源的可靠供应、电源对用电设备安全的潜在威胁等,这样的威胁包括脉动与噪声和电磁干扰。
密码学概论
密码系统概述
一个典型的加密通信的模型如下图所示:
密码学的目的是保证在不安全信道上的通信不会被破译者理解通信的内容。
密码系统的定义:密码体制是一个五元组,其中是所有可能的明文(消息)的集合,称为明文空间,是所有可能的密文的集合,称为密文空间,是一个可能密钥的有限集,称为密钥空间,加密和解密是一种映射,,,且有成立。
所有的加密算法的安全性都基于密钥的安全性,而不是基于算法细节的安全性。
消息(Message)被称为明文(PlainText),用某种方法伪装消息以隐藏它的内容的过程称为加密(Encryption),被加密的消息称为密文(Cipher),把密文变成明文的过程称为解密(Decryption),加密和解密所用的秘密信息称为密钥(Key)。
密码学(Cryptology)作为数学的一个分支,包括密码编码学(Cryptography)和密码分析学(Cryptanalysis),从事消息保密技术和科学的叫做密码编码者(Cryptographer),从事密码分析的专业人员称为密码分析者(Cryptanalyst)。
密码学可以为通信提供机密性、鉴别、数据完整性和抗否认性。
密码分析概述
密码分析学是在不知道密钥的情况下恢复出明文的科学,成功的密码分析能恢复出消息的明文或密钥。
密钥通过非密码分析的方式丢失叫做泄露。
对于对称密码体制的攻击方式有两种:
穷举攻击(Brute Force Search):试遍所有可能的密钥对所获取的明文进行解密,直至得到正确的明文;或用一个确定的密钥对所有可能的明文进行加密,直至得到所获得的密文。
密码分析:依赖加密算法的性质和明文的一般特征等试图破译密码得到明文或试图获得密钥的过程。
穷举攻击是最基本也是最基本也是比较有效的一种攻击方法。理论上,可以尝试所有密钥,不过穷举攻击的代价与密钥长度成正比,密码算法可以通过增大密钥位数或加大解密算法的复杂性来对抗穷举攻击。
密码分析的Kerckhoff假设:分析一个密码系统是否安全,一般是假定攻击者知道所使用的密码系统的情况下进行分析的,这包括密文、明文的统计特征、加密体制、密钥空间及其统计特性。
根据密码分析者所指的信息量,对密码的攻击分为:
唯密文攻击(Cipher-Only Attack):密码分析者仅知道加密算法和待破译的密文;
已知明文攻击(Known-Plaintext Attack):密码分析者除知道加密算法和待破译的密文外,还知道一定数量的明文和对应的密文;
选择明文攻击(Chosen-Plaintext Attack):密码分析者除知道加密算法和待破译的密文外,还可以知道选择的明文和对应的密文;
选择密文攻击(Chosen-Ciphertext Attack):密码分析者除知道加密算法和待破译的密文外,还可以知道选择的密文和对应的明文;
选择文本攻击(Chosen Text Attack):密码分析者除知道加密算法和待破译的密文外,还可以知道任意选择的明文和对应的密文;
在上述五种攻击类型中,唯密文攻击的难度最大,因为攻击者可以利用的信息最少。对于密码设计者而言,被设计得加密算法一般要经受的住已知明文的攻击。
如果无论攻击者有多少密文,由一个加密算法产生的这些密文中包含的信息不足以唯一决定对应的明文,也无论用什么技术方法进行攻击都不能被攻破,这种加密算法是绝对安全(Unconditional Security)的。除一次性密码本(One-Time Pad)外,没有绝对安全的加密算法。
常用的密码分析方法包括:
线性密码分析:线性密码分析是一种已知明文的统计攻击,它以寻求线性近似为基础,通过寻找现代密码算法变换的线性近似来攻击。
差分密码攻击:差分密码分析通过分析明文对差值对密文对差值的影响来恢复某些密码位。差分密码分析可以用来攻击任何由迭代一个固定的论函数的结构的密码。
满足以下两个条件中的一个或两个的算法称为计算上安全(Computational Security)的算法:
破译该密码的成本超过被加密信息的价值;
破译改密码的时间超过该信息有用的生命周期。
计算上安全是指在计算能力有限的的情况下(如计算所需时间比宇宙生存时间还长),无法破解此密文。当下使用的加密算法一般是计算上安全的。
加密算法的主要要求:
对密文破译攻击极为困难;
在有效地防破译地前提下,密钥长度应很小;
加密、解密地操作流程简便易行;
错码率及错码地扩散程度低;
加密后原信息地长度不受影响。
密码学历史
密码学是一门古老而深奥的科学,密码学的发展经历了三个阶段:古代加密方法、古典密码、近代密码。
古代加密算法包括:古希腊隐写术、斯巴达Scytale加密工具、我国古代的藏头诗、藏尾诗、漏格诗、绘画等。
古典加密算法主要使用字符替换和字符位置置乱技术。
字符替换技术是将明文字母替换成其他字母、数字或符号。分为单字母代换密码和多字母代换密码,单字母代换密码又分为单表代换密码和多表代换密码。
字符位置置乱保持明文字母不变,只是打乱明文字母的位置和次序。
近代密码的里程碑:
1949年,Shannon发表了论文”保密系统的通信理论“,被认为是近代密码的第一次飞跃。
1976年,W.Diffie和M.Hellman在《密码编程学的新方向》一文中提出公开密钥的思想,掀开公钥密码研究的序幕,这是第二次飞跃。
1977年,RSA公钥密码体制提出,是密码学史上的又一里程碑。
1997年,美国公布了数据加密标准DES。
1994年,美国颁布了密钥托管加密标准EES和数字签名标准DSS。
2001年,美国颁布了高级数据加密标准AES。
近代密码学发展的两大里程碑是数据加密标准DES和公开密钥密码体制。
密码体制指一个密码系统采用的基本工作方式,从原理上可以分为两大类对称密码体制和非对称密码体制。
对称密码体制系统的保密性取决于密钥的安全性,密钥的管理、传输和分配重要且十分复杂,其优点在于保密强度高、运算速度快,缺点是密钥数目大、密钥分配困难、无法实现不可否认服务。
非对称密码体制的加密密钥是公开的,解密密钥必须保密,其对密钥的产生、分配和管理简单,适合计算机网络系统,优点在于可以实现信息的公开加密、实现不可否认服务,缺点在于加解密运算复杂且速度慢。
古典密码学
字符替换技术
单表替换密码
单表替换密码又称简单替换密码,就是明文的一个字符用一个相应的密文字符去替换,其代表是凯撒(Caesar)密码。
单表替换密码可以写成字母替换表的形式也可以写成函数的形式,典型的有加法密码、乘法密码和仿射密码。
加法密码中,对于每个,其加密和解密算法为:
Caesar密码是典型的加法密码,由Julius Caesar发明,将字母表中的每个字母用它后面的第三个字母替换,相当于密钥为3的加法密码。
加法密码安全性较差,其密钥只有25个。
乘法密码中,对于每个,其加密和解密算法为:
乘法密码又称采样密码,因为秘文字母相当于明文字母按照下标每隔位取出一个字母排列而成。
乘法密码的密钥空间大小为的欧拉函数值,即与其互素的数字的个数,对于英文字母,其密钥空间大小为。
仿射密码是加法密码和乘法密码的结合,加法密码和乘法密码分别是和时的特例,仿射密码中,对于每个,其加密和解密算法为:
仿射密码的密钥空间大小为,对于英文字母,其密钥空间大小为。
单表替换密码的改进方法:
使用更复杂的字母替换表
利用密钥词、短语或句子构造字母替换表
破解单表替换密码的思路是语言本身时充满冗余的,单表替换密码不改变字母出现的相对频率,故,单表替换密码可以统计破解。
多表替换密码
多表替换密码有多个单字母替换组成,每个密钥加密对应位置的明文,例如维吉尼亚密码。
若代换系列为非周期无限序列,则是一次性密码本,一次性密码本的安全性基于密钥的随机性,由AT&T公司的Gilbert Vernam在1917年提出,其密钥是不重复、真随机的密钥集,主要用于高度机密的低带宽信道。实际中,我们使用的均为周期多表替换密码,若其周期为1,则多表替换密码退化为单表替换密码。
如果由明文序列,令为替换函数序列,则多表替换密码生成的密文是
维吉尼亚密码在1858年由法国密码学家维吉尼亚提出,常常使用英文单词作为密码字,密钥则是密码字的重复。
维吉尼亚密码若密钥字长度为,对于英文字母来说,其密钥空间有,密钥空间很大。
多字母组替换密码
多字母组替换密码,字符块被成组加密,例如Playfair密码和Hill密码。
Playfair密码算法:
生成字母替换矩阵:选定某词或短语作为密钥,将密钥去掉重复的字母后从左到右、从上到下填入一个的矩阵,再将剩余的字母按照字母表的顺序依次填入。考虑到26不能被5整除,将I和J统一用I表示,视作同一个字母。
生成待替换序列:明文中每两个连续的字符一组,如果连续两个字符是相同的,插入一个字母x,如果最后的长度不足2,补充一个字母x。
执行替换:若两个字母在矩阵的同一行,则加密成右面一个字符;若两个字母在同一列,则加密成下面一个字符;若两字母既不同行也不同列,则取其作为矩阵中一个子矩阵的一堆顶点,将其加密成各自所在行中该子矩阵的另一个顶点。
关于I和J:由于I和J使用场合一般不会混淆,在解密之后,根据语义推测明文。
Playfair的密钥空间大小有,它比单表代换更好的隐藏了明文中的单字母结构,但仍然包含了明文的部分特征。
Hill密码在1929年由数学家Lester Hill提出,该算法规则如下
Hill密码是Playfair密码的拓展。
移位密码
倒置法分为完全倒置法和分组倒置法,但实际中容易破解,一般不用。
列换位法的操作方法:
将明文分割为k个一行的分组,并按照一组后面跟另一组的顺序排好。(其中,k即为列换位法的密钥。)
不完全的组使用不常使用的字符填充满。
依次取各列形成一串,得到密文。
矩阵换位法:把明文中的字符按给定的顺序安排在一个矩阵里,然后用另一种顺序选出矩阵中的字母来产生密文。该加密方案中,密钥是矩阵的行数和列数,以及给定的置换矩阵,即。
对称密码体制
分组密码概述
分组密码又称块密码,它是将明文消息经编码表示后的数字序列划分为若干固定长度的组,每组分别在密钥的控制下转换成等长度的密文分组输出。
分组密码已于构造随机数生成器、序列密码、消息认证码和杂凑函数等,还可以进而成为消息认证技术、数据完整性机制、实体认证协议以及单钥数字签名体制的核心组成部分。
分组密码的特点:
密文仅与给定的密码算法和密钥相关;
与被处理的明文数据段在整个明文中所处的位置无关;
总是以大于等于64比特的数据块作为加密单位;(P.S. 现阶段64比特已经不能满足安全要求了。)
给定相同的明文数据块加密后得到的密文数据块相同。
分组密码的代表性加密算法是DES、AES和IDEA。
分组密码算法的设计原则:
要求足够大的分组长度;
密钥空间要足够大;
保证足够强的密码算法复杂度;
软件实现尽量采用子块和简单运算;
硬件的实现最好加密和解密用同样的结构,以适应超大规模集成芯片上的实现。
分组密码的常用设计思路:
置换:设为一有限集合,为到的一一映射,则为上的一个置换。
混淆:将作用于明文和密文之间的关系复杂化,使明文和密文之间、密文和密钥之间的统计相关性极小化。
扩散:将每一位明文及密钥数字的影响尽可能迅速地分布到较多个输出的密文数字中,以便隐蔽明文数字的统计特性。
分组密码的运行模式有四种:电子密码本模式ECB(Electron Code Block)、密码块链模式CBC(Cipher Block Chaining)、密码反馈模式CFB(Cipher text Feedback)和输出反馈模式OFB(Output Feedback)。
电子密码本模式中明文和密文的次序是一一对应的。其特点是
每一个分组各自独立,不受其他分组影响;
加解密运算可以并行处理;
任一分组有错误不影响其它分组的处理;
相同的明文加密产生相同的密文;
密文内容若遭受剪贴、替换不易被发现。
密码块链模式修改了电子密码本的缺点,引入了连续两块之间的关联。密码块链模式在开始加密时需要传入初始化矢量,第一块先和初始化矢量进行异或再做加密,之后每一次加密都要将明文块与前一次的运算结果做异或。
密码块链模式解决了电子密码本模式中相同输入会产生相同输出的问题,也使得对密文的攻击或传输过程中发生的错误可以被发现。
密码反馈模式中将初始化向量使用密钥进行加密,加密的结果和明文块做异或,后续的每一次加密使用密钥加密前一次的加密结果(与明文异或之前)再与明文块异或。
密码反馈模式保持了块与块之间的连接,但使得每一份组的加密结果不与之前所有的分组的内容相关,如若有分组在传输的过程中遗失或发生错误也不至于完全无法解密。
输出反馈模式中将初始化向量使用密钥进行加密,加密的结果和明文块做异或,后续的每一次加密使用密钥加密前一次的输出结果(与明文异或之后)再与明文块异或。
数据加密标准DES
DES基于Feistel结构,该结构的加密的原理是
DES是为二进制编码数据设计的对称加密算法,可以对计算机数据进行密码保护。DES的保密性基于密钥的保密性,其算法是公开的。
DES算法的基本流程:64位明文输入初始变换16轮Feistel乘积变换逆初始变换64位密文输出。即
DES中的初始变换IP是一个矩阵,它是一个$8\times 8$的位置变换矩阵,其产生是先将顺序排列的矩阵进行转置,然后进行偶采样和奇采样置换后将各行进行逆序。初始变换的过程即是。初始逆变换与初始变换互逆。以下是初始变换矩阵和逆初始变换矩阵
DES的Feistel结构设计如下,其中为扩展置换,又称E盒置换,为S盒替代,为P盒置换,和为压缩置换,为循环移位。
E盒置换使用下面的置换矩阵
S盒替代将48位的输入分成了8组6位序列,交给8个S盒处理,生成8组4位输出,共32位输出。设输入序列为,将和转换为十进制,记为和,S盒的输出结果就是S盒矩阵中第行第列的元素。以盒为例,盒矩阵如下
P盒置换又称直接置换,其置换矩阵为
PC-1置换是压缩置换,对于输入密钥不考虑每个字节的第8位,对于剩余的56位,按照下面的矩阵进行置换
LS是循环左移,将矩阵输出分为左右两部分,各24位,各自进行循环左移,循环左移分为左移一位和左移两位,具体的位数遵循下面的矩阵
PC-2置换又称选择置换,其置换序列如下
DES有一条重要特性:加密和解密可使用相同的算法,唯一的区别是密钥的次序相反,解密密钥的输入次序是加密次序的逆序。
DES自问世至今,对它的多次分析研究从未发现其算法上的破绽,在一定的密钥位数和迭代次数的保障下,DES的安全性是可以得到保障的。
DES的脆弱性体现在函数构造与作用域以及迭代问题上,S盒的原理至今未公开也可能藏有隐患。
解决DES密钥位数少的解决办法是多重DES,由于双重DES难以抵抗中间相遇攻击,一般使用的三重DES(Triple-DES),三重DES可以取三个不同的密钥,也可以是第一轮和第三轮密钥相同,其具体执行方式有DES-EEE3、DES-EDE3、DES-EEE2、DES-EDE2。
其他分组密码
国际数据加密算法IDEA由瑞士联邦技术学院开发,它使用128位密钥,对64位明文加密产生64位密文。至今,IDEA未被发现明显漏洞,PGP(安全电子邮件)即采用IDEA加密。
RC5由RSA公司的首席科学家R.Rivest于1994年设计,RC6是RC5的改进,被选为21实际加密标准算法。
公钥密码体制
对称密码体制的两个难以解决的问题:对称密码的密钥分配问题、对称密码不能实现数字签名。