本章考察内容比较广泛,考题对知识点都会有所涉及。
这种情况发生在广播式网络系统中,每个节点都可以读取数据,实现搭线窃听、安装通信监视器和读取网上的信息等。
当一个实体假扮成另一个实体进行网络活动时就发生了假冒。
重复一份报文或报文的一部分,以便产生一个被授权效果。(例:随机数和时间戳)
对网上信息流观察和分析推断出网上传输的有用信息。(Wireshark)
有意或无意地修改或破坏信息系统,或者在非授权和不能监测的方式下对数据进行修改。
当一个授权实体不能获得应有的对网络资源的访问或紧急操作被延迟时,就发生了拒绝服务。
即与所定义的安全策略不一致的使用。
通过替换系统合法程序,或者在合法程序里插入恶意代码,以实现非授权进程,从而达到某种特定的目的。
随着人们对计算机系统和网络依赖程度的增加,计算机病毒已经构成了对计算机系统和网络的严重威胁。
利用计算机信息系统的广泛互联性和匿名性散布错误的信息,以达到诋毁某个对象的形象和知名度的目的。
物理安全性
软件安全漏洞
不兼容使用安全漏洞
选择合适的安全哲理
被动攻击:攻击者通过监视所有信息流以获得某些秘密,典型代表有嗅探、监听和流量分析。可以基于网络或基于系统。这是最难被检测到的一种攻击,重点是预防。主要手段是加密。
主动攻击:攻击者试图突破网络的安全防线。这种攻击涉及数据流的修改或创建错误流,主要攻击形势有假冒、重放、欺骗、消息篡改和拒绝服务等,重点是检测而不是预防。手段有防火墙、IDS等技术。
物理临近攻击:防止外人随便出入机房。
内部人员攻击:词如其名
分发攻击:在软硬件开发出来后和安装前,将其篡改。
访问控制:确保会话双方有权限做它所声称的事情
认证:确保双方掌握的资源与声称的一致,手段有身份认证、消息认证。
完整性:确保接收到的信息和发送的信息一致。
审计:确保任何发生的交易在事后可以被证实,不可抵赖。
保密:确保敏感信息不被窃听。
数据加密:数据加密重组数据,确保收发者才能解码还原信息。
数字签名:数字签名可以证明消息确实是由发送者签发的,并保证数据/程序的完整性。
身份认证:密码、指纹识别、IC卡等
防火墙:屏障内部网络和外部网络
内容检查
密码分为私钥和公钥密码两种,而介于私钥和公钥之间的密码称为混合密码。
私钥密码:又称为对称密码,该体制的特点是加密和解密使用相同的密钥,消息的收发双方必须事先通过安全渠道交换密钥。
优点:加解密速度快、密文紧凑、使用长密钥时的难破解。
缺点:密钥分配问题、密钥管理问题、无法认证源。
常见的对称密钥加密算法:DES、3DES、AES、RC4/5、IDEA。
公钥密码又称为非对称加密,就是对数据加密和解密的密钥是不同的。
优点:密钥分发方便、密钥保管量少、支持数字签名。
缺点:加密速度慢(计算量大,不适合加密大数据)、数据膨胀率高。
每个实体有两个密钥:公钥公开,私钥自己保存。
公钥加密,私钥解密,可实现保密通信。
私钥加密,公钥解密,可实现数字签名。
常见的非对称加密算法如下:
RSA:512位(或1024位)密钥,计算量极大,难破解。
Elgamal、ECC(椭圆曲线算法)、背包算法、Rabin、DH等。
混合密码:发送方用对称密钥加密需要发送的消息,再用接收方的公钥加密对称密钥,然后一起发送给接收方,接收方先用自己的私钥解密得到对称密钥,然后用对称密钥解密得到明文。
《中华人民共和国密码法》密码分为核心密码、普通密码和商用密码,实行分类管理。
国产密码算法:是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法,目前,已经公布的国产密码算法如下:
HASH函数,又称为杂凑函数、散列函数,其能够将任意长度的信息转换成固定长度的哈希值(数字摘要),并且任意不同消息或文件所生成的哈希值是不一样的。
设h表示hash函数,则它满足下列条件:
哈希函数的特性有三:
常见的Hash算法有:
第一种,分别对重要文件校验,使用散列函数生成散列值,由于h和M给定,所以生成的值是固定的,如果变化了就说明不一致。
第二种,账号密码存储。生成哈希值时不只是用密码做材料,而是加入其他信息做材料,比如时钟时间,即“盐”。
第三种,用户身份认证。增加一个随机数R做哈希,MAC=Hash(密码+R),需要双方预先知道R值。
MAC:消除中间人攻击,源认证+完整性校验。
签名方用自己的私钥进行签名,对方收到后,用签名方的公钥进行验证。
数字签名算法(公钥加密算法):RSA、Rabin、ELGamal签名体制和DSS标准。
数据签名是用于确认发送者身份和消息完整性的一个加密消息摘要,具有如下特点:
我们已经知道发送方A是使用了接收方B的公钥来进行加密,那么还需要一个步骤即确定接收方的公钥有效。此处使用的手段是获取接收方B的数字证书。
数字证书由CA这个机构颁发,主要内容是证书的用户公钥,防伪手段是CA的签名。
在X.509标准中,数字证书的一般格式包含的数据域如下:
国密算法:
PKI(Public Key Infrastructure,公钥基础设施)
组成部分:
用序列号来识别每个证书。CRL中的数据域包括发行者CA的名称、建立CRL的日期、计划公布下一CRL的日期以及每个被吊销的证书数据域(序列号+吊销日期)。
未到截止日期被吊销的证书可能是因为用户的私钥已经泄露,或者不再由CA来认证。
如果用户数量很多,通常由多个CA,每个CA为一部分用户发行和签署证书。
如果有两个CA,X1和X2,假设用户A从CA机构X1获得了证书,用户B从X2获得证书,如果两个证书发放机构X1和X2彼此间安全交换了公钥,彼此信任,那么他们的证书可以形成证书链。
A通过一个证书链来获取B的公钥,证书链表示为X1《X2》X2《B》
B也能通过相反的证书链;来获取A的公开密钥:X2《X1》X1《A》
虚拟专用网(Virtual Privaye Network)是一种建立在公网上的,由某一组织或某一群用户专用的通信网络,企业在构建跨境网络的时候会经常用到这种技术。电信网中的VPN一般是指X.25,帧中继或ATM虚拟专用线路。
二层:L2TP和PPTP(基于PPP)
三层:IPsec和GRE(加密IP数据报等)
四层:SSL/TLS
实现虚拟专用网关键技术:
这种技术一般有3种解决方案:
1.内联网VPN(Intranet VPN),企业所采用的内部虚拟专用网也叫内联网。传统的LAN互联采用租用专线的方式,而这种方式实现比较昂贵,大型企业才能负担起。
2.外联网VPN(Extranet VPN),企业外部虚拟专用网也叫外联网VPN,实现企业-用户的互联。通过这种方式访问企业的客户资源比WEB更快。
3.远程接入VPN(Access VPN),省去了NAS、调制解调器、长途电话费的成本,企业人员如果有远程办公的需要,亦或者商家如果希望提供B2C的安全访问服务,可以采用这种方式。
PPP协议(Point-to-Point Protocol)可以在点对点链路上传输多种上层协议的数据包。PPP是数据链路层协议,最早是替代SLIP协议用来在同步链路上封装IP数据报的,后来可以承载DECnet、Novell IPX、Apple Talk等协议的分组。PPP是一组协议,包含封装协议、链路控制协议、网络控制协议三个部分。
PPP协议包含链路控制协议LCP和网络控制协议NCP。
PPP协议可以在点对点链路上传输多种上层协议的数据包,有校验位。
PPP拨号过程(三个阶段):
1.链路建立。这个阶段可以选择数据压缩、加密等通信方式。
2.用户认证。常常使用以下两种认证协议:PAP、CHAP。
口令认证协议(Password Authentication Protocol,PAP)是一种简单的明文认证方式。
用户向NAS提供用户名和口令,如认证成功,NAS返回应答信息,可能需要重复多次。不安全。
挑战-握手验证协议(Challenge Handshake Authentication Protocol,CHAP)是一种3次握手认证协议,并不传送用户密码,而是传送由这个密码生成的散列值。首先由NAS向远端用户发送一个挑战口令,包括会话ID和一个任意的挑战字串(防止重放攻击)。
客户端返回经过MD5加密的会话ID、挑战字符串和用户口令,用户名则以明文方式发送。
NAS根据认证服务器中的数据对收集到的用户数据进行有效性验证,如果认证成功,NAS返回肯定应答,从此连接建立。如果认证失败,连接终止。
后续的数据传送阶段,还可能随机地进行多次认证,以减少被攻击的时间。从方向上来看,这是种单项认证,但这种认证同样可以应用在双向认证中。
3.调用网络层协议。PPP在认证阶段完成后,将调用在链路建立阶段选定的网络控制协议。
完成后,PPP开始在连接双方之间转发数据,每个被传送的数据报都被封装在PPP包头内。如果在阶段1选择了数据压缩,数据将会在被传送之前进行压缩。如选择加密,则会在传送之前加密数据。
PPTP(Point-to-Point Tunneling Protocol)是一种第二层隧道协议,定义了由PAC和PNS组成的客户端/服务器结构,从而把NAS的功能分解给这两个逻辑设备,从而支持虚拟专用网。
PAC:PPTP接入集中器(PPTP Access Concentrator,PAC)可以连接一或多条PSTN或ISDN拨号线路,能够进行PPP操作,并且能处理PPTP协议。它可以与一个或多个PNS实现TCP/IP通信,或者通过隧道传送其他协议的数据。
PNS:PPTP网络服务器(PPTP Network Server,PNS)是建立在通用服务器平台上的PPTP服务器,运行TCP/IP协议,可以使用任何LAN和WAN接口硬件实现。
PPP分组必须先经过GRE封装后才能在PAC-PNS之间的隧道中传送。GRE(Generic Routing Encapsulation)是在一种网络层协议上封装另外一种网络层协议的协议。其特点有封装数据经过加密处理,外部设备不能探测其中内容。
其中RRAS相当于PAC/PNS,PPP桩则是经过加密的PPP头,负载数据在本地和远程LAN中都是通过IP协议明文传送的,只有在VPN中进行了加密和封装。
PPTP协议的分组头:
第2层隧道协议(Layer 2 Tunneling Protocol,L2TP)用于把各种拨号服务集成到ISP(互联网服务供应商,Internet Service Provider)的服务提供点。L2TP扩展了PPP模型,允许第二层连接端点和PPP会话端点驻在由分组交换网连接的不同设备中。
L2TP报文分为控制报文和数据报文,控制报文用于建立、维护和释放隧道和呼叫;数据报文用于封装PPP帧,以便在隧道中传送。控制报文使用了可靠的控制信道以保证提交,数据报文被丢失后不再重传。L2TP的分组头结构如图:
在IP网上使用UDP和一系列的L2TP消息对隧道进行维护,同时使用UDP将L2TP封装的PPP帧通过隧道发送,可以对封装的PPP帧中的负载数据进行加密或压缩。
图为传输之前组装一个L2TP数据报:
小结:PPTP与L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。
他们的不同点有下:
IPsec(IPsecurity)是IETF定义的一组用于加强IP网络的安全性的协议。它具有以下特点:
IPSec的功能可以划分为3部分:
IPSec认证头支持HMAC-SHA1和HMAC-MD5两种认证算法,前者有128位密钥,而后者有160位密钥。
IPSec支持两种模式:传输模式和隧道模式,传输模式中,IPSec认证头插入原来的IP头之后,IP数据和IP头用来计算AH认证值。IP头中的变化字段(如跳步计数和TTL字段)在计算之前置为0,所以变化字段实际上没有被认证。
在隧道模式中,IPSec用新的IP头封装了原来的IP数据报(包括原来的IP头),原来IP数据报的所有字段都经过了认证。
IPSec封装安全负荷提供了数据加密功能,ESP利用对称密钥对IP数据(例如TCP包)进行加密,支持3种加密算法:
在传输模式IP头没有加密,只对IP数据进行了加密。
在隧道模式,IPSec对原来的IP数据报进行了封装和加密,加上了新的IP头,如果ESP用在网关中,外层的未加密头包含网关的IP地址,而内层加密了的IP头包含真实的源和目标地址,这样可以防止偷听者分析源和目标之间的通信量。
ESP加密算法本身没有提供认证功能,不能保证数据的完整性,但是带认证的ESP可以提供数据完整性服务,以下两种方法可以提供认证功能:
1.带认证的ESP。IPSec使用第一个对称密钥对负荷进行加密,然后使用第二个对称密钥对经过加密的数据计算认证值,并将其附加在分组之后:
2.在AH中嵌套ESP。ESP分组可以嵌套在AH分组中,例如一个3DES-CBC ESP分组可以嵌套在HMAC-MD5分组中,如图:
IKE实际上是ISAKMP(Internet Security Association and Key Management Protocol)、Oakley和SKEME(Versatile Secure Key Exchange Mechanism fo Internet Protocol)这三个协议的混合体,提供了认证和密钥交换的框架。其中,Oakley描述了密钥交换的模式,而SKEME定义了密钥交换技术。
在密钥交换之前要先建立安全关联(Security Association,SA),SA是由一系列参数(例如加密算法、密钥和生命期等)定义的安全信道,ISAKMP中,通过两个协商阶段建立SA,这种方法杯称为Oakley模式。建立过程如下:
ISAKMP第一阶段(Main Mode,MM)
(1)协商和建立ISAKMP SA。两个系统根据D-H算法生成对称密钥,后续的IKE通信都使用该密钥加密。
(2)验证远程系统的标识(初始认证)。
ISAKMP第二阶段(Quick Mode,QM)
使用由ISAKMP/MM SA提供的安全信道协商一个或多个用于IPSec通信(AH或ESP)的SA。通常在第二阶段至少要建立两条SA,一条用于发送数据,一条用于接收,如图:
安全套接层(Secure Socket Layer,SSL)是Netscape于1994年开发的传输层安全协议,用于实现Web安全通信。1996年,SSL3.0协议草案发布,成为事实上的一个Web安全标准。
SSL的基本目标是两个应用实体之间安全可靠的通信,它分为两层,底层是SSL记录协议,运行在传输层协议TCP之上,用于封装各种上层协议,有SSL握手协议,SSL改变密码协议,SSL警告协议,HTTP。服务器和客户端进行身份认证,协商通信中使用加密算法和密钥。
SSL协议栈如图:
SSL和IPSec的区别在于,IPSec工作在三层,即网络层建立安全隧道。而SSL通过应用层的安全隧道,适用于建立固定的虚拟专用网,而SSL的安全连接是通过应用层的Web连接建立的,更适合移动用户远程访问公司的虚拟专用网。这是因为,SSL不必下载到访问公司资源的设备上,也不需要端用户进行复杂的配置,只要有标准的Web浏览器就可以使用这个协议了。
HTTPS=HTTP+SSL/TLS,端口443。
SSL会话状态由下列成分决定:会话标识符、对方的X.509证书、数据压缩方法列表、密码列表、计算MAC的主密钥,以及用于说明是否可以启动另外一个会话的恢复标识。
SSL连接状态由以下成分决定:服务器和客户端的随机数序列、服务器/客户端的认证密钥、服务器/客户端的加/解密密钥、用于CBC加密的初始化矢量(IV),以及发送/接收报文的顺序号等。
SSL记录层首先把上层的数据划分为 2 14 2^{14} 214字节的段,然后进行无损压缩(任选)、计算MAC并且进行加密,最后发送出去。
由客户或服务器发送,用于通知对方后续的记录将采用新的密码列表。
SSL记录层可以发出警告,使得当前的会话失效,避免产生新对话。警告分为关闭连接警告和错误警告。
会话状态的密码参数是在SSL握手阶段产生的,当SSL客户端和服务器开始通信时,它们将先协商(协议版本、加密算法、认证方案、产生共享密钥的公钥加密技术):
通信中使用的加密和认证方案是由密码列表(cipher_suite)决定的,而密码列表则是由服务器通过hello报文进行选择的。
在握手协议中采用非对称算法来认证对方和生生成共享密钥,有RSA、Diffie-Hellman和Fortezza三种算法可以选用。
在使用RSA进行服务器和密钥交换时,由客户端生成48字节的前主密钥值(pre_master_secret),用服务器的公钥加密后发送出去。服务器用自己的私钥解密,得到前主密钥值,然后双方都把前主密钥值转换成主密钥(用于认证),并删去原来的前主密钥值。
Diffie-Hellman算法如图所示,服务器的数字证书中含有参数(p和g),协商的秘密值k作为前主密钥值,然后转换成主密钥:
S-HTTP其实就是HTTPS。这也是老熟人,他与HTTP消息模型共存,或者集成,提供了HTTP的安全机制。S-HTTP对客户端和服务器是对称的,对于双方的请求和响应做同样的处理,保留HTTP的事务处理模型和实现特征。
S-HTTP对于HTTP的主要区别在于报文头,前者的报文体有加密过程。
S-HTTP的语法与HTTP一样,由请求行(Request Line)和状态行(Status Line)组成,后跟报文头和报文体(Message Body)。为了与HTTP报文区分,S-HTTP报文使用了协议指示器Secure-HTTP/1.4,这样S-HTTP报文可以与HTTP报文混合在同一个TCP(80)端口进行传输。
现在SSL的应用表现要好于HTTPS,大多数交易均采用传统的HTTP协议,并使用经过SSL加密的HTTP报文来传输交易信息。
PGP(Pretty Good Privacy)是一种完整的电子邮件加密软件包,提供数据加密和数字签名两种服务,采用RSA公钥证书进行身份验证,使用IDEA进行数据加密,使用MD5进行数据完整性验证。
PGP应用广泛的原因:
在网络中部署PGP可分为以下3个步骤:
Kerberos是一项认证服务,支持AAA:认证、授权和审计。
它要解决的问题是:在公开的分布式环境中,工作站上的用户希望访问分布在网络上的服务器,希望服务器能限制授权用户的访问,并能对服务请求进行认证。
这样可能存在这3种威胁:
Kerberos可以防止偷听和重放攻击,保护数据的完整性。它的安全机制如下:
时间戳t可以防止重放攻击。
防火墙可以实现内部网络信任网络和外部不可信任网络(Internet)之间或者是内部网络不同区域隔离与访问控制。
防火墙技术与分类:包过滤、状态化防火墙、应用层网关、应用层监测DPI。
防火墙可以依据源和目的IP地址、端口、IP协议号进行过滤,不能过滤负载内容,但软考虽然答案如此,现在的防火墙基本都支持应用层包检测(可以检测负载内容)。
根据网络的安全信任程度和需要保护的对象,人为划分若干安全区域,包括:
受信任程度:Local>Trust>DMZ>Untrust
Inbound:低安全级别→高安全级别,比如Untrust→Trust
Outbound:高安全级别→低安全级别,比如DMZ→Untrust
入侵检测IDS是防火墙之后的第二道安全屏障,美国国防部提出公共入侵检测系统架构,其由4个模块组成。
事件产生器(Event generators,E-boxes),负责数据的采集,并将收集到的原始数据转换为事件,提供信息给其他模块。
事件分析器(Event Analyzers,A-boxes),接收事件信息并对其进行分析,使用以下三种分析方法:(1)模式匹配;(2)统计分析;(3)数据完整性分析。
事件数据库(Event Databases,D-boxes),存放有关事件的各种中间结果和最终数据的地方:数据库、文本文件等。
响应单元(Response units,R-boxes),根据报警信息做出各种反应。
按信息来源分:HIDS、NIDS、DIDS(主机/网络/分布式)。
按响应方式分:实时检测和非实时检测。
按数据分析技术和处理方式分:异常检测、误用检测和混合检测。
异常检测:建立并不断更新和维护系统正常行为的轮廓,定义报警阈值,超过阈值则报警。
它能够检测从未出现的攻击,但误报率高。
误用检测:对已知的入侵行为特征进行提取,形成入侵模式库,匹配则进行报警。已知入侵检测准确率高,对于未知入侵检测准确率低,高度依赖特征库。检测技术:专家系统和模式匹配。
定义:入侵防御系统是一种抢先的网络安全检测和防御系统,能检测出攻击并积极响应。
IPS与IDS的不同在于部署位置和入侵响应能力的不同,IPS作为网络设备串接在网络中,IDS采用的则是旁路挂接方式。IDS的响应比较单一,即记录和警报,而IPS设备则可以主动防御,采取丢弃数据报、发送ICMP不可到达数据报,记录日志,动态生成防御规则等主动方式。
IPS采用的是主动的,全面的,深层次的防御。
病毒的定义:指一段可执行的程序代码,通过对其他程序进行修改,可以感染这些程序使其含有该病毒程序的一个拷贝。
病毒的四个阶段:
病毒的命名规则:<病毒前缀>.<病毒名>.<病毒后缀>