Báo cáo mã hóa và bảo mật thông tin chuyên đề 10 ứng dụng phương thức mật mã khóa công khai trong giao thức ipsec

54 0 0
Báo cáo mã hóa và bảo mật thông tin  chuyên đề 10 ứng dụng phương thức mật mã khóa công khai trong giao thức ipsec

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 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

Trang 1

TRƯỜNG ĐẠI HỌC KỸ THUẬT HẬU CẦN CANDKHOA ĐIỆN TỬ VIỄN THÔNG

Nhóm học viên: Nguyễn Văn Hóa

Trang 2

Bắc Ninh, 6/2023

TRƯỜNG ĐẠI HỌC KỸ THUẬT HẬU CẦN CANDKHOA ĐIỆN TỬ VIỄN THÔNG

Nhóm học viên: Nguyễn Văn Hóa

Trang 3

1.3.2 Hệ mật trao đổi khóa Diffie – Hellma 7

CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC IPsec 10

2.1 Khái niệm giao thức IPsec 10

2.2 Nhu cầu sử dụng IPsec hiện nay 11

2.3 Vai trò của IPsec 12

2.3.1 Ưu điểm 12

2.3.2 Khuyết điểm 13

2.4 Các giao thức tương đương 13

2.4.1 Điểm giống nhau giữa IPSec và SSL 13

2.4.2 Điểm khác nhau giữa IPSec và SSL 13

CHƯƠNG 3: NGUYÊN LÝ HOẠT ĐỘNG CỦA GIAO THỨC IPSec 15

3.1 Mô hình kiến trúc của giao thức IPSec 15

3.5 Quản lý khóa IKE 32

3.5.1 Tổng quan về quản lý khóa 32

3.5.2 Các giai đoạn Phases 33

3.5.3 Các chế độ chính của giao thức IKE 35

CHƯƠNG 4: ỨNG DỤNG 38

Trang 4

LỜI MỞ ĐẦU

Giao thức TCP/IP đóng một vai trò rất quan trọng trong các hệ thố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, TPX/SPX, NetBEUI, Apple talk,… Tuy nhiên TCP/IP là sự 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 cứ giao thức 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 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 được xây dựng với 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 chuẩn hoá bởi IETF từ năm 1998 nhằm mục đích nâng cấp các cơ chế mã hoá 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

Hay nói cách khác, IPSec là sự tập hợp của các chuẩn mở được thiết lập để đảm bảo sự cẩn mật dữ liệu, đảm bảo tính toàn vẹn dữ liệu và chứng thực dữ liệu giữa các thiết bị mạngIPSec cung cấp một cơ cấu bảo mật ở tầng 3 (Network layer) của mô hình OSI 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 IPv4 và IPv6 Đối với IPv4, việc áp dụng IPSec là một tuỳ 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.

Trang 5

CHƯƠNG 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI1.1 Khái niệm

Mật mã khóa công khai, còn được gọi là mật mã bất đối xứng, là một hệ thống sử dụng các cặp khóa để mã hóa và xác thực thông tin Một khóa trong cặp là khóa công khai, có thể, như tên cho thấy, được phân phối rộng rãi mà không ảnh hưởng đến bảo mật Khóa thứ hai trong cặp là khóa riêng chỉ được chủ sở hữu biết Đây là một sự khởi đầu từ mật mã đối xứng, được sử dụng riêng cho đến những năm 1970 Trong mật mã đối xứng, tất cả các khóa là riêng tư, yêu cầu một kênh an toàn để truyền khóa và bảo mật bởi tất cả các bên về tất cả các khóa Cả hai yêu cầu này đều tỏ ra khó bảo trì Mặt khác, trong mật mã bất đối xứng, các khóa công khai có thể được phân phối tự do Phân phối công khai này cho phép liên lạc được mã hóa, xác thực giữa các bên chưa gặp hoặc trao đổi thông tin trước đó.

Hình 1.1 Mô hình mật mã khóa công khai

Khác với mã đối xứng, mã hóa khóa bất đối xứng sử dụng một cặp khóa: khóa công khai (public key) và khóa bí mật (private key) Hai khóa này được xây dựng sao cho từ một khóa, rất khó có cách sinh ra được khóa còn lại Một khóa sẽ dành để

Trang 6

mã hóa, khóa còn lại dùng để giải mã Chỉ có người sở hữu nắm được khóa bí mật trong khi khóa công khai được phổ biến rộng rãi.

1.2 Cách thức hoạt động

Bởi vì các thuật toán mã hóa bất đối xứng tạo ra các cặp khóa được liên kết về mặt toán học, độ dài khóa của chúng dài hơn nhiều so với độ dài khóa được sử dụng trong mật mã đối xứng Độ dài dài hơn này – thường từ 1,024 đến 2,048 bit – khiến việc tính toán khóa riêng tư từ đối tác công khai trở nên cực kỳ khó khăn.

Hình 1.2 Hoạt động mật mã hóa công khai

Người nhận sẽ tạo ra một gặp khóa (public key và private key),

họ sẽ giữ lại private key và truyền cho bên gửi public key Vì public key này là công khai nên có thể truyền tự do mà không cần bảo mật.

Trước khi gửi tin nhắn, người gửi sẽ mã hóa dữ liệu bằng mã

Trang 7

