跳到主要內容

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目標 進而支持組織的業務流程 將安全融入組織業務流程(人事/採購),產銷人發財 支持組織的「產品」及「服務」持續交付 為公司創造價值,實現公司的使命及願景 公司最高經營階層的管理作為就叫做治理. 管理是達成目標的一套有系統的

低調的大提琴

低調的大提琴 靜靜默默的歌唱 在無人發現的角落 獨自低鳴 低調的大提琴 沉溺於寂靜旋律 在月光灑落的夜晚 與蟲鳴交響 低調的大提琴 在漆黑中死去 在幾個世紀後才被發現 卻未曾留在任何人心中 低調的大提琴 不善言語表達 用它的靈魂唱出心情 在人們仔細聆聽下綻放光彩

我的花店不賣薔薇(五)

日劇『沒有薔薇的花店』之文字特輯 呵呵~首先感謝忘年好友-任凱大哥的鼎力協助 由他精心挑選,劇集中精彩對話 『直哉:大哥你人好,我沒話說。不過嘛,這麼做到底妥不妥當? 小雫:什麼妥不妥當? 直哉:不會讓人家產生誤會嗎?她會覺得你對她有意思。 小雫:你的意思是讓爸爸不要對她太好? 直哉:這個我可沒說。在公車上給人讓個座之類的倒沒什麼,不過啊,這助人為樂的事要是做過了頭,有時候會在無意中傷害別人的。 小雫:不大懂。 直哉:她要是喜歡上大哥你的話,雖說是帶著魚子的柳葉魚,你怎麼說也是個單身男子,就算有想再婚的念頭也不奇怪。 小雫:你說誰是柳葉魚? 英治:我沒那種想法。 直哉:那誰說得準。或許她本來已經徹底放棄了戀愛、結婚,你卻給絕望中的人帶去希望,然後再對她說:「我就是心眼好,對人好是我的習慣」,那人家多可憐。 小雫:直哉的話也有道理。 直哉:怎麼說我也是做過牛郎的。女人心還不就那麼回事嘛。大哥該不會是……披著羊皮還帶著小孩的狼?這個時候就該說你是偽君子了。你對人好,你心裡舒服,但是總要考慮一下對方是怎麼想的。 英治:誰跟你說我心裡舒服了? 直哉:不過,大哥要是真想接受她,就又另當別論了,把她當做再婚對象看待的話。 英治:也沒這麼想。 直哉:說到底,你對她還是只有同情吧。』 被刺傷了這麼多次 也總是不懂,難道對人好,也是一種錯嗎 也或許就像直哉說的:「對人好,只是為了自己舒服,是一種習慣。」 總是想成為別人迷途羔羊的最後一道防線 企圖以壞人角色,來抵擋那最後的衝動 卻往往總是不夠仔細、不夠貼心,不懂得更深入著想,而兩敗俱傷 或是對我,不能感到全然地信任,害怕自己赤裸裸地被看穿,所以用盡全力來抗拒,來反擊 可惜我們不是在演日劇,你也不是非我不可 只是單純地想對這樣有緣認識,當朋友的人好 是這世界壞人太多嗎?還是我看起來就是心懷不軌^O^ 我是被動的 當你願意跟我聯繫、聊天 我亦會更用心回應 當你願意找我 我亦會更笑容迎接 當你給了我三分 我亦會回你五分 『信任、尊重與平等,是我們的默契。』