在公司最近的項目涉及多種加密、安全。我一直在這方面缺少經驗。很協議僅僅知道是什麼概念。用於傳輸的加密SSL,也煞費苦心。很是easy一件事,折騰了很長一段時間。IT該行啊,真的是。難者不會,與會者困難。html
關於ssl相關的概念。參考下面網址:nginx
http://zhidao.baidu.com/question/327361625.html?pn=0
git
http://baike.baidu.com/view/16147.htm?web
fr=aladdin#3
算法
http://baike.baidu.com/link?url=huf3fdrLoAKVqIkbZF8G5emlytuFCj6XRA4doqRyGj4mV7Et1fPq8ksYVRuycntJQrJiqo0LsEnMmSNIoXz2mq
瀏覽器
http://baike.baidu.com/link?tomcat
url=PHbXnIKPXSVeuUjmcFiYAbrVMKvwTFMDTJ5bF3ABjCTfDnFhkEIcN64rRyLb9q_kFWVv1d27qF20Yfu7G7z6W_
安全
要深入的懂得SSL。需要具有的基礎知識:加密算法、對稱加密算法、非對稱加密算法、密鑰(公鑰、私鑰)、數字證書、http協議、https協議、ISO網絡七層協議等。網絡
我的理解:SSL,是一種協議的名字。這樣的協議基於加密算法,在網絡傳輸的過程當中將傳輸的內容通過加密算法加密,到達目的地後,用密鑰來解密看到真正的內容,而在網絡的傳輸過程當中即使被人攔截到,由於沒有密鑰,不知道解密的算法,很是難甚至沒法解密,以此達到數據安全的做用。 app
而要完畢這個流程。咱們需要作如下幾個事情:
一、既然傳輸的數據是要通過加密解密的。那麼就要有加密解密的工具,對於這個工具,咱們叫作密鑰。
因此。第一步就是建立密鑰(向第三方購買)。分爲server端和client。
二、密鑰建立好了,那麼咱們得把這個密鑰放到一個地方。而後讓它發生做用。因此第二步。就是將密鑰放到server(nginx、tomcat、iis等)中,並且改動server的相關配置(如tomcat是改動server.xml)使之起做用。
client放到哪裏呢?天然是放到client了。對於web應用來說,是放到瀏覽器,但是對於用戶來說去哪裏拿着個密鑰呢?普通狀況下server端會提供client下載的地址(因此咱們在瀏覽一些站點的時候,尤爲是銀行站點,會讓咱們先下載一個證書。這個證書實際上就是密鑰)。對於手機app來說,普通狀況下會將這個密鑰放到apk中(固然,這個在開發的時候就放到裏面了,用戶是不知道滴)。
三、一切準備就緒了。
開始訪問。client帶着證書來訪問server,server(tomcat)第一步 是先檢驗證書對不正確(也就是用密鑰進行解密),假設不正確則直接報錯。假設對了。則再去看訪問的地址是否存在。假設地址不存在。則拋出404錯誤。假設地址存在。進行內容解密,開始真正的業務的訪問處理)
好。我的的理解就介紹這些,如下就先來幾個關於ssl的(官方)概念:
1、SSL
SSL 的英文全稱是 「Secure Sockets Layer」 。中文名爲 「 安全套接層協議層 」 ,它是網景( Netscape )公司提出的基於 WEB 應用的安全協議。 SSL 協議指定了一種在應用程序協議(如 HTTP 、 Telenet 、 NMTP 和 FTP 等)和 TCP/IP 協議之間提供數據安全性分層的機制。它爲 TCP/IP 鏈接提供數據加密、server認證、消息完整性以及可選的客戶機認證。
SSL協議位於TCP/IP協議與各類應用層協議之間,爲數據通信提供安全支持。SSL協議可分爲兩層: SSL記錄協議(SSL Record Protocol):它創建在可靠的傳輸協議(如TCP)之上,爲高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL握手協議(SSL Handshake Protocol):它創建在SSL記錄協議之上,用於在實際的傳輸數據開始前,通信兩方進行身份認證、協商加密算法、交換加密密鑰等。
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是爲網絡通訊提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡鏈接進行加密。
2、SSL證書:
SSL證書經過在client瀏覽器和Webserver之間創建一條SSL安全通道(Secure socket layer(SSL)安全協議是由Netscape Communication公司設計開發。該安全協議主要用來提供對用戶和server的認證;對傳送的數據進行加密和隱藏;確保數據在傳送中不被改變。即數據的完整性,現已成爲該領域中全球化的標準。
由於SSL技術已創建到所有基本的瀏覽器和WEBserver程序中,所以。僅需安裝server證書就可以激活該功能了)。
即經過它可以激活SSL協議,實現數據信息在client和server之間的加密傳輸,可以防止數據信息的泄露。保證了兩方傳遞信息的安全性。而且用戶可以經過server證書驗證他所訪問的站點是不是真實可靠。
數位簽名又名數字標識、簽章 (即 Digital Certificate,Digital ID )。提供了一種在網上進行身份驗證的方法,是用來標誌和證實網路通訊兩方身份的數字信息文件,概念相似平常生活中的司機駕照或身份證類似。 數字簽名主要用於發送安全電子郵件、訪問安全網站、網上招標與投標、網上籤約、網上訂購、安全網上公文傳送、網上辦公、網上繳費、網上繳稅以及網上購物等安全的網上電子交易活動。
3、SSL 使用意義
server部署了 SSL 證書後可以確保用戶在瀏覽器上輸入的機密信息和從server上查詢的機密信息從用戶電腦到server之間的傳輸鏈路上是高強度加密傳輸的,是不可能被非法篡改和竊取的。同一時候向站點訪問者證實了server的真實身份,此真實身份是經過第三方權威機構 驗證的。
這有兩方面的影響:數據加密和認證。