hóa bất đối xứng với những key nhận được từ người nhận (khóa công khai)

Người nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên người gửi, với key giải mã là private key ==> Ta có thể đảm bảo rằng, với dữ liệu đã được mã hóa gửi qua internet, thì chỉ có người nhận với private key mới có thể giải mã và đọc nội dung.

1.3 Các hệ mật thông dụng1.3.1 Hệ mật RSA

a) Tổng quan về hệ mật RSA

RSA là một thuật toán hay còn gọi là hệ mã hóa đối xứng được sử dụng cho các mục đích bảo mật Nó cho phép mã hóa khóa công khai và được sử dụng phổ biến, rộng rãi để đảm bảo an toàn cho các dữ liệu nhạy cảm đặc biệt là những dữ liệu gửi qua mạng Internet.

Trong mật mã RSA, cả public key và private key đều có thể mã hóa một tin nhắn Hiểu đơn giản thì RSA hoạt động như cơ chế đóng và mở cửa, nó dùng public key và private key để mã hóa và giải mã tin nhắn Chính thuộc tính đó đã khiến RSA trở thành thuật toán bất đối xứng được sử dụng phổ biến nhất Thế mạnh của nó chính là tính bảo mật, toàn vẹn và xác thực mà ít thuật toán có được.

Thực tế cho thấy mã hóa RSA có tính bảo mật cao bởi nó sử dụng các số nguyên tố lớn, một vài trường hợp những con số lại khá phức tạp Có thể thấy nhân hai số nguyên tố thì dễ dàng nhưng để xác định được các số nguyên ban đầu thông qua tổng hoặc thừa số lại không có tính khả thi vì mất nhiều thời gian ngay cả với những siêu máy tính hiện đại.

Thuật toán tạo public key và private key là phần phức tạp nhất của mật mã RSA Hai số nguyên tố lớn p và q được tạo ra ngẫu nhiên bằng cách dùng thuật toán Rabin-Miller (thuật toán xác suất kiểm tra số nguyên tố) Mô đun n=p x q, sau đó giá trị của n sẽ được dùng cho cả public key và private key, độ dài của

Trang 8

n được biểu thị bằng bit hay còn gọi là độ dài key.

Public key bao gồm mô đun n và số mũ công khai e, người ta thường lựa chọn giá trị e nhỏ để giả mã nhanh Thông thường e = 65537 và nó không nhất thiết phải bí mật vì public key được chia sẻ với mọi người Private key gồm mô đun n và số mũ riêng d, được tính toán bằng cách dùng thuật toán Euclide mở rộng Thuật toán này sẽ tìm phép nhân nghịch đảo đối với tâm của n.

b) RSA hoạt động như thế nào?

Alice sẽ tạo khóa RSA của mình bằng cách chọn ngẫu nhiên hai số nguyên tố là p = 11 và q = 13 Mô đun n = p x q = 11 x 13 = 143 Giá trị hàm số Ơle sẽ là n ϕ (n) = (p − 1) x (q − 1) = 120 Sau đó Alice sẽ chọn 7 là số tự nhiên e cho public key của mình và tính toán private key thông qua thuật toán Euclid mở rộng, kết quả mang lại là 103.

Giả sử Bob muốn gửi cho Alice một đoạn thông tin M, lúc này anh ta sẽ lấy public key RSA của Alice (n, e) và trong ví dụ này là 143, 7 Thông điệp của Bob là số 9, anh ta đã biết n và e vậy m sẽ được mã hóa thành bản mã C như sau: M e mod n = 9 7 mod 143 = 48 = C Alice sẽ giải mã tin nhắn của Bob bằng cách sử dụng private key RSA (d,n) của mình như sau: C d mod n = 48 103 mod 143 = 9 = M.

Trường hợp nếu Alice muốn sử dụng RSA trong chữ ký điện tử thì cô ấy phải tạo ra hash (hàm băm) – bản tóm tắt thông điệp để gửi cho Bob Sau đó Alice mã hóa giá trị hash bằng private key của cô ấy và thêm key vào tin nhắn.

Để xác nhận mình đã nhận được tin nhắn, Bob sẽ giải mã nó bằng public key của Alice Giá trị nhận được nếu khớp với hash của thông điệp gốc thì chứng tỏ dữ liệu đó đảm bảo tính toàn vẹn và chính Alice đã gửi nó Ngoài ra để đảm bảo tính bảo mật cao Alice có thể mã hóa tin nhắn mình sắp gửi bằng public key của Bob.

Trang 9

1.3.2 Hệ mật trao đổi khóa Diffie – Hellma.a) Tổng quan

Thuật toán Diffie – Hellman (DH: Diffie–Hellman Algorithm) là một giao thức trao đổi khóa cho phép hai bên giao tiếp qua kênh công khai để thiết lập bí mật chung mà không cần truyền qua Internet Diffie–Hellman Algorithm cho phép cả hai sử dụng khóa công khai để mã hóa và giải mã cuộc trò chuyện hoặc dữ liệu của họ bằng mật mã đối xứng (symmetric cryptography).

