iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 16
1
Software Development

那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析系列 第 16

Day16 聊聊https

前一天我們聊了HTTP並解析他,網頁的資料都是藉由http傳輸的,但是網頁的傳遞過程中有許多隱私訊息,例如帳號密碼、信用卡帳號等等的,如果像昨天那樣,寫一個網路封包分析器不就被看光光了嗎?
HTTPS經由HTTP通信,但是利用TLS加密封包,目的是保護client和server在互換資料的私密性,這樣如果封包被竊聽,或是被中間人攻擊,也能保護資料不被發現,和http不同的是,https預設的port是443。
HTTPS的信任基於預先安裝在作業系統中的證書頒發機構(CA)。因此,一個網站的HTTPS連接只有在這些情況下可被信任:

  • 瀏覽器正確的實現了HTTPS且作業系統安裝了正確且受信任的CA
  • CA信任的合法網站;
  • 被訪問的網站提供了一個有效的證書(公鑰),也就是說它是一個由作業系統信任的CA簽發的(大部分瀏覽器會對無效的證書發出警告),瀏覽器會將公鑰傳到CA進行比對
  • 此協議的加密層(TLS)能夠有效地提供認證和高強度的加密。

HTTPS封包中的任何東西都被加密,包括所有header和data,安全協議工作在HTTP之下,傳輸層之上,一個攻擊者所能知道的只有在兩者之間有一連接這一事實
https的封包都是加密的,無法進行分析,這裡就先略過了

系列的成果將會放在這:https://github.com/kaichiachen/pytcpdump
文章配合著程式碼有助於學習 :)


上一篇
Day15 解析第五層-HTTP的封包結構
下一篇
Day17 解析第五層-DNS的封包結構
系列文
那些年還給老師的TCP/IP五層結構 - 用Python進行網路封包分析30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言