SSL&TLS傳輸層加密協議實現圖解
http://xuding.blog.51cto.com/4890434/1732275
一、SSL&TLS
1.SSL:Secure Sockets Layer ,加密套接字協議層
1)SSL是為網路通訊提供安全及資料完整性的一種安全協議,在傳輸層對網路連線進行加密
Secure Socket Layer為Netscape網景公司1994年所研發,用以保障在Internet上資料傳輸之安全,利用資料加密技術,可確保資料在網路上之傳輸過程中不會被擷取及竊聽。
2)SSL協議可分為兩層:記錄協議、握手協議
SSL Record Protocol:建立在可靠的傳輸協議如TCP之上為高層協議提供資料封裝、壓縮、加密等基本功能
SSL Handshake Protocol:建立在SSL記錄協議之上用於在實際的資料傳輸開始前,通訊雙方進行身份認證、協商加密演算法、交換加密金鑰等。
3)SSL版本:1.0v 2.0v 3.0v
1.0版本未公佈,2.0版本才發出就被暴出大量漏洞
主流版為3.0。廣泛地用於Web瀏覽器與伺服器之間的身份認證和加密資料傳輸,但近期被爆出安全漏洞
2.TLS:Transport Layer Security,安全傳輸層協議
1999年,IETF在仿照SSL釋出,為防止SSL一家獨大,基本和SSL協議相容
(1)
V1.3現在為草案支援橢圓曲線演算法,現在主流是V1.2
(2)分層設計:
1)最底層:基礎演算法原語的實現,aes, rsa, md5
2)向上一層:各種演算法的實現;
3)再向上一層:組合演算法實現的半成品;
4)用各種元件拼裝而成的各種成品密碼學協議軟體;
3.SSL和TLS實現網路安全性:http --> SSL/TLS --> https
傳輸層協議有TCP,UDP,SCTP,不同主機上的程序間通訊通過socket(ip:port)
client ip:port <-- --> s
port:程序地址,程序向核心註冊使用某埠(獨佔)
套接字一般處於監聽模式:LISTEN(ip:port),佔用埠,發起請求是啟用服務
二、傳輸安全性實現:金鑰演算法協議
1.網路傳輸安全性
(1)安全的目標
保密性:confidentiality
完整性:integrity
可用性:availability
(2)攻擊型別
威脅保密性的攻擊:竊聽、通訊量分析;
威脅完整性的攻擊:更改、偽裝、重放、否認
威脅可用性的攻擊:拒絕服務(DoS)
(3)解決方案
技術層面:加密和解密
服務層面:用於抵禦攻擊的服務,也即是為了上述安全目標而特地設計的安全服務
2.金鑰演算法
(1)對稱加密:加密和解密使用同一個金鑰;
1)特性:加密、解密使用同一個金鑰;將原始資料分割成為固定大小的塊,逐個進行加密;
2)缺陷:金鑰過多;金鑰分發困難;
3)種類:
DES:Data Encryption Standard,資料加密標準;演算法的入口引數有三個:Key、Data、Mode。
Key為7個位元組共56位,是DES演算法的工作金鑰;
Data為8個位元組64位,是要被加密或被解密的資料;
Mode為DES的工作方式,有兩種:加密或解密
3DES:三輪加密的DES
AES:Advanced Encryption Standard; (128bits, 192bits, 256bits, 384bits)
Blowfish、Twofish、IDEA、RC6、CAST5
(2)公鑰加密:金鑰分為公鑰與私鑰
1)公鑰:從私鑰中提取產生;可公開給所有人;pubkey
2)私鑰:通過工具建立,使用者自己留存,必須保證其私密性;secret key;
3)特點:用公鑰加密的資料,只能使用與之配對兒的私鑰解密;反之亦然;
4)用途:身份認證,數字簽名:主要在於讓接收方確認傳送方的身份;
金鑰交換:傳送方用對方公鑰加密一個對稱金鑰,併發送給對方;
資料(特徵碼)加密:其加密速度比對稱加密慢三個數量級,所以不能做全資料加密
5)演算法:RSA, DSA, ELGamal
DSS: Digital Signature Standard
DSA:Digital Signature Algorithm
(3)單向加密:即提出資料指紋;只能加密,不能解密
1)特性:定長輸出、雪崩效應;
2)功能:完整性校驗;
3)演算法:md5:Message Digest 5, 128bits,訊息摘要演算法,版本號為五
sha1:Secure Hash Algorithm 1, 160bits,安全的Hash演算法
sha224, sha256, sha384, sha512
3.金鑰交換協議:IKE(Internet Key Exchange)
(1)公鑰加密
(2)DH(Deffie-Hellman)演算法:密碼本身無需在網際網路上傳輸,但雙方能得到一致的密碼
擴充套件:ECDH(橢圓曲線DH)、ECDH(臨時橢圓曲線DH)
實現方案簡介:
1)A和B生成兩個數字:p, g。p大素數和g,可以明文可以傳輸
2)A和B各自自定義一個數字x、y,進行階乘取模操作,將其結果傳遞給對方
A私下生成x--> p^x%g ==> B
B私下生成y--> p^y%g ==> A
3)A和B進行解密操作
A: (p^y%g)^x=p^yx%g;B: (p^x%g)^y=p^xy%g
4.PKI:Public Key Infrastructure公鑰基礎設施
(1)PKI組成
簽證機構:CA
註冊機構:RA
證書吊銷列表:CRL
證書存取庫:CB,公共儲存證書位置
(2)X.509v3:定義了證書的結構以及認證協議標準
版本號、序列號、簽名演算法ID、發行者名稱、有效期限、主體名稱、主體公鑰、發行者的惟一標識
主體的惟一標識、擴充套件、發行者的簽名
三、SSL實現工作流程
1.SSL會話實現主要步驟(三步):
(1)客戶端向伺服器端索要並驗正證書;
(2)雙方協商生成“會話金鑰”;
(3)雙方採用“會話金鑰”進行加密通訊;
2.SSLHandshake Protocol:SSL握手協議
第一階段:ClientHello:客戶端
支援的協議版本,比如tls1.2;
客戶端生成一個隨機數,稍後使用者生成“會話金鑰”
支援的加密演算法,比如AES、3DES、RSA;
支援的壓縮演算法;
第二階段:ServerHello伺服器端
確認使用的加密通訊協議版本,比如tls1.2;
伺服器端生成一個隨機數,稍後用於生成“會話金鑰”
確認使用的加密方法;
伺服器證書;
第三階段:
驗正伺服器證書,在確認無誤後取出公鑰;(發證機構、證書完整性、證書持有者、證書有效期、吊銷列表)
傳送以下資訊給伺服器端:
一個隨機數;
編碼變更通知,表示隨後的資訊都將用雙方商定的加密方法和金鑰傳送;
客戶端握手結束通知;
第四階段:
收到客戶端發來的第三個隨機數pre-master-key後,計算生成本次會話所有到的“會話金鑰”;
向客戶端傳送如下資訊:
編碼變更通知,表示隨後的資訊都將用雙方商定的加密方法和金鑰傳送;
服務端握手結束通知;
Google圖示:public key client 和private key client---SSL握手協議
註釋:左側client;右側server。藍色虛線分割開各個階段
SSL協議實現步驟總結:
1.客戶端生成隨機數,建立會話前商定(如約定的加密演算法),伺服器端將自己生成的隨機數返回
2.伺服器端將自己的證書發給客戶端,並且請求客戶端證書;
3. 客戶端檢查伺服器端的證書(簽發者CA、證書有效期、證書內容、證書中名稱和通訊名稱一致、是否吊銷),若檢查沒問題,客戶端將會將自己的證書發給服務端
4.伺服器端收到客戶端證書,檢查客戶端證書
5.服務端將前面所有資訊用hash計算,用自己的公鑰簽名發給客戶端
6.客戶端機密資料用對方公鑰加密後傳送給對方
7.雙方可以開始進行基於對稱加密方式通訊
8.客戶端請求斷開會話,伺服器端斷開會話
注意:
1)客戶端驗證是為了防止釣魚網站等,確認訪問的網站為自己所需確認站點
2)公鑰是私鑰的其中一部分,私鑰是私密的、個人的,公鑰是公開的部分;私鑰的長度長於公鑰
3)伺服器證書的主體名稱要和瀏覽器上的訪問的名稱一致,否則驗證無法通過;所以在網際網路上當做伺服器證書名稱必須與通過網際網路訪問伺服器時候的名稱完全一致,否則客戶端提醒操作有風險
4)資料加密過程
-->單向加密演算法算出資料包的特徵碼
--->用自己的私鑰再次加密上述的特徵碼
--->使用雙方協定演算法對稱加密整個資料包(資料+二次加密的特徵碼)
--->最後再封裝一層對方公鑰加密的特徵碼
其中,最後一步也可以單獨進行一次特性進行傳送確認
經過四次加密能保證資料的完整性,資料的完整性,以及所有者的身份認證
相關推薦
SSL&TLS傳輸層加密協議實現圖解
http://xuding.blog.51cto.com/4890434/1732275 一、SSL&TLS 1.SSL:Secure Sockets Layer ,加密套接字協議層 1)SSL是為網路通訊提供安全及資料完整性的一種
傳輸層--TCP協議段頭部資訊及作用,可靠傳輸機制的實現
TCP協議段資訊及作用 在前面我們講述了UDP協議段的頭部資訊,UDP協議段資訊 那麼今天接著說傳輸層的另一個協議,TCP協議。 TCP是傳輸層中比較重要的一種協議,它運用的地方很多,比如在FTP協議、http協議中就是運用了TCP的協議,因為它的可靠性,
Exchange2013 TLS傳輸層安全排錯
exchange2013 tls exchange傳輸層安全 ironport tls checktls tls傳輸層安全 2018年新年新氣象,首先祝大家新年嗨森,忙碌的2017年總算告一段落了,難得忙裏偷閑兩天整理整理2017年零零星星的點點滴滴,這一年有笑有淚,好像除了加班就是加班,
各種常見英特網應用協議的使用情況和傳輸層三大協議的異同
thead top otto 雙工 border bre put 狀態 time_wait 今天我們總結下常見英特網應用協議的使用情況和傳輸層三大協議的異同常見因特網應用協議使用情況英特網應用IPICMPUDPTCPSCTPping●traceroute●●OSPF(路
EXCHANGE 2013 TLS傳輸層安全
lis 本地 過期 con 之前 最優 服務器 其他 exc 默認情況下,SMTP流量是不被加密的,這就導致在公網上進行郵件溝通就像是在廣播一樣,任何人攔截到該郵件都可以輕而易舉的讀取其內容。但是現實場景中有許多敏感信息是通過郵件來進行發送的,所以其中一種保護郵件安全的方法
網路基礎四(傳輸層TCP協議 ACL NAT)
一 傳輸層的作用 • 網路層提供點到點的連線 • 傳輸層提供端到端的連線 二 傳輸層的協議 • TCP(Transmission Control Protocol) – 傳輸控制協議 – 可靠的、面向連線的協議 – 傳輸
OSI參考模型的七層結構,各層的名稱、主要功能及物理層、資料鏈路層、網路層和傳輸層的協議資料單元
詳細說明一下,osi模型從第7層到第1層依次是: 第7層 應用層:OSI中的最高層。為特定型別的網路應用提供了訪問OSI環境的手段。應用層確定程序之間通訊的性質,以滿足使用者的需要。應用層不僅要提供應用程序所需要的資訊交換和遠端操作,而且還要作
SSL/TLS高強度加密
httpd.conf SSLCACertificateFile conf/ssl.crt/company-ca.crt <Directory /usr/local/apache2/htdocs> # subarea以外的區域只允許來自Intranet的訪問 Order
TCP/IP五層模型-傳輸層-TCP協議
1.定義:TCP是一種面向連線、可靠的、基於位元組流的傳輸控制協議。 2.應用場景:TCP為可靠傳輸,適合對資料完整性要求高,對延時不敏感的場景,比如郵件。 3.TCP報文:①TCP報文格式: ②TCP首部欄位資訊: 源埠號:源埠和IP地址的作用是標識報文的返回地址。目的埠號:埠指明接收方計算機上的應用
TLS安全傳輸層協議(加密)配置文件
TLS安全傳輸層協議(加密)配置文件 Tomcat伺服器配置https雙向認證(使用keytool生成證書) 一,HTTPS原理 1,HTTP、HTTPS、SSL、TLS介紹與相互關係
圖解SSL/TLS協議
.html ssl detail png nbsp tick 技術 我們 ticket 本周,CloudFlare宣布,開始提供Keyless服務,即你把網站放到它們的CDN上,不用提供自己的私鑰,也能使用SSL加密鏈接。 我看了CloudFlare的說明(這裏和這裏),
(轉) HTTP & HTTPS網絡協議重點總結(基於SSL/TLS的握手、TCP/IP協議基礎、加密學)
重點總結 csdn .net https clas 加密 網絡 tls spa HTTP & HTTPS網絡協議重點總結(基於SSL/TLS的握手、TCP/IP協議基礎、加密學) 原文:http://blog.csdn.net/itermeng/article/
圖解TCP/IP協議(六)傳輸層(TCP/UDP)、tcp三次握手和四次揮手
傳輸層最常見的兩種傳輸協議,分別是TCP和UDP協議。 一、TCP協議 TCP 是面向有連線的流協議。流就是指不間斷的資料結構,可以把它想象成排水管道中的水流。TCP為提供可靠傳輸,實行“順序控制”或“重發控制”機制。 TCP/IP的眾多應用大多以客戶端/服務端的形式執行。作為服
Java中使用JSSE實現SSL/TLS安全協議
一、簡介 SSL/TLS協議是安全的通訊模式,而對於這些底層協議,如果要每個開發者都自己去實現顯然會帶來不必要的麻煩,正是為了解決這個問題Java為廣大開發者提供了Java安全套接字擴充套件——JSSE,它包含了實現Internet安全通訊的一系列包的集合,是SSL和TLS
SSL/TLS協議及Openssl工具的實現
前言 早期網際網路資料傳輸是基於TCP/IP模型完成資料交換,其各層對傳輸的資料包進行各協議的封裝,從資料的傳送方到接收方進行的資料交換都是基於明文傳輸。在傳輸的過程中資料的可以被中間人進行攔截或抓取,威脅了資料的保密性(竊聽、通訊量分析)、資料的完整性(更改、偽裝、重放、否認)、資料的可用性攻擊(
x-pack 功能介紹及配置傳輸層安全性(TLS / SSL)
x-pack功能使用: 功能名稱 檔案配置格式 適用元件 圖形展示 xpack.graph.enabled 只使用於kibana元件 報表統計 pack.reporting.enabled 只使用於kib
DES加密實現(翻譯自書籍《Wiley.Implementing.SSL.TLS.Using.Cryptography.and.PKI》)
理解BlockCipher加密演算法 凱撒大帝被認為是最古老的對稱加密演算法。所謂的凱撒加密法(你也許可以從報紙上找到一個作為消遣來玩),它隨機的給每一個字母分配一個數字。在這個簡單的演算法當中,字母到數字的對映就是key。現代加密演算法比凱撒演算法肯定複雜的多,以
linux安全和加密之SSL\TLS協議、CA、openssl的概述和使用
http://blog.51cto.com/6638225/1855174 內容: 1、通訊加密型別及演算法 2、TLS/SSL協議的引入及其通訊過程 3、CA、數字簽名的引入 4、一個安全的資料通訊交換過程 5、opens
HTTP & HTTPS網路協議重點總結(基於SSL/TLS的握手、TCP/IP協議基礎、加密學)
本文以總結的形式,先大體介紹TCP/IP協議整體組成,再擇其應用層上的HTTP協議進行詳細總結,繼而拓展知識點講解加密學,過渡到HTTPS協議的學習,除去網路知識必備掌握的三次握手、四次揮手,另需瞭解基於SSL/TLS的握手,也是重要的一個環節。 本文涉及到的知識點如下:
HTTPS和SSL/TLS協議是如何保證資料傳輸的安全性的
咱們通常所說的 HTTPS 協議,就是指安全套接字層超文字傳輸協議HTTPS。就是“HTTP 協議”和“SSL/TLS 協議”的組合,你可以把 HTTPS 大致理解為——“HTTP over SSL”或“HTTP over TLS”。HTTP協議以明文方式傳送內容,不提供