為什么需要SSL
TCP、UDP沒有提供任何加密機制。
這意味著發(fā)送端進程傳送至其Socket的數(shù)據(jù)與經(jīng)過網(wǎng)絡(luò)傳送到目的進程的數(shù)據(jù)相同。
如果發(fā)送進程以明文方式發(fā)送數(shù)據(jù)到它的Socket,數(shù)據(jù)在發(fā)送端與接收端之間所經(jīng)過的的所有傳輸鏈路中都有可能被嗅探和發(fā)現(xiàn)。為了安全性,所以就開發(fā)了TCP的加強版本( Secure Socket Layer) 安全套接字層。
SSL有哪些改進的地方
用SSL加強后的TCP支持原始TCP的一切功能,主要是提供了最為關(guān)鍵的進程到進程之間的安全性服務(wù)。
這主要包括:加密、數(shù)據(jù)完整性和端點鑒別。
SSL不是獨立于TCP\UDP的第三種協(xié)議,僅僅是對TCP協(xié)議的加強。這種加強是在應(yīng)用層實現(xiàn)的。
如何使用SSL
如果一個應(yīng)用程序要使用SSL方式通信,需要在Client 和 Server上集成SSL的代碼。
SSL數(shù)據(jù)加解密過程
SSL有他自己類似于傳統(tǒng)的TCP Socket API的 Socket API.當(dāng)一個應(yīng)用使用SSL時,發(fā)送進程向SSL Socket 傳遞明文數(shù)據(jù)。發(fā)送主機中SSL會對數(shù)據(jù)進行加密,然后講數(shù)據(jù)傳給TCP Socket。加密后的數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)傳輸給接收進程中的Socket。接收進程的Socket將加密數(shù)據(jù)傳遞給SSL,由SSL負責(zé)解密這些密文,SSL將解密后的數(shù)據(jù)傳遞給目標(biāo)進程。
示意圖:
