假設今天要登入一個網站
https://mikey.com
輸入了:
帳號:MIKEY
密碼:12345
這時候會出現的安全問題:
Secure Sockets Layer,SSL
安全通訊端層
一套早期的安全通訊技術
官方指引:TLS是SSL的後續版本
Transport Layer Security,TLS
傳輸層安全性協定
主要功能是:
幫應用程式建立安全通訊
IPAS 115-1 Q6 選項A
應用層:HTTPS透過TLS提供"端對端加密"
防止網頁傳輸內容遭中間人竊聽攻擊
Man-in-the-Middle Attack,MITM
中間人攻擊
概念就是攻擊者夾在客戶端與伺服器端中間
攻擊者可能會在中間進行:
Hypertext Transfer Protocol,HTTP
超文本傳輸協定
瀏覽器(Browser)和Web Server之間的溝通規則
通常在:TCP 80 Port
HTTP本身,不提供TLS加密保護
Hypertext Transfer Protocol Secure,HTTPS
安全超文本傳輸協定
HTTP + TLS
通常在:TCP443 Port
假設今天打開了一個HTTPS網站
這一整段流程就是TLS
所以TLS傳輸層安全協定
會把DAY12學到的對稱和非對稱加密配合使用
這就叫混合式密碼技術
工作階段金鑰 Session Key
某一次通訊工作階段使用的對稱式金鑰
- TLS交握
- 建立Session Key
- 使用對稱式加密
- 快速保護大量資料
即使顯示HTTPS
它還是有可能是釣魚網站
HTTPS只代表:
你和這個網站之間的通訊被TLS保護
不代表:
- 網站一定合法
- 網站沒有 SQL Injection
- 網站沒有 XSS
- 等等...
只能說你與網站伺服器有安全的通訊通道
但不保證網站本人是不是壞人
或網站本人有沒有漏洞
怎麼確定這個網站是本人還是壞人?
靠的就是DAY13提過的Certificate數位憑證
就像網站的身分證,內容包含(網域名稱)和公鑰
瀏覽器透過驗證這張憑證來確認server身分,建立安全連線
- 驗證:
- 誰發的->這張憑證的CA有沒有在瀏覽器的信任名單
- 發給誰->憑證上的網域跟我連的網站有沒有一樣
- 過期沒->有效期限到了沒
- 被竄改沒->用瀏覽器上CA的公鑰去驗數位簽章
而這些憑證是由CA(憑證授權機構)組織來發放
以上這一整套機制就是PKI公鑰基礎建設
包含:CA、憑證、公私鑰、數位簽章、信任鏈
剛剛提到的網站的憑證是由CA去發放和簽署
而CA上面還有一個,負責授權底下這些CA的Root CA
所以:
網站憑證也不是直接由RootCA去發放
整體憑證鏈是:
Root CA
整個信任鏈的最上層CA
如果:
伺服器憑證可以一路驗證到最上面的可信RootCA
瀏覽器才有理由信任這張憑證