GIẢI PHÁP SSL CHO MẠNG RIÊNG ẢO

Một phần của tài liệu Tìm hiểu giải pháp SSL cho mạng riêng ảo (Trang 29)

Hiển nhiên từ tên SSL VPN, giao thức Secure Sockets Layer là một yếu tố quan trọng trong công nghệ SSL VPN. Như vậy, sự hiểu biết cơ bản của SSL sẽ giúp chúng ta hiểu được hoạt động của SSL VPN.

3.1.1. SSL là gì

SSL là giao thức nổi bật để cung cấp dịch vụ bảo mật cho lưu lượng dữ liệu trên kênh truyền.

Việc kết nối giữa một trình duyệt Web tới bất kỳ điểm nào trên mạng Internet đi qua rất nhiều các hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên canh truyền. Không một ai kể cả người sữ dụng lẫn máy chủ Web có bất kỳ kiểm soát nào đối với đường đi của dữ liệu hay có thể kiểm soát được dữ liệu có ai đó xâm nhập hay không. Để bảo vệ những thông tin mật trên Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an toàn :

• Xác thực: đảm bảo tính xác thực của server mà bạn sẽ làm việc

ở đầu kia của kết nối. Cũng như vậy, các server cũng cần kiểm tra tính xác thực của người sữ dụng.

• Mã hóa: đảm bảo thông tin không thể bị truy cập bởi đối tượng

thứ ba. Để loại trừ việc nghe trộm thông tin “nhạy cảm” khi nó được truyền qua Internet, dữ liệu phải được mã hóa để không bị đọc bởi những người khác ngoài người gửi và người nhận.

• Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó

phải thể hiện chính xác thông tin gốc gửi đến. Lợi ích khi sử dụng giao thức SSL

• Xác thực mạnh mẽ, bảo mật và tòan vẹn gói tin

• Khả năng cộng tác

• Linh hoạt

• Dễ triển khai

Các trang web đều được sử dụng Hypertext Transfer Protocol. HTTP tự nó không cung cấp mã hóa hay phương pháp bảo vệ đáng kể nào khác cho dữ liệu truyền giữa người dùng đến máy chủ web. Với sự ra đời của World Wide Web vào đầu những năm 1990 và mục tiêu của việc sử dụng web để hoạt động kinh doanh thực tế liên quan đến việc truyền tải thông tin bí mật trên Internet, tránh sự nghe trộm trái phép thông tin khi truyền trên Internet.

Một số công nghệ mã hóa được đề xuất cho nhu cầu này nhằm bảo vệ dữ liệu nhạy cảm trong quá trình truyền. Trong đó, giao thức SSL tỏ ra vượt trội nhanh nhất và trở thành tiêu chuẩn truyền thông an tòan trên Web.

Vào những năm 1990, tập đoàn CommerceNet đã đề xuất S-HTTP mà về cơ bản là một cải tiến bảo mật của HTTP.

Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và một giao thức tương ứng với phiên bản đầu tiên của Netscape Navigator. Trái với tập đoàn CommerceNet. Netscape Communications đã không tính phí các khách hàng về việc sử dụng giao thức bảo mật của này. Kết quả, SSL trở thành giao thức nổi bật để cung cấp các dịch vụ bảo mật cho lưu lượng dữ liệu HTTP vào năm 1994 và S-HTTP lặng lẽ biến mất.

Ngay sau đó, Internet Engineering Task Force (IETF) đã bắt đầu phát triển một dạng giao thức chuẩn và cung cấp các chức năng tương tự là TLS ra đời.

Cho đến bây giờ, có ba phiên bản của SSL:

- SSL 1.0: được sử dụng nội bộ Netscape Communications. Nó chứa một số khiếm khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài.

- SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x. Nó có một số điểm yếu liên quan đến sự xuất hiện các cuộc tấn công của đối tượng trung gian. Cũng trong gia đoạn này, Microsoft cũng đã giới thiệu giao thức PCT để cạnh tranh trong lần tung ra Internet Explorer đầu tiên của nó vào năm 1996.

- SLL 3.0: Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoft bằng cách giới thiệu SSL 3.0, đã giải quyết các vấn đề trong SSL 2.0 và thêm một số tính năng mới. Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL trong tất cả các phiên bản phần mềm dựa vào TCP/IP của nó.

