面向网络应用层安全的分析与设计

2007-12-26 00:30谷铮
电子技术与软件工程 2016年22期

谷铮

摘 要

网络已经普及,在给整个社会带来巨大变革的同时,网络安全形势日益复杂和严峻,通过对网络的攻击能够获取到有价值的信息或者伪造信息进而实施欺骗能够造成重大信息泄露和损失,并且通过网络攻击造成网络瘫痪,这使得我们不禁去思考怎样才能提高网络安全性,避免造成重大损失。

【关键词】网络应用层 安全 HTTPS攻击

随着越来越多的人开始使用网络,网络的安全可靠就变得尤为重要,随着网络基础协议的逐渐完善,网络攻击向应用层发展的趋势越来越明显,诸如应用层的DDOS攻击、HTTPS攻击以及DNS劫持发生的次数越来越多,特别是HTTPS由于已经被电子商务、互联网金融、政务系统等广泛使用,如果遭受攻击造成的损失和影响非常大,面对这些网络应用层安全事件,应该仔细分析目前的形势,探究发生这些事件的缘由,据此提出自己的建议。

1 应用层安全分析

网络OSI模型分七层,通过示意图我们可以看到应用层位于最顶端,目前仍然活跃并被广泛使用的应用层协议主要有:HTTP、HTTPS、SMTP、POP3、DNS、DHCP、NTP等,常见攻击主要利用http/https协议以及DNS协议进行。下面将就目前逐渐被广泛应用的https进行一些分析与研究。

HTTPS原理:

1.1 内容加密

加密算法一般分为两种,对称加密和非对称加密。对称加密就是指加密和解密使用的是相同的密钥。而非对称加密是指加密和解密使用了不同的密钥。如图1、图2所示。

对称加密的加密强度是挺高的,但是问题在于无法安全保存生成的密钥。

非对称加密则能够很好地解决这个问题。浏览器和服务器每次新建会话时都使用非对称密钥交换算法生成对称密钥,使用这些对称密钥完成应用数据的加解密和验证,会话在内存中生成密钥,并且每个对话的密钥也是不相同的,这在很大程度上避免了被窃取的问题,但是非对称加密在提高安全性的同时也会对https连接速度产生影响,下面将会探究一下非对称加密算法,以便为下一步分析安全风险做准备

1.1.1 非对称密钥交换

非对称加密出现主要是为了解决对称密钥保存的安全性不足问题,密钥交换算法本身非常复杂,密钥交换过程涉及到随机数生成,模指数运算,空白补齐,加密,签名等操作。常见的密钥交换算法有RSA,ECDHE,DH,DHE等算法。它们的特性如下:

RSA:算法实现简单,诞生于1977年,历史悠久,经过了长时间的破解测试,安全性高。缺点就是需要比较大的素数(目前常用的是2048位)来保证安全强度,很消耗CPU运算资源。RSA是目前唯一一个既能用于密钥交换又能用于证书签名的算法。

DH:diffie-hellman密钥交换算法,诞生时间比较早(1977年),但是1999年才公开。缺点是比较消耗CPU性能。

ECDHE:使用椭圆曲线(ECC)的DH算法,优点是能用较小的素数(256位)实现RSA相同的安全等级。缺点是算法实现复杂,用于密钥交换的历史不长,没有经过长时间的安全攻击测试。

ECDH:不支持PFS,安全性低,同时无法实现false start。

建议优先使用RSA加密,这也是目前最普及的非对称加密算法,应用十分广泛

非对称密钥交换算法是整个HTTPS得以安全的基石,充分理解非对称密钥交换算法是理解HTTPS协议和功能的非常关键的一步,下面重点探究一下RSA在密钥交换过程中的应用。

1.1.1.1 RSA密钥协商

(1)RSA算法介绍。RSA算法的安全性是建立在乘法不可逆或者大数因子很难分解的基础上。RSA的推导和实现涉及到了欧拉函数和费马定理及模反元素的概念。从目前来看,RSA也是HTTPS体系中最重要的算法,没有之一。RSA的计算步骤如下:

1.随机挑选两个质数p, q,假设p = 13, q = 19。 n = p * q = 13 * 19 = 247。

2.?(n)表示与整数n互质数的个数。如果n 等于两个质数的积,则?(n)=(p-1)*(q-1) 挑选一个数e,满足1< e