張傳山
摘 要:網(wǎng)絡安全無小事,關系到國家安全,人民幸福社會穩(wěn)定,國家也因此成立了國家安全委員會由習近平同志任主任,統(tǒng)領全國網(wǎng)絡安全和信息化工作,重要性不言而喻。而在網(wǎng)絡通信方面,傳統(tǒng)的明文傳輸已經(jīng)暴漏出嚴重問題,為此,必須加強網(wǎng)絡升級改造力度,采用各種加密技術來保障通信安全,這是其中SSL/TLS協(xié)議廣泛應用,提供了很好的解決方案,本文就SSL/TLS協(xié)議的工作原理進行解析。
關鍵詞:SSL/TLS協(xié)議;數(shù)據(jù)安全;加密技術
1 SSL/TLS協(xié)議的由來
隨著互聯(lián)網(wǎng)應用的發(fā)展,使用HTTP協(xié)議瀏覽網(wǎng)站時,瀏覽器與網(wǎng)站主機之間通過明文傳輸,訪問者的賬號、密碼、交易記錄等機密信息安全無法保障,被嗅探、泄露、竊取、利用、篡改等的機率大大增加,HTTP協(xié)議的缺點日漸顯現(xiàn)。到了90年代中期,網(wǎng)景公司netscape開發(fā)設計了一種SSL“Secure Sockets Layer”協(xié)議,中文叫做“安全套接層”,并集成到瀏覽器上,保護HTTP傳輸信息的安全性,作為在傳輸層和應用層之間的一層,對更多的需要保護數(shù)據(jù)安全性的協(xié)議進行封裝。到了1999年,SSL協(xié)議得了廣泛應用,安全性被越來越多的人接受和認可,成為了事實上的互聯(lián)網(wǎng)傳輸協(xié)議標準,同年,IETF(The Internet Engineering Task Force,國際互聯(lián)網(wǎng)工程任務組)將SSL標準化,標準化之后的名稱改為 TLS(Transport Layer Security的縮寫),中文叫做“傳輸層安全協(xié)議”,現(xiàn)如今我們在訪問網(wǎng)站時很少用到http協(xié)議,取而代之的https協(xié)議就是http與SSL/TLS的組合,全稱為:Hyper Text Transfer Protocol over Secure Socket Layer。
2 SSL/TLS協(xié)議數(shù)據(jù)包交換的過程
簡單說SSL/TLS協(xié)議的運行機理就是利用了公鑰加密信息,私鑰解密信息的過程,首先終端機先向服務器索取公鑰,用得到的公鑰加密需要傳輸?shù)臄?shù)據(jù)信息,服務器對到訪的密文用私鑰進行解密的過程。
2.1 client的請求信息ClientHello
首先,client使用的上網(wǎng)工具發(fā)出ClientHello的請求包給server,請求包含:SSL/TLS的協(xié)議版本、單個終端產(chǎn)生的隨機對話密鑰、公鑰加密算法和壓縮算法。一個數(shù)據(jù)包有三種算法,一個是非對稱算法,如RSA;一個是對稱算法如DES,3DES,RC4等;一個是Hash算法,如MD5,SHA等。
2.2 server對client請求的應答信息ServerHello
server收到client的信息包后,server返回一個應答信息包,應答包含:(1)了解client應用的SSL/TLS協(xié)議版本是否與本server匹配,符合條件將進入下一過程,并要求client提供驗證證書,否則將不能建立連接;(2)產(chǎn)生一個隨機對話密鑰、公鑰加密算法和壓縮算法,待建立連接時使用。
2.3 client對server的答復信息進行復核
client對答復內容做條件判定,server的證書內容與client相一致,根據(jù)server端的公鑰回復復核信息,發(fā)送信息包括:(1)與server通信用的公鑰加密的隨機數(shù)一個,確保通信安全;(2)通信協(xié)商信息,就是用于確認client與server間的通信按照之前商定的加密方法和密鑰通信;(3)成功握手信息。就是說基礎通信驗證通過,提供hash值讓server做最后校驗。
2.4 server完成最后確認函
Server對client的信息做最后答復,根據(jù)信息成生并計算出通信密鑰,最后一次發(fā)給client的信息包括:(1)通信協(xié)商信息,就是確認server與client間的通信按照之前商定的加密方法和密鑰通信;(2)成功握手信息。就是說基礎通信驗證通過,提供hash值讓client做最后校驗。至此,SSL/TLS協(xié)議數(shù)據(jù)包交換的過程全部完成。接下來,client與server之間的所有通信數(shù)據(jù)都是經(jīng)過加密,邏輯上形成了一個通信專用隧道,雙方收發(fā)數(shù)據(jù)在隧道中安全的交換。
3 所涉及的加密算法
通信雙方使用SSL/TLS協(xié)議保障數(shù)據(jù)安全和完整性,在這個過程中運用了很多加密算法,下面對此一一說明:
PRF:偽隨機數(shù)生成函數(shù),用于生成任意大小的隨機序列。一般使用時間作為初始化的隨機種子,通過PRF生成隨機序列,如果序列的長度不符合要求,則使用Hash函數(shù)對序列進行散列運算,經(jīng)過幾輪迭代知道序列長度滿足要求為止。一個好的PRF可以保證序列的隨機性最大化,防止猜測。
對稱加密算法:發(fā)送方使用密鑰加密數(shù)據(jù),接收方接收到數(shù)據(jù)后使用相同的密鑰解密數(shù)據(jù),整改個加密解密過程使用同樣的密鑰進行交互,雙方共享同一個密鑰,這種算法適用于較大的數(shù)據(jù)量,用這種簡單而又高效的單鑰密碼算法保障了數(shù)據(jù)通信的安全性,常用的對稱加密算法有:AES、DES、RC4等。
公鑰加密算法:也叫做非對稱加密算法,也就是說發(fā)送方把自己的密鑰分享給接收方,接收方把自己的密鑰分享給發(fā)送方,發(fā)送方發(fā)送數(shù)據(jù)前用接收方的密鑰加密數(shù)據(jù),接收方收到數(shù)據(jù)后用發(fā)方的密鑰解密數(shù)據(jù),既共享對方密鑰又使用不同密鑰的方法,該算法利用大數(shù)難以拆分的特性對明文進行加密。常用的非對稱加密算法有:DSA,RSA等。
分組密碼:對明文數(shù)據(jù)進行先分組和填充,加密函數(shù)再對每個分組數(shù)據(jù)進行加密,置換和迭代操作后,得到固定等長的密文數(shù)字輸出。常見的對稱加密算法加密都是分組的。
Hash函數(shù):直譯通稱“哈?!鄙⒘泻瘮?shù),是一個單向性的函數(shù)。輸入任意長度的數(shù)值,運用散列算法,對消息進行摘要、迭代,輸出固定長度的散列值,每個一字節(jié)的變化都對輸出有較大的影響。Hash函數(shù)是不帶密鑰的,將任意長度的消息壓縮成固定長度的消息摘要。常用的散列函數(shù)有:SHA,MD5等。
MAC:可用于消息認證的一類算法,簡稱:消息認證碼(Message Authentication Code),與Hash函數(shù)正好相反,它是一種帶密鑰的Hash函數(shù),一種消息認證算法,當發(fā)送方的數(shù)據(jù)被接收方收到時,對數(shù)據(jù)信息的完整改進行校驗的方法,與消息同時發(fā)出。
4 實際應用
4.1 https
傳統(tǒng)http協(xié)議的明文傳輸方式已經(jīng)無法確保數(shù)據(jù)安全及完整性,采用https協(xié)議后,安全性大大提高,并且https協(xié)議在應用中不斷的升級,是當前解決網(wǎng)民網(wǎng)頁瀏覽最安全的一個方案。
4.2 ssl vpn
相較于IPSec VPN的復雜配置和繁瑣步驟,ssl vpn配置和使用上要簡單的多,IPSec VPN的硬件要實現(xiàn)點對點的硬件部署,客戶端最差也要安裝一個VPN撥入軟件,才能訪問單位網(wǎng)絡;而ssl vpn在部署完服務端后,客戶端只需要用戶通過瀏覽器就可以實現(xiàn)訪問驗證,順利的安全訪問到單位網(wǎng)絡,對于分支機構和移動辦公來說,無疑是最佳的解決方案。
參考文獻
[1](美)弗拉海,(美)黃著,王喆,羅進文,白帆譯,ssl與遠程接入vpn. 人民郵電出版社,2009-3-1.
[2][英] 伊·里斯蒂奇(Ivan Risti·)著;楊洋,李振,HTTPS權威指南 在服務器和Web應用上部署SSL TLS和PKI,人民郵電出版社,2016-09-01.
[3]Eric Rescorla,SSL and TLS: Designing and Building Secure Systems,Paperback,2000-10-27.