RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

沒有加密的信息在網(wǎng)絡(luò)上進(jìn)行傳輸時,黑客通過監(jiān)聽器很容易捕獲到傳送的信息后,為了保護(hù)信息的安全,我們常用的方法是對信息文件加密,因為加了密的信息文件在網(wǎng)絡(luò)上傳送時,即使被監(jiān)聽器捕獲,顯示的也是亂碼,根本無法讀懂亂碼的內(nèi)容。RSA加密算法是第一個既能用于數(shù)據(jù)文件加密也能用于數(shù)字簽名的算法,它既能保證了數(shù)據(jù)安全中的保密性和完整性的要求,又能有效防止監(jiān)聽技術(shù)。那么我們今天就來給大家講一下RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中是如何應(yīng)用的?

一、網(wǎng)絡(luò)監(jiān)聽技術(shù)

1、網(wǎng)絡(luò)監(jiān)聽基本原理

網(wǎng)絡(luò)監(jiān)聽軟件是提供給系統(tǒng)管理員使用的用于監(jiān)視網(wǎng)絡(luò)狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡(luò)上傳輸?shù)男畔⒌墓芾砉ぞ摺R蛱鼐W(wǎng)絡(luò)接口設(shè)置為混雜工作模式( Promigcuous)后,便可以源源不斷地監(jiān)聽到同一網(wǎng)上傳輸?shù)男畔?。目前嗅操?Sniffer)就是最常見,也是最重要的技術(shù)之一,它可以是硬件產(chǎn)品或軟件產(chǎn)品。

2、網(wǎng)絡(luò)監(jiān)聽的檢測方法

目前對網(wǎng)絡(luò)監(jiān)聽進(jìn)行檢測的方法有:

(1)網(wǎng)絡(luò)通訊掉包率反常的高;

(2)網(wǎng)絡(luò)帶寬將出現(xiàn)反常;

(3)通常一個Sniffer的記錄文件會很快增大并填滿文件空間;

(4)一個主機(jī)上的Sniffer會將網(wǎng)絡(luò)接口攔為混雜模式以接收所有敬拼包,只有混雜模式下才能捕獲以太網(wǎng)中的所有會話,其他模式只能捕獲本機(jī)會話;

(5)對于懷疑運(yùn)行監(jiān)聽程序的機(jī)器,用正確的IP地址和錯誤的物理地址去ping運(yùn)行監(jiān)聽程序的機(jī)器會有響應(yīng),通過比較前后該機(jī)器性能加以判斷。

3、網(wǎng)絡(luò)監(jiān)聽常用的防范措施

既然網(wǎng)上傳送的信息能夠被監(jiān)聽到,那么也有一些措施可以防范信息被監(jiān)聽,常用的方法有:

(1)改進(jìn)交換機(jī);

(2)以交換式集線器代替共享式集線器;

(3)使用VLAN技術(shù);

(4)數(shù)據(jù)文件加密。

目前對于重要資料,往往采用加密技術(shù),因為使用加密技術(shù)后,Sniffer依然可以監(jiān)視到信息的傳送,但顯示的是亂碼,根本無法看到內(nèi)容,因而它是防范被監(jiān)聽的最有效的措施。

二、RSA加密算法

密碼技術(shù)是網(wǎng)絡(luò)安全最有效的技術(shù)之一。一個加密網(wǎng)絡(luò),不但可以防止非授權(quán)用戶的搭線竊聽和入網(wǎng),而且也是對付惡意軟件的有效方法之一。

到目前為止,已經(jīng)公開發(fā)表的各種加密算法多達(dá)數(shù)百種,其中最有影響的公鑰加密算法是RSA加密算法,它能抵抗到目前為止已知的所有密碼攻擊。

1、RSA加密算法的設(shè)計

RSA加密算法是第一個既能用于數(shù)據(jù)文件加密也能用于數(shù)字簽名的算法,它保證了數(shù)據(jù)安全中的保密性和完整性要求,因此它為公用網(wǎng)絡(luò)上信息的加密和鑒別提供了一種基本的方法。它通常是先生成一對RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網(wǎng)絡(luò)服務(wù)器中注冊,人們用公鑰加密文件發(fā)送給個人,個人就可以用私鑰解密接受。為提高保密強(qiáng)度,RSA密鑰至少為500位長,一般推薦使用1024位。

RSA加密算法的設(shè)計思路可分為產(chǎn)生密鑰、加密和解密三個流程。

(1)密鑰的產(chǎn)生

a、確定密鑰的寬度。

b、隨機(jī)選擇兩個不同的素數(shù)p和q,它們的寬度是密鑰寬度的二分之一。

c、計算出p和q的乘積n。

d、計算出n的歐拉函數(shù)Φ(n)=(p.1)*(q-1),Φ(n)定義為不超過n并與n互素的數(shù)的一數(shù)。

e、在2和Φ(n)之間隨機(jī)選擇一個數(shù)e,e必須和Φ(n)互質(zhì),整數(shù)e用做加密密鑰。

f、從公式de≡1 modΦ(n)中求出解密密鑰d。

g、得公鑰e和n,私鑰d。只公開公鑰,不公開私鑰。