Vào năm 1996, khi sự phát triển của World Wide Web trở nên bùng nổ, Internet và web như một nền kinh doanh chủ đạo trong kinh tế đòi hỏi cơ chế bảo mật thông tin liên lạc trở nên quan trọng hơn. Trong giai đoạn này, SSL nổi lên như một tiêu chuẩn không thể phủ nhận dựa trên hiệu quả thực tế mà nó đạt được. IETF đã bắt đầu chính thức tiêu chuẩn hóa giao thức SSL. Và hòan thành công việc vào năm 1999 và thiết lập SSL là tiêu chuẩn chính thức để truyền thông an tòan web dưới cái tên mới là Transport Layer Security (TLS).

Bên cạnh việc bảo vệ dữ liệu thông qua mã hóa, SSL còn sử dụng các hàm băm để đảm bảo rằng nội dung của phiên kết nối không bị sữa đổi trong khoảng thời gian bên gửi và bên nhận trao đổi thông điệp.

3.1.3. Cấu trúc giao thức SSL

Cấu trúc của SSL và giao thức SSL tương ứng được minh họa trong hình 3.2. Theo hình này, SSL là một lớp trung gian giữa lớp Transport và Application. Về khả năng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP chứ không chỉ HTTP. Thực tế, một ưu điểm chính của các giao thức bảo mật lớp Transport nói chung và giao thức SSL nói riêng là chúng độc lập với ứng dụng theo nghĩa là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp trên TCP. Hình 3.1 minh họa một số giao thức ứng dụng điển hình bao gồm NSIIOP, HTTP, FTP, Telnet, IMAP, IRC, và POP3.

Giao thức SSL có thể được chia thành hai lớp. Lớp đầu tiên bao gồm các giao thức ứng dụng và ba giao thức con của Handshake: Handshake Protocol, Change Cipher Spec Protocol, và Alert Protoco. Lớp thứ hai là giao thức SSL Record.

Hình 3.1: Cấu trúc của SSL và giao thức SSL

Các cổng được gán bởi IANA cho các giao thức ứng dụng chạy trên SSL được tóm tắt trong bảng 3.2 và được minh họa một phần trong hình 3.1. Ngày nay, "S" chỉ định việc sử dụng SSL và được thêm nhất quán vào phía sau các từ ghép của các giao thức ứng dụng tương ứng.

Từ khóa Cổng Mô tả

Nsiiop 261 Dịch vụ tên IIOP trên TLS/SSL

https 443 HTTP trên TLS/SSl

Smtps 465 SMTP trên TLS/SSL

Nntps 563 NNTP trên TLS/SSL

Ldaps 636 LDAP trên TLS/SSL

Ftps-data 989 FTP (dữ liệu) trên TLS/SSL

Ftps 990 FTP (Điều khiển) trên TLS/SSL

Tenets 992 TELNET trên TLS/SSL

Imaps 994 IRC trên TLS/SSL

Pop3s 995 POP3 trên TLS/SSL

Bảng 3.2: Các cổng được gán cho các giao thức ứng dụng chạy trên SSL. Như được minh họa trong hình 3.1, giao thức SSL gồm hai phần chính, SSL Record Protocol và một số giao thức con SSL được xếp lớp trên nó:

- Record OK được xếp lớp trên một dịch vụ lớp vận chuyển định hướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP và cung cấp sự xác thực nguồn gốc thông báo, sự bí mật dữ liệu và dữ liệu.

- Các giao thức con SSL được xếp lớp trên SSL Record Protocol để cung cấp sự hỗ trợ cho việc quản lý session SSL và thiết lập nối kết.

Giao thức con SSL quan trọng nhất là SSL Handshake Protocol, là một giao thức dùng trong việc xác thực và trao đổi khóa được sử dụng để thương lượng, khởi tạo và đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một trong hai điểm cuối của một phiên hoặc nối kết SSL.

Sau khi quá trình SSL Handshake Protocol hoàn tất, dữ liệu ứng dụng có thể được gửi và được nhận bằng cách sử dụng SSL Record Protocol và các tham số bảo mật được thương lượng và các thành phần thông tin trạng thái.

3.1.4. Handshake

Giao thức Handshake của TLS/SSL có trách nhiệm thành lập hoặc nối lại các phiên một cách an toàn. Các mục tiêu chính :

• Thương lượng bộ mã hóa sử dụng và thuật toán nén

• Xác thực từ server đến cho client và tùy chọn xác thực từ client

đến server thông qua các các chứng thực và các khóa công khai, bí mật.

• Trao đổi các thông số ngẫu nhiên và bí mật trước. Cùng với

