Tìm hiểu những vấn đề kỹ thuật cơ bản có liên quan đến việc thực hiện IP-VPN

MỤC LỤC MỤC LỤC i Danh mục bảng biểu v Danh sách hình vẽ vi Ký hiệu viết tắt ix LỜI NÓI ĐẦU 1 Chương 1 BỘ GIAO THỨC TCP/IP 3 1.1 Khái niệm mạng Internet 3 1.2 Mô hình phân lớp bộ giao thức TCP/IP 4 1.3 Các giao thức trong mô hình TCP/IP 5 1.3.1 Giao thức Internet 5 1.3.1.1 Giới thiệu chung 5 1.3.1.2. Cấu trúc IPv4 6 1.3.1.3. Phân mảnh IP và hợp nhất dữ liệu 8 1.3.1.4. Địa chỉ và định tuyến IP 9 1.3.1.5. Cấu trúc gói tin IPv6 9 1.3.2. Giao thức lớp vận chuyển 11 1.3.2.1. Giao thức UDP 11 1.3.2.2. Giao thức TCP 12 1.4 Tổng kết 17 Chương 2 CÔNG NGHỆ MẠNG RIÊNG ẢO TRÊN INTERNET IP-VPN 18 2.1 Gới thiệu về mạng riêng ảo trên Internet IP-VPN 18 2.1.1 Khái niệm về mạng riêng ảo trên nền tảng Internet 18 2.1.2 Khả năng ứng dụng của IP-VPN 18 2.2 Các khối cơ bản trong mạng IP-VPN 19 2.2.1 Điều khiển truy nhập 19 2.2.2 Nhận thực 20 2.2.3 An ninh 21 2.2.4 Truyền Tunnel nền tảng IP-VPN 21 2.2.5 Các thỏa thuận mức dịch vụ 23 2.3 Phân loại mạng riêng ảo theo kiến trúc 23 2.3.1 IP-VPN truy nhập từ xa 23 2.3.2 Site-to-Site IP-VPN 25 2.3.2.1 Intranet IP-VPN 25 2.3.2.2 Extranet IP-VPN 26 2.4 Các giao thức đường ngầm trong IP-VPN 27 2.4.1 PPTP (Point - to - Point Tunneling Protocol) 28 2.4.1.1 Duy trì đường ngầm bằng kết nối điều khiển PPTP 28 2.4.1.2 Đóng gói dữ liệu đường ngầm PPTP 29 2.4.1.3 Xử lí dữ liệu đường ngầm PPTP 30 2.4.1.4 Sơ đồ đóng gói 30 2.4.2 L2TP (Layer Two Tunneling Protocol) 31 2.4.2.1 Duy trì đường ngầm bằng bản tin điều khiển L2TP 32 2.4.2.2 Đường ngầm dữ liệu L2TP 32 2.4.2.3 Xử lý dữ liệu đường ngầm L2TP trên nền IPSec 33 2.4.2.4 Sơ đồ đóng gói L2TP trên nền IPSec 33 2.5 Tổng kết 35 Chương 3 GIAO THỨC IPSEC CHO IP-VPN 36 3.1 Gới thiệu 36 3.1.1 Khái niệm về IPSec 36 3.1.2 Các chuẩn tham chiếu có liên quan 37 3.2 Đóng gói thông tin của IPSec 39 3.2.1 Các kiểu sử dụng 39 3.2.1.1 Kiểu Transport 39 3.1.1.2 Kiểu Tunnel 39 3.2.2 Giao thức tiêu đề xác thực AH 40 3.2.2.1 Giới thiệu 40 3.2.2.2 Cấu trúc gói tin AH 41 3.2.2.3 Quá trình xử lý AH 42 3.2.3 Giao thức đóng gói an toàn tải tin ESP 45 3.2.3.1 Giới thiệu 45 3.2.3.2 Cấu trúc gói tin ESP 46 3.2.3.3 Quá trình xử lý ESP 48 3.3 Kết hợp an ninh SA và giao thức trao đổi khóa IKE 53 3.3.1 Kết hợp an ninh SA 53 3.3.1.1 Định nghĩa và mục tiêu 53 3.3.1.2 Kết hợp các SA 54 3.3.1.3 Cơ sở dữ liệu SA 55 3.3.2 Giao thức trao đổi khóa IKE 56 3.3.2.1 Bước thứ nhất 57 3.3.2.2 Bước thứ hai 58 3.3.2.3 Bước thứ ba 60 3.3.2.4 Bước thứ tư 62 3.3.2.5 Kết thúc đường ngầm 62 3.4 Những giao thức đang được ứng dụng cho xử lý IPSec 62 3.4.1 Mật mã bản tin 62 3.4.1.1 Tiêu chuẩn mật mã dữ liệu DES 62 3.4.1.2 Tiêu chuẩn mật mã hóa dữ liệu gấp ba 3DES 63 3.4.2 Toàn vẹn bản tin 63 3.4.2.1 Mã nhận thực bản tin băm HMAC 64 3.4.2.2 Thuật toán MD5 64 3.4.2.3 Thuật toán băm an toàn SHA 64 3.4.3 Nhận thực các bên 65 3.4.3.1 Khóa chia sẻ trước 65 3.4.3.2 Chữ ký số RSA 65 3.4.3.3 RSA mật mã nonces 65 3.4.4 Quản lí khóa 66 3.4.4.1 Giao thức Diffie-Hellman 66 3.4.4.2 Quyền chứng nhận CA 67 3.5 Ví dụ về hoạt động của một IP-VPN sử dụng IPSec 68 3.6 Tổng kết 69 Chương 4 AN TOÀN DỮ LIỆU TRONG IP-VPN 70 4.1 Giới thiệu 70 4.2 Mật mã 71 4.2.1 Khái niệm mật mã 71 4.2.2 Các hệ thống mật mã khóa đối xứng 72 4.2.2.1 Các chế độ làm việc ECB, CBC 72 4.2.2.2 Giải thuật DES (Data Encryption Standard) 74 4.2.2.3 Giới thiệu AES (Advanced Encryption Standard) 76 4.2.2.4Thuật toán mật mã luồng (stream cipher) 77 4.2.3 Hệ thống mật mã khóa công khai 77 4.2.3.1 Giới thiệu và lý thuyết về mã khóa công khai 77 4.2.3.2 Hệ thống mật mã khóa công khai RSA 79 4.2.4 Thuật toán trao đổi khóa Diffie-Hellman 81 4.3 Xác thực 82 4.3.1 Xác thực tính toàn vẹn của dữ liệu 82 4.3.1.1 Giản lược thông điệp MD dựa trên các hàm băm một chiều 82 4.3.1.2 Mã xác thực bản tin MAC dựa trên các hàm băm một chiều sử dụng khóa 85 4.3.1.3 Chữ ký số dựa trên hệ thống mật mã khóa công khai 87 4.3.2 Xác thực nguồn gốc dữ liệu 88 4.3.2.1 Các phương thức xác thực 88 4.3.2.2 Các chứng thực số (digital certificates) 91 Chương 5 THỰC HIỆN IP-VPN 94 5.1 Giới thiệu 94 5.2 Các mô hình thực hiện IP-VPN 95 5.2.1 Access VPN 96 5.2.1.1 Kiến trúc khởi tạo từ máy khách 96 5.2.1.2 Kiến trúc khởi tạo từ máy chủ truy nhập NAS 97 5.2.2 Intranet IP-VPN và Extranet IP-VPN 97 5.2.3 Một số sản phẩm thực hiện VPN 98 5.3 Ví dụ về thực hiện IP-VPN 98 5.3.1 Kết nối Client-to-LAN 99 5.3.2 Kết nối LAN-to-LAN 101 KẾT LUẬN 102 Tài liệu tham khảo 103 Các website tham khảo 104