Diffie – Hellman thường được giải thích bởi hai bên mẫu, Alice và Bob, bắt đầu một cuộc đối thoại Mỗi người có một phần thông tin mà họ muốn chia sẻ, đồng thời giữ bí mật của nó Để làm điều đó, họ đồng ý về một phần thông tin lành tính công khai sẽ được trộn lẫn với thông tin đặc quyền của họ khi nó truyền qua một kênh không an toàn Bí mật của họ được trộn lẫn với thông tin công khai, hoặc khóa công khai, và khi các bí mật được trao đổi, thông tin họ muốn chia sẻ sẽ đi kèm với bí mật chung.

Khi họ giải mã thông điệp của người kia, họ có thể trích xuất thông tin công khai và với kiến thức về bí mật của riêng họ, suy ra thông tin mới được mang theo Mặc dù có vẻ không phức tạp trong mô tả của phương pháp này, nhưng khi các chuỗi số dài được sử dụng cho các khóa riêng tư và khóa công khai.

Thuật toán dựa trên Elliptic Curve Cryptography (ECC), một phương pháp thực hiện mật mã khóa công khai dựa trên cấu trúc đại số của các đường cong elliptic trên các trường hữu hạn Trao đổi khóa Diffie Hellmancũng sử dụng chức năng cửa sập (trapdoor), giống như nhiều cách khác để thực hiện mật mã khóa công khai (public-key cryptography: PKC).

b) Mô tả thuật toán

Đây là giao thức giúp cho 2 máy tính trao đổi thông tin với nhau một cách bảo mật bằng cách tạo ra shared private key.

Trang 10

Giả sử 2 máy tính là A và B Đầu tiên 2 máy tạo ra 2 số nguyên tố p và g, khi p lớn (thường lớn hơn 512 bits) và g là primitive root modulo của số p p và g không cần giữ bí mật với các users khác Khi đó, A và B tự chọn cho mình một số đủ lớn ngẫu nhiên làm private key, giả sử A chọn số a và B chọn số b.

Bây giờ A tính A = ga (mod p) và gửi cho B, B tính số gb (mod p) và gửi ngược lại cho A Hai mã này là shared key A và B sẽ thực hiện phép tính dựa và key nhận được.

A tính: K = Ba (mod p) = (gb)a (mod p) và B: K = Ab (mod p) = (ga)b (mod p)

Bây giờ 2 máy có thể sử dụng shared key K của mình để trao đổi dữ liệu mà không cần phải sợ dữ liệu bị nghe lén Hai máy A và B có thể tìm được a từ công thức A = ga (mod p) và b từ B = gb (mod p) Có thể tham khảo thêm ở hình minh họa ở trên.

Ví dụ:

Alice và Bob đều sử dụng số công khai P = 23, G = 5

Trang 11

Alice đã chọn khóa cá nhân a = 4 và Bob chọn b = 3 làm khóa cá nhân

Cả Alice và Bob bây giờ tính giá trị của x và y như sau: Alice: x = (54 mod 23) = 4

Bob: y = (53 mod 23) = 10

Bây giờ, cả Alice và Bob đều trao đổi số công khai với nhau Alice và Bob bây giờ tính toán các khóa đối xứng

Alice: ka = ya mod p = 104 mod 23 = 18 Bob: kb = xb mod p = 43 mod 23 = 18 => 18 là khóa bí mật dùng chung.

Ngoài việc sử dụng thuật toán tạo khóa công khai, Thuật toán trao đổi khóa Diffie Hellman có thể được sử dụng để mã hóa; một trong những kế hoạch đầu tiên cần làm là mã hóa ElGamal Một ví dụ hiện đại về nó được gọi là Lược đồ mã hóa tích hợp (IES: Integrated Encryption Scheme), cung cấp bảo mật chống lại các cuộc tấn công văn bản thuần túy và khay nhớ tạm được chọn.

CHƯƠNG 2: TỔNG QUAN VỀ GIAO THỨC IPsec2.1 Khái niệm giao thức IPsec

IPSec (Internet Protocol Security) là một giao thức được IETF phát triển.

Trang 12

IPSec được định nghĩa là một giao thức trong tầng mạng cung cấp các dịch vụ bảo mật, nhận thực, toàn vẹn dữ liệu và điều khiển truy cập Nó là một tập hợp các tiêu chuẩn mở làm việc cùng nhau giữa các phần thiết bị

Một cách chung nhất, IPSec cho phép một đường ngầm bảo mật thiết lập giữa 2 mạng riêng và nhận thực hai đầu của đường ngầm này Các thiết bị giữa hai đầu đường ngầm có thể là một cặp host, hoặc một cặp cổng bảo mật (có thể là router, firewall, bộ tập trung VPN) hoặc một cặp thiết bị gồm một host và một cổng bảo mật Đường ngầm đóng vai trò là một kênh truyền bảo mật giữa hai đầu và các gói dữ liệu yêu cầu an toàn được truyền trên đó IPSec cũng thực hiện đóng gói dữ liệu các thông tin để thiết lập, duy trì và hủy bỏ kênh truyền khi không dùng đến nữa Các gói tin truyền trong đường ngầm có khuôn dạng giống như các gói tin bình thường khác và không làm thay đổi các thiết bị, kiến trúc cũng như những ứng dụng hiện có trên mạng trung gian, qua đó cho phép giảm đáng kể chi phí để triển khai và quản lý

IPSec có hai cơ chế cơ bản để đảm bảo an toàn dữ liệu đó là AH (Authentication Header) và ESP (Encapsulating Security Payload), trong đó IPSec phải hỗ trợ ESP và có thể hỗ trợ AH:

