Chương 1 tác giả đã trình bày tổng quan về các vấn đề cơ bản liên quan đến một mạng riêng ảo, bao gồm khái niệm, phân loại mạng riêng ảo, các giao thức đường hầm được sử dụng để xây dựng mạng riêng ảo, vấn đề xác thực và bảo mật dữ liệu trong mạng riêng ảo.
Chương tiếp theo tác giả trình bày công nghệ mạng riêng ảo SSL VPN và so sánh công nghệ này với một công nghệ đang được sử dụng rộng rãi hiện nay đó là công nghệ mạng riêng ảo IPSec.
Chương 2
CÔNG NGHỆ MẠNG RIÊNG ẢO SSL VPN 2.1. Giới thiệu
Ngày nay, cùng với sự phát triển nhanh chóng của Internet, số lượng các giao dịch qua mạng ngày càng tăng. Việc thực hiện một giao dịch an toàn là một yêu cầu thiết thực, nhất là trong thương mại điện tử và các lĩnh vực nhạy cảm khác như ngân hàng, tài chính,…
Hơn thế nữa, vấn đề ứng dụng công nghệ thông tin vào xây dựng các mạng riêng ảo kết nối văn phòng của các cơ quan, tổ chức, các đối tác thương mại đang là vấn đề có tính chất thời sự. Các công nghệ xây dựng mạng riêng ảo hiện nay rất phong phú và đa dạng, mỗi loại có một thuận lợi riêng. Chương 2 của luận văn tác giả xin trình về công nghệ mạng riêng ảo SSL VPN.
2.1.1 Lịch sử phát triển của giao thức SSL
Giao thức SSL được hình thành và phát triển bởi Netscape vào năm 1994, ngày nay giao thức này được sử dụng rộng rãi và trở thành một chuẩn bảo mật tin cậy cho các giao dịch điện tử qua Internet nói riêng và an ninh mạng nói chung. Phiên bản đầu tiên của giao thức SSL (SSL 1.0) chỉ mang tính chất nghiên cứu, thử nghiệm mà không được đưa vào sử dụng. Phiên bản SSL 2.0 là một cải tiến của phiên bản đầu, được công bố, phát hành năm 1994 và đề xuất cho các giao dịch thẻ tín dụng tin cậy. SSL 2.0 hỗ trợ tính năng xác thực máy chủ và được tích hợp trong Netscape Navigator 1.1. Tuy nhiên, do có nhiều vấn đề về bảo mật nên phiên bản SSL 2.0 nhanh chóng bị thu hồi lại. Thực nghiệm cho thấy một kết nối SSL an toàn từ Navigator có thể bị phá v chưa đầy một giờ đồng hồ.
Trong thời gian đó nhiều giải pháp bảo mật mạng và truyền thông đã được nghiên cứu và đề xuất. Điển hình là sự ra đời giao thức PCT (Private Communication Techbology) của hãng Microsoft vào tháng 10 năm 1995.
Sau sự thất bại của phiên bản SSL 2.0, một bản thiết kế của phiên bản SSL 2.1 được hình thành trên cơ sở khắc phục những thiếu sót của phiên bản SSL 2.0. Tuy nhiên, phiên bản SSL 2.1 không được thực hiện mà thay vào đó là phiên bản SSL 3.0 mới hơn, hoàn thiện hơn và được phát hành vào cuối năm 1995. Phiên bản SSL 3.0 hỗ trợ các thuật toán mã hóa mạnh hơn và điều quan trọng nhất là đã khắc phục được những lỗ hổng về bảo mật của phiên bản SSL 2.0. Ngoài ra, một chuẩn của nhóm đặc trách kỹ thuật Internet IETF có tên là bảo mật lớp giao vận TLS dựa trên SSL cũng được hình thành, phát triển và công bố năm 1996 ([26], [27]).
2.1.2 SSL và mô hình OSI
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.
User Application Application Layer Presentation Layer Session Layer Transport Layer Network Layer Link Layer Data Network SSL Handshake Protocol SSL Record Protocol Phisical Layer
OSI Refereece Model SSLFTP Protocol
Phisical connecttion to network hardware Network Independent Message
Plain Data Stream Syntax Independent Message
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 tiếp tiếp chuyển 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.
Record layer Hand-
shake Alert Changecipher Appli-cation HTTP
TCP
Secure socket layer
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. Chi tiết cụ thể các dịch vụ sẽ được trình bày trong phần tiếp theo.
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.
Lược đồ mã hoá sử dụng chung một khoá cho việc mã hoá và giải mã thường được gọi là hệ thống mã hoá khoá đối xứng hay mã hoá khoá bí mật. 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… ([2], [6]).
Mã hoá Giải mã
Bản rõ Bản mã Bản rõ Khoá giải Khoá mã
Hình 2.3 Sơ đồ hệ thống mã hoá khoá đố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á công khai hay mã hoá khoá bất đối xứng được đưa vào sử dụng.
Mã hoá khoá công khai là giải pháp tốt nhất cho vấn đề quản lý và trao đổi khoá. Trái ngược với mã hoá khoá bí mật, mã hoá khoá công khai sử dụng một cặp khoá khác nhau cho việc mã hoá và giải mã. Khoá mã hóa (public key) được công bố rộng rãi, trong khi đó khoá giải mã (private key) được giữ bí mật bởi người sở hữu nó. Bằng cách này, hai bên tham gia giao tiếp có thể trao đổi khoá cho nhau an toàn mà không cần gặp nhau. Lược đồ mã hoá khoá công khai được mô tả bởi hình vẽ 2.4.
Mã hoá Giải mã Bản rõ Bản mã Bản rõ Khoá riêng Khoá công khai
Hình 2.4 Sơ đồ hệ thống mã hoá khoá công khai
Bên gửi dùng khoá công khai của bên nhận để mã hoá 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 của mình để giải mã thông điệp, chỉ có khoá riêng của người nhận mới có thể giải mã được thông điệp.
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)…
2.2.2 Hàm băm và bản tóm lược thông điệp
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ý điện tử 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 ([26]).
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.
2.2.4 M hoá khoá công khai và chữ ký điện 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ý điện tử. Chữ ký điện tử đượ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ý điện tử 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ý điện tử 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ý điện tử ([26]).
Chữ ký điện tử Dữ liệu ban đầu Bản tóm lược dữ liệu Internet Khoá riêng của người gửi
Chữ ký điện tử Bản tóm lược dữ liệu Bản tóm lược dữ liệu Dữ liệu ban đầu So sánh Hàm băm Hình 2.5 Sơ đồ xác thực dữ liệu dùng chữ ký điện tử
Nơi gửi nhậnNơi
Hàm
băm Khoá công khai của người gửi
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á (như www.ikea.com).
• 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ố ([7]).
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ý điện tử) đượ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ý điện tử 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ữ lý điện tử 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ý điện tử đượ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 Giao thức đường hầm 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.
Mục đích của việc bắt tay trong giao thức SSL nhằm:
(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