跳到主要內容

IPSec 筆記 - Kakashi's Blog

資料來源:https://kkc.github.io/2018/03/21/IPSEC-note/


IPSec 筆記

Posted by Kakashi on 2018-03-21


前言

這篇筆記是用來記錄 IPSec protocal 的一些細節,前陣子在架設 AWS VPN 的時候,遇到了一些小問題,主要還是防火牆擋到需要走的 port ,而當時就在想自己對於 IPSec protocal 也太不熟悉了,所以才有這篇文章來稍微紀錄一下。

為什麼需要 IPSec

IP is not secure,我想這點學過計算機網路的同學應該都會知道這點,而有可能受到以下的風險

基本上使用 VPN 走 IPSec protocal 可以確保 CIA (似乎跟資安有關的都會提到這三個詞)

  • Confidentiality: 利用演算法將資料加密 (DES, 3DES, AES & Blowfish)
  • Integrity: 資料完整性,利用 hashing algorithm 保證資料沒有受到竄改
  • Authentication: 認證

IPSec security architecture

  • 使用 Layer3 Network layer 這層
  • Application 層的大家可以無感的享受其 CIA 的好處
  • Components
    • Authentication Header (AH)
    • Encapsulation Security Payload (ESP)
    • Security Associations (SA)

基本上我覺得要懂 IPSec,可以先來弄懂 AH & ESP 會比較重要,因為這兩個東西有對 IP packet 動手腳

Authentication Header

AH 主要提供的是驗證 Data integrity & data origin source,然後沒有提供任何加密的功能,使用 HMAC 算法,把 payload & header 和 IKE 定義好的 key 一起拿來 hash,但這邊要小心因為 NAT 會改變 header,而被改變的話,另外一邊就沒辦法解析正確,所以基本上 AH 應該是不可能跟 NAT 共存。
而其中又分為 Transport mode & Tunnel mode,後面會有介紹有什麼不同。
AH 使用 port 51。


Encapsulation Security Payload

ESP 的功能比起 AH 強大了許多,confidentiality, authentication, integrity 都包含在其中了,所以真正有提供加密的功能,而在驗證 Data integrity 方面,還是要看是使用 Transport mode 或是 Tunnel mode

  • Transport mode: ESP 沒有對 IP header 做 hash ,所以只能保證 Data 是沒有被修改的
  • Tunnel mode: 有將 IP header 包進來,所以這點跟 AH 是一致的

對照下圖可以發現,ESP 和 AH 最大的差別應該是 AH 會對於 Outer IP header 做驗證,所以其實 IPSec 唯有使用 ESP tunnel mode 才能和 NAT 共存。
而在 RFC 3948 裡面也有寫道: Because the protection of the outer IP addresses in IPsec AH is inherently incompatible with NAT, the IPsec AH was left out of the scope of this protocol specification. 證實我們的推論應該是無誤的,難怪 AWS 的 NAT 教學裡面都是用 ESP 來做連線啊QQ。
ESP 使用 port 50。




Transport mode & Tunnel mode

Transport mode: 通常是直接建立在兩台主機上,因為不需要再多加一個 IP header ,整體來說較省頻寬,在這個模式下,兩邊的主機都要安裝 IPSec 的 protocal,而且不能隱藏主機的 IP 位置。
Tunnel mode: 針對 Firewall 或是 Gateway proxy,一般來說我們會用這個模式,因為他們不是原本的發送收端。

Security Associations

IPsec 中最重要的其實是 SA,因為它定義了如何協商,還有要使用哪些 Policy 和參數

  1. Authentication method
  2. Encryption algorithm & hashing algorithm
  3. Life time of SA
  4. Sequence number (避免 replay 攻擊)

而基本上 SA 是單向的,所以通常要建立兩條 SA (from A to B and B to A),然後這些 parameter 會經過 Internet Key Exchange (IKE) protocal 來決定,IKE 主要有分兩個 step

IKE phase1: 主要做 Authenticate,Authentication 方面常常使用的都是 pre-shared key,基本上就是用同一組密碼,接著透過 Diffie-Hellman 來建立一組 Key,而這組 Key 是要被 Phase2 拿來用的。
IKE phase2: 處理 IPsec security 協商,最後 IPSec SA 完成,接下來才會建立 IPSec 的連線。

** IKE 主要走 port 500

結論

這只是一篇小小的筆記,而網路上面有更多詳細的資料,但有了這些基本概念後,對於為什麼 VPN 打不通,會有更多除錯的方法,像是那些 port 是不是沒開,或是 SA 整個設定錯誤,導致雙方協商失敗等等,會讓我們更有方向。

Reference

  1. http://chunchaichang.blogspot.tw/2011/12/ipsec-nat-t.html
  2. https://www.jannet.hk/zh-Hant/post/internet-protocol-security-ipsec/
  3. https://en.wikipedia.org/wiki/IPsec#Security_association
  4. https://tools.ietf.org/html/rfc3948
  5. http://www.deepsh.it/networking/IPSec.html

留言

這個網誌中的熱門文章

