基于HTTPS的統(tǒng)一通信系統(tǒng)安全設(shè)計
統(tǒng)一通信由于融合了傳統(tǒng)通信網(wǎng)絡(luò)和計算機(jī)網(wǎng)絡(luò),故可通過豐富的終端軟件和網(wǎng)絡(luò)Web服務(wù)的結(jié)合,向用戶提供語音通信、視頻通信、IM通信(即時通信)、協(xié)同辦公等綜合應(yīng)用業(yè)務(wù)服務(wù)。在統(tǒng)一通信平臺的使用過程中,服務(wù)器中充斥著大量來自各個客戶端、各個服務(wù)器的大量通信數(shù)據(jù)??紤]到網(wǎng)絡(luò)的復(fù)雜性以及諸多不安全因素,幾乎所有通過Web服務(wù)提供的企業(yè)應(yīng)用程序都需要有一定的安全性。同時,個人信息等數(shù)據(jù)資料對于一個企業(yè)來說,都是非常重要的資產(chǎn),想要確保這些數(shù)據(jù)資料的安全和完整,擁有一個具有良好安全性的系統(tǒng)是必不可少的。
1 HTTPS簡介
HTTPS(SecureHypertextTransferProtocol,安全超文本傳輸協(xié)議)是基于HTTP開發(fā)的協(xié)議,可用于客戶計算機(jī)和服務(wù)器之間的信息交換。它們在交換信息的過程中使用的是SSL(SecuritySocketLayer,安全套接字層)。
HTTPS和HTTP的區(qū)別在于:HTTPS協(xié)議需要用到CA申請證書,而HTTP所傳輸?shù)膬?nèi)容是明文,不具有安全性;HTTP是通過SSL加密的安全傳輸協(xié)議。并且二者所使用的端口不相同,HTTP使用的是80端口,HTTPS使用的是443端口。也就是說,HTTPS是HTTP和SSL的集合。
SSL位于HTTP和TCP之間,是可選的,圖1所示是SSL的示意圖。它可在Web瀏覽器和Web服務(wù)器之間(P2P)建立安全的連接,其提供的安全特性包括:Authentication認(rèn)證,即用于提供瀏覽器和服務(wù)器間的認(rèn)證;Confidentiality保密性,可提供請求和響應(yīng)之間的數(shù)據(jù)加密;Integrity完整性則可保證請求和響應(yīng)的數(shù)據(jù)在傳輸過程中不會被修改。
統(tǒng)一通信服務(wù)器可通過SSL安全連接進(jìn)行監(jiān)聽,因此,在客戶端訪問服務(wù)器的時候,要用到相應(yīng)的CA(CertificateAuthority,認(rèn)證中心)認(rèn)證證書,這樣,對于訪問的安全性就提供了保障,但同時也增加了SOAP客戶端部署的復(fù)雜度,服務(wù)器需要預(yù)先發(fā)放匹配的證書,或者由客戶端從服務(wù)器下載相應(yīng)的證書,才能正確的完成訪問。
2 統(tǒng)一通信的安全解決方案
統(tǒng)一通信系統(tǒng)在連接時,需要系統(tǒng)提供保障的安全性。連接時通常釆用HTTPS對Web服務(wù)的連接進(jìn)行加密。HTTPS可以通過SSL建立一個信息安全通道,以保證數(shù)據(jù)傳輸時的安全。而HTTPS只是在消息傳輸時才對數(shù)據(jù)進(jìn)行加密,而并未對后續(xù)過程中的數(shù)據(jù)進(jìn)行加密,圖2所示是其加密解決方案。
本文的統(tǒng)一通信系統(tǒng)選擇采用HTTPSCHTTPo-verSecureSocketLayer)來為該統(tǒng)一通信系統(tǒng)提供安全通信的保證。采用HTTPS系統(tǒng)來進(jìn)行安全保證的流程:首先是服務(wù)器從CA(CertificateAuthority,證書驗證機(jī)構(gòu))獲得用于證明自己身份的證書,并在客戶端發(fā)起連接請求時發(fā)送證書。然后,客戶端通過自身維護(hù)的可信CA列表和鑰匙庫來檢査來自服務(wù)器的證書,以決定是否接收。從證書中得到服務(wù)器的公鑰后,客戶端將生成一個隨機(jī)的對稱密鑰,然后用服務(wù)器的公鑰加密該對稱密鑰并發(fā)送過去。這樣,服務(wù)器和客戶端就共享了一個對稱的會話密鑰,接下來就可以使用該會話密鑰對身份驗證和實際請求和響應(yīng)的消息進(jìn)行加密了。其加密的全過程如圖3所示。
3 實現(xiàn)與結(jié)果展示
在該統(tǒng)一通信服務(wù)器中.SOAP接口是使用安全連接進(jìn)行加密的,這就要求客戶端的證書和服務(wù)器端證書能夠匹配才能夠正確建立連接。而在服務(wù)器端,證書keystore已經(jīng)部署在服務(wù)器上,客戶端需要對該證書進(jìn)行下載,然后通過該證書來加密與服務(wù)器連接時的數(shù)據(jù)傳輸通道,從而保證系統(tǒng)安全。
SSL在服務(wù)器端的監(jiān)聽偽代碼如下:
Void sslEncryption()
{
httpServer=new Server();
//向 httpServer 添加監(jiān)聽端口
httpServer.addListener(端口);
//建立SSL監(jiān)聽
SslListener sslListener=new SslListener();
//設(shè)置SSL監(jiān)聽的加密密鑰
sslListener,setKeystore(keyStore);
//設(shè)置SSL監(jiān)聽的加密密鑰類型,如JKS
sslListener.setKeystoreType(keystoreType);
//設(shè)置SSL監(jiān)聽的加密算法
sslListener,setAlgorithm("SunX509");
//設(shè)置SSL監(jiān)聽的加密密碼
sslListener.setPassword(密碼);
//設(shè)置加密端口
sslListener,setPort(端口號);
sslListener.open();
}
整個系統(tǒng)的安全措施示意圖如圖4所示。
在對系統(tǒng)進(jìn)行部署后,在瀏覽器中輸入https://127.0.0.1;8443/services,就會出現(xiàn)如圖5所示的警告提示框。
單擊選項時,就可以看到在瀏覽器中的地址欄變成了綠色,這種顏色表示訪問的系統(tǒng)為安全鏈接。如圖6所示。
4 結(jié)語
本文采用HTTPS方式來保證基于Web服務(wù)的統(tǒng)一通信系統(tǒng)的通信安全。同時數(shù)據(jù)的加密過程來保證統(tǒng)一通信系統(tǒng)的數(shù)據(jù)安全與完整。通過對該方式在統(tǒng)一通信系統(tǒng)中的實驗,驗證了HTTPS加密方法在系統(tǒng)中的合理性與可靠性。