Kết luận chƣơng

Một phần của tài liệu công nghệ mạng riêng ảo vpn dựa trên ssl (Trang 31)

Trong chương một của luận văn đã giới thiệu các khái niệm cơ bản về công nghệ VPN, khái niệm về đường hầm VPN. Những yêu cầu bảo mật đối

với mạng VPN, các mô hình kết nối VPN thông dụng cũng như các thành phần của VPN. Trong chương hai, luận văn sẽ trình bày về công nghệ SSL VPN, một công nghệ được ứng dụng chủ yếu trong việc triển khai VPN hiện nay.

CHƢƠNG 2. NGHIÊN CỨU CÔNG NGHỆ SSL VPN 2.1. Giới thiệu về SSL

Việc cung cấp kết nối truy cập từ xa VPN là một ứng dụng tương đối mới cho SSL. SSL được thiết kế để giữ an toàn cho các giao thức dựa trên cổng TCP và các ứng dụng như HTTP(HTTPS), FTP (FTPS), POP3 (POP3S), và SMTP (SMTPS).

SSL được xây dựng phần lớn bằng web brower nhưng không hoàn toàn. Và thực tế này cho phép sự triển khai SSL truy cập từ xa VPN không yêu cầu cài đặt phần mềm đặc biệt cho người dùng hoặc các thiết bị, chỉ một web brower cần cho kết nối SSL truy cập từ xa VPN.

2.1.1. Lịch sử phát triển của giao thức SSL

Thật sự chúng ta rất may mắn vì các nhà thiết kế đã nghĩ đến vấn đề bảo mật thông tin từ những ngày đầu sơ khai của công nghệ Web. Đặc biệt là hãng Netscape đã bắt đầu công cuộc khai thác vấn đề bảo mật trong khi đang phát triển trình duyệt web đầu tiên. Để giải quyết vấn đề gian giải đó Netscap đã nhanh chóng thiết kế ra giao thức Secure Socket Layer (SSL).

Thời gian bắt đầu là tháng 11/1993 đó là ngày công ty Mosaic Communications Corp, sau đó được đổi tên Netscape Communications Corp ra mắt bản beta trình duyệt đầu tiên gọi là Mosaic Netscape 0.9. Trình duyệt này được phát triển dựa trên bộ mã phần mềm Mosaic do Trung tâm ứng dụng siêu điện toán quốc gia của Mỹ và Marc Andreessen (đồng sáng lập của Netscape) phát triển. Trình duyệt Mosaic Netscape 0.9 sau đó được đổi tên thành Netscape Navigator. Phiên bản 1.0 được ra mắt vào ngày 15 tháng 12 năm đó.

Sau 8 tháng từ ngày ra mắt trình duyệt đầu tiên, Netscape Commmunications đã hoàn tất phiên bản SSL 1.0 và 5 tháng sau đó mới bắt

đầu phân phối trình duyệt đầu tiên có hỗ trợ SSL phiên bản 2.0. Điểm nhấn khác trong biểu đồ thời gian trên là sự ra đời của Pricate Communication Technology (PCT) phiên bản 1.0. Đây là công nghệ của Microsoft dựa trên nền tảng của SSL 2.0 với nhiều biến đổi. Nó giải quyết được nhiều điểm yếu của SSL 2.0 và nhiều ý tưởng của nó sau này được đưa vào SSL 3.0.

Những sự kiện sau này chủ yếu tập trung vào việc xác định một chuẩn cho SSL. Netscape Communications phát triển ba phiên bản đầu tiên của SSL với sự hỗ trợ đáng kể từ cộng đồng Web. Mặc dù phát triển của SSL được mở, và khuyến khích những người khác ngoài Netscape tham gia phát triển nhưng nó vẫn là sở hữu riêng của Netscape. (Netscape đã xin bản quyền cho giao thức SSL từ năm 1996). Tuy nhiên việc phát triển SSL đã trở thành trách nhiệm của một tổ chức gọi là IETF, tổ chức này đã phát triển nhiều giao thức Web như TCP, IP. Và để ngăn việc nó sẽ thành sỡ hữu của bất kỳ tổ chức nào, IETF đã đổi tên SSL thành Transport Layer Security (gọi tắt là TLS). Phiên bản đầu tiên ra mắt vào tháng 01/1999.

Mặc dù tên thay đổi nhưng TLS không phải là phiên bản mới của SSL. Trong trường hợp này không có sự khác biệt nhiều giữa SSL 3.0 với TLS 1.0 hơn là giữa SSL 2.0 với SSL 3.0. Từ đó SSL được xây dựng thích hợp với tất cả các trình duyệt và máy chủ Web và trong suốt hoàn toàn với người dùng. Người dùng chỉ phải chú ý tới “HTTPs:” đại diện cho một địa chỉ an toàn có sự hỗ trợ của SSL hoặc có lẽ họ chỉ thấy một icon nhỏ nằm ở góc phải mỗi trình duyệt xuất hiện khi SSL được sử dụng. Nó cung cấp sự tin tưởng, xác thực và toàn vẹn thông tin cho người dùng Web.

