ZMichael 2020-02-19
网络安全也是分层实现的,从应用层安全到数据链路层安全。
在发送方,SSL 接收应用层的数据(如 HTTP 或 IMAP 报文),对数据进行加密,然后把加了密的数据送往运输层 TCP 套接字。
在接收方,SSL 从 TCP 套接字读取数据,解密后把数据交给应用层。(发送方和接收方都有SSL层)
当我们访问网站时,一般不涉及输入账号密码等操作的网页使用的都是 "HTTP" 协议(使用80端口),即网站域名开头为:http://;当涉及账号密码等敏感信息的操作时,网站一般都会使用 "HTTPS"协议(使用443端口),"S"表示的即是SSL (Secure Socket Layer),即网站域名开头为:https://。
例如,我们访问中国工商银行的官网:
在主页处的域名栏中可以发现浏览器提醒的 "不安全" 字样,实际上该主页使用的就是HTTP协议,即不加密信息,明文传输。由于这是谷歌浏览器,没有显示 "http://" 的域名前缀。
当点击登录时,跳转到另外一个网页:
从网站域名开头的 "https://" 可以看出,涉及到账号密码等敏感信息的登录页面使用的是HTTPS协议,说明网页使用了SSL技术。
补充
HTTP协议使用了安全套接字(SSL)变成了HTTPS协议,使用的端口由80变为443,其他应用层的协议也可以使用安全套接字:
https既采用了对称加密的效率,也采用了非对称加密的安全。
通信前Web服务器先把证书中的公钥交给IE浏览器(客户),IE浏览器根据收到的公钥生成一个对称密钥,然后使用公钥加密对称密钥并发送给Web服务器。
Web服务器使用私钥解密收到的加密后的对称密钥,随后使用对称密钥加密需要传输的数据。在之后的通信中都采用该对称密钥对数据加密和解密。
在传输对称密钥的过程中使用非对称加密,在传输数据过程中使用对称加密。这样既保证了数据传输的安全,也提高了效率。
所以,在使用https通信的时候一开始都不会太快,因为要协商对称密钥,协商好之后才会快起来。
查看使用https网站的证书
例如:百度。
点击 "锁" 图标。
点击 "证书" 即可查看到该网站使用的证书。
上图为颁发给百度首页的证书,可以看到SSL除了可以加密会话信息之外,还可以鉴别服务器和客户身份。
网络安全是分层实现的。
应用层安全:比如微软的 "Outlook" 邮箱,可以通过在应用程序中的某些设置实现数据传输的安全。应用层安全的特点为需要应用程序的支持。
传输层安全:传输安全是通过夹在应用层和传输层中间的SSL层实现的,发送方的SSL可以将应用层的数据加密后给传输层,接收方的SSL传输层收到的数据解密后给应用层。SSL安全的特点为需要配置相应证书。
网络层安全:属于底层安全,不需要应用程序支持,也不需要配置证书,对用户来说是透明的,即用户并不知道数据在该层进行了加密。
比如,未加密的数据经过发送方的网卡实现了加密,接收方的网卡实现数据解密,整个过程用户是不知道的,是透明的,即使数据在传输过程中被截获了,第三方也不能破解其中内容;或者数据被篡改了,接收方也能发现,这便是网络层安全。
网络层保密是指所有在 IP 数据报中的数据都是加密的。
IPsec 中最主要的两个部分
安全关联 SA(Security Association)
IPsec 就把传统的因特网无连接的网络层转换为具有逻辑连接的层。
SA(安全关联)是构成IPSec的基础,是两个通信实体经协商(利用IKE协议)建立起来的一种协定,它决定了用来保护数据分组安全的安全协议(AH协议或者ESP协议)、转码方式、密钥及密钥的有效存在时间等。
安全关联是一个单向连接。它由一个三元组唯一地确定,包括:
(1) 安全协议(使用 AH 或 ESP)的标识符;
(2) 此单向连接的源 IP 地址;
(3) 一个 32 位的连接标识符,称为安全参数索引 SPI (Security Parameter Index);
对于一个给定的安全关联 SA,每一个 IPsec 数据报都有一个存放 SPI 的字段。通过此 SA 的所有数据报都使用同样的 SPI 值。
AH首部
(1) 下一个首部(8 位)。标志紧接着本首部的下一个首部的类型(如 TCP 或 UDP)。
(2) 有效载荷长度(8 位),即鉴别数据字段的长度,以 32 位字为单位。
(3) 安全参数索引 SPI (32 位)。标志安全关联,两个计算机进行通讯时的SPI值是固定的。
(4) 序号(32 位)。鉴别数据字段的长度,以32 位字为单位。
(5) 保留(16 位)。为今后用。
(6) 鉴别数据(可变)。为 32 位字的整数倍,它包含了经数字签名的报文摘要。因此可用来鉴别源主机和检查 IP 数据报的完整性。
使用 ESP 时,IP 数据报首部的协议字段置为 50。当 IP 首部检查到协议字段是 50 时,就知道在 IP 首部后面紧接着的是 ESP 首部,同时在原 IP 数据报后面增加了两个字段,即 ESP 尾部和 ESP 数据。
这里的 "激活默认规则" 指的是,当没有指定规则时,使用默认的规则。
进入 "新规则 属性" 界面,在 "IP筛选器列表" 选项中可选择和添加 IP筛选器列表,它的作用是:指定受此新规则影响的网络流量。比如所有的 IP 通讯、所有的 ICMP 通讯等,即设置允许接收从哪里来或到哪里去的数据。
在 "筛选器操作" 选项卡中,可以指定如何保障新建的IP筛选器列表的网络流量的安全,即指定在 "IP 筛选器列表" 中设置的允许通行的流量使用的安全方法(AH或ESP等)。同样不使用向导,点击 "添加",添加筛选器的操作。
在 "身份验证方法" 选项卡中,可以指定通信双方建立信任关系的方法,即验证通信双方的身份。点击 "添加" 进入 "新身份验证方法 属性" 界面。
"新规则 属性" 界面的 "隧道设置" 选项卡可设置IPSec隧道相关属性。
"新规则 属性" 界面的 "连接类型" 选项卡可指定使用新规则的连接类型。
把本地计算机当作Web服务器,按图中要求设置Web服务器到三台计算机的安全策略,其中计算机XP1的IP地址为192.168.80.101,XP2为192.168.80.102,XP3为192.168.80.103 。
设置Web服务器到计算机XP1的安全策略:
在 "新规则 属性" 界面的 "IP筛选器列表" 中添加新列表,指定通信的目标地址为XP1的IP地址:192.168.80.101 。
在 "IP筛选器列表" 中选中 "toXP1" 的情况下,在 "筛选器操作" 中添加安全方法名称为改为AH。
在 "IP筛选器列表" 中选中 "toXP1" 和 "筛选器操作" 中选中 "AH"的情况下,在 "身份验证方法" 中添加Web服务器到XP1的身份验证方法:使用共享密钥aaa。
"隧道设置" 和 "连接类型" 两项该例中不用设置,由此完成从Web服务器到XP1安全策略的设置。
设置Web服务器到计算机XP2和XP3的安全策略与到XP1的设置同理。最后,Web服务器把到XP1~XP3的安全策略都按要求添加了。
设置完之后,当Web服务器与XP1和XP2通信时,使用装包工具抓到的数据包只能看到加密后的数据;当Web服务器与XP3通信时,由于没有加密,所以抓包工具抓到的数据包能看到传输的明文。可在虚拟机中模拟四台计算机进行验证,这里就不展开了。
如下图所示,在IP安全规则中勾选的 "所有 IP 通讯量" 是否与其他勾选的安全规则冲突呢?是不冲突的,选择IP安全规则时采用的是最佳匹配原则。比如:老师说中午12点下课,班干部11:30开完会后可以离开,张三11点就能走,虽然时间不同,但是每个学生都清楚自己几点可以走,这就是最佳匹配。通信时,如果是与XP2通信,那么计算机就采用 "toXP2" 安全规则;与XP3通信,则采用 "toXP3" 安全规则;如果都不是,才采用 "所有 IP 通讯量" 安全规则。