doc117 trang | Chia sẻ: lvcdongnoi | Lượt xem: 2254 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Tìm hiểu những vấn đề kỹ thuật cơ bản có liên quan đến việc thực hiện IP-VPN, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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. P1 P2 P3 E E E C1 C2 C3 C1 C2 C3 D D D P1 P2 P3 Phía phát Phía thu 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. P1 P2 P3 E E E IV C2 C3 C1 C2 C3 D D D P1 P2 P3 Phía phát Phía thu C1 IV Hình 4.3: Thuật toán mật mã khối ở chế độ CBC 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à . 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 dụng về quân sự, hoặc thương mại điện tử). Đây là lý do cần phát triển các thuật toán mật mã mới đáp ứng được những yêu cầu an toàn dữ liệu ngày càng cao. Trong số các thuật toán mới được phát triển gần đây có 3DES (Triple DES) với khóa công khai 168 bít và đặc biệt là AES. Năm 1997, NIST (US National Institute of Standards and Technology) đã tổ chức lựa chọn những thuật toán sau: * MARS (IBM): Cải tiến mạng Fiestel, thực hiện 32 vòng và dựa trên cấu trúc kết hợp của DES. * RC6 (RSA): Thực hiện mạng Fiestel 20 vòng, cải tiến thuật toán RC5. * Twofish (Bruce Schneier): thực hiện mạng Fiestel 16 vòng, cải tiến thuật toán Blowfish. * Serpent (Ross Anderson/ Eli Biham/ Lars Knudsen): Thực hiện mạng hoán vị thay thế 32 vòng. * Rijndael (Joan Daemen/ Vincent Rijimen): Thực hiện mạng hoán vị thay thế cải tiến 10 vòng. Trong 5 thuật toán trên, NIST đã chọn Rijindael cho chuẩn AES vào năm 2000. Trong tương lai, AES sẽ là chuẩn mật mã khối đối xứng và sẽ được thực hiện trên cả phần cứng lẫn phần mềm. AES sẽ được thiết kế để có thể tăng độ dài khóa khi cần thiết. Độ dài khối dữ liệu của AES là n = 128 bít, còn độ dài khóa k = 128, 192, 256 bit. 4.2.2.4Thuật toán mật mã luồng (stream cipher) Mật mã luồng dựa trên một bộ tạo luồng khóa (key stream generator) để tạo nên một chuỗi số giả ngẫu nhiên (pseudo-random sequence) khởi tạo bởi một khóa bí mật (secret key). Chuỗi khóa được XOR với chuỗi bit plaintext. Tại phía thu, một bộ tạo khóa giống hệt khởi tọa bởi cùng một khóa bí mật được đồng bộ với chuỗi ciphertext đầu vào. Phía thu phục hồi plaintext bằng cách XOR chuỗi ciphertext với chuỗi khóa đã đồng bộ. Khóa Bộ tạo chuỗi giả ngẫu nhiên Luồng bit Plaintext Luồng bit ciphertext Luồng bit plaintext 1 1 1 1 1 1 Luồng bít giả ngẫu nhiên 1 0 0 1 1 0 Luồng bit ciphertext 0 1 1 0 0 1 Hình 4.7: Mật mã luồng 4.2.3 Hệ thống mật mã khóa công khai 4.2.3.1 Giới thiệu và lý thuyết về mã khóa công khai Hệ thống mật mã khóa công khai còn được gọi là hệ thống mật mã khóa không đối xứng, vì theo như có chế mật mã này thì khóa được dùng để mã hóa gói tin và khóa được dùng để giải mã là khác nhau. Sự phát triển của mật mã khóa công khai có ý nghĩa rất lớn và tạo ra một cuộc cách mạng trong toàn bộ lịch sử của mật mã khóa. Những thuật toán công khai đều dựa trên những hàm toán học hơn là những nhóm thay thế và hoán vị trong mật mã khóa cổ điển. Trong hệ thống mật mã khóa công khai thì mỗi đối tác tham gia sẽ sở hữu một cặp khóa duy nhất, bao gồm một khóa bí mật (được lưu bí mật bởi đối tác) và một khóa công khai tương ứng (được phát trong các thư mục công cộng). Hai khóa này có quan hệ với nhau để đảm bảo rằng khóa công khai thực hiện chức năng mã hóa và khóa bí mật thực hiện chức năng giải mã. Các bước cần thiết trong quá trình mã hóa khóa công khai: - Một hệ thống cuối trong mạng tạo ra một cặp khóa để dùng cho mã hóa và giải mã đoạn tin mà nó sẽ nhận. - Mỗi hệ thống công bố rộng rãi khóa mã hóa bằng cách đặt khóa vào một thanh ghi hay một file công khai. Đây là khóa công khai, khóa còn lại được giữ riêng. - Nếu A muốn gửi một đoạn tin tới B thì A sẽ mã hóa đoạn tin bằng khóa công khai của B. - Khi B nhận được đoạn tin mã hóa, nó giải mã bằng khóa bí mật của mình. Không một người nào khác có thể giải mã đoạn tin mã này bởi vì chỉ minh B biết khóa bí mật đó thôi. Khóa công khai Đoạn tin Khóa bí mật Đoạn tin được mật mã Đoạn tin User A Giải thuật mã hóa Giải thuật giải mã User B Kênh truyền Hình 4.8: Sơ đồ mã khóa công khai Với cách tiếp cận này, tất cả những người tham gia có thể truy xuất khóa công khai. Khóa bí mật được tạo ra bởi từng các nhân, vì vậy không bao giờ được phân bố. Ở bất kì thời điểm nào, hệ thống cũng có thể chuyển đổi cặp khóa để đảm bảo tính bảo mật mà không cần sử dụng kênh thông tin an toàn để truyền khóa bảo mật. Các yêu cầu của mật mã khóa công khai: 1/ Công việc tính toán thì dễ dàng cho người nhận B: tạo cặp khóa công khai KU và khóa bí mật KR. 2/ Công việc tính toán thì dễ dàng cho người nhận A: biết khóa công khai và đoạn tin cần mã hóa M, để tạo mật mã tương ứng C=EKub(M). 3/Công việc tính toán dễ dàng cho người nhận B để thực hiện giải mã: sử dụng khóa bí mật để giải mã đoạn tin mã hóa C, khôi phục lại đoạn tin ban đầu. M = DKRb(C) = DKRb[EKUb(M)] 4/ Công việc tính toán không thể thấy trước đối với địch thủ biết khóa công khai KUb để xác định khóa bí mật KRb. Công việc tính toán không thể thấy trước đối với địch thủ biết khóa công khai KUb và đoạn tin mật mã C để khôi phục đoạn tin ban đầu M. 5/ Chức năng mã hóa và giải mã có thể được áp dụng theo thứ tự: M = DKRb[EKUb(M)] M = EKUb[DKRb(M)] Có thể nhận thấy rằng việc tính Y = f(X) thì dễ dàng trong khi tính X=f-1(Y) là không thể thấy trước. Nói chung từ “dễ dàng” được xác định bởi 1 bài toán là nó có thể được giải quyết trong thời gian nhất định (nó phụ thuộc vào chiều dài input). Nếu chiều dài input là n bít thì thời gian để tính hàm đó tỉ lệ với na . Để đảm bảo tính bảo mật thì phải sử dụng khóa có kích thước đủ lớn (thường trên 100 chữ số thập phân). Ví dụ kích thước khóa và thời gian bẻ khóa (MIPS tính theo năm) trong các giải thuật RSA/DSS và ECC như sau. Bảng 4.2: Thời gian bẻ khóa trong giải thuật RSSA/DSS và ECC. RSA ECC MIPS (năm) 512 768 1024 106 132 160 104 108 1012 4.2.3.2 Hệ thống mật mã khóa công khai RSA RSA do Rivest, Shamir và Adleman phát triển năm 1977. Sơ đồ RSA là sơ đồ mã hóa từng khối, với mỗi khối có giá trị nhỏ hơn n. Việc mã hóa và giải mã theo hình thức sau, cho khối văn bản M và khối bảo mật C: C = Me mod n M = Cd mod n = (Me)d mod n = Mde mod n Cả người gửi và nhận phải biết giá trị n, người gửi biết e và chỉ có người nhận biết d. Cho nên đây là giải thuật mã hóa với khóa công khai KU = [e,n] và khóa bí mật KR = [d,n]. Vì giải thuật này thỏa giải thuật mã khóa công khai nên các yêu cầu sau phải được đáp ứng: * Có thể tìm thấy giá trị d, e, n để: M = Mde mod n với mọi M<n hay không? * Một cách tương đối dễ dàng tính Me và Cd với mọi M<n hay không? * Không thể xác định d khi biết e và n. Theo lý thuyết Euler: cho 2 số nguyên p và q, 2 số nguyên n và m (n=p*q, 0<m<n) và số nguyên k. Ta có: mk0(n)+1mod n= mk(p-1)(q-1)+1 mod n= m mod n 0(n)=0(pq)=(p-1)(q-1) Do đó: Nếu: de = k0(n) + 1 và gcd(0(n),e)=1 (gcd: ước số chung lớn nhất) Thì: de mod 0(n) = 1 và d mod 0(n) = e1 Sơ đồ RSA: Giả sử user A đã công bố khóa công khai e của nó và user B muốn gửi đoạn tin M tới A. Khi đó B tính C=Me mod n và truyền C. Khi nhận được đoạn tin C này, user A giải mã bằng cách tính Cd mod n. Có thể thấy rằng M=Cd mod n vì: de mod 0(n) = 1 hay de = k0(n)+1 ® Mk0(n)+1mod n = Mk(p-1)(q-1)+1mod n=M mod n=(Mde mod n) modn=Mde mod n Cd mod n = (Me)dmod n = Mde mod n = M Có thể tóm tắt giải thuật RSA như bảng sau: Bảng 4.3: Tóm tắt giải thuật RSA và độ phức tạp Tạo khóa Độ phức tạp Tạo 2 số nguyên tố lớn p và q Tính n = p*q, 0(n) = (p-1)*(q-1) Chọn 1 số ngẫu nhiên 1<e<0(n): gcd (0(n),e) = 1 Tính d: d=e-1mod 0(n) (giải thuật Euclidean mở rộng) Khóa công khai KU=[e,n] Khóa bí mật KR=[d,n] 0((log n)2) 0(log(0(n))2) 0((log n)3) Ví dụ về quá trình mật mã và giải mã của thuật toán RSA: Chọn p = 3, q = 11. Khi đó ta có n = pq = 33 và (p-1)(q-1) = 20 = 2*5*5. Giá trị e được chọn phải quan hệ nguyên tố với 20 , nghĩa là không chứa các ước số 2,5 và e < 20. Ta chọn e = 3, d = 7. Khi đó ta có: Phía mật mã: Giả sử có bản tin: M = {10, 9, 5, 20} ® M3={1000, 729, 125, 8000} và C=M3 mod 33={10, 3, 26, 14}. Phía giải mã: C7 ={107, 2187, 267, 147} M=C7 mod 33{10, 9, 5, 20} Kích thước khóa RSA: tùy thuộc vào tính bảo mật và thời gian sống của khóa mà khóa có chiều dài thích hợp: - Loại Export : 512 bít. - Loại Personnal : 768 bit. - Loại Commercial : 1024 bit. - Loại Militery : 2048 bit. Trên đây là những nội dung chính của thuật toán mật mã RSA. Thực tế, để thực hiện được các thuật toán với kích thước khóa lớn đòi hỏi một lượng tính toán rất lớn liên quan đến vấn đề lý thuyết số như thuật toán Euclide để tìm USCLN của hai số nguyên hay thuật toán Miller-Rabin để kiểm tra tính nguyên tố của các số tự nhiên này. 4.2.4 Thuật toán trao đổi khóa Diffie-Hellman Thuật toán Diffie-Hellman cho phép hai bên trao đổi với nhau một khóa bí mật chung. Các bước thực hiện như sau: Bảng 4.4: Các bước thực hiện để trao đổi khóa Diffie Hellman Bên A Mạng Bên B Đồng ý với bên B về sử dụng số nguyên lớn ban đầu: P ® ¬ Đồng ý với bên A về sử dụng số nguyên lớn ban đầu: P Đồng ý về số nguyên làm nhiệm vụ tạo khóa: G ® ¬ Đồng ý về số nguyên làm nhiệm vụ tạo khóa: G Chọn lọc số bí mật: A ® ¬ Chọn lọc số bí mật: B Tính số công cộng: X=GAmod P Tính số công cộng: Y=GBmod P Gửi số X tới bên B X® ¬Y Gửi số X tới bên B Bây giờ đã biết: P, G, A, X, Y Bây giờ đã biết: P, G, B, X, Y Tính KA=YAmod P Tính KB=XBmod P Bây giờ đã có khóa bảo mật chia sẻ: KA=KB=K Bây giờ đã có khóa bảo mật chia sẻ: KA=KB=K Chứng minh: KA=(GBmod P)Amod P KA=(GB)Amod P KA=GBAmod P KA Chứng minh: KB=(GAmod P)Bmod P KB=(GA)Bmod P KB=GAB mod P KB Ví dụ về trao đổi khóa Diffie-Hellman như sau: hai bên A và B thống nhất với nhau số nguyên tố P=31 và một số nguyên G=3. Tại A: chọn A=8® X=38mod 31 = 20. X=20 này được gửi đến B. Tại B: chọn B=6® Y=36mod 31 = 16. Y=16 này được gửi đến A. Tính khóa bí mật K: Tại A: KA=168mod 31 = 4 Tại B: KB=206mod 31 = 4 Þ Hai bên chọn khóa bí mật là KA=KB=K=8 cho quá trình mật mã và giải mã thông tin. 4.3 Xác thực Xác thực là thuật ngữ để chỉ hai khái niêm: xác thực tính toàn vẹn của dữ liệu và xác thực nguồn gốc dữ liệu. Về cơ bản thì các xác thực này được giải quyết bằng các phương pháp khác nhau. Trong phần này chúng ta sẽ xem xét cách thức giải quyết hai vấn đề này. 4.3.1 Xác thực tính toàn vẹn của dữ liệu Xác thực tính toàn vẹn của dữ liệu (data intẻgity)bao gồm 2 vấn đề sau: + Phát hiện các bản tin bị lỗi (corrupted message): Phát hiện các lỗi bít do nguyên nhân lỗi của phương pháp truyền dẫ hoặc của thiết bị lưu trữ. Giải pháp cho vấn đề này sử dụng một Message Digest (MD: giản lược thông điệp- còn gọi là hàm hash) cho mỗi bản tin. MD hoạt động như một dấu vân tay (fingerprint) cho phép xác định duy nhất một bản tin (tương tự như CRC). + Bảo vệ chống sửa đổi bất hợp pháp bản tin (unathurized modification): phát hiện ra những bản tin đã bị sửa đổi một cách bất hợp pháp trong quá trình truyền dẫn. Có hai giải pháp cho vấn đề này trên cơ sở sử dụng mật mã khóa đối xứng và khóa không đối xứng. Gải pháp khóa đối xứng tạo ra một mã xác thực bản tin MAC (Message Authentication Code) dựa trên một hàm giản lược thông điệp có khóa tác động (keyed message digest function). Giải pháp khóa không đối xứng tạo ra một chữ ký số (digital signature) bằng cách mật mã giản lược thông điệp MD với khóa công khai của người gửi. 4.3.1.1 Giản lược thông điệp MD dựa trên các hàm băm một chiều a) Giản lược thông điệp MD (Message Digest) MD là phương pháp sử dụng để phát hiện lỗi truyền dẫn, nó được thực hiện bằng các hàm băm một chiều. MD có độ dài cố định hoạt động như một dấu vân tay duy nhất cho một bản tin có độ dài tùy ý. Với độ dài thông thường của một MD từ 128 bit đến 256 bit thì có thể đại diện cho 1038 đến 1077 giá trị vân tay khác nhau. Con số này là cực lớn nếu lấy một ví dụ như sau: giả sử trong thế kỷ 21, dân số 10 tỷ người, mỗi người trong một ngày viết 100 văn bản, như vậy tổng số văn bản mới chỉ là 365.1014. Nếu mỗi văn bản có một dấu vân tay xác định thì cũng chỉ có một phần rất nhỏ trong số 1038 khả năng có thể của MD được sử dụng. b) Các hàm băm một chiều Các hàm băm một chiều được sử dụng để tính MD. Một hàm băm được coi là tốt nếu thỏa mãn các yêu cầu sau: - Việc tính toán MD đơn giản, hiệu quả, cho phép tính MD của các bản tin có kích thước nhiều GB. - Không có khả năng tính ngược lại bản tin ban đầu khi biết giá trị MD của nó. Đây là lý do tại sao hàm băm được gọi là một chiều. - Giá trị MD phải phụ thuộc vào tất cả các bit của bản tin tương ứng. Dù chỉ một bit trong bản tin bị thay đổi, thêm vào hoặc xóa bớt thì sẽ có khoảng 50% các bản tin trong MD sẽ thay đổi giá trị một cách ngẫu nhiên. Hình 4.9 diễn tả điều này. Hàm băm có khả năng thực hiện ánh xạ message - to - digest giả ngẫu nhiên, nghĩa là với hai bản tin gần giống hệt nhau thì mã hash của chúng lại hoàn toàn khác nhau. - Do bản chất giả ngẫu nhiên của hàm băm và số lượng cực lớn các giá trị hash có thể có, nên hầu như không có khả năng hai bản tin phân biệt có cùng giá trị hash. Vì vậy, với các ứng dụng thực tế hiện nay, có thể coi đầu ra của hàm băm thực hiện trên một bản tin là dấu vân tay duy nhất của bản tin đó. 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 Hàm Hash Hàm Hash 1 0 1 1 0 1 0 0 0 1 0 0 Tài liệu hoặc bản tin (Độ dài tùy ý) Message Digest (độ dài cố định) Hàm băm một chiều Hình 4.9: Một bít thay đổi trong bản tin dẫn đến 50% các bít MD thay đổi Có hai hàm băm thông dụng là MD5 (Message Digest #5) và SHA (Secured Hash Funtion). MD5 do Ron Rivest (RSA Sercurity Inc) phát minh, tính giá trị hash 128 bit từ một bản tin nhị phân độ dài tùy ý. SHA được phát triển bởi NIST (US National Institute of Standards and Technology) với sự cộng tác của NSA (National Security Agency). SHA-1 tính giá trị hash 160 bit từ một bản tin nhị phân có độ dài tùy ý. Thuật toán này tương tự như MD5 nhưng an toàn hơn vì kích thước hash lớn hơn. Thuật toán SHA-2 với các kích thước hash là 256, 384 và 512 bít đã được NIST công bố vào tháng 10 năm 2000 để thích ứng với các khóa có độ dài lớn của thuật toán AES. 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 MD5 SHA 128 bit 160 bit Tài liệu hoặc bản tin (Độ dài tùy ý) Message Digest: Vân tay hàm băm Hàm băm một chiều Hình 4.10: Các hàm băm thông dụng MD5, SHA c) Cấu trúc cơ bản của các hàm băm một chiều Hình 4.12 cho thấy cấu trúc cơ bản của các hàm băm một chiều MD5 và SHA. Document Pad L Khối 1 512 bit Khối 2 512 bit Khối N 512 bit Hàm băm MD5/SHA Hàm băm MD5/SHA Hàm băm MD5/SHA H a s h H a s h H a s h I V N x 512 bit IV 128/160 bit Initialization vector P Padding Hash 128/160 bit Hash value L 64 bit Document Length Hình 4.11: Cấu trúc cơ bản của MD5, SHA MD5 và SHA là các thuật toán mã khối: - Cả MD5 và SHA đều làm việc với các khối dữ liệu đầu vào 512 bit. Như vậy, bản tin ban đầu được phân thành số nguyên lần các khối dữ liệu này. Điều này thực hiện bằng cách thêm một trường L (Document Length: độ dài bản tin) 64 bit vào cuối bản tin, sau đó chen 0¸512 bit đệm vào trước trường L để khối dữ liệu cuối cùng có độ dài đúng 512 bit. - Việc xử lý theo từng khối này cho phép tính giá trị hash của các bản tin lớn theo kiểu nối tiếp. Vectơ khởi tạo IV và giá trị hash: - Ngoài 512 bit khối dữ liệu đầu vào, hàm băm còn yêu cầu một vectơ khởi tạo IV (Initialization Vector) có kích thước bằng kích thước của hash (128 bit đối với MD5 và 160 bit đối với SHA-1). - Trong vòng tính đầu tiên, IV lấy giá trị định nghĩa trước trong các chuẩn MD5, SHA. Một giá trị hash sẽ được tính dựa trên khối 512 bit đầu vào đầu tiên. Giá trị hash này sẽ đóng vai trò IV trong vòng tính thứ hai. Quá trình tiếp tục với giá trị hash của vòng trước là IV của vòng sau. Sau khi khối dữ liệu 512 bit cuối cùng được xử lý thì giá trị hash tính được chính là MD (vân tay) của toàn bộ bản tin. 4.3.1.2 Mã xác thực bản tin MAC dựa trên các hàm băm một chiều sử dụng khóa MAC (Message Authentication Code) là phương pháp bảo vệ chống sửa đổi bất hợp pháp nội dung bản tin. MAC được thực hiện bằng các hàm băm một chiều kết hợp với khóa bí mật. Phía phát Phía thu 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 Keyed Hash Funtion MAC Key 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 Keyed Hash Funtion MAC Key MAC Kênh truyền So sánh Hình 4.12: Xác thực tính toàn vẹn dựa trên mã xác thực bản tin MAC Lý do xây dựng mã xác thực bản tin MAC là vì bản thânh MD không cung cấp bất kỳ bảo vệ nào chống lại việc thay đổi bất hợp pháp nội dung của bản tin. Khi một người nào đó thay đổi nội dung của bản tin trên đường truyền dẫn thì anh ta cũng có thể tính lại giá trị hash MD5 hay SHA dựa trên nội dung bản tin đã thay đổi đó. Như vậy, tại phía thu, giá trị hash của bản tin nhận được vẫn hoàn toàn hợp lệ. Để giải quyết vấn đề này, phải sử dụng một khóa bí mật trong quá trình tính vân tay của bản tin thì mới đảm bảo chống lại những thay đổi bất hợp pháp. Phía thu (nơi có khóa bí mật) tạo ra một giản lược thông điệp hợp lên (valid MD), gọi là mã xác thực bản tin MAC. Phía thu sử dụng khóa bí mật để xác định tính hợp lệ của bản tin bằng cách tính lại giá trị MAC và so sánh với giá trị MAC mà phía phát truyền đi. Đến đây, vấn đề là xây dựng các hàm băm một chiều sử dụng khóa dựa trên các hàm băm đã trình bày ở trên. RFC 2104 đưa ra một phương án để xây dựng các hàm băm có sử dụng khóa trên cơ sở các hàm băm như MD5, SHA. 512 bit 0x36…0x36 Key Pad 0x5C…0x5C Inner Key Document Hàm băm MD5/SHA Outer Key Hash Hàm băm MD5/SHA Hash MAC XOR XOR Hình 4.13: Quá trình tạo mã xác thực bản tin MAC Phía trước bản tin cần xác thực, thêm vào 512 bit khóa bên trong (inner key). Khóa này được hình thành bằng cách thêm các bit đêm (padding) vào khóa bí mật cho đủ 512 bit, sau đó XOR khối này với các giá trị 0x36. Để đảm bảo tính an toàn cao nhất thì độ dài của khóa bí mật phải lớn hơn hoặc bằng độ dài của giá trị hash (128 bit đối với MD5 và 160 bit đối với SHA). Bản tin bây giờ được đưa tới hàm băm. Vì giá trị hash của khối dữ liệu trước luôn đóng vai trò là vectơ khởi tạo cho khối sau, nên hàm băm thực hiện trên khối inner key sẽ tạo ra một vectơ khởi tạo để thực hiện hash cho bản tin gốc ban đầu, giá trị của vectơ khởi tạo này chỉ phụ thộc vào khóa bí mật mà thôi. Như vây, khi khóa bí mật giữ nguyên thì tất cả các bản tin đều có thể được ký sử dụng cùng một vectơ khởi tạo bí mật. Tương tự đối với khóa ngoài (outer key). Khóa ngoài được hình thành bằng cách XOR khóa bí mật (đã chèn các bit đệm) với các giá trị 0x5C. Khi đó, hàm băm thực hiện trên khối outer key sẽ tạo ra một vectơ khởi tạo để thực hiện hash cho chính giá trị hash tính ở vòng thứ nhất. Thông thường giá trị MAC cuối cùng được tạo ra bằng cách cắt ngán giá trị hash thu được bởi MD5 (128 bit) và SHA (160 bit) xuống còn 96 bit. Mặc dù việc cắt ngắn này làm giảm đáng kể số các tổ hợp cần thử đối với một tấn công kiểu brute fore, nhưng nó có tác dụng che dấu trạng thái bên trong của thuật toán băm và sẽ khó khăn hơn rất nhiều cho kẻ tấn công để có thể đi từ đầu ra của vòng băm thứ hai tới kết quả trung gian của vòng băm thứ nhất. Phưong pháp xác thực tính toàn vẹn sử dụng MAC có ưu điểm là thực hiện nhanh và hiệu quả, vì việc tạo MAC dựa trên các hàm băm tương đối đơn giản, do đó thường được sử dụng để xác thực các cụm dữ liệu ở tốc độ cao. Nhược điểm là phía thu phải biết được khóa bí mật thì mới xác định được tính toàn vẹn của bản tin, dẫn đến vấn đề phân phối khóa một cách an toàn. 4.3.1.3 Chữ ký số dựa trên hệ thống mật mã khóa công khai Chữ ký số là một phương pháp để bảo vệ chống sửa đổi bất hợp pháp nội dung bản tin. Chữ ký số được thực hiện bằng cách mật mã giá trị hash thu được từ một hàm băm một chiều. Hình 4.14 diễn tả giá trị hash (MD5 hoặc SHA) của bản tin được mật mã với khóa bí mật của phía phát để tạo thành chữ ký số và được truyền đi cùng với bản tin tương ứng. Phía thu Kênh truyền Phía phát 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 Hàm băm Chữ ký Giá trị băm Mật mã cùng với khóa riêng 1 0 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 0 1 0 1 Chữ ký Giá trị băm Giải mã cùng với khóa công cộng Giá trị băm So sánh Hình 4.14: Chữ ký số Phía thu tính lại mã hash từ bản tin thu được, đồng thời giải mã chữ ký số đi kèm với bản tin. Nếu giá trị giải mã trùng với giá trị hash tính được thì kết luận được tính toàn vẹn của bản tin, vì chỉ có phía phát mới có đúng khóa bí mật để mật mã chữ ký số đó. Do các khóa công khai được phân bố rộng rãi, nên bất cứ người nào cũng có thể xác định được tính toàn vẹn của bản tin. Phương pháp này tránh được vấn đề phân phối khóa an toàn, nhưng các quá trình mật mã và giải mã sử dụng khóa bí mật/ công khai thực hiện rất chậm. Vì vậy phương pháp này chỉ được sử dụng để xác thực đối tác tại thời điểm ban đầu của phiên trao đổi thông tin. 4.3.2 Xác thực nguồn gốc dữ liệu 4.3.2.1 Các phương thức xác thực Có hai phương thức xác thực nguồn gốc dữ liệu: xác thực dựa trên mật khẩu và xác thực dựa trên giao thức hỏi đáp. a) Phương thức xác thực dựa trên mật khẩu Đối với phương thức này, tồn tại 2 nguy cơ mất an toàn như sau: - Nguy cơ thứ nhất: Mật khẩu phải truyền qua một kênh không an toàn. Ví dụ trong trường hợp đăng nhập từ xa sử dụng giao thức telnet yêu cầu truyền nhận dạng (ID) và mật khẩu (password) của người sử dụng ở dạng bản rõ tới máy đích. Như vậy nguy cơ mất an toàn là cao vì phải truyền mật khẩu qua Internet - một kênh không an toàn. - Nguy cơ thứ hai: mật khẩu phải được lưu trong một phương tiện lưu trữ của máy chủ, thông thường là máy chủ đăng nhập (login server). Việc lưu trữ mật khẩu cũng là một nguy có mất an toàn cao. b) Phương thức xác thực dựa trên các giao thức hỏi đáp Để xác thực qua một kênh không an toàn, có thể sử dụng một giao thức hỏi đáp để kiểm tra xem đối tác cần xác thực có sở hữu một giá trị bí mật để xác thực đối tác đó hay không. Phương thức này không yêu cầu phải trao đổi các giá trị bí mật thông qua kênh không an toàn. Giao thức hỏi đáp này sử dụng mã xác thực bản tin MAC hoặc chữ ký số. - Giao thức hỏi đáp sử dụng mã xác thực bản tin MAC Giá trị ngẫu nhiên (Nonce) Kênh không an toàn IDU RU RS Key Keyed Hash Function IDU RU MAC IDU RU RS RS Key Keyed Hash Function MAC MAC Khẩu lệnh Đáp User Server Hình 4.15: Giao thức hỏi đáp MAC Phương pháp này sử dụng một khóa bí mật chung giữa hai đối tác. Chẳng hạn khi một người sử dụng muốn đăng nhập vào một máy chủ, máy chủ sẽ gửi một câu khẩu lệnh (challenge) tới người sử dụng, dứoi dạng một giá trị ngẫu nhiên (gọi là nonce). Để đề phòng tấn công kiểu lặp lại, mỗi giá trị nonce thường không được sử dụng đến lần thứ hai. Người sử dụng tạo ra một trả lời (response) bằng cách ghép các giá trị ngẫu nhiên RS (nhận được từ máy chủ) với thông số nhận dạng ID của người đó, sau đó đưa tới một hàm băm có sử dụng khóa được khởi tạo bởi một khóa bí mật. Bản thân hàm băm để tăng tính an toàn. Kết quả của hàm băm là mã MAC, cùng với thông số nhận dạng ID sẽ được gửi tới máy chủ. Với đặc tính một chiều của MAC, dữ liệu được truyền đi trên kênh không an toàn sẽ không để lộ bất cứ thông tin nào về khóa bí mật. Máy chủ dựa vào các thông tin mà nó có (bao gồm ID, RU, RS, khóa bí mật) để tính giá trị MAC, sau đó so sánh với MAC mà người sử dụng gửi đi. Nếu người sử dụng có đúng khóa bí mật sử dụng chung thì hai giá trị này trùng khớp với nhau và quá trình xác thực thành công. - Giao thức xác thực sử dụng chữ ký số Giao thức hỏi đáp cũng có thể dựa trên chữ ký số, sử dụng mật mã khóa công khai. Người sử dụng là người duy nhất có khóa bí mật, còn một server bất kỳ đề có khóa công khai tương ứng của người sử dụng đó nếu muốn xác thực. Người sử dụng tạo ra một mã hash từ các thông tin: ID, RS (nhận được từ máy chủ như một khẩu lệnh), RU. Bằng cách mật mã giá trị hash với khóa bí mật, sẽ tạo thành một chữ ký số để gửi lại máy chủ (như một trả lời). Các hệ thống mật mã khóa công khai đã trở nên thông dụng vì khóa công khai không cần phải giữ bí mật và do đó có thể được phân phối một cách rộng rãi. Vì vậy, khi một máy chủ xác thực một người sử dụng bằng cách kiểm tra chữ ký trên cơ sở khóa công khai của người sử dụng đó thì vấn đề đặt ra là liệu cặpkhóa công khai/ bí mật sử dụng trong quá trình xác thực có thực sự thuộc về người sử dụng này hay không. Giá trị ngẫu nhiên (Nonce) Kênh không an toàn IDU RU RS Hash IDU RU Sig IDU RU RS RS Giải mã với khóa công khai Sig Khẩu lệnh Đáp User Server Mật mã với khóa bí mật Hash Hash Hình 4.16: Giao thức hỏi đáp sử dụng chữ ký số Nếu khóa công khai sử dụng trong quá trình xác thực được lấy từ một thư mục công cộng thì một tấn công kiểu trung gian (man-in-the-middle attack) có thể dễ dàng thay thế khóa công khai của người sử dụng bằng một khóa công khai của kẻ tấn công. Đây chính là nguyên nhân dẫn đến việc hình thành các chứng thực (certificate). Các chứng thực thiết lập một mối liên hệ tin cậy giữa nhận dạng người sử dụng và khóa công khai của người đó. 4.3.2.2 Các chứng thực số (digital certificates) a) Mô hình tin tưởng thứ nhất Một phương pháp để thiết lập tin tưởng đối với khóa công khai của người sử dụng là cách tiếp cận mạng tin tưởng (web of trust) đã được sử dụng bởi gói phần mềm mật mã và xác thực thư điện tử PGP (Pretty Good Privacy). Ví dụ trong hình 4.17, C có thể tin tưởng A thông qua 3 đường liên kết trung gian. Can C trust A ? Trust A Signed by B Certificate C Signed by D Certificate B Signed by A D Signed by B Signed by D Signed by C Trust Trust Hình 4.17: Mô hình tin tưởng thứ nhất (PGP Web of Trust) Trong mạng tin tưởng, mỗi đối tác tham gia sẽ yêu cầu các đôi tác khác ký vào mã hash của chứng thực (chưa nhận dạng, chẳng hạn địa chỉ email và khóa công khai) của đối tác đó. Giả sử C nhận được một email ký gửi bởi A, C sẽ lấy chứng thực của A từ một thư mục công cộng và thấy rằng chứng thực đó đã được ký bởi B. Tiếp theo, C lấy chứng thực của B và thấy rằng nó đã được ký bởi D. Tiếp theo, C lấy chứng nhận của D và thấy rằng nó đã được ký bởi chính mình. Đến đây, các mắt xích đã hoàn tất và có thể thiết lập tin tưởng A. Cách tiếp cận kiểu mạng tin tưởng chỉ thích hợp với một nhóm nhỏ người sử dụng. Khi số người cần được xác thực tăng lên, chẳng hạn hàng triệu người, số lượng các đường liên kết trung gian trung bình tăng và kéo theo tăng việc tìm các chứng thực. Ngoài ra, khi số các mắt xích tin tưởng tăng thì độ tin cậy cũng giảm đi. Ưu điểm của mạng tin tưởng là không cần sự có mặt của một nhà phân phối trung tâm (central authority). b) Mô hình tin tưởng thứ hai Mô hình tin tưởng thứ hai phân cấp tin tưởng với các nhà phân phối chứng thực CAs (Certificate Authorities). Hiện nay mô hình này được lựa chọn để triển khai và sử dụng các chứng thực với qui mô lớn. các mắt xích tin tưởng ở dạng phân cấp: trên cùng là các nhà phân phối chứng thực gốc, tiếp theo là các nhà phân phối chứng thực trung gian. Client Certificate Trust Verisign Self Signed Amazon Verisign Bob Amazon Alice Amazon Carol Swisskey Swisskey Self Signed Intermediate CA Root CA Hình 4.18: Mô hình tin tưởng thứ hai (phân cấp tin tưởng với các CAs) - Các nhà phân phối chứng thực gốc (Root CAs) Tại mức trên cùng của phân cấp các mắt xích tin tưởng là một số nhà phân phối chứng thực gốc. Các Root CAs được dùng phổ biến là: Verisign, RSA, Baltimore, Rntrust, Deutsche Telekom và Swisskey. - Các nhà phân phối chứng thực trung gian (Intermediate CAs) Root CAs có thể trực tiếp cấp phát các chứng thực cho người sử dụng. Tuy nhiên đối với các tổ chức trung bình hoặc lớn thì sẽ thuận lợi hơn nhiều nếu tự thiết lập lấy một CS, khi đó họ có thể tự cấp phát hoặc hũy bỏ các chứng thực cho các các nhân trong tổ chức. Bản thân chứng thực của CA trung gian này thường được cấp phát với ký tự Root CA. Về nguyên tắc thì có thể thực hiện một số tùy ý các phân cấp, nhưng thông thường chỉ sử dụng từ hai đến ba cấp từ chứng thực của người sử dụng đến Root CA. - Cấu trúc chung của một chứng thực X.509 Mạng tin tưởng thường sử dụng chứng thực OpenPGP (RFC 2440). Còn mô hình phân cấp tin tưởng thường sử dụng chứng thực ITU-T X.509 (RFC 2459). Signature SignatureAlgorithm* Version Serial Number Signature* Issuer Validity Subject SubjectPublicKeyInfo IssuerUniqueID Optional SubjectUniqueID Optional Extensions Optional Hash/ Fingerprint Hàm hash Encryption with Issure’s Private Key Hình 4.19: Cấu trúc chung của một chứng thực X.509 Một chứng thực X.509v3 bao gồm 3 phần - Phần thân của chứng thực. - Định nghĩa thuật toán sử dụng bởi CAs để ký chứng thực. - Chữ ký đảm bảo tính xác thực của chứng thực, bao gồm mã hash của phần thân chứng thực được mật mã với khóa bí mật của CAs. Riêng phần thân của chứng thực bao gồm các thông tin sau: i/ Version Number (số phiên bản): hiện tại có các phiên bản v1, v2, v3. ii/ Serial Number: duy nhất được cấp bởi SA tương ứng. iii/ Signature (chữ ký) và Issure: mô tả thuật toán được sử dụng để chứng thực. iv/ Nhận dạng (ID) của CA phát hành và ký chứng thực. v/ Nhận dạng (ID) của đối tượng sử dụng. vi/ Khóa công khai của đối tượng sử dụng. vii/ Các mở rộng tùy chọn của v2 hoặc v3. Chương 5 THỰC HIỆN IP-VPN 5.1 Giới thiệu Các chương trước đã trình bày về những kỹ thuật cơ bản của IP-VPN bao gồm các giao thức đường ngầm, thuật toán mật mã và xác thực. Các kỹ thuật này hiện đã được giải quyết tích hợp sẵn trong các sản phẩm của nhiều hãng trên thế giới. Do hiện nay chưa có một chuẩn thống nhất cho việc sản xuất các thiết bị VPN, nên vấn đề đặt ra là sự tương thích giữa các sản phẩm của các hãng khác nhau. Người sử dụng cần phải được đảm bảo rằng thiết bị mà họ mua có thể làm việc tốt với các thiết bị khác trong mạng. Để giải quyết vấn đề này, từ năm 2000 VPNC (Virtual Private Network Consortium) đã tổ chức kiểm tra và cấp chứng chỉ cho các sản phẩm IP-VPN đạt yêu cầu về tính tương thích (VPNC Testing for Interoperability and Conformance). Sau đây là danh sách một số sản phẩm đã qua kiểm tra của VPNC: ADTRAN, NetVanta. Alcatel, Secure VPN Gateway 7130 series. Check Point Software, VPN-1 Gateway. Cisco, IOS IPSec. Cisco, VPN 3000 Concentrator. Cylink, NetHawk. NetScreen, NetScreen family. Nokia, Nokia VPN. SafeNet, SafeNet family. SSH Communications Security, IPSec Express. WatchGuard Technologies, WatchGuard Firebox Vclass. Như vậy đã có nhiều hãng tham gia nghiên cứu, phát triển các thiết bị VPN. Bản thân mỗi hãng lại có nhiều dòng sản phẩm phục vụ cho nhiều nhu cầu ứng dụng khác nhau. Các sản phẩm có thể là chuyên dụng (phục vụ riêng cho mục đích VPN) hoặc kết hợp (chức năng VPN được đi kèm với các chức năng khác, chẳng hạn như router, firewall). Do chưa tồn tại một chuẩn chung nên cách thức sử dụng, cấu hình các sản phẩm này cũng khác nhau. Mục đích của chương này là đưa ra các nguyên tắc và mô hình thực hiện VPN nói chung và giới thiệu qua về tình hình thị trường VPN của Việt Nam. 5.2 Các mô hình thực hiện IP-VPN Một cách tổng quát thì việc lựa chọn một phương án để thực hiện VPN phụ thuộc vào mục đích và qui mô của ứng dụng. Như đã biết, mục đích cơ bản của ứng dụng VPN là truy nhập từ xa (Remote Access) hoặc kết nối Site-to-Site. Còn qui mô của ứng dụng thể hiện ở số phiên trao đổi có thể thực hiện đồng thời. Một đặc điểm quan trọng khác là vai trò của nhà cung cấp dịch vụ ISP. Một phương án thực hiện VPN có thể dựa vào dịch vụ cung cấp bởi ISP hoặc trong suốt đối với ISP. Trong trường hợp thứ nhất, ISP được trang bị các thiết bị VPN và có thể cung cấp dịch vụ VPN cho các tổ chức, người sử dụng có nhu cầu về dịch vụ này. Trong trường hợp thứ hai, bản thân các tổ chức và người sử dụng tự trang bị lấy thiết bị VPN cho mình. Khi này họ có thể thực hiện VPN mà không cần quan tâm đến việc ISP có hỗ trợ dịch vụ này hay không. Về phương diện người sử dụng, có 3 ứng dụng hay loại hình IP-VPN là: Access IP-VPN, Intranet VPN và Extranet IP-VPN. Hình 5.1: Ba mô hình IP-VPN - Access IP-VPN: cung cấp truy nhập từ xa thông qua Internet tới mạng trung tâm, với những đặc điểm của một mạng riêng, ví dụ như tín an toàn (sercurity), độ ổn định. Access IP-VPN cho phép người sử dụng truy nhập các nguồn tài nguyên của tổ chức ở bất kỳ nơi nào, lúc nào mà họ mong muốn. Các công nghệ truy nhập tương tự, quay số, ISDN, đường dây thuê bao số (DSL), điện thoại di động… đều có thể dùng để kết nối an toàn những người sử dụng lưu động tới mạng trung tâm. - Intranet VPN: kết nối các mạng chi nhánh với mạng trung tâm thông qua Internet, đồng thời vẫn đảm bảo các đặc tính của một mạng riêng. - Extranet VPN: kết nối với khách hàng, đối tác với một phần mạng trung tâm thông qua Internet, đồng thời vẫn đảm bảo các đặc tính của một mạng riêng. 5.2.1 Access VPN Có rất nhiều lựa chọn để thực hiện Access VPN, do vậy cần cân nhắc thận trọng trước khi quyết định lựa chọn phương án nào. Như liệt kê ở đây, có nhiều công nghệ truy nhập, từ các công nghệ quay số hoặc ISDN truyền thông tới các công nghệ mới như truy nhập sử dụng DSL. Thêm vào đó phải lực chọn một kiến trúc VPN: kiến trúc khởi tạo từ máy khách (client inititated) hay kiến trúc khởi tạo từ máy chủ truy nhập (network access server initiated architure). 5.2.1.1 Kiến trúc khởi tạo từ máy khách Đối với Access IP-VPN khởi tạo từ phia máy khách, mỗi PC của người sử dụng từ xa phải cài đặt phần mềm IPSec. Khi người sử dụng quay số tới POP (Point of Presence) của ISP, phần mềm này sẽ khởi tạo một đường ngầm IP-VPN và thực hiện mật mã. Kiến trúc này rất an toàn vì dữ liệu được bảo vệ trên toàn bộ đường ngầm PC của người sử dụng đến mạng trung tâm. Trong phương án này có thể sử dụng bất kỳ công nghệ truy nhập nào để kết nối tới Internet. Thêm vào đó, phương án này là trong suốt đối với nhà cung cấp dịch vụ ISP, nghĩa là có thể thực hiện IP-VPN mà không cần thực hiện bất cứ thay đổi nào đối với ISP, chẳng hạn như mật mã dữ liệu. Nhược điểm của mô hình này là phải cài đặt và quản trị phần mềm IPSec client trên tất cả các PC truy nhập từ xa. Hình 5.2: Truy nhập IP-VPN từ xa khởi tạo từ phía người sử dụng 5.2.1.2 Kiến trúc khởi tạo từ máy chủ truy nhập NAS Đối với truy nhập IP-VPN khởi tạo từ máy chủ truy nhập thì NAS (tại POP) sẽ khởi tạo đường ngầm và thực hiện mật mã thay cho người sử dụng. Sẽ có một phần kết nối không được bảo vệ giữa người sử dụng và POP. Phần kết nối còn lại được bảo đảm an toàn bởi một đường ngầm và mật mã dữ lệu. Mô hình này dễ quản lí hơn, vì không phải kiểm soát tất cả phần mềm IPSec client tại các PC truy nhập từ xa. Mô hình này cũng dể dàng mở rộng hơn so với mô hình truy nhập khởi tạo từ người sử dụng vì chỉ cần cấu hình máy chủ NAS, thay vì cấu hình tất cả các PC. Hình 5.3: Truy nhập IP-VPN khởi tạo từ máy chủ 5.2.2 Intranet IP-VPN và Extranet IP-VPN Ở chương 2 đã trình bày về mô hình Intranet và Extranet IP-VPN. Chương này sẽ trình bày một ví dụ về mô hình triển khai Intranet và Extranet IP-VPN khởi tạo từ raouter. Hình 5.4 ví dụ về hai router ở mỗi đầu của kết nối thiết lập một đường ngầm sử dụng IPSec sau đó thỏa thuận việc mật mã. Hình 5.4: IP-VPN khởi tạo từ routers Mô hình này có một số lựa chọn thực hiện khác nhau. Trường hợp thứ nhất, ISP quản lý, cung cấp và duy trì kết nối Internet cơ sở, còn bản thân tổ chức phải quản lý tất cả các vấn đề như an toàn dữ liệu, quản lý router, máy chủ, các nguồn tài nguyên như ngân hàng các modem quay số. Trường hợp thứ hai là mô hình lai (hybrid model). Trong mô hình này, tổ chức và nhà cung cấp dịch vụ chia sẻ các công việc tương đối ngang bằng, ISP cung cấp thiết bị VPN, đảm bảo QoS với mức băng tần thỏa thuận, còn phía nhà quản trị mạng quản trị các ứng dụng và cấu hình, cung cấp các dịch vụ trợ giúp và an toàn dữ liệu. Trường hợp thứ ba, nhà quản trị mạng chỉ quản lý các máy chủ an ninh, còn ISP cung cấp toàn bộ giải pháp VPN, dịch vụ trợ giúp, huấn luyện… 5.2.3 Một số sản phẩm thực hiện VPN Như ta đã biết, có nhiều hãng tham gia nghên cứu, phát triển các sản phẩm VPN, mỗi hãng lại đưa ra nhiều dòng sản phẩm. Các hãng khác nhau có cách tiếp cận và ưu nhược điểm riêng. Sau đây ví dụ về các sản phẩm của Cisco và Netsreen. Sản phẩm của 2 hãng này tương đối đa dạng và có thể phục vụ cho một phạm vi rộng các nhu cầu ứng dụng khác nhau. Bảng 5.1: Ví dụ về các sản phẩm của Cisco và Netsreen Loại khách hàng Cisco Netsreen Remote Access Site-to-Site ISP/ Central Site 3080, 3060 Concentrators VPN routers 71x0 Netsreen-1000, Netsreen-500 Medium Site 3030 Concentrators Routers 7x00, 3600 Netsreen-208, Netsreen-204 Small Office 3015, 3005 Concentrantors Routers 3600, 2600, 1700 Netsreen-50, Netsreen-20, Netsreen-XP Home Office/ Telecommuter Cisco VPN Software Client 3002 Hardware Client Router 800, 905 Netsreen-Remote 5.3 Ví dụ về thực hiện IP-VPN Để minh họa, ta xét 2 trường hợp: ứng dụng kết nối remote Access và ứng dụng Site-to-Site sử dụng thiết bị VPN 3000 Concentrantor của Cisco. VPN concentrantor có các thông số kỹ thuật sau: Xác thực tính toàn vẹn dữ liệu: sử dụng thuật toán HMAC-MD5 (128 bit), HMAC-SHA-1 (160 bit). Xác thực nguồn gốc dữ liệu: có thể cấu hình để sử dụng mật khẩu (khóa chia sẻ trước) hoặc chữ ký số. Trao đổi khóa: sử dụng thuật toán Diffie-Hellman, chứng thực số. Mật mã dữ liệu: sử dụng một trong các thuật toán DES, 3DES ở chế độ CBC. Trong tương lai, các thiết bị VPN cần hỗ trợ các thuật toán tiên tiến hơn, chẳng hạn thuật toán mật mã AES, xác thực SHA-2. 5.3.1 Kết nối Client-to-LAN Trong trường hợp này, người sử dụng từ xa cần kết nối vào mạng trung tâm để truy nhập thư điện tử, các file cơ sở dữ liệu, trình diễn… Để thực hiện kết nối này, một phương án là sử dụng thiết bị VPN 3000 Concentrator ở mạng trung tâm của tổ chức, và phần mềm VPN 3000 Concentrantor Client tại máy tính của người sử dụng. Hình 5.5: Các thành phần của kết nối Client-to-LAN Có thể thấy trên hình 5.5, kết nối Client-to-LAN bao gồm 4 thành phần: IPSec client Software, Point-to-Point Protocol (PPP), IPSec Protocol, và VPN 3000 Concentrator. Phần mềm IPSec (IPSec Client Software) không có sẵn trong hệ điều hành Windows nên phải được cài đặt trên máy tính có yêu cầu truy nhập từ xa. Nó được sử dụng để mật mã, xác thực và đóng gói dữ liệu, đồng thời là một điểm cuối của đường ngầm. Giao thức PPP được các ứng dụng truy nhập từ xa sử dụng để thiết lập một kết nối vật lí tới nhà cung cấp dịch vụ ISP. Sau khi được ISP xác thực, người sử dụng khởi động phần mềm IPSec Client để thiết lập một đường ngầm an toàn (secure tunnel), thông qua Internet để tới VPN 3000 Concentrantor. Mạng trung tâm, VPN 3000 Concentrator là một điểm cuối còn lại của đường ngầm. Nó thực hiện giải mã, xác thực, và mở gói dữ liệu. Hình 5.6: Đường ngầm IPSec Client-to-LAN Hình 5.6 cho thấy đường ngầm IPSec Client-to-LAN. Người sử dụng từ xa cần truy nhập thông tin tại máy chủ của mạng trung tâm tại địa chỉ 192.168.1.10. Địa chỉ nguồn thường là địa chỉ ảo của client, 192.168.1.20. Địa chỉ này thường được cấp cho client từ máy chủ DHCP hoặc chính VPN Concentrator. Địa chỉ ảo giúp cho client có thể hoạt động như đang ở ngay mạng trung tâm. Bất cứ dữ liệu nào khi truyền từ server tới client đều phải được bảo vệ. Do đó chúng được mật mã, xác thực và đóng gói bằng giao thức ESP. Sau khi đóng gói dữ liệu bằng ESP thì một IP header mới được thêm vào gói dữ liệu (gọi là header ngoài) để định tuyến gói tin qua mạng. Địa chỉ nguồn của outside IP header là địa chỉ card mạng (NIC) của client. Địa chỉ đích là giao diện công cộng của VPN 3000 Concentrator. Ngoài thiết bị VPN 3000 Concentrator ở mạng trung tâm, mỗi máy tính truy nhập từ xa cần cài đặt phần mềm IPSec client. Phần mềm này làm việc với VPN 3000 Concentrator để tạo một đường ngầm an toàn giữa máy tính truy nhập từ xa và mạng trung tâm. IPSec client sử dụng IKE và giao thức đường ngầm IPSec để tạo và quản lý đường ngầm. Trong quá trình hoạt động, các bước sau thực hiện gần như tự động đối với người sử dụng. - Thỏa thuận các thông số đường ngầm: địa chỉ, thuật toán. - Thiết lập đường ngầm dựa trên các thông số đã thiết lập. - Xác thực người sử dụng thông qua username, groupname, password, digital certificate. - Thiết lập các quyền truy nhập của người sử dụng: thời gian, số giờ truy nhập, các giao thức được phép… - Quản trị các khóa an ninh để mật mã va giải mã. - Thiết lập phiên trao đổi IPSec. - Xác thực, mật mã và giải mã các dữ liệu đi qua đường ngầm. Hình 5.7: Phần mềm IPSec Client 5.3.2 Kết nối LAN-to-LAN Trong trường hợp này, giả thiết người sử dụng từ mạng LAN ở xa muốn truy nhập vào máy chủ ứng dụng ở mạng trung tâm. Một phương án để thực hiện kết nối này là sử dụng hai VPN 3000 Concentrator, một ở mạng trung tâm, một ở mạng xa. Một gói tin IP được xây dựng với địa chỉ nguồn là 192.168.1.20 và địa chỉ đích là 192.168.1.10. Gói tin được định tuyến tới VPN Concentrantor, VPN Concentrator mật mã và đóng gói IP ban đầu với ESP header. Gói tin này được bảo vệ nhưng không định tuyến được do các trường địa chỉ ở dạng mật mã. Vì vậy, một IP header bên ngoài được thêm vào. Các địa chỉ bên ngoài này (203.16.5.19, 172.26.26.1) giúp định tuyến gói tin qua Internet. Sau khi đã có đường ngầm thì một phiên trao đổi được thiết lập cho phép truyền thông giữa hai mạng riêng. Hình 5.8: Đường ngầm IPSec LAN-to-LAN KẾT LUẬN VPN là công nghệ được sử dụng phổ biến hiện nay nhằm cung cấp kết nối an toàn và hiệu quả để truy cập tài nguyên nội bộ công ty từ bên ngoài thông qua mạng Internet. Mặc dù sử dụng hạ tầng mạng chia sẻ nhưng chúng ta vẫn bảo đảm được tính riêng tư của dữ liệu giống như đang truyền thông trên một hệ thống mạng riêng. Đồ án này đã đi sâu tìm hiểu các vấn đề kỹ thuật và mô hình thực hiện của công nghệ IP-VPN. Trong đó, đường ngầm là nền tảng của IP-VPN, phạm vi của đồ án này đã trình bày về các giao thức đường ngầm: PPTP, L2TP và IPSec. PPTP và L2TP là những giao thức đường ngầm được phát triển dựa trên giao thức PPP. Hai giao thức này là các chuẩn đã hoàn thiện và các sản phẩm hỗ trợ chúng tương đối phổ biến. Đối với những ứng dụng yêu cầu an toàn dữ liệu cao thì IPSec là giao thức thích hợp. IPSec hỗ trợ các phương pháp xác thực và mật mã mạnh nhất, có tính linh hoạt cao do không bị ràng buộc bởi một phương pháp xác thực cũng như mật mã nào. Đây được xem là giao thức tối ưu nhất cho IP-VPN và được tìm hiểu một cách chi tiết nhất. Bên cạnh đó, đồ án đã trình bày một số thuật toán mật mã, xác thực, toàn vẹn dữ liệu là những thuật toán được dùng kết hợp với IPSec. Hiện nay, tại Việt Nam có rất nhiều hãng đang cung cấp các giải pháp VPN cho các doanh nghiệp, mỗi hãng có một cấu hình VPN riêng. Do nhu cầu bảo mật thông tin ngày càng được các doanh nghiệp quan tâm nhiều nên công nghệ IP – VPN hứa hẹn là công nghệ rất có tiềm năng phát triển mạnh trong tương lai. Hiện nay mạng viễn thông trên thế giới đang chuyển sang xu hướng IP hóa và sử dụng công nghệ cho mạng thế hệ sau NGN. Do đó việc tích hợp giữa cố định và di động đang đươc quan tâm và phát triển. Vì vậy, trong tương lai IP-VPN sẽ được ứng dụng cho mạng điện thoại di động. Khi đó, các dịch vụ viễn thông sẽ rất linh hoạt, kết hợp giữa truyền hình ảnh, số liệu và thoại. Đây cũng chính là hướng phát triển tiếp theo của để tài. Mặc dù đã cố gắng, nhưng do công nghệ IP-VPN có nhiều giải pháp để thực hiện và liên quan đến nhiều giao thức và thuật toán phức tạp, thời gian và trình độ có hạn nên đồ án này khó tránh khỏi thiếu sót. Tôi rất mong nhận được ý kiến đóng góp của thầy cô và bạn bè để có thể sửa đổi, bổ sung cho những vấn đề trình bày trong đồ án này. Vinh, tháng 5 năm 2009 Sinh viên thực hiện Bùi Văn Nhật Tài liệu tham khảo [1] TCP/IP protocol suite Behrouz A. Forouzan with Sophia Chung Fegan, 2000 Mc Graw Hill [2] Công nghệ chuyển mạch IP Chủ biên:TS.Lê Hữu Lập, Biên soạn: Ks.Hoàng Trọng Minh Học viện CNBCVT 11/2000 [3] Virtual Private Networking and Intranet Security Copyright © 1999, Microsoft Corperation, Inc [4] Understanding Virtual Private Networking Copyrignt © 2001, ADTRAN, Inc [5] VPN Technologies: Sefinitions and Requirements Copyrignt © 2002, VPN Consortium [6] CCSP Cisco Secure VPN Exam Certification Guide John F. Roland and Mark J. Newcomb Copyright © 2003 Cisco Systems, Inc [7] IPSec Copyright © 1998, Cisco Systems, Inc [8] Security Protocols Overview Copyright © 1999, RSA Data Security, Inc Các website tham khảo http:// www.itu.int

Các file đính kèm theo tài liệu này:

  • docTìm hiểu những vấn đề kỹ thuật cơ bản có liên quan đến việc thực hiện IP-VPN.doc
Luận văn liên quan