+ AH cho phép xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn dữ liệu và dịch vụ tùy chọn chống phát lại của các gói IP truyền giữa hai hệ thống AH không cung cấp tính bảo mật, điều này có nghĩa là nó gửi đi thông tin dưới dạng bản rõ.

+ ESP là một giao thức cung cấp tính an toàn của các gói tin được truyền bao gồm: Mật mã dữ liệu, xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn phi kết nối của dữ liệu ESP đảm bảo tính bí mật của thông tin thông qua việc mật mã gói tin IP Tất cả lưu lương ESP đều được mật mã giữa hai hệ thống Với đặc điểm này thì xu hướng sẽ sử dụng ESP nhiều hơn AH để tăng tính an toàn cho dữ liệu.

+ Cả AH và ESP là các phương tiện cho điều khiển truy nhập, dựa vào sự phân phối của các khóa mật mã và quản lý các luồng giao thông có liên quan đến những giao thức an toàn này.

Những giao thức này có thể được áp dụng một mình hay kết hợp với nhau để cung cấp tập các giao thức an toàn mong muốn trong IPv4 và IPv6, nhưng cách chúng cung cấp các dịch vụ là khác nhau Đối với cả hai giao thức AH và

Trang 13

ESP này, IPSec không định các thuật toán an toàn cụ thể được sử dụng, mà thay vào đó là một khung chuẩn để sử dụng các thuật toán theo tiêu chuẩn công nghiệp IPSec sử dụng các thuật toán: Mã nhận thực bản tin trên cơ sở băm (HMAC), thuật toán MD5 (Message Digest 5), thuật toán SHA-1 để thực hiện chức năng toàn vẹn bản tin; Thuật toán DES, 3DES để mật mã dữ liệu; Thuật toán khóa chia sẻ trước, RSA chữ ký số và RSA mật mã giá trị ngẫu nhiên (Nonces) để nhận thực các bên Ngoài ra các chuẩn còn định nghĩa việc sử dụng các thuật toán khác như IDEA, Blowfish và RC4.IPSec có thể sử dụng giao thức IKE (Internet Key Exchange) để xác thực hai phía và làm giao thức thương lượng các chính sách bảo mật và nhận thực thông qua việc xác định thuật toán được dùng để thiết lập kênh truyền, trao đổi khóa cho mỗi phiên kết nối, dùng trong mỗi phiên truy cập Mạng dùng IPSec để bảo mật các dòng dữ liệu có thể tự động kiểm tra tính xác thực của thiết bị bằng giấy chứng nhận số của hai người dùng trao đổi thông tin qua lại Việc thương lượng này cuối cùng dẫn đến thiết lập kết hợp an ninh (SAs) giữa các cặp bảo mật, kết hợp an ninh này có tính chất hai chiều trực tiếp Thông tin kết hợp an ninh được lưu trong cơ sử dữ liệu liên kế an ninh, và mỗi SA được ấn định một số tham số an ninh trong bảng mục lục sao cho khi kết hợp một địa chỉ đích với giao thức an ninh (ESP hoặc AH) thì có duy nhất một.

2.2 Nhu cầu sử dụng IPsec hiện nay

Giao thức TCP/IP đóng một vai trò rất quan trọng trong các hệ thố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, TPX/SPX, NetBEUI, Apple talk,… Tuy nhiên TCP/IP là sự 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 cứ giao thức 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 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 được xây dựng với 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 chuẩn hoá bởi IETF từ năm 1998 nhằm mục đích nâng cấp các cơ chế mã hoá và xác thực

Trang 14

thông tin cho chuỗi thông tin truyền đi trên mạng bằng giao thức IP Hay nói cách khác, IPSec là sự tập hợp của các chuẩn mở được thiết lập để đảm bảo sự cẩn mật dữ liệu, đảm bảo tính toàn vẹn dữ liệu và chứng thực dữ liệu giữa các thiết bị mạngIPSec cung cấp một cơ cấu bảo mật ở tầng 3 (Network layer) của mô hình OSI

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 IPv4 và IPv6 Đối với IPv4, việc áp dụng IPSec là một tuỳ 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.

2.3 Vai trò của IPsec

IPsec có những vai trò cơ bản sau:

Cho phép xác thực hai chiều,trước và trong quá trình truyền tải dữ liệu

-Mã hóa đường truyền giữa 2 máy khi được gửi qua 1 mạng -Bảo vệ gói dữ liệu IP và phòng ngự các cuộc tấn công mạng không bào mật

-Bào vệ các lưu lượng bằng việc sử dụng mã hóa và đánh dấu dữ liệu

-Chính sách IPSEC cho phép định nghĩa ra các loại lưu lượng mà IPSec kiểm tra và các lưu lượng đó sẽ được bảo mật và mã hóa như thế nào.

2.3.1 Ưu điểm

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 toàn của IPSec có thể áp dụng cho toàn bộ vào ra mạng riêng đó mà các thành phần khác không cần phải xử lý them các công việc liên quan tới bảo mật.

-IPSec được thực hiện bên dưới lớp TCP và UDP ,đồng thời nó hoạt động trong suốt đối 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 để hoạt độ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 dấu những chi tiết cấu hình phức tạp mà

Trang 15

