安全的计算机网络
一个安全的计算机网络应设法达到以下的四个目标:
- 保密性:只有信息的通信双方才能懂得所发送信息的内容,信息的截获者则看不懂所截获的信息
防护:加密
- 端点鉴别:安全的计算机网络必须能鉴别信息的发送方和接收方的真实身份
防护:鉴别
1),报文鉴别:即鉴别所收到的报文的确是报文发送者所发送的,而不是其他人伪造或者篡改的
2),实体鉴别:即仅仅鉴别发送报文的实体,实体可以是一个人,也可以是一个进程
- 信息的完整性:信息是完整的,没有诶篡改过
防护:签名,
- 运行的安全性:保证计算机网络正常工作
攻击:拒绝服务攻击,恶意程序,交换机中毒
防护:访问控制,
密码体制
- 对称密钥密码体制 DES:基于整数有限域离散对数难题
- 公钥密码体制 RSA :基于数论中大数分解难题的
鉴别
- 报文鉴别
密码散列函数 :
报文摘要MD5,安全散列算法SHA-1
- 实体鉴别:实体鉴别和报文鉴别不同,报文鉴别是对每一个收到的报文都要鉴别报文的发送者,而实体鉴别是在系统接入的全部持续时间内对和自己通信的对方实体只需验证一次。
攻击:重放攻击,中间人攻击
由中间人攻击可见,公钥的分配,以及公钥的真实性是一个非常重要的问题
秘钥分配
- 对称密钥分配
目前常用的秘钥分配方式是设立秘钥分配中心 KDC。KDC 的任务就是给需要进行秘密通信的用户临时分配一个会话密钥。
1),用户A向KDC发送明文 ,说明想和用户B通信,在明文中给出其在KDC中注册登记的身份。
报文信息:{A_principal,B_principal}
2),KDC 通过A,B的身份信息从其数据库中找到A,B对应的密钥。并生成会话密钥 K A B K_{AB} KAB, 并使用 K A K_A KA 加密回答报文,返回给A
报文信息:{ E K A ( K A B , E K B ( t i c k e t ) ) E_{K_A}(K_{AB}, E_{K_B}(ticket)) EKA(KAB,EKB(ticket))}
ticket = { K A B K_{AB} KAB, A_principal, B_principal }
3),当B收到A转发来的ticket时,使用自己的秘钥 K B K_B KB 解密后,就知道A要和他通信了,同时也知道了通信用的会话秘钥 K A B K_{AB} KAB