2.1.2. Cấu trúc của giao thức SSL

SSL là một giao thức mạng được đặt giữa giao thức TCP và các giao thức tầng ứng dụng. Trong mô hình OSI, các giao thức dịch vụ như HTTP, IMAP điều khiển việc các trang Web hoặc chạy các máy chủ thư điện tử. Giao thức

tầng giao vận như TCP, UDP điều khiển các luồng dữ liệu giữa hai bên giao tiếp. Các giao thức tầng mạng như IP, ICMP cung cấp cơ chế chuyển tiếp, điều khiển các gói tin qua mạng.

SSL hoạt động độc lập và trong suốt với các giao thức khác vì vậy nó có thể làm việc với bất kỳ giao thức nào trên tầng ứng dụng và tầng giao vận trong mô hình OSI. Mối quan hệ giữa SSL và mô hình OSI được mô tả trong hình vẽ 2.1

Hình 2.1: Sơ đồ mối quan hệ giữa SSL và mô hình OSI

SSL nhận dữ liệu từ các giao thức tầng trên, mã hoá dữ liệu rồi chuyển xuống cho các giao thức tầng thấp hơn. Tại nơi nhận, giao thức tầng dưới cung cấp dữ liệu cho giao thức SSL, giao thức SSL giải mã dữ liệu rồi chuyển tiếp cho các giao thức tầng ứng dụng xử lý tiếp.

Về cấu trúc, SSL là một bộ gồm các giao thức thành phần được phân tầng. Giao thức Handshake điều khiển việc thiết lập liên kết, giao thức Alert điều khiển việc thông báo lỗi, giao thức ChangCipher thực hiện kích hoạt các dịch

vụ bảo mật và giao thức Record thực hiện việc đóng gói các thông điệp do các giao thức tầng trên gửi xuống và chuyển tiếp các thông điệp đến nơi nhận. Mối quan hệ giữa các giao thức thành phần SSL được mô tả trong Hình 2.2

Hình 2.2: Sơ đồ quan hệ giữa SSL và các giao thức khác

Các dịch vụ bảo mật trong SSL bao gồm mã hoá, xác thực và kiểm tra tính toàn vẹn dữ liệu.

2.2. Các khái niệm an ninh đƣợc sử dụng trong SSL

2.2.1. Mã hóa

Kỹ thuật bảo mật dữ liệu đơn giản nhất đó là mã hoá. Mã hoá được xây dựng dựa trên ý tưởng biến đổi dữ liệu đầu vào (ở dạng bản rõ, dễ đọc) sang một dạng mới (dạng bản mã, khó nhận biết) bằng cách sử dụng một khoá cụ thể, thường là một chuỗi ngẫu nhiên có độ dài từ 8 đến 24 byte. Sơ đồ quá trình mã hoá và giải mã dữ liệu được mô tả trong hình vẽ 2.3.

Trước khi trao đổi dữ liệu, bên gửi và bên nhận thống nhất với nhau về thuật toán và khoá dùng cho quá trình mã hoá và giải mã. Bên gửi mã hoá dữ liệu rồi gửi cho bên nhận. Khi tới đích, bên nhận giải mã dữ liệu rồi chuyển cho ứng dụng. Trên đường truyền dữ liệu có thể bị chặn bởi kẻ tấn công, tuy nhiên do không có khoá giải mã nên kẻ tấn công không thể đọc được nội dung dữ liệu. Mức độ can thiệp của kẻ tấn công phụ thuộc phần lớn vào thuật toán dùng để mã hoá, một thuật toán được gọi là an toàn khi nó thoả mãn các điều kiện: kích thước của khoá phải lớn, độ mật của khoá phải cao.

Một số thuật toán mã hoá khoá đối xứng được sử dụng phổ biến hiện này là: DES, AES, Triple-DES, RC2, và RC4….

Hình 2.3: Sơ đồ hệ thống mã hóa khóa đối xứng

Các thuật toán mã hoá khoá đối xứng chỉ an toàn khi khoá chia sẻ được giữ bí mật. Nếu bên gửi và bên nhận ở xa nhau thì việc trao đổi khoá sẽ gặp rất nhiều khó khăn. Tuy nhiên, vấn đề trên sẽ được giải quyết khi hệ thống mã hoá khoá bất đối xứng được đưa vào sử dụng.

