徐 輝
(淮北職業(yè)技術學院 計算機科學技術系,安徽 淮北 235000)
互聯(lián)網技術高速發(fā)展,遺傳算法的使用和人工神經網絡的發(fā)展,使得各行各業(yè)對于網絡辦公和網絡商業(yè)平臺的依賴性越來越高。這種依賴性產生了兩個方向的發(fā)展,一個方向就是依托于網絡辦公和網絡商業(yè)平臺的便利性,進一步提高經濟效率和經濟發(fā)展,另外一個方向網絡辦公和網絡商業(yè)平臺的廣泛使用,產生了大量的網絡用戶,其中大多數(shù)的網絡用戶是缺乏相關的專業(yè)知識,TCP/IP協(xié)議由于其本身協(xié)議的脆弱性[1]和不安全性,造成可見的大量非安全通信在網絡上被使用,其結果就是很多的數(shù)據(jù)被非授權訪問、被惡意篡改,給用戶帶來了巨大的經濟損失。
為了保證數(shù)據(jù)的安全性,在互聯(lián)網發(fā)展的早期,針對互聯(lián)網開放性的特點,人們?yōu)榱四苤贫ǔ鰜硪惶妆阌谑褂玫陌踩珮藴?,采用將安全保障和安全功能分離的方法,制定了一系列十分詳細和復雜的條款,并在互聯(lián)網發(fā)展的過程中,不斷的修改這些條款,最終形成了具有實際操作意義開放互聯(lián)的安全體系結構框架。安全體系框架目前基本上包括了:身份認證、訪問控制、數(shù)據(jù)加密、數(shù)據(jù)安全性、防止抵賴。通過安全體系框架包含的內容可以看出數(shù)據(jù)加密技術在其起到了決定性的作用,為了保證在現(xiàn)有互聯(lián)網環(huán)境下信息數(shù)據(jù)傳輸交換的安全性,密碼技術得到了長足的發(fā)展,通過密碼技術可以很好的保證信息交換的安全性;還可以保證數(shù)據(jù)的機密性和完整性以及不可否認性,可以發(fā)現(xiàn),密碼技術正是現(xiàn)在電子商務和電子商業(yè)平臺所必須的。密碼技術大致可以分為以下三類:單向散列函數(shù)、對稱密鑰算法和非對稱密鑰算法。由于單向散列函數(shù)這種加密方式不需要密鑰,但是加密的過程中計算量大,對于目前的網絡來說,只能用來檢驗網絡數(shù)據(jù)是否被篡改,性價比比較低,只在一些短數(shù)據(jù)時被偶爾用到。另外兩種加密算法是對稱密鑰算法和非對稱密鑰算法,分別以DES[1]算法和RSA[2]算法為典型。下面簡單分析這兩種算法在FREEBSD系統(tǒng)中的應用。
對稱密鑰算法的安全性,由于經過16輪的替換和換位的迭代運算,使得想要獲得密鑰,只能采用時間消耗量最大的窮舉法,對于長度為112位甚至是168位的密鑰,非授權用戶基本沒有任何可能獲得密鑰。對稱加密算法的安全性,F(xiàn)REEBSD系統(tǒng)中的用戶口令就采用這種算法進行加密。對稱加密算法實現(xiàn)簡單,計算量小,密鑰破解困難,但是其在面對龐大的網絡通信時,基于用戶基數(shù)的增加,對稱加密算法的密鑰數(shù)量也急速的增加,對于密鑰的管理是個艱難的工作。RSA算法被公認為是目前理論和實際應用中最為成熟和完善的一種公鑰密碼體制[3],非對稱加密算法的安全性基于大數(shù)分解的難度,用一對大素數(shù)的函數(shù)作為公鑰和私鑰。所以只要我們使用的大數(shù)足夠大,那么我們的密鑰安全性就會增強。非對稱加密算法可以很好的實現(xiàn)電子商務中的數(shù)字簽名,使其有了更多的使用空間。FREEBSD在應用中既可以使用對稱密鑰算法也可以使用非對稱密鑰算法,根據(jù)使用的場合和用途不同,可以依據(jù)這兩種加密算法的特點來挑選適合當前通信的加密算法。
FREEBSD[4]是一種和Linux非常類似的操作系統(tǒng),因其很多的命令行和操作方式和Linux非常相近,某些人認為FREEBSD就是Linux操作系統(tǒng)的一個子版本,其實FREEBSD來源于386BSD,因為和Linux的知識產權版本問題,從而衍生出完全獨立的操作系統(tǒng),Linux 一般使用GPL授權,根據(jù)規(guī)則使用GPL授權,產生的任何源代碼的衍生物也必須是開源的。 并且Linux只是指操作系統(tǒng)的內核,除了內核以外的操作系統(tǒng)所包括的一些應用程序功能則是相應的發(fā)行版本商提供的,由此可知,Linux版本是多樣的,不同版本的Linux采用不同RPM安裝包管理器,RPM可以處理安裝的應用程序和操作系統(tǒng)的依賴關系,但是PRM不提供自動下載功能,并且從源碼中編譯得到的程序PRM是無法識別的。FREEBSD包含了整個的操作系統(tǒng)和完整的應用程序包,和Linux不同的是FREEBSD只有一個,F(xiàn)REEBSD采用“包”的方式來進行安裝,通過連接點樹技術,讓每一個文件夾都包含Makefile,通過$PATH連接點樹能找到它需要的東西,可以使用戶自動下載所需的應用程序,和Linux比起來,F(xiàn)REEBSD不追求更多的新特性,F(xiàn)REEBSD更看重整個操作系統(tǒng)的穩(wěn)定性,更信任經過長期測試和使用的應用程序,這就使得FREEBSD版本號比較單一,但是穩(wěn)定性極佳,很多大型的網站都采用FREEBSD作為他們服務器的操作系統(tǒng)。現(xiàn)在的FREEBSD包含了GNU、ISC、CDDL等許可證的程式碼,使得FREEBSD獲得了更多自由軟件使用者的追捧,可以說,雖然FREEBSD不是Linux,但是其易用性、安全性、開源性,已經使得其應用范圍越來越廣,大家所熟知的蘋果的IOS操作系統(tǒng),一定程度上都是基于FREEBSD的。當然FRSSBSD也不是完美的,現(xiàn)在全球使用最廣泛的操作系統(tǒng)依然是視窗操作系統(tǒng),而FREEBSD因其專業(yè)性使得用戶基數(shù)遠遠不及視窗操作系統(tǒng),這也造成了FREEBSD在硬件系統(tǒng)的驅動兼容上存在著瑕疵。也恰恰是因為FREEBSD的用戶基數(shù)少,對很多第三方軟件的不兼容,以及自己獨立的內核,形成了FREEBSD極強的安全性。有些觀點認為FREEBSD不需要加裝任何的安全軟件,這種觀點是不正確的,基于網絡的各種復合型計算機病毒、木馬所能侵犯的操作系統(tǒng),基本上涵蓋了所有的操作系統(tǒng)。如何保證自己的信息在網絡傳輸?shù)倪^程中的安全性,是要考慮的重點,利用FREEBSD自帶的SSH可很好實現(xiàn)網絡數(shù)據(jù)的加密傳輸。
Telnet以其易用性得到很多人的追捧。Telnet可以很好的滿足現(xiàn)在的網絡狀態(tài)需求,可以保證用戶在任何一個地方遠程登陸計算機從而獲得計算機上的信息,但是Telnet存在著巨大的安全隱患,因為他是一個明文傳輸協(xié)議。明文也就意味著將傳輸?shù)膬热莶患友陲椀姆旁诨ヂ?lián)網上,對于非授權的第三方而言,可以輕松的獲取傳輸數(shù)據(jù)的內容。因此就需要一種安全的遠程傳輸協(xié)議,來保證數(shù)據(jù)的安全性,SSH協(xié)議很好地解決了該問題。
SSH英文全稱為secure shell,由IETF來制定標準,它是建立在應用層上的一種遠程會話登陸安全協(xié)議,目前SSH使用的端口號默認為22,因其在傳輸信息的過程中,采用的是加密的密文,比起Telnet,安全性要高的多。目前流行的SSH驗證方式是兩種,一種是基于口令的,另外一種是基于密鑰的。基于口令的驗證方式受密碼復雜度的局限,使用范圍較??;基于密鑰的驗證方式,用戶可以根據(jù)自己的需要生成不同長度的密鑰,安全性高、使用方便。用戶在FREEBSD上利用SSH創(chuàng)建一對密鑰,密鑰分為公鑰和私鑰,把私鑰放在自己的計算機上,把公鑰放在需要訪問的計算機上。采用SSH進行連接時,遠程的計算機會向本地的計算機發(fā)出請求,請求使用公鑰進行安全驗證。本地計算機接收到請求后,對比發(fā)送過來的公鑰是否和本地的公鑰一致,如果一致就可以進行通信。最重要的就是進行通信的過程中,所有的信息都是加密的,極大的保證了信息的安全性。
1.利用SSH生成密鑰對。首先使用ssh-keygen生成密鑰對,SSH的加密目前主要有兩種,一種為DSA算法,另外一種為RSA[4]算法,目前采用的加密算法為安全性較好的RSA加密,加密的位數(shù)可以選擇從1024—4096位,加密的位數(shù)越多,安全性越高。在這采用了1024位的RSA算法:運行SSH-KEYGEN命令如圖1所示。
圖1 SSH-KEYGEN的1024位RSA加密
執(zhí)行完成后會生成The key fingerprint和The key’s randomart image如圖2所示
圖2 The key fingerprint和The key’s randomart image
然后會生成兩個密鑰文件:id_rsa這是私鑰文件;id_rsa.pub是生成的公鑰文件。需要將生成的公鑰文件拷貝給目標主機路徑為/.ssh/目錄下,并將文件名改為authorized_keys,在目標主機需要賦予.ssh目錄700的權限,以及authorized_keys文件的權限為600。
由于FREEBSD的安全性要求比較嚴格,需要對目標主機的安全選項進行設置,完成首次連接從而保證公鑰文件可以順利的拷貝到目標主機,具體實現(xiàn)的步驟為:
首先,設置/etc/ssh/sshd_config中的PermltRootlogin 選項設置為yes;PermitEmptyPasswords選項設置為yes并將前面的#號去掉,如圖3所示。
圖3 對PermltRootlogin和PermitEmptyPasswords選項的修改
然后,啟用目標主機的SSH服務,如圖4所示,并且激活它,這樣就可以保證第一次通過root密碼的形式完成密鑰的傳遞。
圖4 啟用SSH服務
通過以上的步驟已經保證主機端產生了密鑰文件,并且密鑰文件里面含有公鑰和私鑰, 將生成的私鑰保留在主機端,用如下的命令行:ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.80.137,通過目標主機的IP地址將公鑰發(fā)送到目標主機端。目標主機端接收到公鑰后,將公鑰存放在~/.ssh下的authorized_keys文件中。將authorized_keys文件打開,可以清楚的看到公鑰來自于host001主機,以及采用的加密算法是RSA算法。
圖5 文件authorized_keys里的密鑰記錄
為了更清楚的看到主機的登陸情況,還可以將 know_hosts文件打開,如圖6所示,通過里面的IP地址可以清楚的看到哪臺主機采用加密方式連接到本機。通過SSH的方式完成了兩臺主機的加密連接,保證了在這兩臺主機之間的通信也是加密的。這樣可以極大的提升通信的安全性。
圖6 know_hosts文件里的記錄
網絡技術的發(fā)展帶來更廣泛的應用,更廣泛的應用會帶來更多的安全隱患。為了保證網絡數(shù)據(jù)的私密性、安全性、不可更改性,就需要對數(shù)據(jù)進行加密,加密技術隨著計算機速度的提升,也在進行著迭代升級,F(xiàn)REEBSD系統(tǒng)的優(yōu)秀安全性加上數(shù)據(jù)傳輸?shù)臄?shù)據(jù)加密,能很好的保證安全需要。SSH技術能極大的提升信道數(shù)據(jù)的安全傳輸,而且FREEBSD的系統(tǒng)開源性,用戶可以根據(jù)自己的安全需要自己開發(fā)或者加裝不同的插件,更好的保證數(shù)據(jù)在信道傳輸下的安全性。