ngưới dung phải thực hiện khi kết nối đến mạng nội bộ từ xa thông qua internet.

2.3.2 Khuyết điểm

- Tất cả các gói được xử lý theo IPSec sẽ bị tăng kích thước do phải thêm vào các tiêu đề khác nhau, và điều này làm cho thông lượng hiệu dụng của mạng giảm xuống Vấn đề này có thể được khắc phục bằng cách nén dữ liệu trước khi mã hóa, song các kĩ thuật như vậy vẫn còn đang nghiên cứu và chưa được chuẩn hóa

- IPSec được thiết kế chỉ để hỗ trợ bảo mật cho lưu lượng IP, không hỗ trợ các dạng lưu lượng khác - Việc tính toán nhiều giải thuật phức tạp trong IPSec vẫn còn là một vấn đề khó đối với các trạm làm việc và máy PC năng lực yếu

- Việc phân phối các phần cứng và phầm mềm mật mã vẫn còn bị hạn chế đối với chính phủ một số quốc gia.

2.4 Các giao thức tương đương

IPSec cung cấp tính năng mã hoá và xác thực mạnh cho lưu lượng IP và cũng cung cấp tính năng trao đổi và làm tươi khoá dựa trên chứng chỉ nhờ sử dụng IKE Để đi đến kết luận một cách thận trọng, ta phải đề xuất rằng những tính năng này là cần thiết giống như các tính năng mà SSL và TLS cung cấp Trong phần này chúng ta lưu ý đến sự giống nhau và khác nhau cơ bản giữa IPSec và SSL và giải thích những phạm vi nào sử dụng cả hai giao thức.

2.4.1 Điểm giống nhau giữa IPSec và SSL

- IPSec và SSL cung cấp xác thực Client và Server

- IPSec và SSL cung cấp tính năng đảm bảo an toàn và xác thực đối với dữ liệu, thậm chí trên các mức khác nhau của chồng giao thức.

- IPSec và SSL có thể dùng các thuật toán mật mã mạnh cho việc mã hoá và các hàm băm, có thể sử dụng xác thực dựa trên chứng chỉ.

- IPSec và SSL cung cấp tính năng sinh khoá và làm tươi

Trang 16

khoá mà không phải truyền bất kỳ khoá nào dưới dạng rõ hay ngoại tuyến.

2.4.2 Điểm khác nhau giữa IPSec và SSL

- SSL được thực thi như một API giữa tầng ứng dụng và tầng vận tải; IPSec được thực thi như một khung làm việc tại tầng liên mạng

- SSL cung cấp tính năng bảo mật từ ứng dụng - tới - ứng dụng(ví dụ: giữa WebBrowser và WebServer); IPSec cung cấp tính năng bảo mật từ thiết bị tới -thiết bị

- SSL không bảo vệ lưu lượng UDP; IPSec thì có

- SSL hoạt động từ điểm cuối - tới - điểm cuối và không có khái niệm đường hầm Điều này có thể là một vấn đề lúc lưu lượng cần được xem xét bằng cách kiểm tra nội dung và quét virus trước khi nó được phân phối thành công đến đích; IPSec có thể hoạt động theo hai cách, điểm cuối - tới - điểm cuối và như một đường hầm.

- SSL có thể vượt qua NAT hoặc SOCKS, chúng dùng để che dấu cấu trúc địa chỉ bên trong hoặc tránh sự xung đột địa chỉ IP riêng; IPSec trong chế độ vận tải (end – to- end) không thể sử dụng NAT nhưng nó có thể dùng một đường hầm IPSec để đạt được mục tiêu tương tự và thậm chí bảo mật hơn NAT vì đường hầm cũng có thể được mã hoá

- Các ứng dụng cần phải sửa đổi để sử dụng SSL Điều này có thể là một vấn đề lúc ta không truy cập được mã nguồn của ứng dụng hoặc không có thời gian hay kinh nghiệm để thay đổi mã nguồn của ứng dụng; IPSec hoàn toàn trong suốt với các ứng dụng

Thông thường SSL là tốt lúc ta chỉ có một ứng dụng được bảo vệ và nó đã sẵn có trong một phiên bản SSL-aware Đây là trường hợp có một ứng dụng chuẩn đa dạng, không chỉ với WebBrowser và WebServer Ngoài ra, nếu có tuỳ chọn của việc thực thi khái niệm 3-tier bằng cách tận dụng các cổng ứng dụng Web tại vành đai của mạng, SSL là một sự lựa chọn tốt Nếu có một số lượng lớn các ứng dụng để bảo đảm an toàn có thể phải chọn giải pháp tốt hơn cho mạng Trong trường hợp này, IPSec là sự lựa chọn tốt hơn Trừ khi tự ta phát triển các ứng dụng, IPSec mềm dẻo hơn SSL để thực thi một chính sách bảo mật yêu cầu nhiều mức khác nhau và sự kết hợp của xác thực, mã hoá và đường

Trang 18

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.

- Thuật toán mật mã: Định nghĩa các thuật toán mã hoá và giải mã sử dụng trong IPSec IPSec chủ yếu dựa vào các thuật toán mã hoá đối xứng

- Thuật toán xác thực: Định nghĩa các thuật toán xác thực thông tin sử dụng trong AH và ESP

