第十六章 安全
16.1 引言
16.1.1 安全目标
安全目标:机密性、完全性和可用性
1.机密性
机密性也许是信息安全中最通常的方面。我们需要保护机密信息,需要一个组织来看护这些信息,以防那些危及到信息机密性的恶意行为。机密性不仅仅适用于信息的存储,在信息的传输中它也得到了应用。当我们将一小段信息发送并存储至远程计算机或从远程计算机上检索一段信息时,需要在传输时对该信息进行隐藏。
2.完整性
信息需要不停地变化。在一个银行中,当一个客户存钱或取钱时,他的账户余额需要改变。完整性的意思是变化只应该由授权的实体通过授权的机制来完成。完整性冲突不一定是由于恶意行为造成的,它也可能是系统中断(例如短路)造成的对信息的一些不希望的改动。
3.可用性
信息安全的第三个部分是可用性。一个组织创建和存储的信息对授权实体来说应该是可用的。如果信息是不可用的,那它就是无用的。信息需要时常改变,这就意味着它必须对那些被授予访问权限的实体是可以访问的。信息的不可用性对组织是有害的,就像缺乏信息的机密性和完整性一样。想象一下,如果客户交易时不能访问他们的账户,这时银行会发生什么。
16.1.2 攻击
攻击:三个安全目标会受到安全攻击的威胁,按照安全目标将攻击分为三类
1.威胁机密性的攻击
通常有两种攻击威胁到信息的机密性:嗅探和流量分析。
(1)嗅探
嗅探是指对数据的非授权访问或侦听。例如,一个通过因特网传输的文件可能含有机密的信息,一个非授权的实体可能侦听到传输,并为了自己的利益使用其中的内容。为了防止嗅探,可以使用我们下面要讨论的加密技术,以使得数据对侦听者来说难以理解。
(2)流量分析
虽然通过加密技术我们可以使得数据对侦听者来说难以理解,但他们仍然可以通过在线流量监控收集其他类型的信息。例如,他们能找到发送者或接收者的电子地址(如电子邮件地址),收集多对请求和响应,帮助猜测交易的本质。
2.威胁完整性的攻击
数据的完整性会受到多种攻击的威胁:篡改、假冒、重放和抵赖。
(1)篡改
侦听或访问信息后,攻击者篡改信息,使得信息有利于他们。例如,一个客户可能向银行发送一消息去完成一些交易。攻击者侦听到信息,并为了自己的利益篡改了交易的类型。注意,有时攻击者可能仅仅是删除或延迟了这个消息来危害这个系统或者使他们自己受益。
(2)假冒
当攻击者冒充其他人时,假冒或“哄骗”就发生了。例如,一个攻击者可能盗窃银行卡和银行客户的PIN而假装是这个客户。有时攻击者则假冒接收实体。比如,一个用户尝试联系一家银行,但是另一个站点伪装成银行网站并从用户那里得到了一些信息。
3)重放
重放是另一种类型的攻击。攻击者得到用户发送的消息的副本,过后设法重放它。例一个客户向他的银行发送了一条给攻击者付款的请求,攻击者侦听到这个消息,再次发如,送这条消息,想从银行得到另一次付款。
(4)抵赖
抵赖是一种不同于其他类型的攻击,因为它是由通信双方中的一个来进行的:发送者或接收者。消息的发送者后来可能抵赖他发送了消息;消息的接收者后来也可能抵赖他接收到消息。一个发送者抵赖的例子可能如,一个银行客户要求银行给第三方送钱,但后来他否认自己做过这样的请求。一个接收者抵赖的例子可能如,某人向一制造商购买产品,并电子付款,但制造商后来否认已经收到付款而要求再付。
3.威胁可用性的攻击
我们在这里只讨论一种威胁可用性的攻击:拒绝服务。
拒绝服务
拒绝服务(DoS)攻击是很常见的,它可能减慢或完全中断系统的服务。攻击者能使用几种策略取得这样的效果。他们可能通过发送大量虚假请求使系统变得非常忙碌而崩溃,或他们可能侦听并删除服务器对客户端的响应,使客户端相信服务器未响应。攻击者也通过侦听客户端的请求,使得客户端多次发送请求导致系统变得非常忙碌。
16.1.3 服务和技术
为了达到安全目标和防止安全攻击,ITU-T定义了一些安全服务的标准。这些服务中的每一个都是为了在维护安全目标时防止一个或多个攻击而设计的。实际完成安全目标需要一些技术手段,现今流行两种技术:一种是非常普通的密码术;一种是特殊的隐写术。
1.密码术
有些安全服务可以使用密码术来实现。密码术(希腊起源的单词)意思是“秘密书写”但是,我们使用这个词是指为使消息安全并对攻击免疫而进行转换的科学和艺术。虽然在过去密码术只是指使用密钥进行消息的加密和解密,但如今它被定义成三种不同的机制:对称密钥密码、非对称密钥密码和散列。本章稍后会讨论这三种机制。
2.隐写术
虽然本文章和接下来的部分以密码术作为实现安全机制的一种技术,但另一种过去用于秘密通信的技术现在正在复苏,它就是隐写术。单词隐写术(起源于希腊语)意思是“掩饰书写”,而对应的密码术的意思是“秘密书写”。密码术就是通过加密把消息中的内容隐藏起来;而隐写术是通过在消息上覆盖其他内容而隐藏消息。隐写术的具体内容将留给该话题的其他书籍讨论。
16.2 机密性
机密性可以通过使用密码达到,密码术可以分为两大类:对称秘钥密码术和非对称秘钥密码术
对称秘钥密码术:使用同一个秘钥进行加密和解密,并且这个秘钥可以用来进行双向通信
16.2.1 对称密钥密码术
我们把加密和解密的算法称为密码
秘钥是密码(一个算法)操作中的一组值(数字)
对称秘钥密码对加密和解密使用同一个秘钥
加密算法和解密算法时互逆的
如果P我明文,C是密文,K是秘钥,加密算法Ek(x)从明文建立了密文,而解密算法Dk(x)从密文建立了明文
推断Ek(x)和Dk(x)是互逆的:如果对一个输入依次施加Ek(x)和Dk(x),它们的作用会相互抵消,则:
- 加密:C=Ek§ 解密:P=Dk©
- Dk(Ek(x)) = Ek(Dk(x))=x
对称秘钥密码分成两大类:传统对称秘钥密码和现代对称秘钥密码
传统对称秘钥密码:
- 替换密码
- 移位密码
现代对称秘钥密码:
- 现代分组密码
- 现代流密码
替换密码:
用一个符号替换另一个符号,如果在明文中的符号是字母表的字符,用另一个字符来代替,如使用字母D代替字母A,替换密码分为:单字母密码和多字母密码
单字母密码:明文中相同的字符在密文中用相同的字符替换,与该字符在明文中的位置无关,明文和密文中的字符关系是一一对应的
最简单的单字母密码就是加法密码,假设明文由小写字母(a
~
z)构成,密文中包括大写字母(A
~
Z),为了使数学的计算操作可以施加在明文和密文上,向每一个字母(无论大小写)都进行赋值
每个字母都赋予了一个模26中的整数
多字母密码:字符每一次出现都使用不同的替换码,明文中字符和密文中字符的关系是一对多,如“a”可以在文本开头加密成“D”,也可以在中间加密成“N”
多字母密码具有隐藏原有语言的字母频率的作用,及时通过单字母频率统计都无法破解密文
每个密文字符的确定不仅取决于相对应的明文字符,还与该明文字符在原来文本中的位置有关,这意味着秘钥应该是子秘钥流,子秘钥流中的每一个子秘钥都在某种程度上取决于使用该子秘钥进行加密的明文字符的位置,换句话说,我们需要有一个秘钥流k=(k1,k2,k3…),在这里ki用来对明文中第i项的字符加密并创造密文中的第i项字符
了更好解释秘钥的位置依赖性,先讨论一个叫做自动秘钥密码的简单多字母密码,在这个密码中,秘钥是一个子秘钥流,子秘钥流中的每一个子秘钥都用来对明文文本中的对应字符进行加密
第一个子秘钥是Alice和Bob事先同意并秘密设定的值,第二个子秘钥是明文中第一个字符的值(0~25之间),第三个子秘钥是第二个明文字符的值,依次类推
自动秘钥密码说明了这些秘钥都是在加密过程中通过明文密码字符自动创造的
位移密码:不是用一个符号代替另一个符号,而是改变符号的位置。
明文第一个位置上的符号可能出现在密文的第十个位置上,而明文第八个位置上的符号可能出现在密文中的第一个位置上,换言之,移位密码就是符号的重新排序
假设Alice需要向Bob发送消息“Enemy attacks tonight”,加密和解密过程如图
在消息的末尾加上一个额外的字符(z)这样字符个数就是5的倍数
16.2.2 非对称密钥密码术
在对称秘钥密码术中,秘钥必须在双方之间共享,在非对称秘钥密码术中,秘钥是个人独有(非共享)的,每个人创造并保守个人的秘钥
与对称秘钥密码术基于符号(字符或位)的替换和排列不同,非对称秘钥密码术基于数学函数在数字上的应用
在对称秘钥密码术中,明文和密文被看作符号的组合,加密和解密是对这些符号的排列和替换,在非对称秘钥密码术中,明文和密文都是数字,加密和解密的过程是对数字应用数学函数创造其他数字的过程
在非对称秘钥密码术中使用两个分开的秘钥:私钥和公钥
非对称秘钥密码术进行加密的主要思想
通信双方不能使用同一组秘钥,通信中的每个个体创建自己的私钥和公钥
非对称秘钥密码术意味着Bob只需要一个私钥就能从团体中的任何人那里接收信息。但Alice需要n个公钥与团体中的n个人进行通信,一人一个公钥,总之Alice需要一个公钥环
明文/密文:与对称秘钥密码术不同,在非对称秘钥密码术中,明文和密文被当作整数来看待。非对称秘钥密码术通常用来加密或解密小段信息
加密/解密:密文可以被看成C=f(Kpublic , P),明文可以被看成g(Kprivate , C)
16.3 其他安全服务
16.3.1 消息完整性
有些场合我们可能不需要保密,但却需要完整性:消息是不受改动的
消息和消息摘要:保证文档的完整性的一种方法是通过指纹,文档和指纹的电子等价物就消息和摘要对
为了保证消息完整性,消息要通过一个称为密码散列函数的算法,函数建立消息的压缩影像称为摘要
消息摘要需要保证安全,免受篡改
16.3.2 消息验证
16.3.3 数字签名
数字签名:保证消息完整性和消息验证,使用一组公私钥,签名对接收者来说是文档来自正确实体的证据
对比普通签名和数字签名的不同点
- 包括:普通签名包括在文档中,是文档的一部分,数字签名可以作为单独的文档来发送
- 验证手段:普通签名接收者需要一个文件上的签名副本进行比较,是否可信任,数字签名接收者收到消息和签名,签名副本不再保存,需要使用验证技术来组合消息和签名进行验证
- 关系:普通签名,一个人使用相同的签名签署许多文件,数字签名,每条消息对应它自己一个数字签名
- 复制性:普通签名允许签署文档的副本与文件中的原始件有点不同,数字签名,没有这样的不同
数字签名的过程
发送者使用签名算法签署消息,消息和签名被发送给接收者,接收者收到消息和签名,对收到的内容应用验证算法,如果验证为真,消息被接收,否则消息被拒绝
密码系统使用接收者的私钥和公钥,数字签名使用发送者的私钥和公钥
签署摘要
在处理较长消息时,非对称秘钥密码系统效率低下,在数字签名系统中,消息通常较长,但我们不得不使用非对称秘钥模式,解决方案是使用数字签名签署消息的摘要,摘要比消息本身要短得多
消息验证、消息完整性、不可抵赖性、机密性
16.4 防火墙
通过防火墙控制对系统的访问
防火墙是一个安装在一个组织的内部网络和因特网其他部分之间的设备(通常是一个路由器或计算机)
防火墙是为了推进一些数据包而过滤其他数据包而设计的
防火墙可能会过滤所有到来的目标为特定主机或服务器的数据包,也可以用来阻拦对组织内特定主机或服务的访问
防火墙通常分为包过滤防火墙和代理防火墙
16.4.1 包过滤防火墙
包过滤防火墙:是一个使用过滤表单决定哪些数据包应该丢弃(不推进)的路由器,用作数据包过滤器,基于网络层的信息和传输层的头部:源和目标IP地址,源和目标端口地址以及协议的种类(TCP或UDP)来推进或阻拦数据包
16.4.2 代理防火墙
代理防火墙:是使用代理计算机(也称为应用网关)基于消息自身携带的信息(应用层上)进行过滤,代理计算机位于客户计算机和组织计算机之间,当用户客户进程发送消息时,应用网关运行服务器进程来接收请求,服务器在应用层打开数据包并且查找这个请求是否合法,如果是,那么服务器运行客户端进程并将消息发给组织内真正的服务器,否则丢弃消息。外部用户的请求基于内容在应用层进行筛选
版权归原作者 耀耀_很无聊 所有, 如有侵权,请联系我们删除。