Để tóm tắt toàn bộ quá trình hoạt động của IPSec, ta đưa ra một ví dụ về kết nối IP-VPN như hình 3.20.
Chú ý rằng trước khi thiết lập kết nối IPSec, cần phải chắc chắn rằng các thiết bị đang sử dụng dọc theo đường dẫn của IP-VPN đảm bảo: có hỗ trợ IPSec (bao gồm các giao thức, thuật toán), không có kết nối IPSec nào trước đó hoặc nếu có thì các tham số trong SA đang tồn tại không xung đột với các tham số chuẩn bị thiết lập, có thể thực hiện lệnh “ping” để chắc chắn về kết nối đã sẵn sàng.
Hình 3.20: Ví dụ về hoạt động của IP-VPN sử dụng IPSec
Trong ví dụ này, người dùng muốn truyền thông an toàn với mạng trụ sở chính. Khi gói dữ liệu tới router người dùng (router này đóng vai trò là một cổng an ninh), router này sẽ kiểm tra chính sách an ninh và nhận ra gói dữ liệu cần truyền thông này là một ứng dụng của IP-VPN, cần được bảo vệ. Chính sách an ninh cấu hình trước cũng cho biết router mạng trụ sở chính sẽ là phía bên kia của đường ngầm IPSec, chính là trạm trụ sở chính của IP-VPN.
Router người dùng kiểm tra xem đã có IPSec SA nào được thiết lập cho phiên truyền thông này hay chưa. Nếu hoàn toàn không có một IPSec SA nào thì bắt đầu quá trình thương lượng IKE. Certificate Authority có chức năng giúp trụ sở chính nhận thực người sử dụng có được phép thực hiện phiên thông tin này hay không, chứng thực này là chữ ký số và được ký bởi một đối tác có quyền ký mà hai bên đều tin tưởng. Ngay sau khi hai router đã thỏa thuận được một IKE SA thì IPSec SA tức thời được tạo ra. Nếu hai bên không thỏa thuận được một IKE SA nào thì nó tiếp tục quá trình thỏa thuận hoặc ngừng kết nối phiên thông tin.
Việc tạo ra các IPSec SA chính là quá trình thỏa thuận giữa các bên về các chính sách an ninh, thuật toán mã hóa được sử dụng (chẳng hạn là DES), thuật toán xác thực (chẳng hạn MD5), và một khóa chia sẻ. Dữ liệu về SA được lưu trong cơ sở dữ liệu cho mỗi bên.
Tới đây, router người sử dụng sẽ đóng gói dữ liệu theo các yêu cầu đã thương lượng trong IPSec SA (thuật toán mật mã, nhận thực, giao thức đóng gói là AH hay ESP…), thêm các thông tin thích hợp để đưa gói tin được mã hóa này về dạng IP datagram ban đầu và chuyển tới router mạng trung tâm. Khi nhận được gói tin từ router người dùng gửi đến, router mạng trung tâm tìm kiếm IPSec SA, xử lý gói theo yêu cầu, đưa về dạng gói tin ban đầu và chuyển nó tới mạng trung tâm.
3.6 Tổng kết
Chương này trình bày chi tiết về giao thức IPSec và ứng dụng của nó đối với công nghệ IP-VPN. IPSec là một chuẩn mở, nó không định nghĩa các giải pháp cụ thể mà nó chỉ đưa ra các chuẩn. Giao thức IPSec gồm có 2 giao thức là AH và ESP, hoạt động khác nhau cung cấp khả năng đảm bảo tính toàn vẹn, bí mật, an toàn cho dữ liệu.
Liên kết an ninh SA có chứa tập các chính sách, tham số, thuật toán, giao thức cho quá trình đóng gói dữ liệu giữa các bên tham gia vào IPSec. Tại mỗi đầu đường ngầm IPSec, SA được sử dụng để xác đinh loại lưu lượng cần được xử lý IPSec, giao thức IPSec được sử dụng (AH hay ESP), thuật toán và khóa được sử dụng cho quá trình mật mã và xác thực.
Bên cạnh đó, giao thức IKE là một giao thức quan trọng để thảo thuận xác thực các bên tham gia, thiết lập các tham số, chính sách của liên kết an ninh trong quá trình thiết lập. Nhiệm vụ của giao thức IKE chính là thương lượng giữa các bên trong quá trình thiết lập hoặc thương lượng lại khi cần thiết để tạo ra một liên kết an ninh SA.
Bảng 3.3 đưa ra tóm tắt về 3 giao thức trong chương 3.
Bảng 3.3: Tổng kết chương các giao thức của IPSec
Giao thức Dịch vụ Thuật toán/ phương thức
AH Toàn vẹn dữ liệu MD5, SHA1
ESP Bảo mật, toàn vẹn dữ liệu DES, 3DES, AES, MD5, SHA1
IKE Xác thực đối tác, thiết lập các tham số
Khóa chia sẻ trước, RSA, Diffie-Hellman, CA
Chương 4
AN TOÀN DỮ LIỆU TRONG IP-VPN 4.1 Giới thiệu
Như đã trình bày trong chương 2, đặc điểm của IP-VPN là cho phép truyền dữ liệu thông qua một cơ sở hạ tầng mạng công cộng mà vẫn đảm bảo được các đặc tính an toàn và tin cậy dữ liệu. Để thực hiện được điều đó, công nghệ IP-VPN phải giải quyết được hai vấn đề: đóng gói dữ liệu và an toàn dữ liệu. Đóng gói dữ liệu là cách thức thêm các phần thông tin điều khiển vào gói tin ban đầu để đảm bảo gói tin đi được từ nguồn tới đích mong muốn, điều này đã được đề cập trong các chương trước. An toàn dữ liệu là cách thức đảm bảo cho dữ liệu đi qua mạng công cộng không bị xâm phạm, làm thay đổi bởi những kẻ không mong muốn. Thực tế thì vấn đề an toàn dữ liệu không phải là vấn đề riêng của IP-VPN mà là mối quan tâm cũng như thách thức của tất cả các tổ chức có nhu cầu sử dụng Internet làm môi trường truyền tin. Chính vì vậy, đã có rất nhiều giải pháp, giao thức, thuật toán được phát triển để giải quyết vấn đề này. Việc sử dụng giải pháp nào là tùy thuộc vào từng ứng dụng cụ thể và không loại trừ khả năng sử dụng kết hợp nhiều giải pháp để đạt hiệu quả an toàn như mong muốn. Bảng 4.1 là tóm tắt một số giao thức, thuật toán an toàn dữ liệu chủ yếu đang được sử dụng. Có thể thấy các giao thức là rất đa dạng và phức tạp và mỗi giao thức có thể sử dụng nhiều thuật toán khác nhau để đạt hiệu quả an toàn dữ liệu cần thiết cho từng ứng dụng cụ thể.
Bảng 4.1: Một số giao thức và thuật toán ứng dụng thông dụng
Giao thức Chức năng Thuật toán
IPSec Cung cấp các dịch vụ dữ liệu tin cậy, xác thực nguồn gốc dữ liệu.
RSA, DH, DES, 3DES, MD5, SHA
PPTP Kết nối VPN RC4
SET Cho phép trao đổi an toàn các thẻ tín dụng
RSA, SHA, DES S/MIME Đảm bảo việc truyền dẫn, lưu trữ, xác
thực, chuyển tiếp an toàn dữ liệu ở mức ứng dụng
RSA, RC5, RC4, RC2, DES, 3DES SSL&TLS Tạo một đường ống an toàn giữa hai
ứng dụng để trao đổi dữ liệu và xác thực lẫn nhau
RSA, DH, RC4, DES, 3DES, SHA, MD5
Đối với IP-VPN, IPSec là giao thức tối ưu về mặt an toàn dữ liệu. Thứ nhất, IPSec cung cấp xác thực tính toàn vẹn dữ liệu. Thứ hai, IPSec cho phép sử dụng các phương
pháp, thuật toán mật mã, xác thực mạng nhất hiện có. Thứ ba, IPSec là một khung chuẩn mở, nghĩa là có thể lựa chọn các thuật toán phù hợp với mức độ an toàn dữ liệu mong muốn mà không bị giới hạn cứng nhắc phải sử dụng đúng một thuật toán nào đó, đồng thời có khả năng sử dụng các thuật toán tiên tiến phát triển trong tương lai. Điều này thể hiện tính linh hoạt rất cao của IPSec.
Nội dung của chương này nhằm làm rõ vấn đề an toàn dữ liệu của công nghệ IP- VPN dựa trên giao thức IPSec.
4.2 Mật mã
4.2.1 Khái niệm mật mã
Hình 4.1 cho thấy khái niệm chung sử dụng trong các thuật toán mật mã và mối quan hệ giữa chúng.
Hình 4.1: Các khái niệm chung sử dụng trong các thuật toán mật mã
Một hệ mật là một bộ 5 (P, C, K, E, D)thỏa mãn các điều kiện sau: 1) P là một tập hữu hạn các bản rõ có thể.
2) C là một tập hữu hạn các bản mã có thể. 3) K là một tập hữu hạn các khóa có thể.
4) Đối với k ∈ K có một quy tắc mã ek: P→C và một quy tắc giải mã tương ứng dk:C→P sao cho dk(ek(x)) = x với mọi bản rõ x ∈ P.
Điều kiện 4 nói lên rằng một bản rõ x được mã hóa bằng ek và bản mã nhận được sau đó được giải mã bằng dk thì ta phải thu được bản rõ ban đầu x. Các khái niệm trong hình được trình bày như sau:
Cipher Khóa K Khóa K Bản tin được mật mã C Bản tin được mật mã C Mật mã EK(P)=C Mật mã EK(P)=C Giải mã DK(C)=P Giải mã DK(C)=P Bản tin được mật mã C Bản tin được mật mã C Bản tin ban đầu Bản tin ban đầu Bản tin ban đầu Bản tin ban đầu Khóa K Khóa K Plaintext Ciphertext
+ Plaintext và ciphertext: bản tin ban đầu được gọi là bản tin rõ (plaintext hay cleartext). Quá trình biến đổi bản tin để che dấu nội dung thật của nó được gọi là mật mã (encryption). Bản tin đã mật mã được gọi là ciphertext. Quá trình biến bản tin đã mật mã về bản tin ban đầu được gọi là giải mã (decryption).
+ Thuật toán và khóa: thuật toán mật mã (còn gọi là cipher) là một hàm toán học sử dụng để mật mã và giải mã. Tính an toàn của một thuật toán mật mã phụ thuộc vòa một khóa bí mật (secret key). Khoảng các giá trị có thể có của khóa được gọi là không gian khóa (key space). Các quá trình mật mã và giải mã đều phụ thuộc vào khóa K như sau:
Mật mã: EK(P)=C Giải mã: DK(C)=P
Về cơ bản thì các thuật toán mật mã được chia thành hai loại: các hệ thống mật mã khóa đối xứng (Symmetric Key Cryptosystem), và các hệ thống mật mã khóa công khai (Public Key Cryptosystem). Mật mã khóa đối xứng sử dụng cùng một khóa duy nhất trong quá trình mật mã và giải mã, với hệ thống này thì hai đầu kênh được cung cấp cùng một khóa qua một kênh tin cậy và khóa này phải tồn tại trước quá trình truyền tin. Còn mật mã khóa công khai sử dụng hai khóa khác nhau (một khóa bí mật và một khóa công khai), khóa công khai dùng để lập mã và chỉ có khóa bí mật là có khả năng giải mã. Bản thân các hệ mật mã này có nhiều thuật toán thực hiện.
4.2.2 Các hệ thống mật mã khóa đối xứng
4.2.2.1 Các chế độ làm việc ECB, CBC
Tùy thuộc vào cách thức chuyển các khối plaintext đầu vào thành các khối ciphertext đầu ra mà các thuật toán mật mã khối được phân loại theo các chế độ làm việc khác nhau, trong đó có ECB, CBC và OFB.
Chế độ sách mã điện tử ECB (Electronic Code Book Mode): đối với thuật toán mật
mã khối ECB, một khối plaintext đầu vào được ánh xạ tĩnh thành một khối ciphertext đầu ra. Với những nguồn tài nguyên bộ nhớ hưu hạn, có thể xây dựng một bảng tra cứu (loopup table) hay danh sách mã điện tử (Electronic Code Book) để ánh xạ ngược một khối ciphertexxt về dạng plaintext tương ứng.
Hình 4.2: Chế độ chính sách mã điện tử ECB
Như vậy, các thuật toán mật mã ở chế độ ECB không an toàn đối với những tấn công kiểu phát lại (replay attacks), trong đó kẻ tấn công lưu lại khối ciphertext (có khả năng chứa thông tin mật) để có thể giải mã ở những thời điểm sau đó.
Chế độ chuỗi khỗi mật mã CBC (Cipher Block Chaining Mode) để ngăn chặn các tấn công kiểu phát lại, các thuật toán mật mã khối hiện nay thường hoạt động ở chế độ CBC. Mỗi khối plaintext được XOR với khối ciphertext trước đó rồi mới thực hiện mật mã. Như vậy các khối plaintext giống nhau xuất hiện trong cùng một bản tin sẽ tạo thành các khối ciphertext khác nhau.
Tại phía thu, mỗi ciphertext sau khi thực hiện giải mã sẽ được XOR với khối ciphertext thu được trước đó để nhận được khố plaintext tương ứng. Nếu một lỗi bit xảy ra thì sẽ làm sai toàn bộ khối plaintext tương ứng, cùng với một lỗi bit trong khối plaintext kế tiếp. Như vậy ảnh hưởng của lỗi chỉ giới hạn trong hai khối plaintext mà thôi.
Hình 4.3: Thuật toán mật mã khối ở chế độ CBC
P1 P 2 P3 E E E E E E C1 C 2 C3 C1 C 2 C3 D D D D D D P1 P 2 P3
Phía phát Phía thu
P1 P2 P3 E E E E E E IV C2 C3 C1 C2 C3 D D D D D D P1 P2 P3
Phía phát Phía thu
C1
Bất cứ bản tin được mật mã CBC nào cũng phải được khởi tạo bởi một véc tơ IV (Initialization Vector). IV được truyền qua kênh không an toàn ở thời điểm bắt đầu của phiên truyền dẫn. Để tránh các tấn công kiểu lặp lại, giá trị IV chỉ sử dụng một lần. Điều này có thể thực hiện được bằng cách gán giá trị ngẫu nhiên những tăng đơn thuần cho IV.
4.2.2.2 Giải thuật DES (Data Encryption Standard)
Thuật toán DES được đưa ra vào năm 1977 tại Mỹ và đã được sử dụng rất rộng rãi. Nó còn là cơ sở để xây dựng một thuật toán tiên tiến hơn là 3DES. Hiện nay, DES vẫn được sử dụng cho những ứng dụng không đòi hỏi tính an toàn cao, và khi chuẩn mật mã dữ liệu mới là AES chưa chính thức thay thế nó. DES mã hóa các khối dữ liệu 64 bit với khóa 56 bit. Sơ đồ thuật toán DES cho trên hình 4.4.
Hình 4.4: Sơ đồ thuật toán DES
Trước hết 64 bit T đưa vào được hoán vị bởi phép hoán vị khởi tạo IP (Initial Permutation), không phụ thuộc vào khóa T0 = IP(T). Sau khi thực hiện 16 vòng lặp, dữ liệu được đi qua các bước hoán vị đảo RP (Reversed Permulation) và tạo thành khối ciphertext. Thực chất các hoán vị này không là tăng tính an toàn DES.
Trung tâm của mỗi vòng lặp xử lý DES là mạng Fiestel (được đặt theo tên của một nhà khoa hoc tại IBM). Hoạt động của mạng Fiestel được diễn tả như sau:
T =L0R0 với L0 = t1 …t32, R0 = t33 …t64.
Xét ở vòng lặp thức i (0<i<16): Li = Ri-1, Ri = Li-1⊕ F(Ri-1, Ki) trong đó ⊕ là phép cộng XOR và Ki là khóa 48 bit. Ở vòng lặp cuối cùng các nhánh trái và phải không đổi chỗ chi nhau, vì vậy input của IP-1 là R16L16. Trong đó hàm F được thể hiện là khối hộp đen.
Hình 4.5: Mạng Fiestel
a) Hoạt động của khối hộp đen
Khá phức tạp, trong đó nó gồm có các khối chức năng và nhiệm vụ như sau:
- Hoán vị mở rộng: Mở rộng Ri-1 32 bít đầu vào thành khối 48 bít. Hoạt động mở rộng này dựa vào một bảng định trước để lựa chọn các bít đầu ra. Sau đó các bít sau hoán vị mở rộng được XOR với khóa Ki.
- S-box: Kết quả sau khi XOR được chia thành 8 khối 6 bít từ B1 tới B6. Mỗi khối Bj sau đó được đưa vào một hàm Sj. Hàm Sj này sẽ trả lại các khối 6 bit thành khối 4 bit theo bảng định trước.
- P-Box: Các khối 4 bit sau khi được trả lại sẽ kết hợp với nhau thành khối 32 bít đầu ra của hộp đen.
b) Hoạt động tính khóa:
Khóa input ban đầu là một khối 64 bít, sau khi bỏ đi 8 bít parity và hoán vị 56 bít còn lại theo một trật tự nhất định. DES tạo ra 16 khóa, mỗi khóa có chiều dài 48 bit từ một khóa input 56 bit, dùng cho 16 vòng lặp. Tại mỗi vòng lặp, khóa Ki-1 được chia thành hai phần là Ci-1 và Di-1. Sau đó các bit của hai thành phần Ci-1 và Di-1 được hoán vị dịch để tạo thành Ci và Di. Sau khi hoán vị, Ci bỏ qua các bít 9, 18, 22, 25 tạo thành nữa trái của KI (24 bit) và Di bỏ qua các bít 35, 38, 43, 54 tạo ra nữa phải của Ki (24 bít). Ghép nữa trái và nữa phải tạo ra khóa Ki 48 bít.
c) Giải mã: Quá trình giải mã thực hiện các bước này theo thứ tự ngược lại. d) Phân phối khóa
Nhược điểm lớn nhất của các hệ thống mật mã khóa đối xứng là vấn đề phân phối các khóa bí mật thông qua kênh không an toàn. Số lượng các khóa bí mật cần thiết khi sử
dụng một thuật toán mật mã khóa đối xứng với n đối tác tham gia sẽ là Cn2 =n(n−1)/2. Có thể thấy việc phân phối các khóa bí mật sẽ trở nên hết sức khó khăn khi số lượng đối tác tham gia trao đổi thông tin lớn. Hình 4.6 chỉ ra việc phân phối khóa trong hệ thống mật mã khóa đối xứng.
Hình 4.6: Phân phối khóa trong hệ thống mật mã khóa đối xứng
4.2.2.3 Giới thiệu AES (Advanced Encryption Standard)
Thuật toán DES với khóa 56 bit đã được phát triển cách đây gẩn 28 năm, và hiện không còn phù hợp với những ứng dụng đòi hỏ tính an toàn dữ liệu cao (đặc biệt các ứng