logologo

第十六章:安全

Apr 23, 2023

安全

安全目标

  • 机密性:避开未授权的使用,也就是不让未授权方读;
  • 完整性:避开未授权的修改,也就是不让未授权方写;
  • 可用性:保证信息和传输双方的可用;

威胁机密性的攻击

  • 嗅探:寻找互联网中传输的信息(例如抓包)。这个时候如果传输的信息不加密的话就会被获取到,从而破坏机密性。
  • 流量分析:即使无法理解抓取到的信息,第三方仍可以通过流量监控来收集多次的信息传输,以帮助猜测交易的本质。

威胁完整性的攻击

  • 篡改:获取传输的信息并篡改之后再发送;
  • 假冒:直接冒充传输双方的其中一方参与信息交流;
  • 重放:获取信息之后过一段时间然后再重新发送;
  • 抵赖:传输双方中的一方不承认自己之前发送/接受过信息(这种攻击不来自第三方);

威胁可用性的攻击

  • 拒绝服务:通过发送大量的请求击垮服务器使其不可用;

安全技术

  • 密码术:将信息进行加密;
  • 隐写术:在信息上覆盖其他内容;

对称加密

对称加密的目标是通过一个可逆的算法(可能会加上密钥)进行加密,并使用该算法的逆算法(可能会加上密钥)进行解密。

传统对称加密

  • 替换密码:用一个字符替换另一个字符。
    • 单字母密码:单字母进行替换的密码,可以通过公式(例如加减某个数)进行替换。
    • 多字母密码:如果只是简单的加一个数的话很容易通过字母频率统计来猜出信息,故多字母密码的流程就是除了第一个字母仍旧使用给定的偏移量,从第二个字母开始都使用前一个未加密的字母做偏移量。
  • 移位密码:将字符串按一定规则重新排序
  • 流密码:用一个密钥流对原文进行加密(也就是每个字符对应一个密钥)
  • 分组密码:将明文按 m 个字符为一组分组,每组分别加密

现代对称加密

现代对称加密区别于传统的加密,其面向的加密单位不再是字符,而是位。

  • 现代分组密码:将每 m 位为一组进行加密
  • 现代流密码:用一个用位组成的密钥流进行加密

非对称加密

非对称加密区别于对称加密,加密方无法使用自己持有的密钥进行解密,而解密也无法使用自己的密钥进行加密。

用于加密的密钥称为公钥(这是可以公开出去的密钥,因为其公开不会影响机密性),用于解密的密钥称为私钥。

RSA 密码系统

该密码系统的规则如下:

  • 挑选两个大素数pq
  • 计算n = p x q,和m = ( p - 1 ) x ( q - 1 )
  • 挑选ed使得(e x d) mod m = 1,于是en即为公钥,d即为私钥。
  • 任何人可以使用公钥加密他的消息PC = ( P ^ e ) mod n
  • 私钥持有者便可以使用私钥进行解密:P = ( C ^ d ) mod n

其他安全服务

除了考虑机密性之外,还要再考虑其他方面,例如完整性、消息和实体验证、不可抵赖性和密钥管理。

消息完整性

为了防止消息被篡改,需要使用另外的信息来使双方知道消息是否被篡改。常用的方法便是使用哈希生成消息的摘要。在哈希方式(包括加入哈希原串的密钥)不被第三方知道的情况下,第三方无法篡改出合法的摘要。也就是说,传输双方只要使用消息进行哈希得到摘要并与原摘要对比就可以知道消息是否被篡改过了。

数字签名

数字签名使用一组公私钥生成。但区别于非对称加密,加密用的密钥为私钥,解密用的密钥为公钥。发送方先用自己的私钥和消息(或者消息的摘要)进行加密生成签名,将签名和消息一起发送。接收方用公钥解密签名得到消息(或者消息的摘要),进行消息比对(或消息摘要的比对)即可验证消息完整性。

数字签名除了保证消息的完整性之外,还具有不可抵赖性。带有发送方签名的数据发送方无法抵赖。

实体验证

实体验证简单的讲就是验证现在的操作的实体是不是授权方。常用的实体验证有:

  • 实体所知道的:密码、PIN 等
  • 实体所拥有的:身份证、手机号等
  • 实体所固有的:指纹、声音等

挑战-回应模式

这种模式用于验证密码但由不将密码暴露在传输过程中。实体不发送密码,而是由验证方发送一些数据,实体用对称加密算法用自己的密码将数据加密并发给验证方,验证方用密码和相同的对称加密算法解密验证数据是否是传给实体的数据即可。

防火墙

防火墙用于加强服务的可用性。其主要分两种:

  • 包过滤防火墙:对于特定源/目的的包,将其拦截。
  • 代理防火墙:外部请求首先会进入代理服务器,由代理服务器进行逻辑比较复杂的过滤之后才由代理服务器转发给真正的服务器。
浙ICP备2021022773号    2022-PRESENT © ZhengKe