这是我参与更文挑战的第11天,活动详情查看: 更文挑战
被动攻击
攻击者从网络窃听他人的通信内容
通常把这类攻击称为截获
在被动攻击中, 攻击者只是观察和分析某一个协议数据单元PDU, 以便了解所交换数据的某种性质, 但不干扰信息流
被动攻击又称为流量分析
主动攻击
篡改 - 故意篡改网上的报文. 也称为更改报文流
恶意程序 - 种类繁多, 包括: 病毒, 蠕虫, 特洛伊木马, 逻辑炸弹, 后门入侵, 流氓软件等
拒绝服务 - 指攻击者向互联网上的某个服务器不停发送大量分组, 使服务器无法提供正常服务, 甚至瘫痪
DDoS - 分布式拒绝服务
若从互联网上成百上千的网站 集中攻击一个网站, 则称为分布式拒绝服务DDoS, 也称为网络带宽攻击或连通性攻击
计算机网络通信安全的目标
- 防止分析出报文内容和流量分析
- 防止恶意程序
- 检测更改报文流和拒绝服务
对于被动攻击可以采用各种数据加密技术
对于主动攻击则需将加密技术和鉴别技术相结合
安全计算机网络的四个目标
- 保密性
只有信息的发送方和接收方才能懂得发送信息的内容. 是网络安全通信最基本的内容, 也是必须具备的功能, 可以使用密码技术使用网络具有保密性
- 端点鉴别
鉴别信息的发送方和接收方的真实身份
- 信息的完整性
保证信息的内容未被修改过, 通常与端点鉴别一起使用
- 运行的安全性
系统正常运行提供服务. 访问控制, 必须对访问网络的权限加以控制, 并规定每个用户的访问权限
密钥
一串秘密的字符串
发送方将明文通过加密算法和加密密钥变成密文
接收方通过解密算法和解密密钥将密文变成明文
加密密钥和解密密钥可以一样, 也可以不一样
密钥通常由密钥中心提供
当密钥需要向远地传送时, 一定要通过一个安全信道
对称密码体制
加密密钥与解密密钥是相同的密码体制, 又称为对称密钥系统
公钥密码体制
不同的加密密钥与解密密钥, 称为加密密钥为公钥, 解密密钥为私钥, 公钥是公开的, 私钥是保密的
发送者A用B的公钥对明文进行加密, 接收者B用自己的私钥进行解密
公开密钥与对象密钥的区别
在使用对称密钥时, 由于双方使用同样的密钥, 因此在通信上可以进行一对一的双向保密通信, 每一方既可用此密钥加密密文, 并发送给对方, 也可接收密文, 用同一密钥对密文解密, 这种保密通信仅限于有此密钥的双方
在使用公开密钥时, 在通信信道上可以是多对一的单向保密通信
数字签名
用私钥加密, 用公钥解密, 称为数字签名
数字签名的作用
用于证明真实性
- 证明来源 - 报文鉴别, 接收者能够核实发送者对报文的签名
- 防否认 - 报文的完整性, 发送者事后不能抵赖对报文的签名
- 防伪造 - 不可否认, 接收者不能伪造对报文的签名
鉴别
对付被动攻击的重要措施是加密, 对付主动攻击的片尾和伪造要用鉴别
报文鉴别使得通信的接收方能够验证所收到的报文(发送者和报文内容, 发送时间, 序列等)的真伪
鉴别的分类
- 报文鉴别
鉴别所收到的报文的确是报文的发送者所发送的, 而不是其他人伪造的或篡改的. 这就包含了端点鉴别和报文完整性的鉴别
- 实体鉴别
仅仅鉴别发送报文的实体. 实体可以是一个人, 也可以是一个进程(客户或服务器)
散列函数的特点
- 散列函数的输入长度可以很长, 但其输出长度则是固定的, 并且较短. 散列函数的输出叫做散列值, 或称为为散列
- 不同的散列值肯定对应不同的输入, 但不同的输入却可能得出相同的散列值. 散列函数的输入输出并非一一对应, 而是多对一的
- 单向性 - 要找到两个不同的报文, 它们具有同样的密码散列函数输出, 在计算上是不可行的
MD5计算步骤
- 附加 - 把任意长的报文按模2^64计算其余数, 追加在报文的后面
- 填充 - 在报文和长度项之间填充1~512位, 使得填充后的总长度是512的整数倍. 填充的首位是1, 后面都是0
- 分组 - 把追加和填充后的报文分割为一个个512位的数据块, 每个512位的报文数据再分成4个128位的数据块
- 诈 - 将4个128位的数据块依次送到不同的散列函数进行4轮计算. 每一轮都按32位的小数据块进行复杂的运算. 一直到最后计算出报文摘要代码(128位)
SHA-1基本思想
- 要求输入码长小于2^64位, 输出码长为160位
- 将明文分成若干512位的定长块, 每一块与当前的报文摘要值结合, 产生报文摘要的下一个中间结果, 直到处理完毕.
- 共扫描5遍, 效率略低于MD5, 抗穷举性高
报文鉴别
散列加密后的结果叫做报文鉴别码MAC
- 整个报文不需要加密
- 虽然从散列导出报文鉴别码MAC需要加密算法, 但由于散列的长度远小于报文的长度, 因此这种加密不会消耗很多计算资源
- 使用鉴别码MAC能够很方便的保护报文的完整性
实体鉴别
报文鉴别是对每一个收到的报文都要鉴别报文的发送者
实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次
重放攻击
入侵者C可以从网络上截获A发送给B的报文
C并不需要破译这个报文, 而是直接把这个截获的, 由A加密的报文发送给B, 使B误认为C就是A. 然后B就向伪装成A的C发送应发给A的报文, 称为重放攻击
IP欺骗
C甚至可以截获A的IP地址, 然后把A的IP地址冒充为自己的IP地址, 称为IP欺骗
使用不重数进行鉴别
不重数就是一个不重复使用的大随机数, 即一次一数. 由于不重数不能重复使用, 所以在进行重放攻击时无法重复使用所截获的不重数
B用私钥对不重数R(A)进行签名后发回给A. A用B的公钥核实签名. 如能得出自己原来发送的不重数R(A), 就核实了和自己通信的对方的确是B
同样, A也用自己的私钥对不重数R(B)进行签名发送给B. B用A的公钥核实签名, 鉴别了A的身份
密钥分配
网外分配- 派非常可靠的信使携带密钥分配给互相通信的用户
网内分配 - 密钥自动分配
对称密钥的分配
目前常用的分配方式是设立密钥分配中心KDC(Key distribution Center).
KDC是大家都信任的机构, 任务是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次)
假设用户A和B都是KDC的登记用户, 并已经在KDC的服务器上安装了各自和KDC进行通信的主密钥
公钥的分配
在公钥密码体制中, 如果每个用户都具有其他用户的公钥, 就可实现安全通信
但不能随意公布用户的公钥, 因为无法防止假冒和欺骗. 使用者也无法确定公钥的真实拥有者
需要有一个值得信赖的机构 - 认证中心CA(Certification Authority), 来将公钥与基对应的实体进行绑定, CA一般由政府出资建立
每个实体都有CA发来的证书, 里面有公钥及其拥有者的标识信息
此证书被CA进行了数字签名, 是不可伪造的, 可以信任