Mục lục.
Danh mục hình vẽ.
Danh mục bảng.
Ký hiệu viết tắt
LỜI NÓI ĐẦU.
CHƯƠNG 1: BỘ GIAO THỨC TCP/IP.
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.
1.3 Các giao thức trong mô hình TCP/IP.
1.3.1 Giao thức Internet
1.3.1.1 Giới thiệu chung.
1.3.1.2. Cấu trúc IPv4.
1.3.1.3. Phân mảnh IP và hợp nhất dữ liệu.
1.3.1.4. Địa chỉ và định tuyến IP.
1.3.1.4. Cấu trúc gói tin IPv6.
1.3.2. Giao thức lớp vận chuyển.
1.3.2.1. Giao thức UDP.
1.3.2.2. Giao thức TCP.
1.4 Tổng kết
CHƯƠNG 2: CÔNG NGHỆ MẠNG RIÊNG ẢO TRÊN INTERNET IP-VPN
2.1 Gới thiệu về mạng riêng ảo trên Internet IP-VPN
2.1.1 Khái niệm về mạng riêng ảo trên nền tảng Internet
2.1.2 Khả năng ứng dụng của IP-VPN.
2.2 Các khối cơ bản trong mạng IP-VPN
2.2.1 Điều khiển truy nhập.
2.2.2 Nhận thực.
2.2.3 An ninh.
2.2.4 Truyền Tunnel nền tảng IP-VPN
2.2.5 Các thỏa thuận mức dịch vụ.
2.3 Phân loại mạng riêng ảo theo kiến trúc.
2.3.1 IP-VPN truy nhập từ xa.
2.3.2 Site-to-Site IP-VPN
2.3.2.1 Intranet IP-VPN
2.3.2.2 Extranet IP-VPN
2.4 Các giao thức đường ngầm trong IP-VPN
2.4.1 PPTP (Point - to - Point Tunneling Protocol)
2.4.1.1 Duy trì đường ngầm bằng kết nối điều khiển PPTP.
2.4.1.2 Đóng gói dữ liệu đường ngầm PPTP.
2.4.1.3 Xử lí dữ liệu đường ngầm PPTP.
2.4.1.4 Sơ đồ đóng gói
2.4.2 L2TP (Layer Two Tunneling Protocol)
2.4.2.1 Duy trì đường ngầm bằng bản tin điều khiển L2TP.
2.4.2.2 Đường ngầm dữ liệu L2TP.
2.4.2.3 Xử lý dữ liệu đường ngầm L2TP trên nền IPSec.
2.4.2.4 Sơ đồ đóng gói L2TP trên nền IPSec.
2.5 Tổng kết
CHƯƠNG 3: GIAO THỨC IPSEC CHO IP-VPN
3.1 Gới thiệu.
3.1.1 Khái niệm về IPSec.
3.1.2 Các chuẩn tham chiếu có liên quan.
3.2 Đóng gói thông tin của IPSec.
3.2.1 Các kiểu sử dụng.
3.2.1.1 Kiểu Transport
3.1.1.2 Kiểu Tunnel
3.2.2 Giao thức tiêu đề xác thực AH
3.2.2.1 Giới thiệu.
3.2.2.2 Cấu trúc gói tin AH
3.2.2.3 Quá trình xử lý AH
3.2.3 Giao thức đóng gói an toàn tải tin ESP.
3.2.3.1 Giới thiệu.
3.2.3.2 Cấu trúc gói tin ESP.
3.2.3.3 Quá trình xử lý ESP.
3.3 Kết hợp an ninh SA và giao thức trao đổi khóa IKE
3.3.1 Kết hợp an ninh SA
3.3.1.1 Định nghĩa và mục tiêu.
3.3.1.2 Kết hợp các SA
3.3.1.3 Cơ sở dữ liệu SA
3.3.2 Giao thức trao đổi khóa IKE
3.3.2.1 Bước thứ nhất
3.3.2.2 Bước thứ hai
3.3.2.3 Bước thứ ba.
3.3.2.4 Bước thứ tư.
3.3.2.5 Kết thúc đường ngầm
3.4 Những giao thức đang tồn tại ứng dụng cho xử lý IPSec.
3.4.1 Mật mã bản tin.
3.4.1.1 Tiêu chuẩn mật mã dữ liệu DES.
3.4.1.2 Tiêu chuẩn mật mã hóa dữ liệu gấp ba 3DES.
3.4.2 Toàn vẹn bản tin.
3.4.2.1 Mã nhận thực bản tin băm HMAC
3.4.2.2 Thuật toán MD5.
3.4.2.3 Thuật toán băm an toàn SHA
3.4.3 Nhận thực các bên.
3.4.3.1 Khóa chia sẻ trước.
3.4.3.2 Chữ ký số RSA
3.4.3.3 RSA mật mã nonces.
3.4.4 Quản lí khóa.
3.4.4.1 Giao thức Diffie-Hellman.
3.4.4.2 Quyền chứng nhận CA
3.5 Ví dụ về hoạt động của một IP-VPN sử dụng IPSec.
3.6 Tổng kết
CHƯƠNG 4: AN TOÀN DỮ LIỆU TRONG IP-VPN
4.1 Giới thiệu.
4.2 Mật mã.
4.2.1 Khái niệm mật mã.
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
4.2.2.2 Giải thuật DES (Data Encryption Standard)
4.2.2.3 Giới thiệu AES (Advanced Encryption Standard)
4.2.2.4Thuật toán mật mã luồng (stream cipher)
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
4.2.3.2 Hệ thống mật mã khóa công khai RSA
4.2.4 Thuật toán trao đổi khóa Diffie-Hellman.
4.3 Xác thực.
4.3.1 Xác thực tính toàn vẹn của dữ liệu.
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.
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.
4.3.1.3 Chữ ký số dựa trên hệ thống mật mã khóa công khai
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.
4.3.2.2 Các chứng thực số (digital certificates)
CHƯƠNG 5: THỰC HIỆN IP-VPN
5.1 Giới thiệu.
5.2 Các mô hình thực hiện IP-VPN
5.2.1 Access IP-VPN
5.2.1.1 Kiến trúc khởi tạo từ máy khách.
5.2.1.2 Kiến trúc khởi tạo từ máy chủ truy nhập NAS.
5.2.2 Intranet IP-VPN và Extranet IP-VPN
5.2.3 Một số sản phẩm thực hiện IP-VPN
5.3 Ví dụ về thực hiện IP-VPN
5.3.1 Kết nối Client-to-LAN
5.3.2 Kết nối LAN-to-LAN
5.4 Tình hình triển khai VPN ở Việt Nam
KẾT LUẬN
Tài liệu tham khảo.
Các website chính.
122 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3043 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Công nghệ ip-Vpn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
u 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.
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.
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
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:
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.
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).
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)]
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.
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
1081012
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 PKB
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:
Version Number (số phiên bản): hiện tại có các phiên bản v1, v2, v3.
Serial Number: duy nhất được cấp bởi SA tương ứng.
Signature (chữ ký) và Issure: mô tả thuật toán được sử dụng để chứng thực.
Nhận dạng (ID) của CA phát hành và ký chứng thực.
Nhận dạng (ID) của đối tượng sử dụng.
Khóa công khai của đối tượng sử dụng.
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
5.4 Tình hình triển khai VPN ở Việt Nam
Hiện nay, tại Viêt Nam có rất nhiều hãng đang cung cấp giải pháp VPN cho các doanh nghiệp. Trong đó, đứng đầu thị trường VPN Việt Nam là hãng Juniper Networks. Juniper là hãng thiết bị hàng đầu của Mỹ trong các lĩnh vực bảo mật và an toàn cho các giao dịch truyền thông trong môi trường mạng IP đơn lẻ. Hiện tại Juniper đang hợp tác với VNPT phát triển mạng thế hệ sau NGN. Theo như số liệu từ doanh nghiệp này thì thị trường SSL VPN (Secure Socket Layer) phát triển rất mạnh với tốc độ tăng trưởng bình quân hàng năm là 67%. Hãng này đang cung cấp thiết bị cho nhiều công ty lớn của Viêt Nam, trong đó có Bảo Việt. Bên cạnh đó, Juniper Network đang tìm cách để liên kết với các ISP để đưa ra sản phẩm SA 6000 SP cung cấp VPN như là dịch vụ gia tăng cho các doanh nghiệp vừa và nhỏ.
Bên cạnh đó, VDC cũng là một công ty hiện tại cung cấp dịch vụ VPN cho khách hàng ở Việt Nam. VDC đã liên kết với Singtel (Singapore Telecommunications Limited) và có điểm kết nối IP-VPN tại Hà Nội, Đà Nẵng, TP.HCM, Vũng Tàu, Cần Thơ, Đồng Nai, Bình Dương. Dung lượng dịch vụ kết nối giữa VDC và Singtel đối với IP-VPN là 5MB. Đối tượng khách hàng hướng tới của VDC và Singtel là những công ty hoạt động phân bố trên địa bàn khác nhau và mong muốn tăng kết nối từ xa với chi phí giảm như bảo hiểm, ngân hàng, hàng hải, các doanh nghiệp hoạt động ở khu công nghiệp, các văn phòng đại diện của công ty nước ngoài.
KẾT LUẬN
Công nghệ mạng riêng ảo VPN cho phép tận dụng môi trường mạng công cộng Internet để xây dựng các mạng riêng đảm bảo an ninh. Với những ưu điểm về mặt giá thành, phạm vi hoạt động không hạn chế, linh hoạt trong triển khai và mở rộng, VPN là một công nghệ hứa hẹn triển vọng thị trường rất lớn.
Đồ á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. Để thực hiện đóng gói dữ liệu, IPSec có hai giao thức đóng gói AH và ESP. Liên kết an ninh SA sẽ định ra một tập các tham số, thuật toán và giao thức đóng gói (là AH hay ESP) cho dữ liệu giữa hai bên. Giao thức trao đổi khóa IKE đảm bảo vai trò nhận thực các bên tham gia và thỏa thuận liên kết an ninh giữa các bên. 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. Theo như đánh giá của nhiều công ty thì thị trường VPN Việt Nam có tốc độ phát triển mạnh.
Trong giai đoạn hiện nay, khi xu hướng của mạng viễn thông là IP hóa hay chuyển sang mạng thế hệ mới NGN. Một trong những ưu việt của NGN là tích hợp giữa cố định và di động. Vì vậy, trong tương lai IP-VPN sẽ được ứng dụng cho đ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.
SV. Thực hiện: Nguyễn Đức Cường
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ải tiến giao thức Internet phiên bản 6 (IPv6)
Tạp chí Bưu Chính Viễn Thông- kỳ 1 tháng 12/2003
3) 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
4) Virtual Private Networking and Intranet Security
Copyright © 1999, Microsoft Corperation, Inc
5) Understanding Virtual Private Networking
Copyrignt © 2001, ADTRAN, Inc
6) VPN Technologies: Sefinitions and Requirements
Copỷignt © 2002, VPN Consortium
7) CCSP Cisco Secure VPN Exam Certification Guide
John F. Roland and Mark J. Newcomb
Copyright © 2003 Cisco Systems, Inc
8) IPSec
Copyright © 1998, Cisco Systems, Inc
9) Security Protocols Overview
Copyright © 1999, RSA Data Security, Inc
10) Public Key Infranstructure
Copyright © 2001, SecGo Solution Oy.
11) Secure Network Communication (part I, II, III, IV)
Copyright © 2002, Zurcher Hochschule Winterthur.
12) Cisco Secure Virtual Private Networks (Volume 1, 2)
Copyright © 2001, Cisco System, Inc
13) Netscreen Concepts and Examples
Copyright © 2002, NetScreen Technologies, Inc
Các website chính
http:// www.itu.int
http:// www.ietf.org
http:// www.vpnlabs.org
http:// www.parlay.org/specifications
Các file đính kèm theo tài liệu này:
- Ban Word.doc
- Trinh bay.ppt