Tổng lượt truy cập

Sunday, December 26, 2010

So sánh IPSec và SSL

Bạn đã thật sự hiểu về SSL hay IPSEC chưa?, bài trước tôi đã đưa ra cách hoạt động của SSL
SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:

Thuật toán mã hóa sử dụng trong SSL
Các thuật toán mã hoá (cryptographic algorithm hay còn gọi là cipher) là các hàm toán học được sử dụng để mã hoá và giải mã thông tin. Giao thức SSL hỗ trợ rất nhiều các thuật toán mã hoá, được sử dụng để thực hiện các công việc trong quá trình xác thực server và client, truyền tải các certificates và thiết lập các khoá của từng phiên giao dịch (sesion key). Client và server có thể hỗ trợ các bộ mật mã (cipher suite) khác nhau tuỳ thuộc vào nhiều yếu tố như phiên bản SSL đang dùng, chính sách của công ty về độ dài khoá mà họ cảm thấy chấp nhận được - điều này liên quan đến mức độ bảo mật của thông tin. Các thuật toán :
- DES (Data Encryption Standard) : là một thuật toán mã hoá có chiều dài khoá là 56 bit.
- 3-DES (Triple-DES) : là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài khoá trong mã hoá DES
- DSA (Digital Signature Algorithm): là một phần trong chuẩn về xác thực số đang được được chính phủ Mỹ sử dụng.
- KEA (Key Exchange Algorithm) là một thuật toán trao đổi khoá đang được chính phủ Mỹ sử dụng.
- MD5 (Message Digest algorithm): được phát thiển bởi Rivest.
- RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá dữ liệu được Rivest, Shamir, and Adleman phát triển.
- RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toán RSA.
- RC2 and RC4: là các thuật toán mã hoá được phát triển bởi Rivest dùng cho RSA Data Security.
- SHA-1 (Secure Hash Algorithm): là một thuật toán băm đang được chính phủ Mỹ sử dụng.
Các thuật toán trao đổi khoá như KEA, RSA key exchange được sử dụng để 2 bên client và server xác lập khoá đối xứng mà họ sẽ sử dụng trong suốt phiên giao dịch SSL. Và thuật toán được sử dụng phổ biến là RSA key exchange.
Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá. Người quản trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server. Khi một client và server trao đổi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác định bộ mã hoá mạnh nhất có thể và sử dụng chúng trong phiên giao dịch SSL.
Các bộ mã hoá sử dụng thuật toán trao đổi khoá RSA

Mạnh nhất :
-Thuật toán mã hoá 3- DES, thuật toán xác thực SHA-1
Mạnh :
- Thuật toán mã hoá RC4 ( độ dài khoá 128 bit), thuật toán xác thực MD5
- Thuật toán mã hoá RC2 (độ dài khoá 128 bit), thuật toán xác thực MD5
- Thuật toán mã hoá DES (độ dài khoá 56 bit), thuật toán xác thực SHA-1
Tương đối mạnh :
- Thuật toán mã hoá RC4 (độ dài khoá 40 bit), thuật toán xác thực MD5
- Thuật toán mã hoá RC2 (độ dài khoá 40 bit), thuật toán xác thực MD5
Yếu nhất :
- Không mã hoá thông tin, chi dùng thuật toán xác thực MD5
- Chú ý: Khi nói các thuật toán mã hoá RC4 và RC2 có độ dài khoá mã hoá là 40 bit thì thực chất độ dài khoá vẫn là 128 bit nhưng chỉ có 40 bit được dùng để mã hoá.


So sánh IPSec và SSL

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