Mã hóa khóa bất đối xứng sử dụng khóa công khai (public key) của bên nhận để mã hóa thông điệp rồi gửi cho bên nhận, khi nhận được thông điệp, bên nhận dùng khóa riêng (Private Key) để giải mã thông điệp. Lược đồ mã hóa khóa bất đối xứng được mô tả bởi hình 2.4

Hình 2.4: Sơ đồ hệ thống mã hóa khóa bất đối xứng (adsbygoogle = window.adsbygoogle || []).push({});

Một số thuật toán mã hoá khoá công khai thường được sử dụng là: RSA (Ron Rivest, Adi Shamir và Leonard Adleman) và thuật toán DH (Diffie- Hellman)… [6]

Hàm băm một chiều nhận một chuỗi đầu vào có độ dài bất kỳ và sinh ra một chuỗi có độ dài cố định. Chuỗi này thể hiện đặc trưng nội dung của thông điệp ban đầu và được gọi là bản tóm lược thông điệp. Các bản tóm lược thông điệp có hai đặc tính quan trọng:

(1). Tính một chiều: khả năng lấy lại thông điệp ban đầu từ bản tóm lược của nó là điều cực kỳ khó khăn.

(2). Tính bất xung đột: khó có thể sinh ra một bản tóm lược từ hai thông điệp khác nhau.

Bản tóm lược thông điệp thường được dùng để tạo ra chữ ký số và mã xác thực thông điệp, cả hai sẽ được đề cập đến trong phần tiếp theo. Các thuật toán băm thường được sử dụng hiện này là MD5, SHA-1, SHA-256, SHA-512. Hàm băm MD5 cho bản tóm lược dữ liệu có độ dài 16 bytes, hàm băm SHA-1 cho độ dài bản tóm lược là 20 bytes.

2.2.3. Mã xác thực thông điệp - MAC

Mã xác thực thông điệp dùng để đảm bảo tình toàn vẹn của dữ liệu trên đường truyền. MAC được tạo ra qua việc sử dụng hàm băm một chiều trên thông điệp gửi đi và khoá bí mật dùng để mã hoá thông điệp. MAC luôn luôn phụ thuộc vào cả thông điệp đang được xử lý lẫn khoá được dùng để mã hoá.

Bên gửi tính toán MAC rồi bổ sung vào thông điệp trước khi gửi đi, tại nơi nhận một giá trị MAC mới được tính từ dữ liệu thu được và so sánh với MAC được bên gửi đích kèm. Nếu hai giá trị này giống nhau, thông điệp gửi đi không bị thay đổi, ngược lại, thông điệp bị thay đổi nội dung trên đường truyền. Chỉ có bên nhận và bên gửi mới tạo được ra mã xác thực giống nhau vì chí có họ mới có khoá bí mật.

Mã hoá khoá công khai ngoài mục đích giải quyết vấn đề quản lý, phân phối khoá còn được dùng vào việc xác thực, trong trường hợp này khoá riêng được dùng để tạo ra tài liệu xác thực, tài liệu đó được gọi là chữ ký số. Chữ ký số được dùng để xác nhận các bên tham gia giao tiếp và tránh sự tấn công kiểu trung gian xảy ra. Quan hệ giữa chữ ký số và MAC có thể so sánh với quan hệ giữa mã hoá khoá công khai và mã hoá khoá đối xứng; người gửi dùng khoá riêng để ký vào thông điệp và người nhận dùng khoá công khai của người gửi để xác nhận chữ ký của người gửi. Chữ ký số còn có một thuộc tính quan trọng hơn đó là tính không thể chối cãi (nonrepudation). Cả người gửi và người nhận có thể tạo ra mã xác thực thông điệp nhưng chỉ có người ký thông điệp mới có thể tạo ra chữ ký. Vì vậy, người nhận luôn luôn chứng minh rằng người gửi đã ký vào thông điệp và không thể chối cãi được. Hình vẽ 2.5 là sơ đồ xác thực dữ liệu của người dùng qua việc sử dụng chữ ký số.

Hình 2.5: Sơ đồ xác thực dữ liệu dùng chữ ký số

2.2.5. Chứng chỉ số và cơ quan cung cấp chứng chỉ số

Do khoá công khai được công bố một cách rộng rãi cho nên khi người gửi và người nhận trao đổi khoá công khai với nhau, kẻ tấn công có thể chặn các

khoá này trên đường truyền và thay vì gửi khoá đó, họ sẽ gửi khoá của mình có cho các bên. Vậy làm thế nào để các bên tham gia giao tiếp nhận được khoá công khai của nhau? Ta có thể gửi trực tiếp, tuy nhiên như đã nói, cách này không an toàn.

Vấn đề sẽ được giải quyết với sự tham gia của bên thứ ba tin cậy, gọi là cơ quan chứng thực (CA). Tài liệu dùng để chứng thực gọi là chứng chỉ số (hay chứng chỉ điện tử - digital certificate). Mỗi chứng chỉ số thông thường bao gồm các thông tin sau:

