前面对基于TCP/IP协议的计算机网络的五层逐一进行了整理总结。 不得不说效果是很显著的,很多以前不懂得知识可以通过该书进行自解释。 尝到了甜头,干劲自然很足。 所以今天继续将网络安全的知识进行梳理。 这在课堂上是没有上过的,因为本科课程限制不可能讲这么多。 但是越到后面越会发现,自学与学习的区别定界实在是很模糊。 如果不是自发的学习,被动学习后可能任然要进行自我的学习。 这大概就是自我迭代吧!
网络安全的内容:
1.计算机网络面临的安全性威胁和计算机网络安全的主要内容
2.对称密钥密码体制 和公钥密码体制的特点。
3.数字签名与鉴别的概念。
4.网络层安全协议IPsec协议 和 运输层安全协议SSL/TLS的要点
5.系统安全的内容: 防火墙 与 入侵检测。
计算机网络面临的安全性威胁:
计算机网络上的通信通常面临两种类型的威胁,即被动攻击和主动攻击。
被动攻击:
指攻击者从网络上窃听他人的通信内容。 通常称之为截获,或流量分析。 攻击者知识观察和分析某一个协议数据单元PDU而不干扰信息流。
主动攻击:
篡改:也称为更改报文流。
恶意程序: 包括:
计算机病毒,通过修改其它程序将自身或自身变种复制进去,以达到摧毁正常文件的目的。
计算机蠕虫,将自身从一个节点发送到另一个节点并自动启动运行的程序。
特洛伊木马, 执行的功能并非它所声称的功能,而是某种恶意的功能。
逻辑炸弹, 一种当运行环境满足特定条件执行特殊功能的程序。
拒绝服务:
指攻击者向因特网上的某个服务器不停地发送大量分组,使得因特网或服务器无法提供正常服务。 称之为拒绝服务Dos(Denial of Service),若攻击者来自于成千上万的因特网其它主机,称之为DDos(Distributed Denial of Service). 也称为网络带宽攻击,或连通性攻击。
对付被动攻击,通信安全的目标:
防止析出报文内容和流量分析,通常采用各种数据加密技术。
对付主动攻击,通信安全的目标:
防止恶意程序,通常通过防火墙和入侵检测。
检测更改报文流和拒绝服务, 通常通过加密技术和适当的鉴别技术相结合。
计算机网络安全的内容:
1.保密性。通常采用密码机制,如访问控制中登陆口令的设置,安全通信协议的设计,数字签名的设计都离不开密码机制。
2.安全协议设计,人们一直希望能设计出一种安全的计算机网络,但不幸的是网络的安全性是不可判定的。
3.访问控制,也叫做存取控制和接入控制。 必须对接入网络的权限加以控制,并规定每个用户的接入权限。
数据加密模型:
一般的数据加密模型:加密密钥,加密算法,解密密钥,解密算法。密钥通常是通过密钥中心提供,密钥的传送一定要通过一个安全信道。不能与数据传输在同一个信道。 解密算法是加密算法的逆运算。 加密密钥与解密密钥必然具有某种相关性。 各自由密码学的编码密码学,以及密码学中的密码分析学做出理论支撑与指导。
20世纪70年代后期,美国的 数据加密标准DES(Data Encryption Standard) 和 公钥密码体制(public key crypto-system)成为近代密码学发展史上的两个重要里程碑。
两类密码体制:
对称密钥密码体制:
所谓对称,是指 加密密钥与解密密钥是相同的密钥。要做到这一点,一种是事先约定,另一种是通过信使来传送密钥。
数据加密标准DES属于对称密钥密码体制,它的保密性仅取决于对密钥的保密,而算法的是公开的。它的密钥长度为为64位,有8位用作奇偶校验,因此实际的密码长度是56位。 因此在可允许的时间范围内具有暴力破解的可能性,如1999年,即可在高性能计算机上平均21分钟破解一个56位长的DES密钥。
之后出现的 国际数据加密算法IDEA(International Data Encryption Algorithm),使用了128位密钥,已经在容许的时间内是比较安全的了。
公钥密码体制:
由斯坦福大学于1976年提出。 它使用了不同的加密密钥与解密密钥。 它的出现主要是因为两个方面的原因,一是由于对对称密钥密码体制的密钥分配问题; 二 是 由于对数字签名的需求。
在公钥密码体制中,加密密钥PK(public key,即公钥)是向公众公开的,而解密密钥SK(secret key,即私钥或密钥)则是需要保密的。加密算法E (encrypt) 和 解密算法 D(deencrypt)也是公开的。
公钥密码体制提出不久,人们就找到了三种公钥密码体制。 目前最著名的时由美国三位科学家 Rivest, Shamier 和 Adleman于1976年提出并在1978年正式发表的RSA体制。 它是一种基于数论中的大数分解问题的机制。
密钥的产生器产生出接收者B 的一对密钥: 加密密钥PKb 和 解密密钥SKb。 虽然在计算机上可以容易地产生成对的PKb 和SKb 。 但是从已知的PKb 实际上不可能推导出SKb, 即从公钥推算出私钥是:“计算上不可能的”。 公钥只可以用来加密,不能用来解密。
数字签名:
数字签名的要求:
1.接收者必须能够核实发送者对报文的签名。 称为报文鉴别。
2. 接受者确信所收到的数据和发送者发送的完全一样而没有被篡改过。 即报文的完整性。
3. 发送者事后不能抵赖对报文的签名,称为不可否认。
数字签名的过程:
发送方用其自身的私钥对报文进行D运算,得到了某种不可读的密文。(这个过程并不是进行解密)。 发送方将经过D运算的不可读密文发送给接收方。 接收方问了核实签名,可用发送方的公钥进行E运算即可还原出明问。 注意,任何人用发送方的公钥即可获得发送方的明文。
为了处理保密的问题,通常可以采用同时实现秘密通信和数字签名,模型如下图:
鉴别:
鉴别是要验证通信的双方的确是自己所要通信的对象,而不是其它的冒充者。 注意,它与授权是不同的,授权涉及到的问题是: 所进行的过程是否被允许。
报文鉴别:
需多报文并不需要加密但是需要数字签名,以便让报文的接收者能够鉴别报文的真伪。 当我们传送不需要加密的报文时,应当使接收者能够用很简单的方法鉴别报文的真伪。
报文摘要MD(Message Digest)时进行报文鉴别的简单方法。 它的优点是,仅对短得多的定长报文摘要进行数字签名要比整个长报文进行签名简单得多,所耗费的计算资源也要小很多。 但对鉴别报文来说,效果是一样的。 都是不可伪造,可检验和不可否认的。
报文摘要算法时精心选择的一种单向函数。 也就是说,一个很长的报文我们可以轻易的计算出它的检验和,检验和的长度固定,并且很短。 但是我们不可能进行逆运算,由检验和把原始的报文计算出来。RFC 1321 提出的报文摘要算法MD5 已获得广范应用。 可任意长的报文进行运算,然后得出 128位的MD5报文摘要代码。
MD5算法的大致过程:
1,把任意长的报文按模 2^64计算余数,追加在报文后面。
2. 在报文和余数间填充1-512位,使得填充后的总长度是512的整数倍。 填充首位是1,其余都是0.
3.将填充后的报文分未若干个512位数据块,对每个数据块分层4个128位数据块一次送到不同的散列函数进行4轮计算,每一轮都该32位数据块进行复杂的运算。 这样MD5报文摘要就与代码中原来每一位都有关。
另一种标准称为: 安全散列算法SHA(Secure hash Algorithm). 与MD5类似,但是码长160位,更安全但是计算也要慢些。
实体鉴别:
实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次。
在这个途中,容易出现重放攻击,以及中间人攻击。 公钥体制是一个比较理想的方式,但是也会由于密钥分配的问题而产生中间人攻击的漏洞。 详情见书。网络安全章节。
密钥分配:
密钥分配(或密钥分发)是密钥管理中的最大问题。 包括对称密钥的分配,以及公钥的分配。
对称密钥的分配:
目前常用的密钥分配方式是设立密钥分配中心KDC(Key Distribution Center)。 KDC 是大家都信任的机构,它的任务就是给需进行秘密通信的用户临时分配一个会话密钥。(仅使用一次)。
目前最出名的密钥分配协议是: Kerberos V5。 Kerberos 使用比DES更加安全的 先进的加密标准AES(Advanced Encryption Standard)进行加密。 Kerberos使用了两个服务器: 鉴别服务器AS(Authentication Server), 票据授予服务器TGS(Ticket-Granting Server)。
公钥的分配:
在公钥密码体制中,公钥也不能随意公布。 需要有一个值得信赖的机构来将公钥与其对应的实体(人或者机器)进行绑定。 这样的机构叫做认证中心CA(certification Authority)。 每个实体都有CA发来的证书(certificate), 里面有公钥以及拥有者的标识信息(人名或IP地址)。 此证书被CA进行了数字签名。
为了使CA具有统一的格式,ITU-T制定了X.509协议标准,用来描述证书的结构。
网络层的安全协议:
IPsec协议:
是IP security 协议的缩写。 详情翻阅计算机网络网络安全章节。。。
运输层的安全协议:
比较出名的有:
安全套接字层SSL(Secure Socket Layer)。
运输层安全TLS(transport layer security)。
SSL 协议:
是网景公司1994年开发的安全协议。 SSL作用在端系统应用层的HTTP和运输层之间,在TCP之上建立起一个安全通道,为通过TCP传输的应用层数据提供安全保障。
1995年,网景公司把SSL交给IETF希望能够将SSL标准化。 于是IETF在SSL 3.0的基础上设计了TLS协议,为所有基于TCP的网络应用提供安全数据传输服务。
当用普通不加密的浏览器查看网页时,HTTP就直接使用TCP连接,这是SSL/TLS不起作用。 当使用信用卡进行网上支付而键入信用卡密码时, 就需要使用安全的浏览器。 这时, HTTP 就调用SSL/TLS对整个网页进行加密。 这是网页上会提示用户,在网址栏原来现实HTTP 的地方就会变成https。
SSL提供的安全服务:
1.SSL服务器鉴别。 允许用户证实服务器的身份。 支持SSL的客户端通过验证来自服务器的证书,来鉴别服务器的真实身份并获得服务器的公钥。
2. SSL客户端鉴别,SSL 的可选安全服务,允许服务器证实客户的身份。
3. 加密的SSL对话,对客户和服务器间发送的所有报文进行加密,并检测报文是否被篡改。
SSL的工作过程:
使用SSL为客户提供服务的万维网服务器使用SSL 的默认端口443来取代普通万维网服务的80端口。。 并且该安全网页URL中的协议标识用https代替http。 当顾客点击该网站链接建立起TCP连接后,先进行浏览器和服务器之间的握手协议,完成加密算法的协商和会话密钥的传递,然后进行安全数据传输。
其简要过程:
1.协商加密算法。 浏览器向服务器发送浏览器的SSL版本号和一些可选的加密算法,服务器从中选取自己所支持的算法,并告知A。
2. 服务器鉴别。 服务器向浏览器发送一个包含其 RSA公钥的数字证书。 浏览器使用该证书的认证机构CA的公开发布的RSA公钥对该证书进行验证。
3. 会话密钥计算。 由浏览器随机生成一个秘密数,用服务器B 的RSA公钥进行加密后发送给浏览器。 双方根据协商的算法产生一个共享的对称会话密钥。
4. 安全数据传输。 双方用绘画密钥加密和解密传送的数据并验证完整性。
系统安全:防火墙与入侵检测
恶意用户或者软件通过网络对计算机系统的入侵或攻击已成为当今计算机安全最严重的威胁之一。 加密技术并不能阻止植入了“特洛伊木马”的计算机系统通过网络向攻击者泄露秘密信息。
防火墙:
防火墙是一种访问控制技术。 它通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低这类安全威胁所带来的安全风险。
防火墙位于因特网和内部网络之间。 因特网的这边时防火墙的外部,内部网络这边时防火墙的里面。 一般把防火墙的里面的网络称为 “可信网络“,防火墙的外面称为”不可信网络“。
防火墙技术分类:
1. 分组过滤路由器。 它根据过滤规则对进出内部网络的分组执行转发或者丢弃。 注意该分组是双向的,即可以限制入站规则,也可以限制出战规则。
2. 应用网关,也称为代理服务器。 他在应用层通信中扮演种报文中继的角色。 所有进出网络的应用程序报文必须通过应用网关。 应用网关根据相应规则查看是否合法,若合法则转发,若不合法则丢弃。 它的缺点是,每个应用都需要一个应用网关(可以运行在同一台主机上)。 其次,在应用层转发和处理报文,处理负担较重。
入侵检测系统IDS(Intrusion Detection System):
由于防火墙只能在侵入行为发生之前阻止可疑通信,但是不能阻止所有的入侵行为。 IDS能够用于检测多种网络攻击,包括网络映射,端口扫描,DoS攻击,蠕虫和病毒,系统漏洞攻击等。
入侵检测方法一般可以分为: 基于特诊 的入侵检测 和 基于异常的入侵检测。 至今为止,大多数部署的IDS主要是基于特征的。