Sự mở rộng của Internet toàn cầu và sự thống trị của các ứng dụng trên nền IP (IP- based applications) đã mở đường cho các nhà cung cấp dịch vụ trong việc phát triển và cung cấp các dịch vụ mới cho khách hàng. Một trong những giải pháp mang tính thời sự hiện nay đổi với tất cả các nhà cung cấp truy nhập (IAP) và cung cấp dịch vụ (ISP) là VPN (Virtual Pravate Network). Đây là giải pháp mang lại hiệu quả cao về kinh tế, chất lượng cũng như sự đảm bảo độ tin cậy dữ liệu cho khách hàng. Để đáp ứng nhu cầu sử dụng VPN, đồng thời đa dạng hoá các loại hình dịch vụ cung cấp cho khách hàng.
o Khái niệm về VPN
Ngày nay, có rất nhiều định nghĩa khác nhau về VPN, xét về bản chất VPN được định nghĩa như sau:
“VPN là một mạng ảo được xây dựng tích hợp trên môi trường mạng công cộng, cơ chế hoạt động của mạng ảo này tương tự như 01 mạng riêng”.
o Công nghệ VPN
Ngoài cách phân loại VPN theo phân lớp OSI, người ta còn có thể chia VPN theo phương pháp thiết lập: kiểu “overlay” hay kiểu “peer”. Trong phương thức xây dựng kiểu “overlay”, mạng được xây dựng bằng cách tạo đường hầm từ điểm này sang điểm khác mà ít quan tâm đến các hop trên 1 đường hầm. Như vậy, có thể coi kết nối từ điểm này sang điểm khác theo kiểu point-to-point từ hai điểm kết đầu cuối. Với phương thức thiết lập theo mô hình “peer”, dữ liệu truyền đi trên mạng theo từng hop và như vậy giống với mô hình truyền dữ liệu theo giao thức IP truyền thống. Hiện có 3 nguyên lý xây dựng mạng VPN trên nền tảng hạ tầng mạng IP công cộng:
o Kết hợp IP access-list và chính sách định tuyến
Đây là mô hình VPN không rành mạch và khó thực thi: Nhà cung cấp sẽ thực hiện filter lưu lượng cũng như các thông tin định tuyến giữa các site đầu cuối. Có hai yêu cầu chính cho mô hình này là phải thuê mạng lưới của 1 nhà cung cấp dịch vụ duy nhất và địa chỉ IP phải xác định. Loại VPN này có thể xếp vào loại “peer” vì mỗi một điểm trên mạng lưới đều tham gia vào quá trình định tuyến cho lưu lượng của mạng VPN. Hạn chế cơ bản của nguyên lý xây dựng VPN này là khi mạng VPN càng phát triển sẽ càng khó quản lý, quá phức tạp và không linh hoạt khi ta tiếp tục xây dựng các kết nối peer.
o Mã hóa và tạo đường hầm
Có rất nhiều phương thức tạo đường hầm khác nhau được sử dụng, và phương thức mã hóa thì được lựa chọn và phụ thuộc vào chính sách của mỗi công ty khác nhau. Các giao thức tạo đường hầm có thể là GRE, L2TP, L2F, PPTP... Phương thức mã hóa có thể là theo một chuẩn mã hóa phát triển riêng hoặc theo IPSec. Đây là VPN kiểu “overlay” bởi vì dữ liệu mã hóa của mạng VPN chạy bên trong các đường hầm được xây dựng từ điểm này tới điểm kia.
VPN trên công nghệ IPSec: IPSec là chuẩn mở qui định khả năng mã hoá và bảo mật dữ liệu mạng dùng riêng được truyền tải trên mạng công cộng. Chuẩn IPSec được phát triển bởi IETF (Internet Engineering Task Force), đảm bảo tính bảo mật, nguyên vẹn, và khả năng xác thực cho các dữ liệu mạng dùng riêng VPN. Khả năng mã hoá và xác thực có thể được thực hiện trên nhiều mức khác nhau như hình minh hoạ dưới đây:
Hình 3.1Các mức mã hóa và xác thực
Tuy nhiên, IPSec thực hiện công việc mã hoá và xác thực tại layer 3, cung cấp một giải pháp bảo mật end-to-end trong bản thân cấu trúc của mạng lưới. Do vậy, các hệ thống đầu cuối cũng như các ứng dụng không cần thiết phải thay dổi nhưng vẫn tận dụng được ưu thế của một cơ chế bảo mật mạnh. Các gói tin bảo mật giống như các gói tin IP thông thuờng nên có thể dễ dàng định tuyến trên mạng IP mà không cần sự thay đổi đặc biệt nào liên quan đến cấu hình các thiết bị mạng lưới. Chỉ những thiết bị kết nối mạng VPN mới thực sự cần giải mã dữ liệu. Đặc tính này giảm tối đa chi phí thiết lập và bảo trì mạng.
Công nghệ IPSec: IPSec kết hợp nhiều công nghệ bảo mật tạo thành một hệ thống duy nhất cung cấp khả năng bảo toàn dữ liệu, và mức độ xác thực rất cao. IPSec thường bao gồm các công nghệ sau:
- Cơ chế trao đổi khoá mã Diffie-Hellman giữa các thực thể trên mạng VPN. - Cơ chế mã hoá theo kiểu chìa khoá công cộng (public key) sử dụng trao đổi
mã hoá Diffie-Hellman đảm bảo nhận dạng hai thực thể để tránh kiểu tấn công man-in-the-midle.
- Các thuật toán mã hoá như DES hay 3DES để mã hoá dữ liệu.
- Thuật toán băm khoá mã (key hash) như HMAC kết hợp với các thuật toán băm truyền thống như MD5 hay SHA để cung cấp cơ chế xác thực có độ bảo mật cao.
- Hệ thống cấp certificate (digital certificate) được cung cấp bởi một hệ thống certificate hoạt động theo nguyên lý giống như sử dụng ID card.
IPSec kết hợp các công nghệ bảo mật để đảm bảo tính nguyên vẹn, mã hoá và xác thực cho các gói tin IP. IPSec bao gồm một nhóm các giao thức:
RFC 2401: Kiến trúc bảo mật cho giao thức IP. RFC 2402: Qui định về phần header xác thực AH.
RFC 2403: Sử dụng HMAC-MD5-96 trong ESP hay AH. RFC 2404: Sử dụng HMAC-SHA-1-96 trong ESP hay AH.
RFC 2405: Thuật toán mã hoá ESP DES-CBC Cipher với Explicit IV. RFC 2406: IP Encapsulating Security Payload (ESP).
RFC 2407: Giao thức Internet IP security Domain of Interpretation trong ISAKMP.
RFC 2408: Giao thức Internet Security Association and Key Management ISAKMP.
RFC 2409: Internet Key Exchange (IKE).
RFC 2410: Thuật toán Null Encryption và khả năng sử dụng với IPSec. RFC 2412: Giao thức OAKLEY Key Determination.
Các chuẩn trên xác định:
Giao thức IP bảo mật: Định nghĩa các thông tin cần thêm vào gói tin IP để đảm bảo tính nguyên vẹn, điều khiển mã hoá và xác thực cũng như định nghĩa cơ chế mã hoá dữ liệu.
Sự trao đổi khoá mã: Cơ chế thương lượng phương thức bảo mật giữa hai thực thể và phương thức trao đổi khoá mã. Người ta có thể không nhất thiết phải sử dụng IKE nhưng việc tự định nghĩa phương thức bảo mật là rất khó khăn và đòi hỏi khối lượng công việc thực hiện lớn.
Nên sử dụng IKE trong các ứng dụng để có thể mở rộng qui mô của mạng lưới VPN.
Cấu trúc của gói tin IPSec: IPSec định nghĩa một tập hợp các tiêu đề được gắn thêm vào gói tin IP để tạo gói tin IPSec mới. Phần tiêu đề này được đặt sau phần tiêu đề của gói tin chưa mã hoá và trước giao thức layer 4 (thông dụng là UDP hay TCP). Phần tiêu đề mới cung cấp thông tin để bảo mật phần nội dung của các gói tin IP như sau:
Authentication Header AH: Phần tiêu đề này khi được gắn kết vào gói tin IP sẽ đảm bảo được tính xác thực và sự nguyên vẹn của gói tin bao gồm luôn cả trường bất biến trong tiêu đề của gói tin IP. AH không cung cấp sự bảo mật cho thông tin chứa bên trong. AH sử dụng thuật toán băm khoá mã nhiều hơn là sử dụng cơ chế chữ ký điện tử. Chữ ký điện tử rất phù hợp cho việc thiết lập nhận dạng nhau cho các thực thể ở hai đầu của VPN, nhưng việc xử lý phức tạp phần tiêu đề sẽ làm giảm tốc độ và băng thông của mạng.
Encapsulating Security Payload (ESP): Phần tiêu đề này khi được gắn kết vào gói tin IP sẽ cho phép bảo vệ tính bảo mật, sự nguyên vẹn và tính xác thực của gói tin IP. Nếu ESP được sử dụng để kiểm tra tính toàn vẹn của gói tin IP thì nó sẽ không bao gồm trường bất biến của tiêu đề gói tin.
AH hay ESP có thể được sử dụng độc lập hoặc sử dụng đồng thời, mặc dù trong phần lớn các ứng dụng việc sử dụng một cơ chế là đủ. IPSec không định nghĩa thuật toán bảo mật cho cả AH lẫn ESP mà thay vào đó là cung cấp một cơ chế mở cho việc áp dụng các các thuật toán mã hoá chuẩn công nghiệp. Ban đầu, phần lớn việc thiết lập IPSec đều hỗ trợ MD5 của RSA Data Security hay Secure Hash Algorithm (SHA) được chính phủ Mỹ chuẩn hoá cho sử dụng để xác thực và kiểm tra tính nguyên vẹn. Thuật toán DES hiện nay được sử dụng rộng rãi nhất mặc dù các RFC có khuyến nghị thêm các thuật toán như IDEA, Blowfish hay RC4. IPSec cung cấp 2 mode hoạt động chính là “tunnel mode” và “transport mode” như minh hoạ dưới đây:
Hình 3.2Tunnel Mode và Transport Mode
Trong transport mode, chỉ có phần dữ liệu bên trong gói tin được bảo mật và mã hoá còn phần tiêu đề của gói tin được giữ nguyên. Mode hoạt động này cho lợi điểm là chỉ làm tăng kích thước gói tin lên một vài byte mà thôi. Nhưng đồng thời mode hoạt động này cũng cho phép các thiết bị trên mạng có thể phát hiện ra địa chỉ đi và địa chỉ đến của gói tin. Nhờ tính chất của mode hoạt động transport cho phép người ta có thể thực hiện các tác vụ điều khiển đặc biệt như QoS (Quality of Service) trên các thiết bị mạng lưới trung gian dựa vào thông tin tiêu đề. Tuy nhiên, phần tiêu đề của các giao thức mức 4 vẫn được mã hoá và không cho phép phân tích nội dung của gói tin. Mode hoạt động này có một điểm hạn chế là do để lộ phần tiêu đề gói tin làm cho những tin tặc hoàn toàn có khả năng phân tích lưu lượng. Ví dụ tin tặc có thể phát hiện việc 1 CEO có thể gửi thư cho 1 CEO khác với khối lượng nhiều. Nhưng tin tặc hoàn toàn chỉ biết được lưu lượng dữ liệu gửi đi chứ không thể xem được nội dung bên trong là email hay một ứng dụng khác.
Trong tunnel mode, toàn bộ gói tin nguyên thuỷ được mã hoá và đóng thành phần dữ liệu của gói tin IPSec mới. Mode này khiến cho các thiết bị mạng lưới như router đóng vai trò như một IPSec proxy có nghĩa là router sẽ thực hiện việc mã hoá gói tin. Router nguồn sẽ thực hiện mã hoá gói tin và gửi chúng theo đường hầm IPSec đến router đích. Tại router đích nó sẽ thực hiện quá trình giải mã gói tin và đưa chúng tới máy tính đích. Lợi điểm cơ bản của mode tunnel là các thiết bị cuối không cần phải sửa đổi cấu hình mà vẫn sử dụng được cơ chế mã hoá của IPSec. Mode tunnel cũng chống lại khả năng phân tích lưu lượng. Với mode tunnel thì tin tặc chỉ có thể biết được điểm kết thúc của đường hầm mà không biết đích xác địa chỉ đích và địa chỉ nguồn của gói tin thậm chí cả khi đích chính là thiết bị nơi kết thúc đường hầm.
Theo định nghĩa của IETF, IPSec transport mode được sử dụng chỉ khi thiết bị cả hai đầu đều hiểu IPSec như trong hình vẽ dưới. Trong rất nhiều trường hợp, tunnel mode được sử dụng cho phép thiết lập IPSec trên các hệ thống mà không đòi hỏi phải sửa đổi hệ điều hành hay các ứng dụng chạy trên PC, server hay host.
Mô hình mã hoá Security Association (SA): IPSec cung cấp rất nhiều lựa chọn để xác thực và mã hoá. Mỗi một kết nối IPSec cung cấp khả năng mã hoá hoặc tính nguyên vẹn và xác thực hoặc cả hai. Khi dịch vụ mã hoá đã được xác định, hai đầu cuối liên lạc cần quyết định việc sử dụng thuật toán gì (ví dụ: IDEA, DES cho mã hoá và MD5 và SHA cho tính nguyên vẹn). Sau khi quyết định thuật toán, hai thiết bị cần liên lạc phải chia sẻ khoá mã riêng cho phiên kết nối. Như ta thấy, khi thực hiện trao đổi, có một số thông tin cần phải được giám sát. Mô hình mã hoá (security association) là phương pháp để IPSec sử dụng để giám sát thông tin liên quan đến một phiên kết nối IPSec. Một SA là mối quan hệ giữa hai hay nhiều hơn 2 thực thể và miêu cả cách thức mà các thực thể mạng IPSec sử dụng dịch vụ mã hoá để trao đổi thông tin 1 cách bảo mật. Thuật ngữ này có thể gây sự nhầm lẫn vì thực ra thuật ngữ SA được sử dụng nhiều hơn IPSec. Ví dụ IKE SA miêu tả các tham số bảo mật giữa hai đầu cuối IKE. SA có tính đơn hướng có nghĩa là một phiên trao đổi thông tin từ A đến B đồng nghĩa với việc có hai kết nối bảo mật A sang B và B sang A. SA được định nghĩa một cách duy nhất do sử dụng ngẫu nhiên một chỉ số duy nhất gọi là chỉ số các tham số bảo mật SPI (security parameter index) và địa chỉ IP của thiết bị đích. Khi một hệ thống gửi thông tin cần bảo mật bằng IPSec, hệ thống tìm kiếm SA trong database của mình và ứng dụng một tiến trình đặc biệt và chèn SPI vào phần tiêu đề của gói tin mã hoá IPSec. Khi thiết bị hỗ trợ IPSec phía bên kia nhận được gói tin, nó kiểm tra SA trong database, căn cứ vào địa chỉ đích và số SPI và xử lý gói tin như mong muốn. Nói vắn tắt ta có thể cho rằng SA là một bản tóm tắt của các chính sách bảo mật được trao đổi giữa 2 thiết bị.
Giao thức quản lý khoá mã Internet (IKMP–Internet Key Management Protocol): Giao thức IPSec luôn mặc định là đã có một SA tồn tại tuy nhiên lại không có cơ chế tạo ra SA đó. Khuyến nghị của IETF chia quá trình thực hiện ra thành 2 phần: IPSec cung cấp khả năng xử lý cho mức gói dữ liệu trong khi IKMP thực hiện thương lượng mô hình SA sử dụng. Sau khi cân nhắc việc sử dụng 1 số các biến thể, bao gồm cả Simple Key Internet Protocol (SKIP) hay Photuris, IETF quyết định lựa chọn IKE là phương thức chuẩn hoá để cấu hình SA cho giao thức IPSec. IKE tạo ra một đường hầm có xác thực và mã hoá giữa 2 thực thể và sau đó sẽ thực hiện thương lượng SA sử dụng cho IPSec. Quá trình này đòi hỏi cả hai thực thể thực hiện xác thực lẫn nhau và tạo lập ra một mã khoá dùng chung.
Khả năng xác thực: Hai thực thể IPSec hai đầu của một đường hầm phải xác thực lẫn nhau. IKE là một giao thức có tính khả chuyển và hỗ trợ nhiều phương pháp xác thực khác nhau. Trong thực tế người ta thường sử dụng các phương pháp xác thực như sau :
Khoá mã chia sẻ (Preshared Key): Một khoá mã giống nhau được cài đặt cố định trên cả hai hệ thống đầu cuối. Các đối tác IKE xác thực lẫn nhau bằng cách tính toán và gửi thông tin đã mã hoá có bao gồm cả khoá mã. Nếu như đối tác có khả năng độc lập tạo ra dữ liệu mã hoá bằng cách sử dụng mã khoá tương tự, thì có nghĩa là hai đối tác chia sẻ chung mã khoá bí mật và như vậy là đã thực hiện xác thực đối tác phía bên kia.
Mã hoá khoá mã công cộng (Public Key Cryptography): mỗi một đầu cuối tạo ra 1 số ngẫu nhiên (gọi là nonce) và mã hoá số này bằng mã khoá công cộng (public key) của đầu cuối bên kia. Khả năng mỗi một đầu cuối tính toán được mã khoá chứa đựng nonce của đầu cuối bên kia, có thể giải mã với mã khoá riêng của mình (private key) cũng như các thông tin công cộng và riêng khác tạo khả năng xác thực cho cả hai phía. Cơ chế này tạo sự giao dịch có tính năng từ chối có nghĩa là cả hai đầu đều có khả năng từ chối thông minh trong phiên trao đổi thông tin. Hiện tại chỉ thuật toán mã khoá công cộng của RSA được chấp nhận sử dụng.
Chữ ký điện tử: Mỗi một thiết bị mã hoá một tập dữ liệu và gửi đến đầu đối tác bên kia. Phương thức này giống hệt phương thức trên trừ một điểm là phương thức sử dụng chữ ký điện tử có khả năng từ chối. Hiện nay các hãng sản xuất đều hỗ trợ cả thuật toán mã khoá công cộng RSA và chuẩn chữ ký điện tử (Digital Signature