một số dữ liệu, các giá trị này sẽ được sử dụng để tạo ra các khóa bí mật và ở lớp Record sẽ sử dụng để băm và mã hóa dữ liệu. Việc chia sẽ khóa bí mật này rất quan trọng và được gọi là Secret Master.

Các giao thức phụ của Handshake

• Handshake: được sử dụng để thương lượng thông tin của phiên giữa máy khách và máy chủ. Các thông tin của một phiên bao gồm: session ID, chứng thực ngang hàng, các kỹ thuật mã hóa được sử dụng, thuật tóan nén, và chia sẽ bí mật cái dùng đễ tạo khóa.

• Change Cipher Spec: được sử dụng để thông báo các thuật toán

và giá trị quan trọng được sử dụng để mã hóa giữa client và server. Các giá trị quan trọng là dữ liệu thô được sử dụng để tạo các khóa và mã hóa. Và thông báo cho bên nhận rằng các record tiếp theo sẽ đựợc bão vệ dưới Cipher Spec và khóa này.

o Nó tồn tại để cập nhật các bộ mật mã được sử dụng trong những kết nối.

o Nó cho phép sự thay đổi phiên SSL xảy ra mà không

cần phải thương lượng lại giữa các bên kết nối.

Thông báo Change Cipher Spec thường được gửi ở cuối giai đoạn thiết lập kết nối

• Alert : dùng tin nhắn để chỉ ra sư thay đổi trạng thái hoặc tình

trạng của phiên SSL. Một thông báo được gửi khi kết nối bị đóng lại, nhận một thông báo không hợp lệ, một tin không thể giải mã, hoặc người sử dụng hủy bỏ các kết nối.

Tóm lại, giao thức SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính cơ bản:

• Các bên giao tiếp (nghĩa là client và server) có thể xác thực

nhau bằng cách sử dụng một khóa chung.

• Sự bí mật của lưu lượng dữ liệu được bảo vệ vì kết nối được

mã hóa trong suốt quá trình truyền tải sau khi có sự thiết lập quan hệ ban đầu và sự thương lượng về khóa của phiên kết nối.

• Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng

được bảo vệ vì các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt bằng cách sử dụng MAC.

3.1.5. SSL Record Protocol

SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử lý việc phân đoạn, nén, xác thực và mã hóa dữ liệu. Chính xác hơn, giao thức này lấy một khối dữ liệu có kích cỡ tùy ý làm dữ liệu nhập và tạo một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được gọi là các bản ghi) nhỏ hơn hoặc bằng 16,383 byte.

Hình 3.3: Các bước SSL Record Protocol.

Các bước của SSL Record Protocol vốn đi từ một đoạn dữ liệu thô đến một bản ghi SSL Plaintext (bước phân đoạn), SSL Compressed (bước nén) và SSL Ciphertext (bước mã hóa) được minh họa trong hình 3.3. Sau cùng, mỗi bản ghi SSL chứa các trường thông tin sau đây:

• Loại nội dung;

• Số phiên bản của giao thức;

• Chiều dài;

• Dữ liệu bản ghi (được nén và được mã hóa tùy ý);

• MAC.

Loại nội dung xác định giao thức lớp cao hơn vốn phải được sử dụng để sau đó xử lý tải trọng dữ liệu bản ghi SSL (sau khi giải nén và giải mã hóa thích hợp).

Số phiên bản của giao thức xác định phiên bản SSL đang sử dụng (thường là version 3.0)

Dữ liệu bản ghi SSL được nén và được mã hóa theo phương thức nén hiện hành và thông số mật mã được xác định trong phiên SSL.

Lúc bắt đầu mỗi phiên SSL, phương pháp nén và thông số mật mã thường được xác định là rỗng. Cả hai được xác lập trong suốt quá trình thực thi ban đầu SSL Handshake Protocol. Sau cùng, MAC được thêm vào mỗi bản ghi SSL. Nó cung cấp các dịch vụ xác thực nguồn gốc thông báo và tính toàn vẹn dữ liệu. Tương tự như thuật toán mã hóa, thuật toán vốn được sử dụng để tính và xác nhận MAC

định, SSL Record Protocol sử dụng một cấu trúc MAC vốn tương tự nhưng vẫn khác với cấu trúc HMAC. Có ba điểm khác biệt chính giữa cấu trúc SSL MAC và cấu trúc HMAC:

• Cấu trúc SSL MAC có một số chuỗi thông báo trước khi hash

