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 hồn tồ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 ngồ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 tồ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à tồ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ã hố, xác thực và kiểm tra tính tồ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ã hố. Mã hố đượ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ơ đồ q trình mã hố 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 tốn và khố dùng cho q trình mã hố 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ó khố 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 tốn dùng để mã hoá, một thuật toán được gọi là an tồn khi nó thoả mãn các điều kiện: kích thước của khố phải lớn, độ mật của khố 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 tốn mã hố khố đối xứng chỉ an tồn khi khố 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 khố 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
Một số thuật tốn mã hố khố 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 tồ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à khố bí mật dùng để mã hố thơng điệp. MAC ln luôn phụ thuộc vào cả thơng điệp đang được xử lý lẫn khố được dùng để mã hố.
Bên gửi tính tố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ó khố bí mật.
Mã hố khố cơng khai ngồi mục đích giải quyết vấn đề quản lý, phân phối khố 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ã hố khố cơng khai và mã hố khố đối xứng; người gửi dùng khố riêng để ký vào thơng điệp và người nhận dùng khố 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 ln ln 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 khố 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 khố cơng khai với nhau, kẻ tấn cơng có thể chặn các
khố này trên đường truyền và thay vì gửi khố đó, họ sẽ gửi khố 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 khố 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 tồ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ữ khố
• 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ý khố chánh sự tấn cơng trung gian đã được tạo ra. CA khơng có quyền truy cập đến khố 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 khố 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 q trình chứng thực khố 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ã hố, hàm băm, mã hố khố 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 khố bí mật và SKC mã hố 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 tốn bản tóm lược của một thơng điệp, sau đó dùng khố 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 tồ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 khố 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 q trình bắt tay được mơ tả trong bảng 2-1
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