目录
什么是网络安全?
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
可访问与可用性(access and availability):
网络服务必须对被授权用户可访问与可用
身份认证(authentication):
发送方与接收方希望确认彼此的真实身份
信息完整性(message integrity):
发送方与接收方希望确保信息未被篡改(传输途中或者后期),发生篡改一定会被检测到
机密性(confidentiality):
只有发送方与预定接收方能够理解报文内容,发送方加密报文,接收方解密报文
拟人模型
网络安全领域的著名拟人模型
Bob与Alice是期望进行安全通信的情侣
Trudy是企图破坏Bob和Alice通信的入侵者 (intruder), 试图拦截、删除或添加信息
一、Bob、Alice:
电子交易过程的Web浏览器/服务器 (e.g., 网购)
网络银行的客户/服务器
……
二、Trudy:Bad Guys
窃听(eavesdrop): 窃听信息
插入(insert):主动在连接中插入信息
IP欺骗(Spoofing):
直接由应用生成“原始”IP分组,可以设置分组的源IP地址字段为任意值,接收方无法判断源地址是否被欺骗
e.g.: C冒充B
拒绝服务DOS(Denial of service):
向接收方恶意泛洪(flood)分组,淹没(swamp)接收方
带宽耗尽
资源耗尽
分布式拒绝服务攻击 (DDOS):
多个源主机协同淹没接收方
e.g., C与另一个远程主机协同对A进行SYN攻击
可访问与可用性
DOS对策:
在到达主机前过滤掉泛洪分组(e.g., SYN),可能好坏一起扔
追溯(traceback)攻击源
SYN cookie[RFC 4987]
身份认证
目标: Bob希望Alice“证明”她的身份
方式一:
Alice声明“I am Alice”
在网络中,Bob“看”不 到 Alice, 因此Trudy可以简单地声明她就是 Alice!
方式二:
Alice在IP分组中声明“I am Alice”, IP分组包含Alice的源IP地址
Trudy可以构造一个分组,“欺骗”为Alice的IP地址
方式三:
Alice声明“I am Alice”的同时,发送她的秘密口令进行“证明
嗅探(sniffing): Trudy嗅探Alice的分组,提取口令
方式四:
Alice声明“I am Alice”的同时,发送 她的加密的秘密口令进行“证明
回放攻击(playback attack): Trudy记录Alice的分组,稍后 “回放”给Bob
方式五:
一次性随机数(nonce): 一个生命期内只用一次的数R。为了证明是“真实的”Alice,Bob向Alice发送一个随机数R,Alice必须返回R,并利用共享密钥进行加密
缺点:
两个实体在网上如何建立共享秘密密钥?
解决方案:
可信任的密钥分发中心(Key Distribution Center-KDC)作为实体间的中介(intermediary)
KDC:一个服务器。每个注册用户(很多用户)共享其与KDC的秘密密钥。Alice和Bob只知道自己与KDC之间的对称密钥,用于分别与KDC进行秘密通信.
KDC如何支持Bob和Alice确定用于彼此通信的共享对称密钥呢
方式六:
利用一次性随机数以及公钥加密技术
中间人攻击(man in the middle attack): Trudy向Bob假扮Alice, 向Alice假扮Bob。
很难检测:
Bob与Alice可以收到彼此发送的所有信息。
问题是Trudy也收到了所有信息!
当Alice获得了Bob的公钥 (通过web网站、 e-mail、磁盘等),她怎么确认这真的是Bob的公钥而不是Trudy的?
解决方案:
可信任的认证中心(Certification Authority-CA)。
认证中心(CA):实现特定实体E与其公钥的绑定。每个E(如人、路由器等)在CA上注册其公钥。E向CA提供“身份证明”。CA创建绑定E及其公钥的证书(certificate)。证书包含由CA签名的E的公钥 – CA声明:“这是E的公钥”
当Alice想要Bob的公钥时:
首先或取Bob的公钥证书(从Bob或者其他地方).
应用CA的公钥,解密证书中签名的公钥,获得Bob 公钥
公钥证书主要内容
信息完整性
报文/消息完整性(message integrity),也称 为报文/消息认证(或报文鉴别),目标:
证明报文确实来自声称的发送方
验证报文在传输过程中没有被篡改。预防报文的时间、顺序被篡改。 预防报文持有期被修改
预防抵赖 发送方否认 接收方否认
简单方案:报文+报文摘要→扩展报文(m, H(m))
缺点:
无法证明报文确实来自声称的发送方
发送方否认消息内容
接收方否认 如果接收方更改了消息内容无法证明
报文认证码MAC(Message Authentication Code): 报文m+认证密钥s+密码散列函数H→扩展报文(m, H(m+s))
缺点:
无法证明报文确实来自声称的发送方
接收方否认 如果接收方更改了消息内容无法证明
解决方案:
假设Alice收到报文m以及签名 KB-(m)
Alice利用Bob的公钥KB+ 解密KB-(m),并检验KB+(KB-(m) ) = m 来证实报文m是Bob签名的。如果KB+(KB-(m) ) = m 成立,则签名m的一定是Bob的私钥。于是Alice可以证实:
Bob签名了m; 没有其他人签名m的可能; Bob签名的是m而不是其他报文m’;
不可抵赖(non-repudiation):Alice可以持有m和签名KB-(m) ,必要时可以提交给法院证明是Bob签名的m
机密性
混合密码-加密
混合密码-解密
如果要实现双向的加解密和身份认证,需要客户端与服务端都有一对公私钥
客户端:
发送数据时使用客户端的私钥来签名对称秘钥
收到数据时使用服务端的公钥来解密对称秘钥
服务端:
发送数据时使用服务端的私钥来签名对称秘钥
收到数据时使用客户端的公钥来解密对称秘钥
行者常至,为者常成!