- Quản lý khoá : Mô tả các cơ chế quản lý và trao đổi khoá trong IPSec - Miền thực thi (Domain of Interpretation – DOI): Định nghĩa môi trường thực thi IPSec IPSec không phải là một công nghệ riêng biệt mà là sự tổ hợp của nhiều cơ chế, giao thức và kỹ thuật khác nhau, trong đó mỗi giao thức, cơ chế đều có nhiều chế độ hoạt độ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 hoạt động song song với IP nhằm cung cấp 2 chức năng cơ bản mà IP nguyên thuỷ chưa có, đó là mã hoá 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 hai thành phần:

-Giao thức đóng gói, gồm AH và ESP

-Giao thức trao đổi khoá IKE (Internet Key Exchange

3.1.2 Các dịch vụ của IPsec

- Quản lý truy xuất (access control)

- Toàn 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ã hoá 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 dùng là AH hay ESP Theo đó nếu giao thức được chọn là AH thì các dịch vụ mã hoá và bảo mật dòng dữ liệu sẽ không được cung cấp.

3.2 Chế độ làm việc của IPsec

Hiện tại IPSec có hai chế độ làm việc:Transport Mode và Tunel Mode.Cả

Trang 19

AH và ESP đều có thể làm việc với một trong hai chế độ này.

3.2.1 Kiểu Transport

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) Trong Transport mode, phần IPSec header được chèn vào giữa phần IP header và phần header của giao thức tầng trên, AH và ESP sẽ được đặt sau IP header nguyên thủy Vì vậy chỉ có tải (IP payload) là được mã hóa và IP header ban đầu là được giữ nguyên vẹn Transport mode có thể được dùng khi cả hai host hỗ trợ IPSec Chế độ transport này có thuận lợi là chỉ thêm vào vài bytes cho mỗi packets và nó cũng cho phép các thiết bị trên mạng thấy được địa chỉ đích cuối cùng của gói Khả năng này cho phép các tác vụ xử lý đặc biệt trên các mạng trung gian dựa trên các thông tin trong IP header Tuy nhiên các thông tin Layer 4 sẽ bị mã hóa, làm giới hạn khả năng kiểm tra của gói.

Trang 20

- Transport mode thiếu mất quá trình xử lý phần đầu, do đó nó nhanh hơn Tuy nhiên, nó không hiệu quả trong trường hợp ESP có khả năng không xác nhận mà cũng không mã hóa phần đầu IP.

- Transport Mode 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.

3.2.2 Kiểu Tunnel

Kiểu này bảo vệ toàn bộ gói IP Gói IP ban đầu (bao gồm cả IP header) được xác thực hoặc mật mã Sau đó, gói IP đã mã hóa được đóng gói vào một IP header mới Địa chỉ IP bên ngoài được sử dụng cho định tuyến gói IP truyền qua Internet Trong kiểu Tunnel, toàn bộ gói IP ban đầu được đóng gói và trở thành Payload của gói IP mới Kiểu này cho phép các thiết bị mạng như router thực hiện xử lý IPSec thay cho các trạm cuối (host)

3.3 Giao thức xác thực AH3.3.1 Giới thiệu

AH cung cấp xác thực nguồn gốc dữ liệu (data origin authentication), kiểm tra tính toàn vẹn dữ liệu (data integrity), và dịch vụ chống phát lại (anti-replay service) Đến đây, cần phải phân biệt được hai khái niệm toàn vẹn dữ liệu và chống phát lại: toàn vẹn dữ liệu là kiểm tra những thay đổi của từng gói tin IP, không quan tâm đến vị trí các gói trong luồng lưu lượng; còn dịch vụ chống phát lại là kiểm tra sự phát lặp lại một gói tin tới địa chỉ đích nhiều hơn một lần AH cho phép xác thực các trường của IP header cũng như dữ liệu của các giao thức

Trang 21

lớp trên, tuy nhiên do một số trường của IP header thay đổi trong khi truyền và phía phát có thể không dự đoán trước được giá trị của chúng khi tới phía thu, do đó giá trị của các trường này không bảo vệ được bằng AH Có thể nói AH chỉ bảo vệ một phần của IP header mà thôi AH không cung cấp bất cứ xử lý nào về bảo mật dữ liệu của các lớp trên, tất cả đều được truyền dưới dạng văn bản rõ AH nhanh hơn ESP, nên có thể chọn AH trong trường hợp chắc chắn về nguồn gốc và tính toàn vẹn của dữ liệu nhưng tính bảo mật dữ liệu không cần được chắc chắn

Giao thức AH cung cấp chức năng xác thực bằng cách thực hiện một hàm băm một chiều (one-way hash function) đối với dữ liệu của gói để tạo ra một đoạn mã xác thực (hash hay message digest) Đoạn mã đó được chèn vào thông tin của gói truyền đi Khi đó, bất cứ thay đổi nào đối với nội dung của gói trong quá trình truyền đi đều được phía thu phát hiện khi nó thực hiện cùng với một hàm băm một chiều đối với gói dữ liệu thu được và đối chiếu nó với giá trị hash đã truyền đi Hàm băm được thực hiện trên toàn bộ gói dữ liệu, trừ một số trường trong IP header có giá trị bị thay đổi trong quá trình truyền mà phía thu không thể dự đoán trước được (ví dụ trường thời gian sống của gói tin bị các router thay đổi trên đường truyền dẫn).

