Dùng cookies để tránh bị tấn công từ chối dịch vụ. Dựa vào bản chất của
Diffie-Hellman là dùng các phép tính lũy thừa bậc cao trên các sốnguyên lớn,
nên hacker chỉcần liên tiếp gởi các giá trịmạo nhận là Xa, hệthống sẽliên
tiếp thực hiện các phép tính đểxác định khóa và do đó không có khảnăng xử
lý các công việc khác. Cookies là các sốgiảngẫu nhiên, được mỗi bên chọn và
trao đổi nhau ngay ởgiai đọan khởi tạo, và sau đó dùng lại các cookies này
trong các message tiếp theo sau. Việc một máy khác cốý tạo ra các message
giảnhằm tấn công hệthống sẽ được hệthống phát hiện bằng cách kiểm tra các
giá trịcookies đã thống nhất ban đầu. Đểgắn cookies với các thông tin nhận
dạng hệ thống, cookies thường được tạo ra dùng hàm băm (MD5) trên các
thông tin cố định như địa chỉIP nguồn, IP đích, port nguồn, port đích và một
khóa bí mật được chọn riêng.
15 trang |
Chia sẻ: lylyngoc | Lượt xem: 3872 | Lượt tải: 2
Bạn đang xem nội dung tài liệu Bảo mật mạng với Ip Security, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
CHƯƠNG 5
BẢO MẬT MẠNG VỚI IP SECURITY
I- TỔNG QUAN VỀ IPSec
I.1- Giới thiệu
Giao thức TCP/IP đóng một vai trò rất quan trọng trong các hệ thống mạng hiện nay.
Về nguyên tắc, có nhiều tùy chọn khác nhau về giao thức để triển khai các hệ thống mạng như
TCP/IP, IPX/SPX, NetBEUI, Apple talk, …Tuy nhiên, TCP/IP là lựa chọn gần như bắt buộc
do giao thức này được sử dụng làm giao thức nền tảng của mạng Internet.
Vào thời điểm thiết kế giao thức này, vấn đề bảo mật thông tin chưa thật sự được quan
tâm, do đó, các giao thức trong bộ TCP/IP hầu như không được trang bị bất kỳ một cơ chế
bảo mật nào. Cấu trúc gói dữ liệu (IP, TCP, UDP và cả các giao thức ứng dụng) được mô tả
công khai, bắt được một gói IP trên mạng, ai cũng có thể phân tích gói để đọc phần dữ liệu
chứa bên trong, đó là chưa kể hiện nay, các công cụ bắt và phân tích gói (Packet capture)
được xây dựng với các tính năng mạnh và phát hành rộng rãi.
Việc bổ sung các cơ chế bảo mật vào mô hình TCP/IP, bắt đầu từ giao thức IP là một
nhu cầu cấp bách. IP security (IPSec) là một giao thức được chuNn hóa bới IETF từ năm 1998
nhằm mục đích cung cấp các cơ chế mã hóa và xác thực thông tin cho chuỗi thông tin truyền
đi trên mạng bằng giao thức IP. IPSec được thiết kế như phần mở rộng của giao thức IP, được
thực hiện thống nhất trong cả hai phiên bản của IP và IPv4 và IPv6. Đối với IPv4, việc áp
dụng IPSec là một tùy chọn nhưng đối với IPv6, giao thức bảo mật này được triển khai bắt
buộc.
Các ứng dụng điển hình của IPSec bao gồm:
• Kết nối giữa các chi nhánh của một tổ chức thông qua mạng Internet: bằng
cách xây dựng các mạng riêng ảo VPN (Virtual Private Network) trên nền của
mạng WAN công cộng hoặc mạng Internet. Các tổ chức có thể kết nối các
mạng con ở các chi nhánh của mình lại thành một mạng riêng với chi phí thấp
nhưng vẫn đảm bảo được độ an tòan. Mô hình này còn được gọi là mô hình
site-to-site VPN.
• Truy xuất từ xa thông qua mạng Internet: Thực chất đây là một dạng khác của
VPN (remote access VPN). Với IPSec, người dùng có thể kết nối đến hệ thống
mạng nội bộ của mình từ một điểm bất kỳ nào đó trên Interent, đảm bảo truy
xuất được các tài nguyên nội bộ một cách an toàn.
• Nâng cao tính an tòan của các giao dịch thương mại trên mạng Internet, áp
dụng cho các website bán hàng qua mạng hoặc các dịch vụ thanh tóan qua
Internet. Người dùng thiết lập kết nối đến các hệ thống này thông qua các kết
nối có hỗ trợ IPSec, do đó mặc dù thông tin vẫn truyền đi qua mạng Internet
công cộng nhưng tính bảo mật vẫn được đảm bảo.
Như vậy, ứng dụng rộng rãi nhất của IPSec chính là làm công nghệ nền tảng để triển
khai các mạng VPN. Tuy nhiên, IPSec là một giao thức phức tạp, đồng thời còn Nn chứa một
số vấn đề về tính an toàn, trong khi thực tế hiện nay còn nhiều giải pháp thiết lập VPN khác
(L2TP, MPLS, SSL, …), cho nên việc ứng dụng IPSec cũng còn hạn chế.
2
Các ưu điểm của IPSec:
-Khi IPSec được triển khai trên bức tường lửa hoặc bộ định tuyến của một mạng riêng,
thì tính năng an tòan của IPSec có thể áp dụng cho tòan bộ lưu lượng vào ra mạng riêng đó
mà các thành phần khác không cần phải xử lý thêm các công việc liên quan đến bảo mật.
-IPSec được thực hiện bên dưới của lớp TCP và UDP, đồng thời nó họat động một
cách trong suốt với các lớp này. Do vậy, không cần phải thay đổi phần mềm hay cấu hình lại
các dịch vụ khi IPSec được triển khai.
-IPSec có thể được cấu hình để họat động một cách trong suốt đối với các ứng dụng
đầu cuối, điều này giúp che giấu những chi tiết cấu hình phức tạp mà người dùng phải thực
hiện khi kết nối đến mạng nội bộ từ xa thông qua mạng Internet.
I.2- Kiến trúc IPSec
Thiết bị mạng
có hỗ trợ IPSec
Thiết bị mạng
có hỗ trợ IPSec
Thiết bị đầu cuối
có hỗ trợ IPSec
Mạng WAN /
Internet
Mạng LAN / intranet Mạng LAN / intranet
Tiêu đề IP
(IP header)
Tiêu đề IPSec
(IPSec header)
Dữ liệu của gói IP
(IP Payload)
Các thành phần của gói dữ liệu:
Hình 3.5: Ứng dụng của IPSec
3
IPSec là một giao thức phức tạp, dựa trên nền của nhiều kỹ thuật cơ sở khác nhau như mật
mã, xác thực, trao đổi khóa, …Xét về mặt kiến trúc, IPSec được xây dựng dựa trên các thành
phần bảo mật cơ bản sau đây, mỗi thành phần được định nghĩa trong một tài liệu riêng tương
ứng (hình 3.6):
-Kiến trúc IPSec (RFC 2401): Quy định cấu trúc, các khái niệm và yêu cầu của IPSec.
-Giao thức ESP (RFC 2406): Mô tả giao thức ESP, là một giao thức mật mã và xác
thực thông tin trong IPSec.
-Giao thức AH (RFC 2402): Định nghĩa một giao thức khác với chức năng gần giống
ESP. Nhưng vậy, khi triển khai IPSec, người sử dụng có thể chọn dùng ESP hoặc AH. Mỗi
giao thức có ưu và nhược điểm riêng, sẽ được trình bày trong phần này.
-Thuật tóan mật mã: Định nghĩa các thuật tóan mã hóa và giải mã sử dụng trong
IPSec. IPSec dựa chủ yếu vào các giải thuật mã hóa đối xứng.
-Thuật tóan xác thực: Định nghĩa các thuật tóan xác thực thông tin sử dụng trong AH
và ESP.
-Quản lý khóa (RFC 2408): Mô tả các cơ chế quản lý và trao đổi khóa trong IPSec.
-Miền thực thi (Domain of Interpretation_DOI): Định nghĩa môi trường thực thi
IPSec. Như đã trình bày, IPSec không phải là một công nghệ riêng biệt mà sự tổ hợp của
nhiều cơ chế, giao thức và kỹ thuật khác nhau, trong đó mỗi cơ chế, giao thức đều có nhiều
Kiến trúc IPSec
Giao thức ESP Giao thức AH
Thuật tóan mật mã Thuật tóan xác thực
DOI
Quản lý khóa
Hình 3.6: Kiến trúc IPSec
4
chế độ họat động khác nhau. Việc xác định một tập các chế độ cần thiết để triển khai IPSec
trong một tình huống cụ thể là chức năng của miền thực thi.
Xét về mặt ứng dụng, IPSec thực chất là một giao thức họat động song song với IP
nhằm cung cấp hai chức năng cơ bản mà IP nguyên thủy chưa có, đó là mã hóa và xác thực
gói dữ liệu. Một cách khái quát, có thể xem IPSec là một tổ hợp gồm 2 thành phần:
-Giao thức đóng gói, bao gồm AH và ESP.
-Giao thức trao đổi khóa IKE (Internet Key Exchange).
I.3- Các dịch vụ của IPSec
Các dịch vụ được cung cấp bởi IPSec bao gồm:
• Quản lý truy xuất (access control)
• Tòan vẹn dữ liệu ở chế độ không kết nối (connectionless integrity)
• Xác thực nguồn gốc dữ liệu (data origin authentication)
• Chống phát lại (anti-replay)
• Mã hóa dữ liệu (encryption)
• Bảo mật dòng lưu lượng (traffic flow confidentiality)
Việc cung cấp các dịch vụ này trong từng tình huống cụ thể phụ thuộc vào giao thức
đóng gói được chọn dùng là AH hay ESP. Theo đó, nếu giao thức được chọn là AH thì các
dịch vụ mã hóa và bảo mật dòng dữ liệu sẽ không được cung cấp.
I.4- Hai chế độ họat động của IPSec
IPSec (cả AH và ESP) cung cấp hai chế độ làm việc khác nhau:
-Chế độ vận chuyển (transport mode): cung cấp cơ chế bảo vệ cho dữ liệu của các lớp
cao hơn (TCP, UDP hoặc ICMP). Ở cơ chế này, phần dữ liệu (payload) của gói IP được áp
dụng các cơ chế bảo vệ (mật mã hoặc xác thực). Chế độ này thường dùng cho các kết nối từ
đầu cuối đến đầu cuối, ví dụ từ trạm làm việc đến máy chủ hoặc giữa hai trạm làm việc với
nhau.
-Chế độ đường hầm (tunnel mode): cung cấp cơ chế bảo vệ ở lớp IP, nghĩa là gói IP
cùng với các tiêu đề của AH hoặc ESP được gói thêm một lần nữa bằng các tiêu đề mới. Khi
đó, các gói IP gốc được xem như di chuyển trong một đường hầm (tunnel) từ đầu này đến đầu
kia của mạng mà các nút trung gian không xen vào được. Chế độ này thường được dùng trong
các SA nối giữa hai gateway của hai mạng.
Chế độ vận chuyển và chế độ đường hầm sẽ được trình bày riêng trong từng giao thức
AH và ESP.
I.5- Liên kết bảo mật
Mục tiêu của IPSec là cung cấp một cơ chế truyền an tòan đảm bảo tính tòan vẹn và
xác thực của các gói dữ liệu IP. Bản chất IP là một giao thức không có kết nối, và theo
5
nguyên tắc này, các gói IP sẽ được xử lý một cách độc lập nhau. Tuy nhiên, khi triển khai
IPSec với các dịch vụ như mã hóa, xác thực, điều khiển truy xuất, chống phát lại, … thì các
gói IP này cần phải nằm trong một mối liên quan nào đó, để hai đầu truyền nhận có thể áp
dụng các cơ chế bảo mật lên tòan bộ dòng dữ liệu một cách thống nhất (cần chú ý rằng IPSec
hòan tòan trong suốt đối với tất cả các giao thức phía trên IP).
IPSec định nghĩa một khái niệm để mô tả các quan hệ này, được gọi liên kết bảo mật
SA (Security association). Mỗi SA được xem như một quan hệ một chiều (đơn công) giữa hai
đầu truyền nhận dữ liệu, nhằm mục đích xác định các thông số bảo mật áp dụng cho luồng dữ
liệu theo chiều đó. Như vậy, một kết nối hai chiều thường thấy giữa hai hệ thống đầu cuối sẽ
bao gồm 2 SA. Mỗi SA chỉ sử dụng một giao thức đóng gói nhất định (AH hoặc ESP) chứ
không thể sử dụng đồng thời cả hai.
Mỗi SA được nhận dạng bởi 3 thông số sau đây:
• Security Parameters Index (SPI): là một chuỗi bit được gán cho SA có tác
dụng phân biệt giữa SA này với SA khác. SPI được đặt trong tiêu đề của AH
và ESP. Phía nhận sẽ chọn đúng SA tương ứng để xử lý các gói dữ liệu nhận
được.
• IP Destination Address: Đây là địa chỉ đầu cuối của SA, địa chỉ này là địa chỉ
của thiết bị mà SA kết thúc tại đó, có thể là địa chỉ của một thiết bị đầu cuối
hoặc của một thiết bị mạng (router, firewall, gateway).
• Security Protocol Identifier: Xác định các thông số bảo mật áp dụng trên SA,
cho biết SA sử dụng giao thức xác thực nào (AH hay ESP).
Như vậy, trong mỗi gói IP của IPSec, SA được nhận dạng bằng tổ hợp gồm địa chỉ
đích (destination address) và SPI IPSec (cả AH và ESP).
Ngòai ra, mỗi SA còn chứa nhiều thông số, tùy thuộc vào từng hệ thống đầu cuối khác
nhau. Các thông số này có thể là:
• Sequence number counter: một giá trị 32 bit dùng để tạo ra các số thứ tự của
các gói IP.
• Sequence Counter Overflow: Xác định các thức xử lý khi số thứ tự gói bị tràn
(dùng đến giá trị lớn nhất của 32 bit). Hai cách xử lý thường dùng là tạo ra một
sự kiện giám sát hệ thống (auditable event) và kết thúc truyền dữ liệu trên SA
hiện hành, đồng nghĩa với việc thiết lập một SA mới.
• Anti-Replay Window: thông số dùng trong dịch vụ chống phát lại, có chức
năng xác định gói IP nhận được là gói nguyên thủy hay gói phát lại.
• AH Information: thông số họat động cho giao thức đóng gói AH, bao gồm
thuật tóan xác thực, khóa, thời gian sống của khóa và các tham số khác.
• ESP Information: thông số họat động cho giao thức đóng gói ESP, bao gồm
thuật tóan mã hóa, thuật tóan xác thực, khóa, thờio gian sống của khóa, các giá
trị khởi tạo ban đầu cho ESP và các thông số khác.
• Lifetime of This Security Association: Thời gian tồn tại tối đa của SA, được xác
định bằng thời gian họac số bte dữ liệu đã truyền đi trên SA. Hết giới hạn này,
SA cần được giải tỏan và thiết lập SA mới.
6
• IPSec Protocol Mode: cho biết chế độ họat động của IPSec (vận chuyển hay
đường hầm).
• Path MTU: Xác định MTU trên SA (kích thuớc gói dữ liệu lớn nhất).
IPSec là một giao thức tùy chọn ở lớp IP, trong suốt với các giao thức lớp trên. Việc
thực hiện IPSec tại thiết bị đầu cuối làm tăng lưu lượng đối với bộ xử lý và làm chậm quá
trình trao đổi dữ liệu của người dùng. Do đó, IPSec cho phép người dùng tùy chọn việc có
dùng IPSec hay không và dùng IPSec cho lọai dữ liệu nào. Vídụ, trên một máy tính cá nhân,
người dùng chỉ cần thực hiện IPSec khi họ kết nối đến hệ thống mạng riêng của họ, còn khi
truy xuất đến các website công cộng thì dữ liệu được truyền đi dưới dạng các gói IP bình
thường vì các giao dịch này không cần có nhu cầu bảo mật. Việc phân biệt các gói IP để quyết
định áp dụng các dịch vụ bảo mật tương ứng trên IPSec được thực hiện thông qua một tập các
chính sách được định nghĩa sẵn trên thiết bị đầu cuối gọi là Security Policy Database (SPD).
SPD là một bảng danh sách các tiêu chuNn lọc gói cùng với nhận dạng các SA tương
ứng. Việc xử lý các gói IP xuất phát tại một thiết bị đầu cuối theo quy trình như sau:
1-Đọc các giá trị trong các trường tiêu đề của gói IP để xác định SA tương ứng với gói
này. Nếu không có SA nào được xác định, nghĩa là gói IP có thể được chuyển đi ngay mà
không cần áp dụng bất kỳ thao tác xử lý bảo mật nào.
2-Xác định SPI của SA tương ứng
3-Xử lý gói theo định nghĩa trong SA.
Các thông số trong tiêu đề gói IP thường được dùng để chọn lựa một SA trong SPD
thường dùng
-Địa chỉ nguồn của gói IP (Source IP address)
-Địa chỉ đích của gói IP (Destination IP address)
-Nhận dạng người dùng đầu cuối (UserID)
-Giao thức lớp trên (TCP, UDP, ICMP, …)
-Port nguồn và port đích
Các chính sách IPSec trên hệ điều hành Windows thực thi theo đúng quy trình này,
nhưng với các tên gọi khác nhau. SPD được gọi là IPSec policy, tiêu chuNn lọc gói gọi là filter
rule và SA tương ứng gọi là filter action.
II- GIAO THỨC XÁC THỰC AH
AH là một trong hai giao thức đóng gói dùng trong IPSec. Mục tiêu chính của AH là
đảm bảo tính tòan vẹn của dữ liệu chuyển đi trên mạng IP. AH cho phép xác thực người dùng,
xác thực ứng dụng và thực hiện các cơ chế lọc gói tương ứng. Ngòai ra, AH còn có khả năng
hạn chế các tấn công giả danh (spoofing) và tấn công phát lại (replay).
Cơ chế xác thực của AH dựa trên mã xác thực MAC (Message Authetication Code),
do đó, để thực thi AH thì hai đầu cuối của SA phải dùng chung một khóa bí mật, mặc dù
không dùng một thuật tóan mật mã nào.
II.1- Cấu trúc gói AH
7
Cấu trúc tiêu đề của gói AH (hình 3.7) bao gồm các phần sau:
-Next Header (8 bits): Nhận dạng kiểu tiêu đề đi liền sau tiêu đề của AH, dùng các số
nhận dạng IP theo quy định của Internet Assigned Number Authority (IANA).
-Payload Length (8 bits): Chiều dài của gói AH, tính bằng đơn vị 32 bit trừ đi 2. Ví
dụ, chiều dài phần dữ liệu xác thực là 96 bit (= 3 * 32 bit), cộng với chiều dài phần tiêu đề
AH (cố định) là 3 * 32 bit nữa thành 6 * 32 bit, khi đó giá trị của trường kích thước dữ liệu là
4.
-Reserved (16 bits): Phần dành riêng, chưa dùng.
-Security Parameters Index (SPI - 32 bits): Nhận dạng SA như đã trình bày ở trên.
-Sequence Number (32 bits): Số thứ tự gói.
-Authentication Data: Mã xác thực, có chiều dài thay đổi nhưng phải là bội số của 32
bit. Trường này chứa giá trị kiểm tra ICV (Integrity Check Value) hoặc MAC (Message
Authentication Code) cho tòan bộ gói
II.2- Cơ chế chống phát lại
Cơ chế này cho phép ngăn chặn các tấn công dạng phát lại (replay), tức là bắt gói, lưu
trữ rồi phát lại. Trường số thứ tự (Sequence number) trong tiêu đề AH được dùng để đánh dấu
thứ tự các gói được gởi đi trên một SA. Ban đầu, giá trị này được khởi tạo bằng 0 và tăng dần
sau mỗi gói được gởi. Để đảm bảo không có gói lặp lại, khi số thứ tự đạt giá trị cực đại (232-
1), nó sẽ không được quay lại giá trị 0 mà thay vào đó, một SA cùng với khóa mới được thiết
lập để tiếp tục việc truyền dữ liệu. Điều này đảm bảo trên cùng một SA, không bao giờ có hai
gói dữ liệu có số thứ tự trùng nhau.
Ở phía nhận, quá trình xử lý các gói nhận được thực hiện phức tạp hơn nhằm phát hiện
các gói lặp nhau. Do IP không thiết lập kết nối và không đảm bảo truyền tin cậy, do đó việc
sai thứ tự, lặp hoặc mất gói là điều có thể xảy ra. Việc phát hiện các sự cố này thực hiện theo
cơ chế dịch cửa sổ như mô tả ở hình 3.8. Cửa sổ là một bộ nhớ đệm được thiết kế theo cơ chế
Next header
Hình 3.7: Cấu trúc gói AH
Payload length Reserved
Security Parameters Index (SPI)
Sequence number
Authentication data
(Kích thước thay đổi)
Bit 0 8 16 31
8
hàng đợi, có kích thước là W (mặc định W = 64). Số thứ tự gói trong hàng đợi được xếp tăng
dần từ trái qua phải, như vậy, cạnh phải của cửa sổ là gói có số thứ tự là N thì cạnh trái của
cửa sổ sẽ là gói có số thứ tự N – W. Mỗi khi nhận được một gói dữ liệu đúng (kiểm tra bằng
mã xác thực) và số thứ tự của gói nằm trong khỏang từ N – W + 1 đến N, vị trí tương ứng với
số thứ tự trong cửa sổ được đánh dấu. Cơ chế thực hiện như sau:
• Nếu gói nhận được nằm trong vùng hợp lệ của cửa sổ (có số thứ tự từ N – W +
1 đến N) và là một gói mới thì giá trị MAC của gói đó sẽ được kiểm tra. Nếu
chính xác (tức gói đã được xác thực) thì khe tương ứng trong cửa sổ được đánh
dấu.
• Nếu gói nhận được nằm bên phải của cửa sổ (có số thứ tự lớn hơn N) và là gói
mới, giá trị MAC của gói được kiểm tra. Nếu đúng thì cửa sổ được dịch một
khe sang bên phải, đồng thời khe tương ứng trong cửa sổ được đánh dấu.
• Nếu gói nhận được nằm bên trái cửa sổ hoặc giá trị MAC không hợp hệ thì bị
hủy bỏ, đồng thời hệ thống tạo ra cảnh báo tương ứng với sự kiện này.
II.3- Xác thực thông tin
Mã xác thực (trường Authentication Data) được tạo ra dùng một trong 2 cách:
-HMAC-MD5-96: dùng phương pháp HMAC, hàm băm là MD5, cắt lấy 96 bit đầu
tiên.
-HMAC-SHA-1-96: dùng phương pháp HMAC, hàm băm là SHA-1, cắt lấy 96 bit đầu
tiên.
Thuật toán MAC được áp dụng trên các phần thông tin sau đây:
• Các trường không bị thay đổi trong tiêu đề gói IP khi được chuyển tiếp trên
mạng hoặc có thể dự đóan được tại đầu cuối của SA. Những trường còn lại
trong tiêu đề gói IP được thay bằng các bit 0 khi tính tóan.
Dịch cửa sổ qua bên
phải nếu nhận được
một gói hợp lệ.
Cửa sổ với kích thước
cố định W
N - W
Ô được đánh dấu
biểu thị một gói hợp
lệ vừa được nhận
Ô không đánh dấu cho biết
gói dữ liệu ở vị trí đó chưa
được nhận
N + 1
Hình 3.8: Cơ chế dịch cửa sổ trong AH
9
• Các trường trong tiêu đề AH ngọai trừ trường Authentication Data. Trường
này được thay bằng các bit 0 khi tính.
• Tòan bộ gói dữ liệu của lớp trên (tức phần payload của gói IP).
Cơ chế tạo mã xác thực MAC được thực hiện như sau:
HMAC = H[(K ⊕ opad) | | H[(K ⊕ ipad) | | M]]
Trong đó:
ipad = 00110110(0x36) lặp lại 64 lần để tạo thành 512 bits
opad = 01011100(0x5c) lặp lại 64 lần để tạo thành 512 bits
K là khóa đã thống nhất giữa hai bên khi thiết lập SA và M là tòan bộ các phần thông
tin cần xác thực như đã mô tả ở trên.
II.4- Chế độ vận chuyển và chế độ đường hầm
Hình 3.9 mô tả hai trường hợp xác thực khác nhau:
-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áy chủ 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 2 đầu cuối biết được khóa bí mật của nhau. Trường hợp này sử dụng chế độ vận
chuyển của AH.
-Xác thực từ đầu cuối đến trung gian (End-to-Intermediate Authentication): là trường
hợp xác thực giữa một 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 của AH.
Hình 3.10 mô tả phạm vi áp dụng cơ chế bảo vệ của AH lên gói dữ liệu trong hai chế
độ khác nhau.
Server
Xác thực đầu cuối
đến đầu cuối
Xác thực đầu
cuối đến đầu cuối
Xác thực đầu cuối đến
trung gian
Router/Firewall
Mạng nội bộ
Mạng công
cộng
Hình 3.9: Hai chế độ xác thực của AH
10
III- GIAO THỨC ĐÓNG GÓI ESP
ESP (Encapsulating Security Payload) là một lựa chọn khác để thực thi IPsec bên
cạnh giao thức xác thực thông tin AH. Chức năng chính của ESP là cung cấp tính bảo mật cho
dữ liệu truyền trên mạng IP bằng các kỹ thuật mật mã. Tuy nhiên, ESP cũng còn có một tùy
chọn khác là cung cấp cả dịch vụ bảo đảm tính tòan vẹn của dữ liệu thông qua cơ chế xác
thực. Như vậy, khi dùng ESP, người dùng có thể chọn hoặc không chọn chức năng xác thực,
còn chức năng mã hóa là chức năng mặc định của ESP.
III.1- Cấu trúc gói ESP
Gói dữ liệu ESP gồm các thành phần sau (hình 3.11):
-Security Parameters Index (SPI - 32 bits): Nhận dạng SA như trong giao thức AH.
-Sequence Number (32 bits): Số thứ tự gói, có chức năng như số thứ tự trong AH.
-Payload Data: Đây là phần dữ liệu được bảo vệ bằng mật mã. Trường này có độ dài
thay đổi. Trong chế độ vận chuyển, đây là tòan bộ gói dữ liệu của lớp 4 (TCP hoặc UDP).
Còn trong chế độ đường hầm, đây là tòan bộ gói IP. ESP chuNn sử dụng thuật toán mật mã đối
xứng DES, tuy nhiên, có thể dùng các thuật toán mật mã khác như 3DES (3 khóa), RC5,
IDEA, triple IDEA (3 khóa), CAST, Blowfish.
-Padding (0-255 bytes): Dữ liệu chèn. Một số thuật toán mật mã yêu cầu kích thước
dữ liệu gốc phải cố định. Các byte dữ liệu giả được thêm vào để đảm bảo độ dài vùng dữ liệu.
Tuy nhiên, theo quy định của ESP, chiều dài trường pad-length và trường next-header phải cố
định là 32 bit tính từ bên phải, do vậy, phần padding phải có kích thước sao cho tòan bộ phần
thông tin cần mã hóa là bội số của 32 bit.
- Pad Length (8 bits): Cho biết số byte của vùng dữ liệu chèn (padding).
Data TCP IP
Data TCP IP AH
Phạm vi thông tin được xác thực
Data TCP IP
(cũ)
AH IP
(mới)
Phạm vi thông tin được xác thực
a- Gói IP gốc
b- Gói IP ở chế độ transport
b- Gói IP ở chế độ tunnel
Hình 3.10: Phạm vi áp dụng của AH lên gói dữ liệu ở hai chế độ transport và tunnel
11
- Next Header (8 bits): Nhận dạng kiểu dữ liệu chứa trong phần payload data bằng
cách chứa số nhận dạng IP của giao thức được đóng gói bên trong ESP.
- Authentication Data: Chứa thông tin xác thực, có chiều dài thay đổi nhưng phải là
bội số của 32 bit. Thông tin xác thực được tính trên tòan gói ESP ngọai trừ phần
Authentication Data.
III.2- Chế độ vận chuyển và chế độ đường hầm
Chế độ vận chuyển: chức năng mã hóa và xác thực thông tin được thực hiện trên phần
dữ liệu (payload data) của gói IP (tức tòan bộ đơn vị dữ liệu của lớp trên IP).
Chế độ đường hầm: tòan bộ gói IP được mã hóa và xác thực.
Security Parameters Index (SPI)
Sequence number
Payload
(kích thước thay đổi)
Padding (0 – 255 byte)
Next header
Authentication data
(kích thước thay đổi)
Pad length
Hình 3. 11: Cấu trúc gói ESP
Bit 0 8 16 24 31
12
Sự khác nhau giữa hai chế độ hoạt động được mô tả ở hình 3.12.
IV-QUẢN LÝ KHÓA TRONG IPSEC
IPSec dựa trên kỹ thuật xác thực HMAC (hashed based MAC) và các phương pháp
mật mã đối xứng mà cơ bản là DES. Do vậy, vấn đề quản lý và phân phối các khóa bí mật
giữa các đầu cuối SA là vấn đề quan trọng trong triển khai IPSec. Có hai cơ chế để quản lý
khóa:
-Quản lý khóa bằng tay (manual): người quản trị mạng tạo ra khóa và cài đặt cho các
hệ thống đầu cuối. Cơ chế này chỉ phù hợp với các hệ thống có quy mô nhỏ.
-Quản lý khóa tự động (automated): một hệ thống tự động tạo ra và phân phối khóa
cho các hệ thống đầu cuối.
Hệ thống quản lý khóa tự động IPSec bao gồm hai thành phần là Oakley và ISAKMP.
-Oakley Key Determination Protocol: Đây là giao thức trao đổi khóa dựa trên thuật
tóan mã Diffie-Hellman, có bổ sung thêm các tính năng bảo mật.
-Internet Security Association and Key Management Protocol (ISAKMP): cung cấp
một mô hình chung cho việc quản lý khóa trên Internet, định nghĩa các thủ tục và khuôn dạng
riêng.
IV.1- Giao thức trao đổi khóa Oakley
Oakley là một giao thức trao đổi khóa đối xứng dựa trên giao thức gốc là Diffie-
Hellman. Giao thức này có một số ưu điểm như:
-Khóa được tạo ra ngay khi cần, do đó không cần lưu trữ và giảm được nguy cơ tiết lộ.
-Không cần một cơ sở hạ tầng đặc biệt nào để thực hiện giao thức, ngòai việc hai bên
phải thống nhất trước với nhau những giá trị dùng chung (p và g).
Data TCP IP
Data TCP IP ESP header
a- Gói IP gốc
b- Gói IP ở chế độ transport
b- Gói IP ở chế độ tunnel
Hình 3.12: Tác dụng của ESP lên gói IP ở hai chế độ transport và tunnel
ESP
auth
ESP
trailer
Phạm vi thông tin được xác thực
Phạm vi thông tin được mã hoá
Data TCP IP (mới)
ESP
header
ESP
auth
ESP
trailer
Phạm vi thông tin được xác thực
Phạm vi thông tin được mã hoá
IP
(cũ)
13
Tuy nhiên, Diffie-Hellman cũng đồng thời tồn tại nhiều nhược điểm:
-Không cung cấp cơ chế nhận dạng đầu cuối
-Có thể bị tấn công dạng xen giữa (Man-in-the-middle) và tấn công từ chối dịch vụ
(clogging).
Giao thức Oakley được thiết kế để duy trì những ưu điểm của Diffie-Hellman, đồng
thời khắc phục những nhược điểm của nó.
Các tính năng của Oakley bao gồm:
• Dùng cookies để tránh bị tấn công từ chối dịch vụ. Dựa vào bản chất của
Diffie-Hellman là dùng các phép tính lũy thừa bậc cao trên các số nguyên lớn,
nên hacker chỉ cần liên tiếp gởi các giá trị mạo nhận là Xa, hệ thống sẽ liên
tiếp thực hiện các phép tính để xác định khóa và do đó không có khả năng xử
lý các công việc khác. Cookies là các số giả ngẫu nhiên, được mỗi bên chọn và
trao đổi nhau ngay ở giai đọan khởi tạo, và sau đó dùng lại các cookies này
trong các message tiếp theo sau. Việc một máy khác cố ý tạo ra các message
giả nhằm tấn công hệ thống sẽ được hệ thống phát hiện bằng cách kiểm tra các
giá trị cookies đã thống nhất ban đầu. Để gắn cookies với các thông tin nhận
dạng hệ thống, cookies thường được tạo ra dùng hàm băm (MD5) trên các
thông tin cố định như địa chỉ IP nguồn, IP đích, port nguồn, port đích và một
khóa bí mật được chọn riêng.
• Cho phép các gộp các hệ thống đầu cuối thành nhóm và phân phối các giá trị
công khai trong nhóm (p và g). Bằng việc định nghĩa trước các nhóm cùng với
các thông số p và g tương ứng, các hệ thống đầu cuối chỉ cần thương lượng với
nhau về việc sẽ thiết lập giao thức trao đổi khóa dựa trên nhóm nào, mà không
cần phải chọn và trao đổi với nhau các giá trị công khai của thuật tóan.
• Kết hợp dùng các số ngẫu nhiên (nonce) để hạn chế các tấn công dạng phát lại.
• Bổ sung tính năng xác thực đầu cuối để tránh các tấn công dạng xen giữa. Giao
thức xác thực trong Oakley có thể dúng chữ ký số, dùng mật mã đối xứng mật
mã bất đối xứng.
IV.2- Giao thức quản lý khóa và thiết lập liên kết bảo mật ISAKMP
ISAKMP định nghĩa thủ tục thiết lập, duy trì và xóa bỏ các liên kết bảo mật (SA) giữa
các hệ thống đầu cuối.
Cấu trúc gói ISAKMP gồm các thành phần như sau:
• Initiator Cookie (64 bits): Cookie của bên khởi tạo. Chú ý rằng khởi tạo không
chỉ có nghĩa là thiết lập SA, mà còn có nghĩa là khởi tạo hững thủ tục khác như
xóa SA, cảnh báo trên SA, …
• Responder Cookie (64 bits): Cookie của bên chấp nhận. Trong message đầu
tiên gởi đi thì giá trị này bằng 0 vì chưa nhận được cookie từ bên kia.
• Next Payload (8 bits): Xác định lọai payload của message.
• Major Version (4 bits): Phiên bản chính của ISAKMP.
• Minor Version (4 bits): Phiên bản phụ của ISAKMP.
14
• Exchange Type (8 bits): xác định thủ tục thực hiện.
• Flags (8 bits): Một số bit cờ cần thiết cho quá trình thiết lập SA.
• Message ID (32 bits): Số nhận dạng message
• Length (32 bits): Tổng chiều dài của payload (header và payload) tính bằng
bytes.
Một số thủ tục đển hình của ISAKMP:
(a) Base Exchange
(1)I → R: SA; NONCE Bắt đầu thương lượng ISAKMP-SA
(2)R → I: SA; NONCE Chấp nhận thiết lập SA
(3)I → R: KE; IDI AUTH Tạo khóa, xác thực I
(4)R → E: KE; IDR AUTH Tạo khóa, xác thực R, thiết lập SA
(b) Identity Protection Exchange
(1)I → R: SA Bắt đầu thương lượng ISAKMP-SA
(2)R → I: SA Chấp nhận thiết lập SA
15
(3)I → R: KE; NONCE Tạo khóa
(4)R → I: KE; NONCE Tạo khóa
(5)*I → R: IDI; AUTH Xác thực I
(6)*R → I: IDR; AUTH Xác thực R, thiết lập SA
(c) Authentication Only Exchange
(1)I → R: SA; NONCE Bắt đầu thương lượng SA
(2)R → I: SA; NONCE; IDR; AUTH Chấp nhận thiết lập SA, xác thực R
(3)I → R: IDI; AUTH Xác thực I, thiết lập SA
(d) Aggressive Exchange
(1)I → R: SA; KE; NONCE; IDI; Bắt đầu thương lương ISAKMP-SA và trao đổi
khóa
(2)R → I: SA; KE; NONCE; IDR;
AUTH
Xác thực I, tạo khóa, chấp nhận thiết lập SA
(3)*I → R: AUTH Xác thực R, thiết lập SA
(e) Informational Exchange
(1)*I → R: N/D Cảnh báo lỗi
Ghi chú:
I = initiator (bên khởi tạo)
R = responder (bên đáp ứng)
* = Dữ liệu có mã hóa
AUTH = Sử dụng cơ chế xác thực
Các file đính kèm theo tài liệu này:
- chapter_5_ip_security_8356.pdf