để ngăn các hình thức tấn công.

• Cấu trúc SSL MAC có chiều dài bản ghi lớn hơn.

• Cấu trúc SSL MAC sử dụng các toán tử ghép, trong khi cấu

trúc HMAC sử dụng moduloe +2.

3.1.6. Các thuật toán mã hóa dùng trong SSL

Các thuật toán mã hóa là các hàm tóan học được sử dụng để mã hóa và giải mã thông tin. Giao thức SSL hỗ trợ rất nhiều các thuật tóan mã hóa, được sử dụng để thực hiện các công việc trong quá trình xác thực giữa server và client, truyển tải các xác thực và thiết lập các khóa của từng phiên SSL. Client và server có thể hỗ trợ các bộ giải mã khác nhau tùy thuộc vào nhiều yếu tố như phiên bản SSL đang dùng, chính sách, và độ dài khóa, điều này liên quan đến mức độ bảo mật của thông tin

Các bộ mật mã được trình bày ở phần sau sẽ đề cập đến các thuật tóan sau:

• DES : là thuật tóan mã hóa có chiều dài khóa là 56bit.

• 3-DES : là thuật tóan mã hóa có độ dài khóa gấp 3 lần độ dài

khóa trong mã hóa DES

• DSA : là một phần trong chuẩn về xác thực số đang được chính

phủ Mỹ sử dụng.

• KEA : là một thuật tóan trao đổi khóa

• MD5 : được phát triển bởi Rivest

• RSA : là thuatạ tóan mã hóa công khai dùng cho cả quá trình

xác thực và mã hóa dữ liệu được Rivest, Shamir, and Adleman phát triển.

• RC2 and RC4 : là các thuật tóan mã hóa được phát triển bởi

Rivest dùng cho RSA Data Security.

• SHA-1: là một thuật tóan băm đang được chúnh phủ Mỹ sử

Các thuật tóan trao đổi khóa như KEA, RSA được sử dụng để 2 bên client và server xác lập khóa đối xứng mà họ sẽ sử dụng trong suốt phiên giao dịch SSL. Và thuật tóan được sử dụng phổ biến là RSA.

Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hóa. Người quản trị có thể tùy chọn bộ mã hóa sẽ dùng cho cả client và server. Khi một client và server trao dồi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác định bộ mã hóa mạnh nhất có thể và sữ dụng chúng trong phiên giao dịch SSL.

Các bộ mã hóa sử dụng thuật toán RSA

Đây là danh sách các bộ mã hóa được sử dụng trong SSL mà sữ dụng thuật tóan trao đổi khóa RSA và được liệt kê theo khả năng bảo mật từ mạnh đến yếu.

Mạnh nhất:

Thuật tóan mã hóa 3-DES, thuật tóan xác thực SHA-1

Mạnh :

Thuật tóan mã hóa RC4 (với độ dài khóa 128bit ), thuật tóan xác thực MD5

Thuật tóan mã hóa RC2 ( với độ dài khóa 128 bit), thuật tóan xác thực MD5

Thuật tóan mã hóa DES (với độ dài khóa 56 bit), thuật tóan xác thực SHA-1

Tương đối mạnh :

Thuật tóan mã hóa RC4( với độ dài khóa 40 bit), thuật tóan xác thực MD5

Thuật tóan mã hóa RC2( với độ dài khóa 40 bit), thuật tóan xác thực MD5

Yếu nhất:

Không mã hóa thông tin , chỉ dùng thuật tóan xác thực MD5

Khi nói các thuật tóan mã hóa RC4 và RC2 có độ dài khóa mã hóa là 40 bit thực chất độ dài khóa vẫn là 128bit nhưng chỉ có 40 bit được dùng để mã hóa.

Giao thức SSL sử dụng kết hợp 2 loại mã hóa đối xứng và công khai. Sử dụng mã hóa đối xứng nhanh hơn rất nhiều so với mã hóa công khai khi truyền dữ liệu, nhưng mã hóa công khai lại là giải pháp tốt nhất trong quá trình xác thực.

Việc thực thi quá trình bắt tay SSL giữa một client C và một server S có thể được tóm tắt như sau (các thông báo được đặt trong các dấu ngoặc vuông thì tùy ý):

Hình 3.4 Quá trình tạo liên kết SSL

Bước 1: Khi Client C muốn kết nối với server S, nó thiết lập một kết nối

Một phần của tài liệu Tìm hiểu giải pháp SSL cho mạng riêng ảo (Trang 29)