Những điểm giống nhau:
- IPSec(qua IKE) và SSL cung cấp xác thực Client và Server
- IPSec và SSL cung cấp tính năng đảm bảo an toàn và xác thực đối với dữ liệu, thậm chí trên các mức khác nhau của chồng giao thức
- IPSec và SSL có thể dùng các thuật toán mật mã mạnh cho việc mã hoá và các hàm băm, có thể sử dụng xác thực dựa trên chứng chỉ (IPSec qua IKE)
- IPSec(qua IKE) và SSL cung cấp tính năng sinh khoá và làm tươi khoá mà không phải truyền bất kỳ khoá nào dưới dạng rõ hay ngoại tuyến
Những điểm khác nhau:
- SSL được thực thi như một API giữa tầng ứng dụng và tầng vận tải; IPSec được thực thi như một khung làm việc tại tầng liên mạng.
- SSL cung cấp tính năng bảo mật từ ứng dụng - tới - ứng dụng(ví dụ: giữa WebBrowser và WebServer); IPSec cung cấp tính năng bảo mật từ thiết bị - tới - thiết bị.
- SSL không bảo vệ lưu lượng UDP; IPSec thì có
- SSL hoạt động từ điểm cuối - tới - điểm cuối và không có khái niệm đường hầm. Điều này có thể là một vấn đề lúc lưu lượng cần được xem xét bằng cách kiểm tra nội dung và quét virus trước khi nó được phân phối thành công đến đích; IPSec có thể hoạt động theo hai cách, điểm cuối - tới - điểm cuối và như một đường hầm
- SSL có thể vượt qua NAT hoặc SOCKS, chúng dùng để che dấu cấu trúc địa chỉ bên trong hoặc tránh sự xung đột địa chỉ IP riêng; IPSec trong chế độ vận tải (end –to- end) không thể sử dụng NAT nhưng nó có thể dùng một đường hầm IPSec để đạt được mục tiêu tương tự và thậm chí bảo mật hơn NAT vì đường hầm cũng có thể được mã hoá.
- Các ứng dụng cần phải sửa đổi để sử dụng SSL. Điều này có thể là một vấn đề lúc ta không truy cập được mã nguồn của ứng dụng hoặc không có thời gian hay kinh nghiệm để thay đổi mã nguồn của ứng dụng; IPSec hoàn toàn trong suốt với các ứng dụng.
Thông thường SSL là tốt lúc ta chỉ có một ứng dụng được bảo vệ và nó đã sẵn có trong một phiên bản SSL-aware. Đây là trường hợp có một ứng dụng chuẩn đa dạng, không chỉ với WebBrowser và WebServer. Ngoài ra, nếu có tuỳ chọn của việc thực thi khái niệm 3-tier bằng cách tận dụng các cổng ứng dụng Web tại vành đai của mạng, SSL là một sự lựa chọn tốt. Nếu có một số lượng lớn các ứng dụng để bảo đảm an toàn có thể phải chọn giải pháp tốt hơn cho mạng. Trong trường hợp này, IPSec là sự lựa chọn tốt hơn. Trừ khi tự ta phát triển các ứng dụng, IPSec mềm dẻo hơn SSL để thực thi một chính sách bảo mật yêu cầu nhiều mức khác nhau và sự kết hợp của xác thực, mã hoá và đường hầm.
- So sánh SSL và IPSec theo quan điểm kết nối trong VPN : trên cơ sở phân tích trên ta có bảng so sánh sau :

Nếu mục đích của các Server ứng dụng là phải có khả năng truy cập mạng công cộng thì một thiết kế dựa trên Web và công nghệ bảo mật dựa trên SSL có lẽ là lựa chọn đúng. SSL là sẵn có trên bất kỳ một trình duyệt Web chuẩn nào và đó sẽ chỉ là công cụ được sử dụng và yêu cầu bởi người dung. Tuy nhiên, những người dùng nên được hạn chế truy cập tới Server ứng dụng hay mạng của chúng ta, khi đó một mạng riêng ảo dựa trên IPSec và có thể cả một số công nghệ đường hầm tầng 2 là giải pháp được ưa thích hơn. Trong trường hợp này, những người người tham gia và vai trò của họ trong việc trao đổi dữ liệu sẽ được xác định trước.