- Mạng VPN mở rộng (Extranet VPN)
2.5.5.5 Hệ thống mã bất đối xứng
Thay thế cho khóa duy nhất của hệ thống mã hóa đối xứng, hệ thống mã hóa bất đối xứng sử dụng một cặp khóa liên quan toán học với nhau. Một khóa là cá nhân và chỉ được biết bởi chủ của cặp khóa này. Khóa thứ 2 là khóa chung và được phân phối tự do. Khóa chung được sử dụng cho mã hóa còn mã cá nhân được sử dụng cho giải mã thông tin.
Trong giải pháp VPN, 2 hệ thống mã hóa bất đối xứng được sử dụng phổ biến nhất là Diffie-Hellman (DH) algorithm và the Rivest Shamir Adleman (RSA) algorithm.
a. Thuật toán Diffie-Hellman
Trong thuật toán Diffie-Hellman, mỗi thực thể giao tiếp cần 2 khóa, một để phân phối cho các thực thể khác và một khóa cá nhân. Thuật toán Diffie-Hellman thực hiện theo các bước:
1. Người gửi nhận mã công khai của nơi cần gửi đến, cái này được phân phối cho tất cả những ai càn giao tiếp.
2. Người gửi phải thực hiện tính toán dựa trên khóa riêng của mình và khóa công khai của nơi đến. Phép tính cho ra kết quả khóa chia sẻ bí mật (shared secret key)
3. Thông tin được mã hóa bằng khóa chia sẻ bí mật này 4. Thông tin được mã hóa sẽ gửi đến người nhận
5. Bên nhận sẽ tái tạo khóa chia sẻ bí mật bằng phép tính tương tự sử dụng khóa riêng của mình và khóa chung của người gửi
Nếu có bất cứ ai có thể lấy được thông tin mã hóa thì cũng không thể khôi phục lại thông tin ban đầu bởi vì họ không có khóa riêng của người nhận. Mô hình truyền dữ liệu sử dụng thuật toán Diffie-Hellman như hình 2.31
Hình 2.: Trao đổi khóa với Diffie Hellman
Dữ liệu chuyển đổi dựa trên thuật toán Diffie-Hellman được đánh giá là an toàn bởi vì chỉ có một khả năng rất nhỏ là dữ liệu có thể bị xem trộm hay thay đổi trong suốt quá trình truyền tải. Thêm vào đó, vì không có khóa bí mật (private) truyền tải nên xác suất có một người khác biết được khóa riêng là rất thấp. Và việc quản lý khóa sẽ không tốn nhiều thời gian như hệ thống mã hóa Đối xứngtrong trường hợp lượng thông tin giao tiếp lớn.
Thuật toán Diffie-Hellman không cung cấp tính bảo mật hơn hệ thống mã hóa đối xứng, có một vấn đề cũ liên quan đến nó là việc bảo đảm khoa chung được truyền đạt phải thật chính xác. Vi dụ, nếu 2 người giao tiếp truyền khóa chung qua môi trường trung gian không an toàn như internet. Khả năng có người thứ 3 chặn được yêu cầu khóa chung của 2 bên và gửi khóa chung của mình cho cả 2 đầu giao tiếp. Trong trường hợp này, người thứ 3 này sẽ dễ dàng ghi lại giao tiếp của 2 người này vì thông tin 2 đầu gửi đi được mã hóa bởi khóa chung người thư 3 này. Đây là kiểu tấn công Man-in-the-Middle.
b. Thuật toán The Rivest Shamir Adleman (RSA)
RSA là cơ chế mã hóa mạnh, là chuẩn trong hệ thống mã hóa Bất đối xứng. Không giống như Diffie-Hellman, thông tin gốc được mã hóa sử dụng khóa chung của người nhận, Người nhận sẽ khôi phục lại thông tin ban đầu bằng khóa chung của người gửi. Các bước thực hiện thuật toán sử dụng tín hiệu số như sau:
1. Khóa chung được trao đổi với nhau giữa 2 người giao tiếp
2. Người gửi sử dụng hàm băm (hash function) để giảm kích thước dữ liệu gốc. Dữ liệu thu được gọi là message digest (MD).
3. Người gửi mã hóa message digest với khóa riêng tạo thành tín hiệu số duy nhất.
4. Dữ liệu và tín hiệu số kết hợp với nhau và gửi đến người nhận
5. Khi nhận được dữ liệu đã được mã hóa, người nhận sẽ khôi phục message digest bằng cách sử dụng hàm băm như bên người gửi.
6. Người nhận sẽ giải mã tín hiệu số bằng cách sử dụng khóa chung của người gửi
7. Người nhận sẽ so sánh 2 dữ liệu là message digest (bước 5) và message digest khôi phục từ tín hiệu số (bước 6). Nếu 2 dữ liệu này giống nhau thì thong tin không bị ngăn chặn, thay đổi trên suốt quá trình truyền tải, nếu không giống thì dữ liệu sẽ bị loại bỏ.
Dữ liệu được gửi dựa trên cơ sở thuât toán RSA mô ta như hình sau:
Hình 2.: Trao đổi khóa sử dụng RSA
RSA bảo vệ an toàn dữ liệu bởi vì người người nhận sẽ kiểm tra tính xác thực của dữ liệu 3 lần (các bước 5, 6, 7). RSA cũng đơn giản trong việc quản lý khóa. Tong mã hóa đối xứng, n2 yêu cầu nếu có n thực thể liên quan. So sánh với mã hóa không Đối xứngchỉ yêu cầu 2*n key.