(2)加密與解密

將明文P(假設(shè)P是一個小于n的整數(shù))加密為密文C的過程是加密流程,計算方法為:

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

將密文C解密為明文P過程是解密流程,計算方法為:

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

然而只根據(jù)n和e(不是p和q)要計算出d是不可能的。因此,任何人都可對明文文件加密,但只有授權(quán)用戶(知道d)才可對密文進(jìn)行解密。

2、RSA加密算法的實現(xiàn)

根據(jù)RSA加密算法各流程用C++語言編程實現(xiàn)“RSA加密算法加密和解密系統(tǒng)”,系統(tǒng)的運(yùn)行界面如圖1所示。

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

a、RSA加密算法加密解密流程如下

(1)密鑰產(chǎn)生。點擊“密鑰產(chǎn)生”按鈕,在公鑰、私鑰、模數(shù)所示的編輯框內(nèi)將出現(xiàn)隨機(jī)產(chǎn)生的密鑰,如圖2所示。

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

也可以點擊“導(dǎo)出密鑰”按鈕保存本次產(chǎn)生的密鑰,保存密鑰的文件名為“密鑰”,如圖3所示;

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

點擊“導(dǎo)入密鑰”按鈕來使用以前產(chǎn)生的密鑰,操作同導(dǎo)出密鑰操作相同。

b、加密

點擊“加密”銨鈕,在彈出的幼口密’對話框中選擇待加密的明文,在此例中的明文的文件名是“原來的明文”,再選擇保存密文的路徑,點擊“OK”即可生成密文,其操作如圖4所示。

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

c、解密

確定私鑰、公鑰、模數(shù)和加密時的相對應(yīng),或者直接點擊“導(dǎo)入密鑰”,再點擊“解密”按鈕,在彈出的解密對話框中輸入需要解密的密文,再選擇保明文的路徑,點擊“OK”即可生成明文。其操作如圖5所示。

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

依照這個過程操作,產(chǎn)生的4個文件內(nèi)容截圖分別如圖6所示,加密前的明文(即將要傳送給對方的資料)內(nèi)容為:北京歡迎您,加密后密文(在網(wǎng)絡(luò)上傳送給對方的文件)是亂碼。

RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

三、RSA加密算法在網(wǎng)絡(luò)監(jiān)聽中的應(yīng)用

RSA加密算法在監(jiān)聽中的可靠應(yīng)用,可從它的安全性方面實現(xiàn)。

首先在理論上可通過如下描述來說明選取該算法進(jìn)行加密是安全的。假設(shè)資料要由A機(jī)器傳至曰機(jī)器,那么由B機(jī)器隨機(jī)產(chǎn)生私鑰d,它自始至終只留在B機(jī)器中。然后由私鑰d計算出公鑰
e,公鑰e的特性是幾乎不可能反演算出私鑰d。B機(jī)器把公鑰e傳送給A機(jī)器,A機(jī)器用公鑰e將資料編碼,通過網(wǎng)絡(luò)把編碼過的資料傳送給B機(jī)器,曰機(jī)器再用私鑰d將資料解碼。在整個資料的傳送過程中,B機(jī)器負(fù)責(zé)產(chǎn)生公鑰e和私鑰d,并把公鑰e傳送給A機(jī)器,A機(jī)器用用公鑰e編碼,再把資料傳送給曰機(jī)器。如果網(wǎng)絡(luò)中存在監(jiān)聽器,只能監(jiān)聽到公鑰e和編碼后的資料,而這個編碼后的資料在沒有私鑰的情況下是無法解碼的。因為要解碼的話,必須想辦法得到私鑰d,而要得到d必須先知道p和q(de-l mod(p-1)*(q-1))),所以必須對n作質(zhì)因數(shù)分解(n=pq),而p、q的選取是很困難的。

其次在系統(tǒng)的應(yīng)用中說明RSA加密算法是安全,我們把R瓢算法用編程語言實現(xiàn)為“RSA加密算法加密解密系統(tǒng)”,假設(shè)資料要由A機(jī)器傳至B機(jī)器,那么在兩臺機(jī)器中均安裝該系統(tǒng)。A機(jī)器只要操作圖4中的“密鑰產(chǎn)生",“導(dǎo)出密鑰”,“加密”然后把產(chǎn)生的密鑰和密文傳送給B機(jī)器。B機(jī)器把密鑰導(dǎo)入,就能看到A機(jī)器所發(fā)內(nèi)容的全文,為了保證信息的絕對安全,系統(tǒng)所產(chǎn)生的公共模數(shù)n不能共享,p和q選取盡可能大;另外加強(qiáng)對密鑰的管理,保證一個密鑰只用在一條信息中。

無論從理論分析還是實驗操作中,RSA加密算法的安全性都是比較好的,用它加密重要信息文件,在網(wǎng)絡(luò)上進(jìn)行傳送時能保證信息的安全,有效地防止被監(jiān)聽。

小知識之Sniffer

Sniffer,中文可以翻譯為嗅探器,是一種基于被動偵聽原理的網(wǎng)絡(luò)分析方式。使用這種技術(shù)方式,可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡(luò)上傳輸?shù)男畔ⅰ?/p>