目录
(1)IPSec协议簇的两种工作模式,运输方式和隧道方式,常用隧道方式
一、网络安全的基础
密码体制的作用就是对报文进行加密,分为对称密码体制和公钥密码体制。有了这个密钥体制,即使报文被窃取了,别人也没办法解析报文的意义。
1.对称密码体制
客户端和服务器两个的密钥一样。这个肯定是发送之前,客户端和服务器都已经获得了加密密钥。
2.公钥密码体制
对称密钥体制有点缺点,就是发送之前两台电脑都需要约定好密钥,这个对于处在不同地域的两个电脑来说太困难,如果直接将密钥通过互联网传输,那么就很危险,为了解决这个问题,引入了公钥密码体制
公钥密码体制有公钥和私钥两种,公钥是公开的,任何发送方都可以通过互联网获得,用于对数据进行加密,私钥是存在接收方主机,用于对报文进行解密。这样的话,如果互联网上任何一个主机想要给接收方发送消息,只需要拿到接收方的公钥就可以了。
公钥密码体制在加密和解密的速度慢于对称密钥体制,而且是好几个数量级。为了解决这个可能对数据传输造成的影响,所以一般先使用公钥密码体制对传输对称密钥,传输对称密钥之后,后面的数据传输使用对称密钥进行加密和解密。
二、报文鉴别
使用对称密钥或者公钥对报文进行加密之后,虽然降低了报文被窃取的风险,但是如果有坏蛋它 窃取了报文,之后修改了报文,那么就会导致接收方接受错误的报文。为了解决这个问题,引入了报文鉴别。
其实上面的这个可能性不大,因为既然对报文进行加密了,那么其实很难篡改,如果篡改了之后,解密了之后数据不被理解,那么就可以认为报文是被篡改了。所以一般报文鉴别是在报文的明文的情况下使用。
下面介绍两种报文鉴别方式,报文摘要方式和散列报文方式
1.报文鉴别方式
2.散列报文方式
三、数字签名
其实更多的还是一个防止抵赖的效果,使用数字签名的报文发送方式,可以知道这个报文的确切发送方是谁,防止抵赖。
A使用私钥加密之后发送给接收方B,B会遍历自己的所有公钥,对他解析,如果解析到有意义的报文,那么就可以确定到是哪个私钥,之后就可以确定接收方。
但是由于上面的报文没有进行加密,公钥又都是对外公开的,所以任何人都可以截获发送方A的报文,之后对他进行解密,这样就不安全。
为了解决这个安全问题,所以又进行了一次加密。
四、实体鉴别
实体鉴别就是比如客户端访问服务器需要账号密码,之后服务器通过客户端提供的账号密码确认客户端的身份,之后给客户端不同的权限什么的。这个是建立通讯前的一个操作。比如登录QQ需要账号密码,登录之后就直接聊天数据传输了,不需要实体鉴别了。
1、对称密钥加密
(1).重放攻击
如果A和B通讯,发送账号和密码并加密。但是这个数据被C截获了,C并不需要知道这个报文具体含义,他直接改一下IP,自己在明天后天或者某一天发送给B,B就会认为C是A。
注意的是,IP前缀并不会加密,如果这个被加密的话,那么数据如何在互联网上传输呢?所以加密的一半只有数据载荷。
(2).不重数解决重放攻击
即使攻击人C截获了A发送给B的两个数据。在后来某一天如果C把第一条数据发送给B,之后B会把第二个数据发送给C,此时发送的不重数已经不是RB了,如果C再把第三个数据发送给B,那么就会鉴别失败,解决了重放攻击。
2、公钥密码体制实现实体鉴别
(1).基本过程
(2).收到攻击的可能
注意,下面介绍的两个可能的攻击建立在公钥传输的情况下,如果公钥开始就彼此知道,那么就不会存在下面的不安全的可能。
开始C向B发送a的用户名和一个不重数R1。
之后B向C发送不重数R2和加密后的R1
C不管,之后直接用自己私钥签名R2发送给B
B发现不能解密出R2,之后要求C提供公钥
之后C提供公钥给B
之后B解析出确实是不重数R2,这样就和C建立连接,之后发送数据。
对于上面的例子,如果A和B之间随便再通讯一下,就知道原来是C做出了攻击。也就是说如果C再A和B要建立连接的时候插入进来就会有问题,因为A的数据都被C截获了,那么迟迟收不到消息,就会怀疑被攻击了。
对于下面的这个例子,大体就是C起到一个转发的效果,他拿到A的公钥之后,B拿到他的公钥。当B要给A发送消息的时候,先被C截获,C使用私钥解密,之后使用A的公钥加密发给A,A没办法感知到B的存在。
这一切的前提是公钥需要再互联网上传输,如果不传输,就没法攻击。比如A,B都知道对方的公钥和私钥,那么就不存在请求公钥,也就不存在被攻击。
五、密钥分发
1.对称密钥分发
在建立通讯前,AB向第三方信任的机构拿到密钥,这样在通讯的过程中不需要进行密钥的传递。再加上使用不重数进行身份鉴别。那么除非密钥被破解,否则不可能被攻击。
2.公钥的发放
CA是可信任的公钥发放的机构,签发证书的内容包括公钥,使用私钥加密的身份信息。之后使用CA的私钥对这两个信息签字,得到最后的证书。
对于下面这个情况,如果使用CA就不会有问题。
A访问B,申请B的证书。之后即使被C截获了,C也不可能伪造B的证书。
C接收到B的证书之后,使用CA公钥解密,得到B的公钥,但是呢,他不知道CA的私钥,所以没办法伪造证书,就让他伪造一个。
之后A使用CA公钥对证书解密,发现解密失败,那就说明,哦,被攻击了。
六、访问控制
客户端登陆服务器之后,还需要对客户端对服务器的访问权限进行控制。
1、访问控制的基本概念
2.三类典型的访问策略
自主访问策略:客体的拥有者可以自由的决定其他主体对客体的访问权限
强制访问策略:主体和客体有安全级别。主体安全级别大于等于客体可以读取数据,主体安全级别小于等于客体可以写入数据。
基于角色的访问策略:每个主体被管理员赋予不同的角色,不同的角色具有不同的访问权限。
七、网络体系结构中各层采取的安全措施
1.物理层
(1)、物理层
对于点到点的链路,直接使用硬件对明文加密,在目标点使用硬件对密文解密
(2)数据链路层
①:SSID匹配机制
对于无线网AP来说,只有知道无线网的账号和密码才能连接无线网,这个就是SSID匹配机制,不知道账号密码不允许你连接。
②:MAC地址过滤机制
AP只允许特定的MAC地址连接。但是这个存在问题,如果一个设备的MAC地址被截获了。攻击者可以利用这个MAC地址连接无线网。
③:在线等效保密WEP机制
这个引入了密钥,提前告诉需要连接AP的用户。之后连接之前使用实体鉴别。这样攻击者就很难连接到AP了。不重数应对重放攻击,而且密钥实现约定好,不在交互的时候传输,攻击者根本没有办法,除非破解密钥。但是如果密钥需要传递,那还是有风险。
如果非要在连接的过程中传输密钥怎么办?引入了鉴别服务器AS
第一步,无线终端向AS发送证书,AS向无线终端发送证书,他们彼此确认身份,并获得彼此的公钥
第二步,他们两个使用第一步获得的公钥加密通讯,之后商量出来一个密钥PMK。
第三步、AS把这个PMK发送给AP,这个是加密的,用 RADIUS 共享密钥(shared secret)+ MD5/HMAC 进行加密保护。共享密钥是 AS 和 AP 预先配置好的,外部主机不知道。
第四步:AP和无线终端使用PMK通讯再商量出一个密钥PTK,之后使用PTK加密通讯。
2.网络层
(1)IPSec协议簇的两种工作模式,运输方式和隧道方式,常用隧道方式
(2)安全关联SA
如果不同地方的两个电脑想要使用隧道的方式进行通讯,需要建立一个安全关联SA,其实也就是提前将加密密钥,加密算法,鉴别密钥,鉴别算法,源地址和目标地址告知对方。之后在向对方通讯的时候,就是用这种方法加密。
(3)IP安全数据报的格式
填充长度:由于加密需要对报文的长度有要求,所以如果长度不符合就填充
下一个首部:这个标识是运输模式还是隧道模式,不同的模式使用不同的解析方法
安全参数索引SPI:一个主机可能有很多SA,这个用来标识是哪个SA,知道了那个SA才能拿到密钥,才能解密和鉴别。
(4)IPSec的其他构件
SAD:存放每个SA的信息
SPD:并不是每个报文都需要加密,他来决定哪些报文需要加密
IKE:如果SA比较多,SAD不可能人工输入,IKE提供了自动化的方法。
5.运输层
运输层提供的服务有SSL/TLS,下面主要介绍SSL。
其实这个很简单。过程就和上面的基础知识介绍一样。客户端访问服务器
首先进行实体鉴别,客户端向服务器要求证书
客户端接受服务器证书,解密确认服务器身份,并拿到公钥
客户端向服务器发送证书,确认客户身份,拿到公钥
之后使用彼此公钥加密通讯,也可以再商定一个对称密钥通讯。
6.应用层
其实我感觉这几个层都没啥用,本质就是加密,解密,鉴别,防止攻击那一套。
明文邮件使用散列函数,得到报文摘要
对于报文摘要,使用A的私钥进行签名,得到报文鉴别码MAC
之后将报文鉴别码和明文邮件合在一起得到扩展邮件
使用A的一次性密钥对扩展邮件加密得到加密后的扩展邮件
使用B的公钥对A的一次性密钥加密得到加密后的一次性密钥
之后将加密后的一次性密钥和加密后的邮件拼到一起发送给B
接收方B拆出来加密后的扩展邮件和加密后的一次性密钥
使用B的私钥解密一次性密钥得到密钥
之后使用这个密钥解密加密后的扩展邮件
之后得到报文鉴别码MAC和邮件X
之后对邮件X算出报文鉴别码
之后使用A的公钥解密加密的MAC
两个MAC作比较鉴别报文是否被更改了
八、防火墙访问控制和入侵检测系统
1.网络防火墙
对于分组过滤路由器,可以对设备的IP,出入,端口号,协议进行过滤。这个可以手动配置。
如下图的第5条,不允许从211.67.230.1的来源发送的任何协议,任何端口进入内网。
分组过滤路由器不能对应用层的具体报文信息进行过滤,所以需要应用网关。应用网关直接检测报文中是否有敏感词,有敏感词直接过滤掉。
2.个人防火墙
个人防火墙大概和网络防火墙的分组过滤一样的,只不过它只管一个电脑,而网络防火墙过滤整个网络。
3.入侵检测系统IDS
主要包括基于特征的和异常的。可以检测自己是否被攻击
九、常见的网络攻击
1.网络扫描
(1)主机发现
主要利用ICMP协议来扫面主机,从而拿到主机的IP地址
防范办法是加入防火墙,直接阻隔ICMP协议,让ping命令失效。
所以攻击者直接发送错误的ICMP,检测目标主机正在运行,ICMP差错报文里面有用户的源IP地址,这样能扫描到IP地址。
(2)端口扫描
当发现了主机之后,可以对这个主机上端口进行扫描,从而可以发现这个主机都在运行那些服务。
对于TCP,尝试和某个端口建立连接,从而得到当前端口是否在工作。
对于UDP,直接向某个端口发送数据包,如果没有回复,那么说明正在运行,如果回复端口不可达,那么说明没在运行。UDP运行在运输层,而ICMP运行在网络层,所以UDP发送的信息也会有网络不可达的回信啊。
(3)操作系统检测
对于TCP/IP协议栈,不同的操作系统默认参数不同,可以通过这个推断操作系统类型。
知道了正在运行的服务,知道了操作系统,那么就可以进行漏洞扫描,找到漏洞,进行攻击。
2.网络监听
(1)分组嗅探器
将网卡设置成混杂模式,那么就可以得到所有的经过这个网卡的MAC地址,可以将它记录下来。
(2)交换机毒化攻击
就是攻击者伪造大量不同的源MAC地址帧,之后将交换机的路由转发表填满。之后当B向C发送消息的时候,找不到B的MAC地址,所以进行泛洪广播那么攻击者就能收到B的相关信息了。
(3)ARP欺骗
攻击者C知道B的ip地址。之后当他就装作B,发送报文的时候发送B的IP地址,但是MAC地址发自己的。之后经过交换机转发给A,之后A给B的IP发消息,由于MAC地址是C的,所以交换机把消息发给了C,那么就建立了A和C之间的通讯,但是外表上看起来是A和B之间的通讯。
3.拒绝服务攻击
(1)基于漏洞的
(2)基于资源消耗的
攻击者使用C的IP发送广播
之后网络中所有的回复消息给C
造成C主机崩溃。网络中电脑越多,效果越好。