Trang 22

3.3.2 Cấu trúc AH

Cấu trúc AH

Ý nghĩa của từng phần: * Next Header (tiêu đề tiếp theo) Có độ dài 8 bit để nhận dạng loại dữ liệu của phần tải tin theo sau AH Giá trị này được chọn lựa từ tập các số giao thức IP đã được định nghĩa trong các RFC gần đây nhất

- Payload length (độ dài tải tin): Có độ dài 8 bit và chứa độ dài của tiêu đề AH được diễn tả trong các từ 32 bit, trừ 2 Ví dụ trong trường hợp của thuật toán toàn vẹn mà mang lại một giá trị xác minh 96 bit (3x32 bit), cộng với 3 từ 32 bit đã cố định, trường độ dài này có giá trị là 4 Với IPv6, tổng độ dài của tiêu đề phải là bội của các khối 8

- Reserved (dự trữ): Trường 16 bit này dự trữ cho ứng dụng trong tương lai - Security Parameters Index (SPI: chỉ dẫn thông số an ninh): Trường này có độ dài 32 bit, mang tính chất bắt buộc

- Sequence Number (số thứ tự): Đây là trường 32 bit không đánh dấu chứa một giá trị mà khi mỗi gói được gửi đi thì tăng một lần Trường này có tính bắt buộc Bên gửi luôn luôn bao gồm trường này ngay cả khi bên nhận không sử dụng dịch vụ chống phát lại Bộ đếm bên gửi và nhận được khởi tạo ban đầu là 0, gói đầu tiên có số thứ tự là 1 Nếu dịch vụ chống phát lại được sử dụng, chỉ số này không thể lặp lại, sẽ có một yêu cầu kết thúc phiên truyền thông và SA sẽ được thiết lập mới trở lại trước khi truyền 2 32 gói mới

- Authentication Data (dữ liệu nhận thực): Còn được gọi là ICV (Integrity Check Value: giá trị kiểm tra tính toàn vẹn) có độ dài thay đổi, bằng số nguyên lần của 32 bit đối với IPv4 và 64 bit đối với IPv6, và có thể chứa đệm để lấp đầy cho đủ là bội số các bit như trên ICV được tính toán sử dụng thuật toán nhận thực, bao gồm mã nhận thực bản tin (Message Authentication Code MACs).

Trang 23

MACs đơn giản có thể là thuật toán mã hóa MD5 hoặc SHA-1 Các khóa dùng cho mã hóa AH là các khóa xác thực bí mật được chia sẻ giữa các phần truyền thông có thể là một số ngẫu nhiên, không phải là một chuỗi có thể đoán trước của bất cứ loại nào Tính toán ICV được thực hiện sử dụng gói tin mới đưa vào Bất kì trường có thể biến đổi của IP header nào đều được cài đặt bằng 0, dữ liệu lớp trên được giả sử là không thể biến đổi Mỗi bên tại đầu cuối IP-VPN tính toán ICV này độc lập Nếu ICV tính toán được ở phía thu và ICV được phía phát truyền đến khi so sánh với nhau mà không phù hợp thì gói tin bị loại bỏ, bằng cách như vậy sẽ đảm bảo rằng gói tin không bị giả mạo.

3.3.3 Quá trình xử lý AH

Hoạt động của AH được thực hiện qua các bước như sau:

Bước 1: Toàn bộ gói IP (bao gồm IP header và tải tin) được thực hiện qua một hàm băm một chiều

Bước 2: Mã hash thu được dùng để xây dựng một AH header, đưa header này vào gói dữ liệu ban đầu

Bước 3: Gói dữ liệu sau khi thêm AH header được truyền tới đối tác IPSec Bước 4: Bên thu thực hiện hàm băm với IP header và tải tin, kết quả thu được một mã hash

Bước 5: Bên thu tách mã hash trong AH header

Bước 6: Bên thu so sánh mã hash mà nó tính được mà mã hash tách ra từ AH header Hai mã hash này phải hoàn toàn giống nhau Nếu khác nhau chỉ một bit trong quá trình truyền thì 2 mã hash sẽ không giống nhau, bên thu lập tức phát hiện tính không toàn vẹn của dữ liệu.

a Vị trí của AH:

AH có hai kiểu hoạt động, đó là kiểu Transport và kiểu Tunnel Kiểu Transport là kiểu đầu tiên được sử dụng cho kết nối đầu cuối giữa các host hoặc các thiết bị hoạt động như host và kiểu Tunnel được sử dụng cho các ứng dụng còn lại

Ở kiểu Transport cho phép bảo vệ các giao thức lớp trên, cùng với một số trường trong IP header Trong kiểu này, AH được chèn vào sau IP header và trước một giao thức lớp trên (chẳng hạn như TCP, UDP, ICMP…) và trước các IPSec header đã được chen vào Đối với IPv4, AH đặt sau IP header và trước

Trang 24

giao thức lớp trên (ví dụ ở đây là TCP) Đối với IPv6, AH được xem như phần tải đầu cuối-tới - đầu cuối, nên sẽ xuất hiện sau các phần header mở rộng hop-to-hop, routing và fragmentation Các lựa chọn đích(dest options extension headers) có thể trước hoặc sau AH

Hinh: Khuôn dạng IPv4 trước và sau khi xử lý AH ở kiểu Transport

