6网络安全基本原理

2018-03-02  本文已影响0人  龟龟51

6.1网络安全基础

6.1.1网络安全状况

6.1.2网络安全基本概念

什么是网络安全?

v网络安全是指网络系统的硬件、软件及其系统中的数据受到保护, 不因偶然的或者恶意的原因而遭受到破坏、更改、泄露, 系统连续可靠正常地运行, 网络服务不中断

网络安全基本属性

机密性(confidentiality):只有发送方与预定接收方能够理解报文内容

§ 发送方加密报文

§ 接收方解密报文

身份认证(authentication):发送方与接收方希望确认彼此的真实身份

信息完整性(message integrity):发送方与接收方希望确保信息未被篡改(传输途中或者后期),发生篡改一定会被检测到

可访问与可用性(access and availability):网络服务必须对被授权用户可访问与可用

网络安全的基本特征

v ■相对性

§ 只有相对的安全,没有绝对的安全

v ■时效性

§ 新的漏洞与攻击方法不断发现

v ■相关性

§ 新配置、新系统组件可能会引入新的安全问题

v ■不确定性

§ 攻击时间、攻击者、攻击目标和攻击发起的地点都具有不确定性

v ■复杂性

§ 网络安全是一项系统工程,需要技术的和非技术的手段

v ■重要性

§ 网络安全关乎国家、政府、企业、个人的安全

网络安全

v ■网络安全研究领域:

§ 入侵者(bad guys)如何攻击计算机网络

§ 如何防护网络对抗攻击

§ 如何设计网络体系结构免疫(immune)攻击

v ■Internet最初设计几乎没考虑安全性

§ 最初愿景: “一组彼此信任的互助用户连接到一个透明网络” 进行信息共享 J Internet协议设计者扮演了“追赶者”(catchup)角色

§ 网络安全需要在网络各个层次考虑!

6.1.3网络安全拟人模型

6.2网络安全威胁

破坏手段

§ 窃听(eavesdrop):窃听信息

§ 插入(insert):主动在连接中插入信息

§ 假冒(impersonation):可以通过伪造(spoof)分组中的源地址(或者分组的任意其他字段)

§ 劫持(hijacking):通过移除/取代发送发或者接收方“接管” (take over)连接

§ 拒绝服务DoS(denial of service):阻止服务器为其他用户提供服务(e.g.,通过过载资源)

Internet安全威胁

映射(Mapping):

§ 发起攻击前: “探路” (case the joint) – 找出网络上在运行什么服务

§ 利用ping命令确定网络上主机的地址

§ 端口扫描(Port-scanning): 依次尝试与每个端口建立TCP连接

