Khung giao thức được sử dụng trong IPSec Một số tính năng được khuyến khích sử dụng khi làm việc với IPSec.– Các giao thức bảo mật IPSec + AH Authentication Header: cung cấp tính toàn vẹ
Trang 1MỤC LỤC
MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ INTERNET PROTOCOL SECURITY (IPSEC) 1
1.1 Giới thiệu IPsec 1
1.2 Khung giao thức IPsec 1
1.3 Tính năng của IPsec 2
1.3.1 Sự bảo mật dữ liệu (Data Confidentiality): 2
1.3.2 Sự toàn vẹn dữ liệu (Data Integrity): 3
1.3.3 Chứng thực nguồn dữ liệu (Data Origin Authentication): 3
1.3.4 Tránh trùng lặp (Anti-replay): 3
1.4 Các giao thức IPsec 3
1.4.1 Internet Key Exchange (IKE) 3
1.4.2 Encapsulating Security Payload (ESP): 4
1.4.3 Authentication Header (AH) 5
1.5.Hoạt động của IPSec 6
CHƯƠNG 2: INTERNET PROTOCOL SERCURITY TRONG 8
IPV6 VÀ IPV4 8
2.1 Internet protocol security trong IPv6 8
2.1.1 Mào đầu gói tin IPv6 8
2.1.1.1 Chiều dài phần mào đầu 8
2.1.1.2 Định dạng các trường mào đầu 8
2.1.1.3 Các trường mào đầu mở rộng 10
2.1.2 Tích hợp bảo mật IPsec trong địa chỉ IPv6 13
2.1.3 Nguyên tắc hoạt động của các giao thức bảo mật trong địa chỉ IPv6 15
2.1.3.1 Nguyên tắc hoạt động của AH 15
2.1.3.2 Nguyên tắc hoạt động của ESP 19
2.1.4 Quản lý khóa 22
3.1 Triển khai hệ thống IPsec/VNP trên Windows Server 2003 23
3.1.1 Mô hình trỉnh khai 23
3.1.2 Các bước thực hiện 23
3.2 Cấu hình IPsec trên thiết bị mạng 35
Trang 2CHƯƠNG 1: TỔNG QUAN VỀ INTERNET PROTOCOL SECURITY
(IPSEC) 1.1 Giới thiệu IPsec
IPSec là một tập các giao thức chuẩn, cung cấp các dịch vụ bảo mật chonhững gói tin IP tại lớp Network Những dịch vụ này bao gồm các điều khiểntruy cập access control list, toàn vẹn dữ liệu-data integrity, xác thực-authentication, tránh trùng lặp gói tin -against replay và sự bảo mật dữ liệu -datasecurity IPSec là sự lựa chọn hàng đầu cho việc bảo mật trong VPN
1.2 Khung giao thức IPsec
IPSec là một tập các chuẩn mở, được phát triển bởi IETF
Khung giao thức được sử dụng trong IPSec
Một số tính năng được khuyến khích sử dụng khi làm việc với IPSec.– Các giao thức bảo mật IPSec
+ AH (Authentication Header): cung cấp tính toàn vẹn phi kết nối vàchứng thực nguồn gốc dữ liệu cho các gói dữ liệu IP và bảo vệ chống lại cáccuộc tấn công replay
+ ESP (Encapsulation Security Payload): cung cấp tính năng bảo mật,chứng thực nguồn gốc dữ liệu, tính toàn vẹn phi kết nối và dịch vụ chống replay
– Các thuật toán mã hóa
+ DES (Data Encryption Standard): Được phát triển bởi IBM DES sửdụng 1 khóa 56-bít, đảm bảo hiệu năng mã hóa cao DES là một hệ thống mãhóa khóa đối xứng
+ 3 DES (Triple DES): là một biến thể của DES 56-bít Hoạt động tương
Trang 3tự như DES, trong đó dữ liệu được chia thành các khối 64 bít 3DES thực thimỗi khối ba lần, mỗi lần với một khóa 56 bít độc lập 3DES cung cấp sức mạnhkhóa đáng kể so với DES.
– Các chức năng toàn vẹn dữ liệu
+ HMAC (Hash – ased Message Authentication Code): là một thuật toántoàn vẹn dữ liệu đảm bảo tính toàn vẹn của bản tin Tại đầu cuối, bản tin và mộtkhóa chia sẻ bí mật được gửi thông qua một thuật toán băm, trong đó tạo ra mộtgiá trị băm Bản tin và giá trị băm được gửi qua mạng
+ MD5 (Message Digest 5): là một hàm băm để mã hóa với giá trị băm là
128 bít MD5 biến đổi một thông điệp có chiều dài bất kỳ thành một khối cókích thước cố định 128 bít Thông điệp đưa vào sẽ được cắt thành các khối 512bít, thông điệp sau đó được độn sao cho chiều dài của nó chia chẵn cho 512
+ SHA-1 (Secure Hash Algorithm -1): Sử dụng một khóa 160 bít, 224bít…
– Các phương pháp xác thực (peer Authentication)
+ Rivest, Shamir, and Adelman (RSA) Digital Signatures: là một hệ thốngmật mã khóa bất đối xứng Nó sử dụng một chiều dài khóa là 512 bít, 768 bít,
1024 bít hoặc lớn hơn IPsec không sử dụng RSA để mã hóa dữ liệu Chỉ sửdụng RSA để mã hóa trong giai đoạn xác thực ngang hàng
+ RSA Encrypted Nonces
– Các giao thức quản lý khoá
+ ISAKMP (Internet Security Association and Key Management Protocol
1.3 Tính năng của IPsec
1.3.1 Sự bảo mật dữ liệu (Data Confidentiality):
Trang 4Đảm bảo dữ liệu được bảo mật, tránh những kẻ tấn công phá hoại bằngcách thay đổi nội dung hoặc đánh cắp dữ liệu quan trọng Việc bảo vệ dữ liệuđược thực hiện bằng các thuật toán mã hóa như DES, 3DES và AES Tuy nhiên,đây là một tính năng tùy chọn trong IPSec.
1.3.2 Sự toàn vẹn dữ liệu (Data Integrity):
Đảm bảo rằng dữ liệu không bị thay đổi trong suốt quá trình trao đổi Dataintegrity bản thân nó không cung cấp sự bảo mật dữ liệu Nó sử dụng thuật toánbăm (hash) để kiểm tra dữ liệu bên trong gói tin có bị thay đổi hay không.Những gói tin nào bị phát hiện là đã bị thay đổi thì sẽ bị loại bỏ Những thuậttoán băm: MD5 hoặc SHA-1
1.3.3 Chứng thực nguồn dữ liệu (Data Origin Authentication):
Mỗi điểm cuối của VPN dùng tính năng này để xác định đầu phía bên kia
có thực sự là người muốn kết nối đến mình hay không Lưu ý là tính năng nàykhông tồn tại một mình mà phụ thuộc vào tính năng toàn vẹn dữ liệu Việcchứng thực dựa vào những kĩ thuật: Pre-shared key, RSA-encryption, RSA-signature
1.4.1 Internet Key Exchange (IKE)
Là giao thức thực hiện quá trình trao đổi khóa và thỏa thuận các thông sốbảo mật như: thuật toán mã hóa được áp dụng, khoảng thời gian khóa cần đượcthay đổi Sau khi thỏa thuận xong thì sẽ thiết lập “hợp đồng” giữa 2 bên, khi đóIPSec SA (Security Association) được tạo ra
SA là những thông số bảo mật đã được thỏa thuận thành công, các thông
số SA này sẽ được lưu trong cơ sở dữ liệu của SA
Ngoài ra IKE còn dùng 2 giao thức khác để chứng thực đầu cuối và tạo
Trang 5khóa: ISAKMP (Internet Security Association and Key Management Protocol)
Lưu ý: Giao thức IKE dùng UDP port 500
1.4.2 Encapsulating Security Payload (ESP):
Là giao thức cung cấp sự bảo mật, toàn vẹn, chứng thực nguồn dữliệu và những tùy chọn khác, chẳng hạn anti-replay ESP cung cấp gần như toàn
bộ tính năng của IPSec, ngoài ra nó còn cung cấp tính năng mã hóa dữ liệu Do
đó, ESP được sử dụng phổ biến trong IPSec VPN ESP bao gồm những tínhnăng sau:
Tính bảo mật (Data confidentiality)
Tính toàn vẹn dữ liệu (Data integrity)
Chứng thực nguồn dữ liệu (Data origin authentication)
Tránh trùng lặp (Anti-replay)
Những tính năng trên cũng là những tính năng đặc trưng và chính yếunhất của IPSec
Lưu ý: ESP sử dụng IP protocol number 50
Hoạt dộng của ESP
ESP chèn một header vào sau phần IP header và trước header của giaothức lớp trên Header này có thể là một IP header mới trong tunnel mode hoặc
IP header của gói tin ban đầu trong transport mode Hình sau cho thấy vị trí củaESP header trong transport mode và tunnel mode:
Trang 6IP Packet được bảo vệ bởi ESP trong Tunnel Mode
1.4.3 Authentication Header (AH)
Là giao thức cung cấp sự toàn vẹn, chứng thực nguồn dữ liệu và một sốtùy chọn khác Nhưng khác với ESP, nó không cung cấp chức năng bảo mật(data confidential) AH đảm bảo dữ liệu không bị thay đổi trong quá trình truyềndẫn nhưng không mã hóa dữ liệu
Trường AH chỉ định cái sẽ theo sau AH header Trong transport mode, nó
sẽ là giá trị của giao thức lớp trên đang được bảo vệ (chẳng hạn UDP hoặcTCP) Trong tunnel mode, giá trị này là 4 Vị trí của AH trong transport vàtunnel mode được mô tả ở hình sau:
Trang 7Trong tunnel mode, AH đóng gói gói tin IP và thêm vào một IP headertrước AH header
IP Packet được bảo vệ bởi AH trong Tunnel Mode
1.5.Hoạt động của IPSec
Mục đích chính của IPSec là bảo vệ luồng dữ liệu mong muốn dựa trêncác dịch vụ bảo mật có sẵn, hoạt động của IPSec có thể chia thành 5 bước chínhnhư sau:
Hoạt động của IPSec
A gửi các traffic cần bảo vệ tới B
A gửi các traffic cần bảo vệ tới B
IKE SA ← IKE Phase 1 → IKE SA
A gửi các traffic cần bảo vệ tới B
IPSec SA ← IKE Phase 2 → IPSec SA
A gửi các traffic cần bảo vệ tới B
Trang 8 A gửi các traffic cần bảo vệ tới B
Bước 1:
Traffic cần được bảo vệ khởi tạo quá trình IPSec Ở đây, các thiết đầucuối IPSec sẽ nhận ra đâu là lưu lượng cần được bảo vệ thông qua trường địachỉ
Bước 2:
IKE Phase 1 – IKE xác thực các bên và một tập các dịch vụ bảo mậtđược thoả thuận và công nhận để thiết lập IKE SA Trong phase này, sẽ thiết lậpmột kênh truyền thông bảo mật để tiến hành thoả thuận IPSec SA trong Phase 2
Bước 3:
IKE Phase 2 – IKE thoả thuận các tham số IPSec SA và thiết lập cácIPSec SA tương đương ở hai phía Các tham số bảo mật này được sử dụng đểbảo vệ dữ liệu và các gói tin trao đổi giữa các điểm đầu cuối Kết quả cuối cùngcủa hai bước trên sẽ tạo ra một kênh thông tin bảo mật giữa hai bên
Trang 9CHƯƠNG 2: INTERNET PROTOCOL SERCURITY TRONG
IPV6 VÀ IPV4 2.1 Internet protocol security trong IPv6
IP Security (IPSec) là tiêu chuẩn của IETF (Internet Engineering TaskForce) nhằm cung cấp bảo mật cho mạng Internet IPSec đảm bảo tính toàn vẹn,xác thực và bảo mật
2.1.1 Mào đầu gói tin IPv6
IPv6 chỉ có 6 trường và 2 địa chỉ, IPv6 header có kích thước cố định Với kích thước cố định thì một router có thể xử lý gói tin một cách hiệu quả
2.1.1.1 Chiều dài phần mào đầu
Gói tin IPv6 có hai dạng mào đầu: mào đầu cơ bản và mào đầu mở rộng.Phần mào đầu cơ bản có chiều dài cố định 40 byte, chứa những thông tin cơ bảntrong xử lý gói tin IPv6 Những thông tin liên quan đến dịch vụ mở rộng kèmtheo được chuyển hẳn tới một phân đoạn khác gọi là mào đầu mở rộng Cấu trúcgói tin IPv6:
Cấu trúc gói tin IPv6
2.1.1.2 Định dạng các trường mào đầu
Cấu trúc mào đầu của IPv6 header gồm:
Phiên bản (Version): Gồm 4 bít được sử dụng để xác định phiên bản củagiao thức IP đang được sử dụng và nó có giá trị là 6 với IPv6
Phân dạng lưu lượng (Traffic Class): Gồm 8 bít thực hiện chức năng
Trang 10tương tự trường Dạng dịch vụ (Type of Service) của IPv4 Trường này được sửdụng để biểu diễn mức độ ưu tiên của gói tin, mỗi điểm kết nối IPv6 có thể đánhdấu gói tin với từng loại dữ liệu, ví dụ gói tin nên được truyền với tốc độ nhanhhay thông thường.
Nhãn dòng (Flow Label): Có chiều dài 20 bít, là trường mới được thiết lậptrong IPv6 Trường này được sử dụng để chỉ định gói tin thuộc một dòng (Flow)nhất định giữa nguồn và đích, yêu cầu bộ định tuyến IPv6 phải có cách xử lý đặcbiệt Bằng cách sử dụng trường này, nơi gửi gói tin có thể xác định một chuỗicác gói tin, ví dụ gói tin của dịch vụ thoại VoIP thành một dòng và yêu cầu chấtlượng cụ thể cho dòng đó Khi một router xác định dòng lưu lượng lần đầu, nó
sẽ nhớ dòng lưu lượng đó, cũng như các xử lý đặc biệt ứng với lưu lượng này,
và khi các lưu lượng khác thuộc dòng này đến, nó sẽ xử lý nhanh hơn là xử lýtừng packet
Chiều dài tải dữ liệu (Payload Length): Gồm 16 bít, tương tự như trườngtotal length của IPv4, xác định tổng kích thước của gói tin IPv6 bao gồm cảphần mào đầu mở rộng (không chứa header)
Next header: Gồm 8 bít, thay thế trường Thủ tục (Protocol) Trường nàychỉ định đến mào đầu mở rộng đầu tiên của gói tin IPv6, đặt sau mào đầu cơ bảnhoặc chỉ định tới thủ tục lớp trên như TCP, UDP, ICMPv6 khi trong gói tin IPv6không có mào đầu mở rộng
Hop limit: Gồm 8 bít, được sử dụng để giới hạn số hop mà packet đi qua,được sử dụng để tránh cho packet được định tuyến vòng vòng trong mạng.Trường này giống như trường TTL (Time-To-Live) của IPv4
Source Address: Gồm 128 bít, xác định địa chỉ nguồn của gói tin
Destination Address: Gồm 128 bít, xác định địa chỉ đích của gói tin
Trang 11Định dạng gói tin IPv6
2.1.1.3 Các trường mào đầu mở rộng
Mào đầu mở rộng (extension header) là đặc tính mới của thế hệ địa chỉIPv6
Những thông tin liên quan đến dịch vụ kèm theo được chuyển hẳn tới mộtphân đoạn khác gọi là header mở rộng, mỗi header mở rộng được nhận dạng bởitrường Next Header Các header mở rộng được đặt giữa IPv6 header và headercủa các giao thức lớp trên, được sử dụng để mang các thông tin tuỳ chọn ở lớpmạng (Network layer) trong gói tin Một gói tin IPv6 có thể chứa một hay nhiềuheader mở rộng, được đặt sau mào đầu cơ bản Các mào đầu mở rộng được đặtnối tiếp nhau theo thứ tự quy định, mỗi dạng có cấu trúc trường riêng Thôngthường, các mào đầu mở rộng được xử lý tại đích Tuy nhiên cũng có dạng màođầu mở rộng được xử lý tại mọi bộ định tuyến mà gói tin đó đi qua, đó là dạngmào đầu mở rộng Từng bước (Hop by Hop) Mỗi header mở rộng sẽ có giá trịđại diện cho nó Ví dụ: TCP (6); UDP (7); Routing hea
Trang 12der (43); Fragment header (44); ESP (50); AH (51); ICMP (58) [1]
Các giá trị của trường Next Header
Mào đầu cơ bản và mọi mào đầu mở rộng IPv6 đều có trường mào đầu
Trang 13tiếp theo (Next Header) chiều dài 8 bít Trong mào đầu cơ bản, trường NextHeader sẽ xác định gói tin có tồn tại mào đầu mở rộng hay không Nếu không cómào đầu mở rộng giá trị của trường sẽ xác định phần mào đầu của tầng cao hơn(TCP hay UDP…) phía trên của tầng IP Nếu có, giá trị trường Next Header chỉ
ra loại mào đầu mở rộng đầu tiên theo sau mào đầu cơ bản Tiếp theo, trườngNext Header của mào đầu mở rộng thứ nhất sẽ trỏ tới mào đầu mở rộng thứ hai,đứng kế tiếp nó Trường Next Header của mào đầu mở rộng cuối cùng sẽ có giátrị xác định mào đầu tầng cao hơn
Mào đầu mở rộng của địa chỉ IPv6
Khi gói đi từ nguồn đến đích, các trạm trung gian không được phép xử lýcác Extension Header đến khi đến trạm đích Và việc xử lý các Header này cũngphải diễn ra theo đúng tuần tự mà các Header sắp xếp trong gói tin IPv6 Khôngbao giờ được phép xảy ra trường hợp trạm đích quét qua toàn bộ gói tin và chọn
ra một Header nào đó để xử lý trước Trường hợp ngoại lệ là trường hợp by-hop Extension Header, sự hiện diện của Hop-by-hop Extension Header buộcgói tin phải bị kiểm tra bởi tất cả các trạm trung gian trên đường từ nguồn đếnđích, bao gồm cả trạm nguồn và đích Vì vậy, Hop-by-hop Extension Headerluôn phải đứng sau IPv6 Header Sự hiện diện của Extension Header này đượcchỉ thị bởi giá trị 0 trong Next-Header của IPv6 Header Kích thước của các
Trang 14Hop-Extension Header có thể tùy ý, nhưng luôn là bội số của 8 octet Nếu trong góitin có chứa nhiều Extension Header, chúng được sắp xếp theo thứ tự sau:
IPv6 Header
Hop-by-Hop Options Header
Destination Options Header: Được xử lý bởi trạm đích đầu tiêntrong IPv6 Header và những trạm còn lại được chỉ ra trong RoutingHeader
Định dạng của Extension Header
2.1.2 Tích hợp bảo mật IPsec trong địa chỉ IPv6
Cấu trúc địa chỉ IPv6 sử dụng IPSec để đảm bảo tính toàn vẹn, bảo mật vàxác thực nguồn gốc dữ liệu sử dụng hai mào đầu mở rộng tùy chọn: mào đầuXác thực- (AH -Authentication Header) và mào đầu Mã hóa (ESP - Encrypted
Trang 15Security Payload) Hai Header này có thể được sử dụng chung hay riêng để hỗtrợ nhiều chức năng bảo mật.
Các chế độ làm việc chính của giao thức IPSec, bao gồm:
Transport mode:
Chế độ hoạt động này bảo vệ giao thức tầng trên và các ứng dụng Trong
đó, phần IPSec header được chèn vào giữa phần IP header và phần header củagiao thức tầng trên.Vì vậy, chỉ có tải (IP payload) là được mã hóa và IP headerban đầu là được giữ nguyên vẹn Transport mode có thể được dùng khi cả haihost hỗ trợ IPSec Hoạt động của ESP trong chế độ này được sử dụng để bảo vệthông tin giữa hai host cố định và bảo vệ các giao thức lớp trên của IP datagram.Trong Transport Mode, AH header được chèn vào trong IP datagram sau IPheader và các tuỳ chọn Ở trong chế độ này, AH được xem như phần tải đầucuối tới đầu cuối (end-to-end payload), nên sẽ xuất hiện sau các phần header mởrộng hop-to-hop, routing, và fragmentation Còn phần mào đầu đích(Destination Options Header) có thể được đặt trước hoặc sau AH
IPSec trong chế độ Transport
Tunnel mode:
Chế độ này bảo vệ toàn bộ gói dữ liệu Toàn bộ gói dữ liệu IP được đónggói trong một gói dữ liệu IP khác Và một IPSec header được chèn vào giữaphần đầu nguyên bản (Original Header) và phần đầu mới của IP Trong chế độTunnel IP header ở đầu vào mang địa chỉ nguồn và địa chỉ đích cuối cùng, còn
Trang 16IP header ở đầu ra mang địa chỉ để định tuyến qua Internet Trong chế độ này,
AH bảo vệ toàn bộ gói tin IP bên trong, bao gồm cả IP header đầu vào
IPSec trong chế độ Tunnel
2.1.3 Nguyên tắc hoạt động của các giao thức bảo mật trong địa chỉ IPv6 2.1.3.1 Nguyên tắc hoạt động của AH
AH được mô tả trong RFC 4302, là một IPSec header cung cấp xác thựcgói tin và kiểm tra tính toàn vẹn AH cho phép xác thực và kiểm tra tính toànvẹn dữ liệu của các gói tin IP truyền giữa 2 hệ thống Nó là phương tiện để kiểmtra xem dữ liệu có bị thay đổi trong khi truyền hay không Tuy nhiên các dữ liệuđều truyền dưới dạng bản Plaintext vì AH không cung cấp khả năng mã hóa dữliệu
Trang 17Định dạng mào đầu IPsec AH
Định dạng của AH
Next Header:
Trường này có độ dài 8 bits để xác định mào đầu tiếp theo sau AH Giá trịcủa trường này được lựa chọn từ các tập các giá trị IP Protocol Numbers địnhnghĩa bởi IANA- Internet Assigned Numbers Authority (xem chi tiết hình dưới)
SPI (Security Parameters index):
Đây là một số 32 bits bất kì, cùng với địa chỉ đích và giao thức an ninhESP cho phép nhận dạng duy nhất chính sách liên kết bảo mật SA (xác định giaothức IPSec và các thuật toán nào được dùng để áp dụng cho gói tin) cho gói dữliệu này Các giá trị SPI 1-255 được dành riêng để sử dụng trong tương lai SPIthường được lựa chọn bởi phía thu khi thiết lập SA
Sequence Number :
Trường này có độ dài 32 bits, chứa một giá trị đếm tăng dần (SN), đây làtrường không bắt buộc cho dù phía thu không thực hiện dịch vụ chống trùng lặpcho một SA cụ thể nào đó Việc thực hiện SN tùy thuộc phía thu, nghĩa là phía
Trang 18phát luôn phải truyền trường này, còn phía thu có thể không cần phải xử lí nó.
Bộ đếm của phía phát và phía thu đều được khởi tạo 0 khi một SA được thiết lập(Gói đầu tiên truyền đi với SA đó sẽ có SN=1)
Authentication Data:
Trường có độ dài biến đổi chứa một giá trị kiểm tra tính toàn vẹn ICV(Integrity Check Value) cho gói tin, có độ dài là số nguyên lần 32 bits Trườngnày có thể chứa thêm một phần dữ liệu đệm để đảm bảo độ dài của AH header là
số nguyên lần 32 bít (đối với IPV4) hoặc 64 bít (đối với IPV6)
Chế độ xác thực:
Xác thực từ đầu cuối đến đầu cuối (End-to-End Authentication):
Là trường hợp xác thực trực tiếp giữa hai hệ thống đầu cuối (giữa máychủ với trạm làm việc hoặc giữa hai trạm làm việc), việc xác thực này có thểdiễn ra trên cùng mạng nội bộ hoặc giữa hai mạng khác nhau, chỉ cần hai đầucuối biết được khoá bí mật của nhau Trường hợp này sử dụng chế độ vậnchuyển (Transport Mode) của AH
Xác thực từ đầu cuối đến trung gian (End-to-IntermediateAuthentication):
Là trường hợp xác thực giữa hệ thống đầu cuối với một thiết bị trung gian(router hoặc firewall) Trường hợp này sử dụng chế độ đường hầm (TunnelMode) của AH
Hai chế độ xác thực của AH