• Version: Phiên bản của chứng chỉ số • Serial Number: số sê ri của chứng chỉ số

• Issuer Name: tên của người ký chứng chỉ số (như VeriSign). • Subject Name: tên của chứng chỉ/người giữ khoá

• Period of validity: ngày hết hạn của chứng chỉ.

• Subject: bao gồm những thông tin về thực thể được chứng nhận. • Public key: khóa công khai được chứng nhận.

• Signature: chữ ký điện tử do CA ký trên toàn bộ tài liệu có trong chứng chỉ nhằm đảm bảo giá trị của chứng thực của chứng chỉ số

Như vậy, giải pháp quản lý khoá chánh sự tấn công trung gian đã được tạo ra. CA không có quyền truy cập đến khoá riêng của bất kỳ ai, có nghĩa CA không thể đọc được bất kỳ thông điệp nào. Hơn nữa, một chứng chỉ số có thể được sử dụng để xác nhận khoá công khai của một người đối với một người, một CA không cần phải tham gia trực tiếp vào quá trình chứng thực khoá công khai của hai bên. Đây là một điều rất thuận lợi trong quá trình giao tiếp.

Các kỹ thuật an ninh được mô tả ở trên (mã hoá, hàm băm, mã hoá khoá công khai và chữ ký số) được coi là các biện pháp an ninh cơ bản. Các biện pháp này có thể được tổ hợp để xây dựng một cơ chế bảo mật phức tạp. PKC có thể chậm hơn SKC hàng nghìn lần nhưng có thể kết hợp hai kỹ thuật này một cách đơn giản, sử dụng PKC để trao đổi các khoá bí mật và SKC mã hoá dữ liệu trao đổi. Tương tự, chữ ký số thường khá chậm và chỉ hiệu quả với các thông điệp nhỏ tuy nhiên có thể kết hợp chữ kỹ số với các bản tóm lược thông điệp. Đầu tiên tính toán bản tóm lược của một thông điệp, sau đó dùng khoá riêng ký vào bản tóm lược đó. Như vậy, các thông điệp lớn có thể ký một cách dễ dàng. Tổ hợp của bản tóm lược thông điệp với chữ ký số được dùng để đảm bảo tính toàn vẹn dữ liệu và xác thực người gửi mà không cần khoá chia sẻ.

2.3. Bộ các giao thức trong SSL

Giao thức SSL là một bộ gồm 4 giao thức được phân thành hai tầng, tầng trên gồm có giao thức bắt tay SSL (Handshake Protocol), giao thức cảnh báo (Alert Protocol), giao thức Change Cipher Spec. Các giao thức này được sử dụng để khởi tạo một phiên, điều khiển lỗi và thực hiện các thay đổi khác khi cần thiết. Tầng dưới gồm giao thức bản ghi SSL (Record Protocol) quy định cách thức vận chuyển dữ liệu giữa bên gửi và bên nhận. Trong phiên bắt tay hai bên sẽ lựa chọn các thuật toán mã hoá, các thuật toán băm và các tham số bảo mật khác dùng cho phiên SSL.

2.3.1. Giao thức bắt tay SSL

Giao thức bắt tay SSL làm nhiệm vụ khởi tạo một phiên SSL và thiết lập kết nối. Có hai kiểu kết nối SSL được sử dụng: một là kiểu kết nối có xác thực máy chủ và không xác thực máy khách (đây là kiểu kết nối phổ biến nhất), hai là kiểu kết nối có xác thực cả máy chủ và máy khách.

(1). Giúp máy chủ và máy khách thương lượng các thuật toán bảo vệ dữ liệu trong một phiên làm việc.

(2). Giúp máy chủ và máy khách trao đổi các thông tin cần thiết để tạo khoá phiên.

(3). Giúp máy khách và máy chủ xác thực lẫn nhau.

2.3.1.1 Khởi tạo phiên giao tiếp SSL không xác thực máy khách.

Trong phiên bắt tay, máy chủ và máy khách trao đổi các thông điệp với nhau, các bước và thông điệp trong quá trình bắt tay được mô tả trong bảng 2-1 (adsbygoogle = window.adsbygoogle || []).push({});

Bảng 2.1: Các bƣớc thực hiện trong bắt tay SSL không xác thực máy khách

Bước Hành động

1 Máy khách gửi thông điệp ClientHello tới máy chủ đề xuất các tuỳ chọn cho phiên SSL.

2 Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các tuỳ chọn SSL.

3 Máy chủ gửi thông điệp Certificate để máy khách xác thực. 4 Máy chủ kết thúc phiên thương lượng của nó với thông điệp

Một phần của tài liệu công nghệ mạng riêng ảo vpn dựa trên ssl (Trang 31)