§nmap (http://www.insecure.org/nmap/),广为使用的国外端口扫描工具之一

对策(Countermeasures)?

§ 记录到达的网络流量

§ 分析、识别出可疑活动( IP地址和端口被依次扫描)

分组“嗅探”(sniffing):

§ 广播介质(共享式以太网,无线网络)

§ 混杂(promiscuous)模式网络接口可以接收/记录所有经过的分组/帧

§ 可以读到所有未加密数据(e.g., 包括口令! )

分组嗅探:对策

§ 组织中的所有主机都运行软件,周期性监测网络接口是否工作在混杂模式

§ 每段广播介质连接一台主机(如交换式以太网)

IP欺骗(Spoofing):

§ 直接由应用生成“原始”IP分组,可以设置分组的源IP地址字段为任意值

§ 接收方无法判断源地址是否被欺骗

§e.g.: C冒充B

IP欺骗对策: 入口过滤(ingress filtering)

§ 路由器不转发源IP地址无效的IP分组 (e.g., 源IP地址不属于所连接网络)

§ 很有效!但是不能强制所有网络都执行入口过滤

拒绝服务DOS(Denial of service):

§ 向接收方恶意泛洪(flood)分组,淹没(swamp)接收方

• 带宽耗尽

• 资源耗尽

§ 分布式拒绝服务攻击(DDOS): 多个源主机协同淹没接收方

§e.g., C与另一个远程主机协同对A进行SYN攻击

DOS:对策

§ 在到达主机前过滤掉泛洪分组(e.g., SYN)

• 可能好坏一起扔

§ 追溯(traceback)攻击源

§SYN cookie[RFC 4987]

6.3密码学基础

破解加密方法

v 唯密文攻击(cipher-textonly attack):入侵者(如Trudy)只截获到密文,基于对密文的分析进行破解

v ■两条途径:

§ 暴力破解(brute force):尝试所有可能的密钥

§ 统计分析

v 已知明文攻击(knownplaintext attack):入侵者已知(部分)明文以及与之匹配的密文

§e.g., 在单码替代密码(monoalphabetic cipher)中,入侵者已确认字母,l,i,c,e,b,o的替换关系

v 选择明文攻击(chosenplaintext attack):入侵者可以获取针对选择的明文的密文

6.3.2传统加密方法

1.替代密码(substitution cipher):利用一种东西替代另一种东西

§ ■凯撒密码(Casesar cipher):一个字母替代另一个字母

• 将一个字母利用字母表中该字母后面的第k个字母替代

• 如k=3,“bob. i love you. alice” →“ere, l oryh brx. dolfh”

§ ■多码(字母)替代加密(polyalphabetic encryption):使用多个单码替代密码,明文中不同位置的字母使用不同的单码替代密码

2. 换位(transpositions)密码: 重新排列明文中的字母§

■置换法(permutation method)

• 将明文划分为固定长度(d)的组,每个组内的字母按置换规则(f)变换位置

• 密钥:(d, f)

§ ■列置换加密

• 将明文按行组成一个矩阵,然后按给定列顺序输出得到密文

§ ■列置换加密的密钥包括列数和输出顺序

• 可以用一个单词来表示

• 单词长度表示列数,单词中的字母顺序表示输出顺序

6.3.3现代加密技术

v■现代加密技术的基本操作包括经典的替代和置换

§ 不再针对一个个字母,而是针对二进制位操作

v■现代加密技术主要分为:

§ 对称密钥加密

§ 非对称密钥加密(公开密钥加密)

v■对称密钥加密:

§ 流密码(stream ciphers)

§ 分组密码,也称块密码(block ciphers)

流密码

v■基本思想:

§ 首先利用密钥K产生一个密钥流: z=z0 z1 z2…

§ 然后使用如下规则对明文串x=x0x1x2…加密:y=y0y1y2…=Ez0(x0)Ez1(x1)Ez2(x2)…

v■解密时,使用相同的密钥流与密文做运算(XOR)

流密码工作流程

分组密码

v■将明文序列划分成长为m的明文组

v■各明文组在长为i的密钥组的控制下变换成长度为n的密文组

v■通常取n=m

§n>m 扩展分组密码

§n

v■典型分组密码结构:Feistel分组密码结构

§ 在设计密码体制的过程中,Shannon提出了能够破坏对密码系统进行各种统分析攻击的两个基本操作:扩散(diffusion)和混淆(confusion)

§ 基于1949年Shannon提出的交替使用替代和置换方式构造密码体制

Feistel分组密码结构

v ■基于“扩散” 和“混乱” 的思考,Feistel提出通过替代和置换交替操作方式构造密码

v ■Feistel是一种设计原则,并非一个特殊的密码

Feistel结构的分组密码安全性取决于:

v ■分组长度

§ 分组长度越大,安全性越高,加密速度越慢,效率越低

§ 目前常用的分组加密算法的分组长度取64位

v ■子密钥的大小

§ 子密钥长度增加,安全性提高,加密速度降低

§ 设计分组密码时需要在安全性和加密效率之间进行平衡

v ■循环次数

§ 循环越多,安全性越高,加密效率越低

v ■子密钥产生算法

§ 在初始密钥给定的情况下, 产生子密钥的算法越复杂,安全性越高

v ■轮函数

§ 一般情况下,轮函数越复杂,加密算法的安全性越高

6.3.4数据加密标准: DES

DES: Data Encryption Standard

v ■IBM公司研制

v ■1972年,美国国家标准局NBS (National Bureau of Standards)开始实施计算机数据保护标准的开发计划。

v ■1973年5月13日, NBS征集在传输和存贮数据中保护计算机数据的密码算法。

v ■1975年3月17日,首次公布DES算法描述。

v ■1977年1月15日,正式批准为加密标准(FIPS-46),当年7月1日正式生效。

v ■1994年1月的评估后决定1998年12月以后不再将DES作为数据加密标准

v■DES是16轮的Feistel结构密码

v■DES是一个包含16个阶段的“替代--置换”的分组加密算法

v■DES的分组长度是64位

§64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列

v■DES使用56位的密钥

v■DES的每一轮使用48位的子密钥

§ 每个子密钥是56位密钥的子集构成

初始置换IP(Initial Permutation)

DES的安全性

v ■DES的56位密钥可能太小

§1998年7月, EFE(电子前哨基金会)宣布攻破了DES算法,他们使用的是不到25万美元的特殊的“DES破译机”,这种攻击只需要不到3天的时间。

v ■DES的迭代次数可能太少

§16次恰巧能抵抗差分分析

v ■S盒(即替代函数S)中可能有不安全因素

v ■DES的一些关键部分不应当保密

v ■DES存在弱密钥和半弱密钥

v ■针对DES的攻击方法:

§ 差分分析方法(Difference Analysis Method)

§ 线性分析方法(Linear Analysis Method)

§ 旁路攻击法(Side-Channel Attack)

DES的改进

v ■密码分组链接(CBC-cipher block chaining)

§ 加密算法的输入是当前明文分组和前一次密文分组的异或

§ 重复的明文分组不会在密文中暴露出重复关系

高级加密标准AES

v ■ES: Advanced Encryption Standard

v ■NIST(美国国家标准技术研究所)对称密钥加密标准, 取代DES(2001年12月)

v ■1997年NIST宣布征集AES算法,要求:

§ 可公开加密方法

§ 分组加密,分组长度为128位

§ 至少像3DES一样安全

§ 更加高效、快

§ 可提供128/192/256位密钥

v ■比利时学者Joan Daemen和Vincent Rijmen提出的Rijndael加密算法最终被选为AES算法。

v ■NIST在2001年12月正式颁布了基于Rijndael算法AES标准

Rijndael加密算法简介

v ■不属于Feistel结构

v ■加密、解密相似但不完全对称

v ■支持128/192/256数据块大小

v ■支持128/192/256密钥长度

v ■有较好的数学理论作为基础

v ■结构简单、速度快

v ■Rijndael算法特点:

§ 分组长度和密钥长度均可变(128/192/256bits)

§ 循环次数允许在一定范围内根据安全要求进行修正

§ 汇聚了安全、效率、易用、灵活等优点

§ 抗线性攻击和抗差分攻击的能力大大增强

§ 如果1秒暴力破解DES,则需要149万亿年破解AES

6.3.5公钥密码学

对称密钥加密:

v 需要发送方与接收方知道共享的秘密密钥

公钥加密算法

RSA:预备知识

v报文/信息(message): 仅仅是一个比特模式(bit pattern)

v每个比特模式可以表示为一个唯一的整数

v因此,加密一个报文就等价于加密一个数

例如:

vm= 10010001,可以唯一地表示为十进制数145

v为了加密m,我们可以加密对应的数(145),得到一个新的数(即密文)

RSA为什么安全?

v■RSA的安全性建立在“大数分解和素性检测” 这个数论难题的基础上

§ 既将两个大素数相乘在计算上容易实现,而将该乘积分解的计算量相当大

v■假设已知Bob的公钥(n,e),那么有多大难度确定d,即私钥(n,d)?

v■本质上需要在不知道两个因子p和q的前提下,找出n的因子

§ 分解一个大数是很困难的!

RSA的实际应用

v■RSA的幂运算强度很大

v■DES至少比RSA快100倍

v■实际应用中:

§ 利用公钥加密建立安全连接,然后建立第二个密钥-对称会话密钥,用于加密数据

会话密钥(session key, KS)

v ■Bob与Alice利用RSA交换对称会话密钥KS

v ■一旦双方确认KS,则利用会话密钥加密/解密会话数据

6.5消息完整性和数字签名

6.5.1报文完整性

v■报文/消息完整性(message integrity),也称为报文/消息认证(或报文鉴别), 目标:

§ 证明报文确实来自声称的发送方

§ 验证报文在传输过程中没有被篡改

§ 预防报文的时间、顺序被篡改

§ 预防报文持有期被修改

§ 预防抵赖

• 发送方否认

• 接收方否认

密码散列函数

■密码散列函数(Cryptographic Hash Function): H(m)

§ 散列算法公开

§H(m)能够快速计算

§ 对任意长度报文进行多对一映射, 均产生定长输出

§ 对于任意报文无法预知其散列值

§ 不同报文不能产生相同的散列值

§ 单向性: 无法根据散列值倒推出报文

• 对于给定散列值h, 无法计算找到满足h = H(m)的报文m

§ 抗弱碰撞性(Weak Collision Resistence-WCR)

• 对于给定报文x,计算上不可能找到y且y≠x,使得H(x)=H(y)

§ 抗强碰撞性(Strong Collision Resistence-SCR)

• 在计算上, 不可能找到任意两个不同报文x和y(x≠y),使得H(x)=H(y)

散列函数算法

v■MD5: 被广泛应用的散列函数(RFC 1321)

§ 通过4个步骤,对任意长度的报文输入,计算输出128位的散列值

§MD5不是足够安全

•1996年, Dobbertin找到了两个不同的512-bit块,在MD5计算下产生了相同的散列值

v■SHA-1(Secure Hash Algorithm): 另一个正在使用的散列算法

§US标准 [NIST, FIPS PUB 180-1]

§SHA-1要求输入消息长度<264

§SHA-1的散列值为160位

§ 速度慢于MD5,安全性优于MD5

报文摘要(Message digests)

对报文m应用散列函数H,得到一个固定长度的散列码,称为报文摘要(message digest), 记为H(m)

ü 可以作为报文m的数字指纹(fingerprint)。

6.5.2数字签名

Q:如何解决下列与报文完整性相关的问题?

§ 否认:发送方不承认自己发送过某一报文

§ 伪造:接收方自己伪造一份报文,并声称来自发送方

§ 冒充:某个用户冒充另一个用户接收或发送报文

§ 篡改:接收方对收到的信息进行篡改

A:数字签名(Digital signatures) !

§ 数字签名技术是实现安全电子交易的核心技术之一

§ 可验证性(verifiable)

§ 不可伪造性(unforgeable)

§ 不可抵赖性(non-repudiation)

对报文m的简单数字签名:

v 报文加密技术是数字签名的基础

vBob通过利用其私钥K-B(m) 对m进行加密,创建签名报文, K-B(m)

6.6密钥分发与公钥证书

6.6.1密钥分发中心(KDC)

密钥分发中心(KDC)

v ■Alice与Bob需要共享对称密钥.

v ■KDC: 一个服务器

§ 每个注册用户(很多用户)共享其与KDC的秘密密钥

v ■Alice和Bob只知道自己与KDC之间的对称密钥,用于分别与KDC进行秘密通信

6.6.2认证中心(CA)

v■认证中心(CA): 实现特定实体E与其公钥的绑定

v■每个E(如人、路由器等)在CA上注册其公钥.

§E向CA提供“身份证明” .

§CA创建绑定E及其公钥的证书(certificate).

§ 证书包含由CA签名的E的公钥 – CA声明: “这是E的公钥”

�M5}���

上一篇下一篇

猜你喜欢

热点阅读