• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

IPsec

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • IPsec

    I. Cấu trúc gói tin IPsec

    Đầu tiên ta nhắc lại chút về IPSEC
    IPSEC là kỹ thuật mã theo tiêu chuẩn IETF
    -Tính bảo mật “confidentiality” (tức packet được mã hóa trước khi truyền đi trên mạng)
    -Kiểm tra tính toàn vẹn gói tin “integrity”(tức kiểm tra gói tin không bị thay đổi khi đi qua một hệ thống mạng)
    -Chứng thực mỗi gói tin”authentication” (chứng thực đúng người gửi hay không)
    -


    Hình 1.1

    + Với hình trên ta thấy một Frame bình thường gồm 3 phần L2-IP-(L4_Payload)
    + Với mode transport thì header ESP/ AH được chèn vào giữa IP và L4_payload của Frame.

    + Với mode Tunnel thì lúc này Frame sẽ được chèn thêm cặp IP source/destionation mới (Ở đây là 2 IP public 12.1.1.1 và 23.1.1.1). Lúc này bạn cứ hình dung mode Mode Tunnel sẽ đối xử toàn bộ phần packet của gói tin cũ “IP cũ + (L4_Payload) như là payload_L4_mới. Và header ESP/ AH cũng được chèn giữa New IP và Payload_L4_mới này.



    II. AH và ESP header
    1. AH:
    - Không có mã hóa gói tin
    + Kiểm tra tính toàn vẹn
    + Kiểm tra chứng thực mỗi gói tin

    2. ESP:
    + Mã hóa gói tin
    + Kiểm tra tính toàn vẹn
    + Kiểm tra chứng thực mỗi gói tin

    3. Kiểm tra tính toàn vẹn gói tin và chứng thực đúng người gửi:
    Làm thế nào để kiểm tra tính toàn vẹn của gói tin (tức gói tin không bị sửa chửa trong quá trình truyền đến đích).

    Ta xem hình sau

    Hình 1.2

    + Đối với Transport mode
    Data ở đây tức là L4_Payload trong hình 1.1
    IP header ở đây tức là phần IP trong hình 1.1
    Key sẽ do mình cấu hình bằng tay (dùng lệnh Router(config)#crypto isakmp key …)

    + Đối với Transport mode
    Data ở đây tức là (IP + L4_Payload) trong hình 1.1
    IP header ở đây tức là phần New IP trong hình 1.1
    Key sẽ do mình cấu hình bằng tay (dùng lệnh Router(config)#crypto isakmp key …)

    + AH header
    Data + IP header + Key = Value A
    Hash Value A ta được Hash_A
    Hash_A này được sử dụng để xây dựng AH header.

    + ESP header.
    Mã hóa Data thành Data_encrypted (mã hóa, xem phần thông tin thêm)
    Data_encrypted + IP header + Key = Value A
    Hash Value A ta được Hash_A
    Hash_A này được sử dụng để xây dựng ESP header.

    AH Header hay ESP Header được chèn vào giữa Nhu đã mô tả trong phần I.
    Hash là một giá trị luôn không đổi.

    Vd:
    10:2=5
    Nhưng 20:4=5

    Hash chỉ có tính 1 chiều do từ 5 ta không thể nào suy được giá trị data ban đầu là 10 hay 20. Chỉ có lúc 2 router thương lượng giá nhau nên hash bằng cách chia cho 2 hay chia cho 4 thì lúc này mới suy ra được giá trị ban đầu.

    Tính toàn vẹn dữ liệu (integrity)và chứng thực(authentication) đúng người gửi
    Xem lại hình 1.2.
    Nếu trong quá trình truyền mà gói tin bị sửa đổi thì lúc router bên kia nhận (Router 2 bên phải). Router 2 lấy (IP header + Data của gói tin)_router1 + Key_router2 hash ra rồi đem so sánh với AH_router1.
    Nếu Hash_router2 = AH_router1 => gói tin không bị chỉnh sửa.
    Nếu Hash_router2 # AH_router1 => gói tin đã bị thay đổi.

    Đây gọi là kiểm tra tính toàn vẹn của Data và chứng thực data đó đúng chính xác người gửi. (tức Key_router1 giống Key_router2).


    4. Thông tin thêm:
    + Các loại Hash thường dùng là SHA-1 hoặc MD5

    Mã hóa gói tin(chỉ trong ESP protocol)
    + Thuật toán mã hóa đối xứng như(cùng key cho mã và giải mã): DES, 3DES, AES (dùng từ 80 tới 256 bits).
    Diffie-Hellman được dùng để trao đổi Shared_key trong mã bất đối xứng. Shared_key đều giống nhau ở mỗi bên.
    Key do hệ thống tự sinh và trao đổi với nhau.

    + Thuật toán mã hóa bất đối xứng như(dùng puclic key để mã, private key để giải mã): RSA (dùng từ 1024 tới 15360 bit)
    Key do một nhà chuyên cung cấp chứng thực số như CA. Hoặc do hệ thống tự sinh.


    III. Ipsec NAT Traversal

    Ta thấy thiết bị cấu hình chức năng NAT port (hay còn gọi PAT) sẽ cần phải thấy port (tức phải thấy layer 4). Như hình 1.1 bên trên thì ESP/AH đã che mất phần layer 4.
    Nếu qua thiết bị NAT không hỗ trợ NAT Traversal thì gói tin có header ESP/AH này sẽ bị Drop ngay lập tức.
    Do đó, để giái quyết vần đề này người ta sẽ cần phải thêm UDP header vào phía trước ESP header.


    Hình 1.3

    Từ việc thêm vào UDP header sẽ không còn bị tình trạng Frame Ipsec qua thiết bị NAT sẽ bị Drop. Lúc này thiết bị PAT sẽ đối xử packet có chứa ESP header như là một UDP packet bình thường. Việc thêm vào UDP header sẽ làm cho checksum thay đổi do đó gói tin có UDP header này sẽ luôn được reset checksum=0.
    Phạm Minh Tuấn

    Email : phamminhtuan@vnpro.org
    Yahoo : phamminhtuan_vnpro
    -----------------------------------------------------------------------------------------------
Trung Tâm Tin Học VnPro
149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
Tel : (08) 35124257 (5 lines)
Fax: (08) 35124314

Home page: http://www.vnpro.vn
Support Forum: http://www.vnpro.org
- Chuyên đào tạo quản trị mạng và hạ tầng Internet
- Phát hành sách chuyên môn
- Tư vấn và tuyển dụng nhân sự IT
- Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

Network channel: http://www.dancisco.com
Blog: http://www.vnpro.org/blog

  • #2
    Bài viết rất hay!

    Nhưng trong quá trình truyền key thì quá trình mã hóa đối xứng bị mất key và dữ liệu sẽ bị ăn cắp. Như vậy thì phải làm như thế nào?

    Còn quá trình mã hóa bất đối xứng, làm sao để mình truyền key cho ng kia biết dc?

    Vì quá trình chứng thực, bắt buộc phải truyền key đi trong đường truyền. Cái này e chưa hiểu lắm.:D

    A có thêm tài liệu về IPSec này ko? Em đọc qua thì biết vậy, chứ chưa hiểu thực sự lắm.
    One Heart One Love

    Comment


    • #3
      Chào bạn,

      Như mình giải thích ngắn gọn như trên giúp cho các bạn dễ dàng hiểu. Chứ để tạo ra key đối xứng thì cũng phải cần vài bước.
      Đầu tiên mỗi bên tự sinh public key(R1 sẽ được truyền đi trong Diffie-hellman) và Private key(R1 tự giữ).
      R2 cũng vậy, tự sinh public key(R2 sẽ được truyền đi trong Diffie-hellman) và Private key(R2 tự giữ).

      Private_key_R1 + Public_key_R2 = Private_key_R2 + Public_key_R1= Shared_key
      Tuy quá trình truyền public key như dạng clear text, nhưng vì mỗi bên còn giữ Private key nên cũng đảm bảo được an toàn.



      Và những key dùng trong pha 2 (Shared key đối với mã đối xứng) thì chỉ dùng trong vòng 1h rồi lại thương lượng tiếp key mới -> điều này giúp Shared_key dùng cho giải mã cũng khá an toàn lần 2.

      Đối với mã hóa bất đối xứng thì sẽ sử dụng một CA (giống như công an TP.HCM) cấp cho bạn certificate (giống như CMND vậy). Nói cấp chứ thực ra nhiệm vụ công an là đóng cho bạn một cái mộc để đảm bảo đó là bạn chứ không giả mạo người khác.
      Tức có nghĩa là Public và Private do bạn tự sinh, CA sẽ xác nhận Public_key bạn gửi cho bên kia là hợp lệ.
      Cơ sở hạ tầng dùng CA gọi là PKI, dùng Public_key để mã hóa, Private_key để giải mã.
      vd: R1 dùng public_key_R2 để mã. Gói tin R1 gửi đến thì R2 thì R2 sẽ dùng Private_key_R2 giải mã.





      Bạn có thể xem cuốn ISCW student guide volume 1. Trong đó có chỉ dẫn bạn các tài liệu đọc thêm như các RFC chẳng hạn.
      Phạm Minh Tuấn

      Email : phamminhtuan@vnpro.org
      Yahoo : phamminhtuan_vnpro
      -----------------------------------------------------------------------------------------------
      Trung Tâm Tin Học VnPro
      149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
      Tel : (08) 35124257 (5 lines)
      Fax: (08) 35124314

      Home page: http://www.vnpro.vn
      Support Forum: http://www.vnpro.org
      - Chuyên đào tạo quản trị mạng và hạ tầng Internet
      - Phát hành sách chuyên môn
      - Tư vấn và tuyển dụng nhân sự IT
      - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

      Network channel: http://www.dancisco.com
      Blog: http://www.vnpro.org/blog

      Comment


      • #4
        Úp lại dùm mấy cái hình đi tuấn ơi

        Tóc chưa bạc đừng ngăn dòng nhiệt huyết,
        Người còn xuân đừng tính việc đi tu.
        Dẫu đời người tỉ như cánh phù du,
        Nhưng còn sống ta vẫn còn tranh đấu.

        Comment


        • #5
          xin up lai hình với mình đang cần gấp

          Comment

          • Working...
            X