WUSON的CISSP課後筆記整理-葉柏毅Alex Yeh

  CISSP考試心得-Alex Yeh 心智圖 心智圖PDF Structure Architecture Framework Approach Methodology Domain 口訣 Domain 1. Security and Risk Management   C、I、A+GRC(安全和風險管理) Domain 2. Asset Security   盤點、分類、保護(資產安全) Domain 3. Security Architecture and Engineering   時時都安全、處處都安全(安全架構和工程) Domain 4. Communication and Network Security   處處都安全(通信及網路安全) Domain 5. Identity and Access Management (IAM)   I + 3A(身分識別及存取控制) Domain 6. Security Assessment and Testing   查驗、訪談、測試(安全評鑑及測試) Domain 7. Security Operations   日常維運、持續改善(安全維運) Domain 8. Software Development Security   時時都安全、處處都安全(軟體開發安全) 美國法定目標(FISMA)/ 資通安全法 CIA C機密性:資料不被偷 I完整性:資料不被竄改 A可用性:資料隨時可用 Integrity完整性 Data Integrity(資料完整性) Authenticity(資料真偽;真實性) Non-repudiation 不可否認性(法律上):傳送方不能否認未傳收;接受方不能否認未收到。 FISMA NIST FIPS 199 NIST SP 800 資產Asset:有價值Value的東西,且值得保護 Assets 通常指資訊系統 資料 電腦系統 操作系統 軟體 網路 資料中心(機房) 人(最重要) 業務流程 資安目標(定義): 透過安全管制措施,保護資訊資產不受到危害,以達到CIA目標 進而支持組織的業務流程 將安全融入組織業務流程(人事/採購),產銷人發財 支持組織的「產品」及「服務」持續交付 為公司創造價值,實現公司的使命及願景 公司最高經營階層的管理作為就叫做治理. 管理是達成目標的一套有系統的

資訊技術安全評估共同準則 (CC, ISO/IEC 15408, GB/T 18336) 產品檢測與認證服務

  資料來源: https://www.tksg.global/mod/page/view.php?id=43792 資訊技術安全評估共同準則 (CC, ISO/IEC 15408, GB/T 18336) 產品檢測與認證服務 資訊技術安全評估共同準則 資訊技術安全評估共同準則 ( Common Criteria for IT Security Evaluation, ISO/IEC 15408 ),簡稱共同準則 (Common Criteria) 或 CC,是針對實現資/通訊產品所使用 資訊技術的安全性 所進行的安全技術認證。  共同準則是資訊安全性的架構,是建立在資/通訊產品的開發者可以在安全標的 (Security Target, ST ) 檔案當中,標示安全功能需求 (Security Functional Requirements, SFR ) 及安全保障需求 (Security Assurance Requirement, SAR ),或者也可以從資/通訊產品的保護剖繪 (Protection Profile, PP ) 中取得這些資料。 開發商 CC 文件準備指南 (Guidelines for Developer Documentation)   ISO/IEC TR 15446 Information technology — Security techniques — Guidance for the production of protection profiles and security targets 加解密組認證 (Cryptographic Module Validation Programme, CMVP) - FIPS 140-3 Standards 開發商可以實現或是聲明其產品的安全屬性,檢測實驗室可以評估這些產品, 根據不同的安全保障級別 (EAL),評估與檢測的深度也不同 ,並確認其是否符合聲明的屬性。換句話說,共同準則提供了保證,資/通訊安全產品的規格、實現以及評估可以用一個嚴謹、標準化且可重覆的方式進行,而且可以與目標使用環境相稱。共同準則會維護一份已認證產品的清單,其中包括作業系統、存取控制系統、資料庫、及密鑰管理系統等。 參照相關國際標準: ISO/IEC 15408-1 Information securit

[補充]Common Attacks

  參考來源: Wuson - Common-attacks  , Wiki 如翻譯或解釋有誤,歡迎提出更正。 Brute force: 蠻力攻擊 (英語:Brute-force attack) ,又稱為 窮舉攻擊 (英語:Exhaustive attack)或 暴力破解 ,是一種 密碼分析 的方法,即將密碼進行逐個推算直到找出真正的密碼為止。 Advanced Persistent Threat (APT) :高級長期威脅(英語:advanced persistent threat,縮寫:APT),又稱高級持續性威脅、先進持續性威脅等,是指隱匿而持久的電腦入侵過程,通常由某些人員精心策劃,針對特定的目標。其通常是出於商業或政治動機,針對特定組織或國家,並要求在長時間內保持高隱蔽性。高級長期威脅包含三個要素:高級、長期、威脅。高級強調的是使用複雜精密的惡意軟體及技術以利用系統中的漏洞。長期暗指某個外部力量會持續監控特定目標,並從其獲取數據。威脅則指人為參與策劃的攻擊。 Multi-vector, polymorphic attacks Buffer Overflows: 緩衝區溢位 (buffer overflow),在 電腦學 上是指標對 程式設計 缺陷,向程式輸入 緩衝區 寫入使之溢位的內容(通常是超過緩衝區能儲存的最巨量資料量的資料),從而破壞程式執行、趁著中斷之際並取得程式乃至系統的控制權。 Mobile Code: ActiveX, JavaApplet, Flash, JavaScript Malicious Software (Malware) Drive-by download attacks: 路過式下載 ,網頁掛馬攻擊 (Drive-by Downloads) Spyware Trojan Horse Keyloggers Password Crackers Spoofing欺騙 Masquerading,偽裝 Sniffers,竊聽 Eavesdropping,竊聽(隔牆有耳) Tapping,竊聽 Emanations 流出 and TEMPEST Spontaneous emission of electromagnetic radiation” (EMR) subject to TEMPEST eavesdropping 受 TEMPE