Hình : Khuôn dạng IPv6 trước và sau khi xử lý AH ở kiểu Traport Trong kiểu Tunnel, inner IP header mang địa chỉ nguồn và đích cuối cùng, còn outer IP header mang địa chỉ để định tuyến qua Internet Trong kiểu này, AH bảo vệ toàn bộ gói tin IP bên trong, bao gồm cả inner IP header (trong khi AH Transport chỉ bảo vệ một số trường của IP header) So với outer IP header thì vị trí của AH giống như trong kiểu Trasport.

Trang 25

b.Các thuật toán xác thực:

Thuật toán xác thực sử dụng để tính ICV được xác định bởi kết hợp an ninh SA (Security Association) Đối với truyền thông điểm tới điểm, các thuật toán xác thực thích hợp bao gồm các hàm băm một chiều (MD5, SHA-1) Đây chính là những thuật toán bắt buộc mà một ứng dụng AH phải hỗ trợ

c.Xử lý gói đầu ra:

Trong kiểu Transport, phía phát chèn AH header vào sau IP header và trước một header của giao thức lớp trên Trong kiểu Tunnel, có thêm sự xuất hiện của outer IP header Quá trình xử lý gói tin đầu ra như sau:

- Tìm kiếm SA: AH được thực hiện trên gói tin đầu ra chỉ khi quá trình IPSec đã xác định được gói tin đó được liên kết với một SA SA đó sẽ yêu cầu AH xử lý gói tin Việc xác định quá trình xử lý IPSec nào cần thực hiện trên lưu lượng đầu ra có thể xem trong RFC 2401

+ Tạo SN: bộ đếm phía phát được khởi tạo 0 khi một SA được thiết lập Phía phát tăng SN cho SA này và chèn giá trị SN đó vào trường Sequence Number Nếu dịch vụ anti-replay (chống phát lại) được lựa chọn, phía phát kiểm tra để đảm bảo bộ đếm không bị lặp lại trước khi chèn một giá trị mới Nếu dịch vụ anti-replay không được lựa chọn thì phía phát không cần giám sát đến, tuy nhiên nó vẫn được tăng cho đến khi quay trở lại 0

+ Tính toán ICV: bằng cách sử dụng các thuật toán, phía thu sẽ tính toán lại ICV ở phía thu và so sánh nó với giá trị có trong AH để quyết định tới khả năng tồn tại của gói tin đó

+ Chèn dữ liệu: có hai dạng chèn dữ liệu trong AH, đó là chèn dữ liệu xác thực (Authentication Data Padding) và chèn gói ngầm định (Implicit Packet Padding) Đối với chèn dữ liệu xác thực, nếu đầu ra của thuật toán xác thực là bội số của 96 bit thì không được chèn Tuy nhiên nếu ICV có kích thước khác thì việc chèn thêm dữ liệu là cần thiết Nội dung của phần dữ liệu chèn là tùy ý, cũng có mặt trong phép tính ICV và được truyền đi Chèn gói ngầm định được sử dụng khi thuật toán xác thực yêu cầu tính ICV là số nguyên của một khối b byte nào đó và nếu độ dài gói IP không thỏa mãn điều kiện đó thì chèn gói ngầm định được thực hiện ở phía cuối của gói trước khi tính ICV Các byte chèn này có giá trị là 0 và không được truyền đi cùng với gói

Trang 26

+ Phân mảnh: khi cần thiết, phân mảnh sẽ được thực hiện sau khi đã xử lý AH Vì vậy AH trong kiểu transport chỉ được thực hiện trên toàn bộ gói IP, không thực hiện trên từng mảnh Nếu bản thân gói IP đã qua xử lý AH bị phân mảnh trên đường truyền thì ở phía thu phải được ghép lại trước khi xử lý AH Ở kiểu Tunnel, AH có thể thực hiện trên gói IP mà phần tải tin là một gói IP phân mảnh.

Trang 27

d.Xử lý gói đầu vào:

Khi nhận được một thông điệp có chứa AH,quá trình xử lí ip trước tiên sẽ tống hợp các phân mảnh thành thông điệp hoàn chỉnh.Sau đó thông điệp này sẽ được chuyển tới quá trình xử lí IPSEC.

Quá trình này gồm các bước như sau:

Bước 1:Xác định inbound SA tương ứng trong SAD.Bước này được thực hiện dựa trên các thôngsố:SPI,địa chỉ nguồn,giao thức AH.SA tương ứng kiểm tra trong gói AH để xác định xem modenào được áp dụng transport mode hay tunnel mode hay cả hai.Gói cũng phải cung cấp một số thông số để giới hạn tầm tác động của SA(ví dụ:port hay protocol).Nếu đây là tunnel header SA phải so sánh các thông số này trong packer inner vì các thông số này không được sao chép sangtunnel header.Khi SA phù hợp được tìm thấy,quá trình được tiếp tục ,ngược lại gói tin sẽ bị hủy bỏ

Bước 2:Nếu chức năng chống phát lại được kích hoạt,phía xuất phát của gói tin AH luôn tăng số đếm chống phát lại.Bên nhận có thể bỏ qua hoặc sử dụng chỉ số này để chống phát lại.Tuy nhiên giao thức IP không đảm bảo rằng

Ngày đăng: 01/04/2024, 14:32