没有加密的信息在网络上进行传输时,黑客通过监听器很容易捕获到传送的信息后,为了保护信息的安全,我们常用的方法是对信息文件加密,因为加了密的信息文件在网络上传送时,即使被监听器捕获,显示的也是乱码,根本无法读懂乱码的内容。RSA加密算法是第一个既能用于数据文件加密也能用于数字签名的算法,它既能保证了数据安全中的保密性和完整性的要求,又能有效防止监听技术。那么我们今天就来给大家讲一下RSA加密算法在网络监听中是如何应用的?
一、网络监听技术
1、网络监听基本原理
网络监听软件是提供给系统管理员使用的用于监视网络状态、数据流动情况以及网络上传输的信息的管理工具。因特网络接口设置为混杂工作模式( Promigcuous)后,便可以源源不断地监听到同一网上传输的信息。目前嗅操器(Sniffer)就是最常见,也是最重要的技术之一,它可以是硬件产品或软件产品。
2、网络监听的检测方法
目前对网络监听进行检测的方法有:
(1)网络通讯掉包率反常的高;
(2)网络带宽将出现反常;
(3)通常一个Sniffer的记录文件会很快增大并填满文件空间;
(4)一个主机上的Sniffer会将网络接口拦为混杂模式以接收所有敬拼包,只有混杂模式下才能捕获以太网中的所有会话,其他模式只能捕获本机会话;
(5)对于怀疑运行监听程序的机器,用正确的IP地址和错误的物理地址去ping运行监听程序的机器会有响应,通过比较前后该机器性能加以判断。
3、网络监听常用的防范措施
既然网上传送的信息能够被监听到,那么也有一些措施可以防范信息被监听,常用的方法有:
(1)改进交换机;
(2)以交换式集线器代替共享式集线器;
(3)使用VLAN技术;
(4)数据文件加密。
目前对于重要资料,往往采用加密技术,因为使用加密技术后,Sniffer依然可以监视到信息的传送,但显示的是乱码,根本无法看到内容,因而它是防范被监听的最有效的措施。
二、RSA加密算法
密码技术是网络安全最有效的技术之一。一个加密网络,不但可以防止非授权用户的搭线窃听和入网,而且也是对付恶意软件的有效方法之一。
到目前为止,已经公开发表的各种加密算法多达数百种,其中最有影响的公钥加密算法是RSA加密算法,它能抵抗到目前为止已知的所有密码攻击。
1、RSA加密算法的设计
RSA加密算法是第一个既能用于数据文件加密也能用于数字签名的算法,它保证了数据安全中的保密性和完整性要求,因此它为公用网络上信息的加密和鉴别提供了一种基本的方法。它通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册,人们用公钥加密文件发送给个人,个人就可以用私钥解密接受。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。
RSA加密算法的设计思路可分为产生密钥、加密和解密三个流程。
(1)密钥的产生
a、确定密钥的宽度。
b、随机选择两个不同的素数p和q,它们的宽度是密钥宽度的二分之一。
c、计算出p和q的乘积n。
d、计算出n的欧拉函数Φ(n)=(p.1)*(q-1),Φ(n)定义为不超过n并与n互素的数的一数。
e、在2和Φ(n)之间随机选择一个数e,e必须和Φ(n)互质,整数e用做加密密钥。
f、从公式de≡1 modΦ(n)中求出解密密钥d。
g、得公钥e和n,私钥d。只公开公钥,不公开私钥。
(2)加密与解密
将明文P(假设P是一个小于n的整数)加密为密文C的过程是加密流程,计算方法为:
将密文C解密为明文P过程是解密流程,计算方法为:
然而只根据n和e(不是p和q)要计算出d是不可能的。因此,任何人都可对明文文件加密,但只有授权用户(知道d)才可对密文进行解密。
2、RSA加密算法的实现
根据RSA加密算法各流程用C++语言编程实现“RSA加密算法加密和解密系统”,系统的运行界面如图1所示。
a、RSA加密算法加密解密流程如下
(1)密钥产生。点击“密钥产生”按钮,在公钥、私钥、模数所示的编辑框内将出现随机产生的密钥,如图2所示。
也可以点击“导出密钥”按钮保存本次产生的密钥,保存密钥的文件名为“密钥”,如图3所示;
点击“导入密钥”按钮来使用以前产生的密钥,操作同导出密钥操作相同。
b、加密
点击“加密”铵钮,在弹出的幼口密’对话框中选择待加密的明文,在此例中的明文的文件名是“原来的明文”,再选择保存密文的路径,点击“OK”即可生成密文,其操作如图4所示。
c、解密
确定私钥、公钥、模数和加密时的相对应,或者直接点击“导入密钥”,再点击“解密”按钮,在弹出的解密对话框中输入需要解密的密文,再选择保明文的路径,点击“OK”即可生成明文。其操作如图5所示。
依照这个过程操作,产生的4个文件内容截图分别如图6所示,加密前的明文(即将要传送给对方的资料)内容为:北京欢迎您,加密后密文(在网络上传送给对方的文件)是乱码。
三、RSA加密算法在网络监听中的应用
RSA加密算法在监听中的可靠应用,可从它的安全性方面实现。
首先在理论上可通过如下描述来说明选取该算法进行加密是安全的。假设资料要由A机器传至曰机器,那么由B机器随机产生私钥d,它自始至终只留在B机器中。然后由私钥d计算出公钥
e,公钥e的特性是几乎不可能反演算出私钥d。B机器把公钥e传送给A机器,A机器用公钥e将资料编码,通过网络把编码过的资料传送给B机器,曰机器再用私钥d将资料解码。在整个资料的传送过程中,B机器负责产生公钥e和私钥d,并把公钥e传送给A机器,A机器用用公钥e编码,再把资料传送给曰机器。如果网络中存在监听器,只能监听到公钥e和编码后的资料,而这个编码后的资料在没有私钥的情况下是无法解码的。因为要解码的话,必须想办法得到私钥d,而要得到d必须先知道p和q(de-l mod(p-1)*(q-1))),所以必须对n作质因数分解(n=pq),而p、q的选取是很困难的。
其次在系统的应用中说明RSA加密算法是安全,我们把R瓢算法用编程语言实现为“RSA加密算法加密解密系统”,假设资料要由A机器传至B机器,那么在两台机器中均安装该系统。A机器只要操作图4中的“密钥产生",“导出密钥”,“加密”然后把产生的密钥和密文传送给B机器。B机器把密钥导入,就能看到A机器所发内容的全文,为了保证信息的绝对安全,系统所产生的公共模数n不能共享,p和q选取尽可能大;另外加强对密钥的管理,保证一个密钥只用在一条信息中。
无论从理论分析还是实验操作中,RSA加密算法的安全性都是比较好的,用它加密重要信息文件,在网络上进行传送时能保证信息的安全,有效地防止被监听。
小知识之Sniffer
Sniffer,中文可以翻译为嗅探器,是一种基于被动侦听原理的网络分析方式。使用这种技术方式,可以监视网络的状态、数据流动情况以及网络上传输的信息。