Data-link Header IP Header PPP Header PPP Payload (IP, IPX, NetBEUI)
Data-link Trailer
Hình 1.19 Cấu trúc gói tin dữ liệu người dùng trong giao thức L2TP UDP
Header
L2TP message
Giống như PPTP, L2TP tận dụng PPP để xác thực người dùng quay số truy cập, ngoài ra nó còn hỗ trợ phương thức xác thực TACACS+ và RADIUS. Có hai mức xác thực người dùng, đầu tiên ở ISP trước khi thiết lập đường hầm, tiếp theo sau khi kết nối được thiết lập.
Ngoài ra, L2TP còn được dùng kết hợp với IPSec để tạo ra đường hầm trong VPN, khi đó ESP được dùng để mã hoá gói tin L2TP.
1.4.2.3 Giao thức đường hầm IPSec
IPSec là một chuẩn giao thức được đưa ra bởi IETF, nhằm đảm bảo việc truyền thông an toàn trên các mạng công cộng như Internet thông qua việc mã hoá và xác thực. Giao thức này hoạt động ở lớp 3 trong mô hình OSI và định nghĩa hai loại tiêu đề mới cho một gói tin IP để điều khiển quá trình xác thực và mã hoá, một là xác thực AH , hai là đóng gói tải bảo mật ESP dùng để mã hoá.
IPSec đã sử dụng các phương pháp mã hoá đối xứng, phương pháp mã hoá công khai, các thuật toán băm một chiều… để đảm bảo tính bí mật, tính toàn vẹn khi dữ liệu truyền qua mạng công cộng
IPSec có thể hoạt động theo hai chế độ: chế độ đường hầm (tunel mode) và chế độ giao vận (transport mode).
Trong chế độ giao vận, chỉ có phần dữ liệu được mã hoá, còn phần tiều đề IP được giữ nguyên. Thông tin xác thực được chèn vào sau tiêu đề IP và trước tải dữ liệu các lớp trên (TCP, UDP hoặc ICMP) hoặc bất cứ tiêu đề IPSec nào đã được chèn vào trước đó. Thành phần AH thêm vào với mục đích chống lại việc thay đổi nội dung dữ liệu, cho nên cần phải có phương thức khác để bảo vệ tính bí mật của dữ liệu.
Trong chế độ đường hầm, toàn bộ gói tin IP được mã hoá và ESP sẽ tạo ra một tiêu đề IP mới để định tuyến cho các gói dữ liệu từ bên gửi đến bên nhận. Với cách thức này, L2TP hoặc PPTP có thể được dùng kết hợp với IPSec ([19], [20]).
1.4.2.4 Giao thức đường hầm MPLS
Đường hầm MPLS được tạo ra giữa các Router trong lõi MPLS bởi quá trình gán nhãn cho gói tin. Mỗi gói tin gồm một ngăn xếp chứa các nhãn, khi gói tin được gán nhãn đến một nút, nhãn trên đỉnh ngăn xếp được kiểm tra. Căn cứ vào nhãn đỉnh trên ngăn xếp mà một trong các thao tác sau đây có thể được thực hiện: thao tác hoán đổi hai nhãn, thao tác đưa một nhãn vào ngăn xếp và thao tác lấy một nhãn ra kh i ngăn xếp. Các Router có thể xây dựng trước bảng tìm kiếm, điều này giúp chúng có thể xác định nhanh chóng công việc phải làm đối với nhãn trên cùng của gói tin đi vào, chính vì vậy mà các gói tin có thể được xử lý một cách nhanh chóng.
Khi một nhãn được hoán đổi bằng một nhãn mới, gói tin sẽ được chuyển tiếp dựa vào nhãn mới này. Thao tác đặt một nhãn vào ngẵn xếp giống như việc “đóng gói” gói tin trong tầng MPLS khác. Thao loại b một nhãn kh i gói tin có thể coi như việc mở gói tin được đóng gói. Nếu nhãn loại b là nhãn cuối cùng trong ngăn xếp nhãn thì gói tin “rời kh i’ đường hầm MPLS. Thao tác này được thực hiện bởi Router hướng ra ([24].
Như vậy, đường hầm MPLS được tạo ra khi gói tin được gán nhãn, các điểm cuối đường hầm là các nút mà tại đó nhãn đầu tiên được thêm vào hoặc nhãn cuối cùng được loại b .
1.4.2.5 Giao thức đường hầm SSL
SSL là giao thức được thiết kế bởi Netscape nhằm mục đích an ninh trong truyền thông Web và các giao dịch thương mại điện tử qua Internet.
Giao thức SSL là một giao thức an ninh được đặt trên giao thức TCP. Trong mô hình TCP/IP, các giao thức dịch vụ HTTP, IMAP điều khiển các công việc như hiển thị 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 TCP, UDP điều khiển các luồng dữ liệu giữa hai host. 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 ở tầng ứng dụng và tầng giao vận trong mô hình OSI. Điều này cho phép các máy khách và máy chủ thiết lập các kết nối SSL một cách an toàn.
Việc xác thực người dùng, đảm bảo tính bí mật và tính toàn vẹn của dữ liệu trong SSL được thực hiện qua việc sử dụng chứng chỉ số, mã hoá, chữ ký điện tử, và hàm băm một chiều. Mỗi kết nối SSL xảy ra theo hai bước: một là bắt tay và xác thực người dùng, thiết lập các tham số an ninh, thương lượng, trao đổi khoá; hai là bước mã hoá và truyền dữ liệu.
SSL là giải pháp tốt cho những người dùng di động tạo mạng riêng ảo để kết nối với các mạng LAN công ty thông qua hạ tầng cơ sở mạng Internet công cộng.
1.5 Các yêu cầu cơ bản đối với VPN
Trong hầu hết các cách sử dụng cơ bản của một mạng riêng ảo, tính “riêng tư” trong VPN có ý nghĩa là một đường hầm giữa hai người dùng trên một mạng VPN. Nhiều trường hợp, “riêng” còn có nghĩa là bảo mật, tránh sự can thiệp bất hợp pháp trên mạng.
Mạng VPN cần phải đảm bảo các yêu cầu sau đây:
- Xác thực (Authentication): đảm bảo các bên tham gia là đúng, hợp lệ.
- Tính riêng (Confidentiality): đảm bảo dữ liệu không bị đọc khi truyền qua mạng. - Tính toàn vẹn(Integrity): đảm bảo dữ liệu không bị thay đổi trên đường truyền.
1.5.1 Xác thực trong VPN
Một trong những vấn đề cơ bản của an ninh mạng nói chung và an ninh mạng riêng ảo nói riêng là việc xác thực người dùng để đảm bảo chỉ có những người được phép mới có thể sử dụng hệ thống mạng. Xác thực người dùng được chia làm hai mức: mức máy tính và mức người sử dụng. Sau đây là một số phương pháp xác thực phổ biến hiện nay.
1.5.1.1 Xác thực dựa trên User Name và Password
Sự kết hợp của một tên người dùng (user name) và mật khẩu (password) là cách xác thực cơ bản nhất. Với kiểu xác thực này, tên người dùng và mật khẩu đăng nhập được đối chiếu với tên và người dùng được lưu trữ trên cơ sở dữ liệu hệ thống, nếu trùng khớp thì người dùng được xác thực và ngược lại người dùng bị cấm truy cập. Phương thức này không bảo mật lắm vì tài liệu xác nhận User được gửi đi ở dạng bản rõ không được mã hóa. Do đó, nó có thể bị lấy cắp trên đường truyền và sử dụng lại.
1.5.1.2 Xác thực sử dụng mật khẩu một lần
Xác thực mật khẩu một lần ngăn chặn việc sử dụng lại các mật khẩu khi bị lấy cắp trên đường truyền, phương pháp này yêu cầu mỗi phiên làm việc phải sử dụng một mật khẩu mới, không sử dụng lại mật khẩu của phiên làm việc trước. Do đó nếu mật khẩu bị lấy cắp trên đường truyền cũng không thể sử dụng được. Phương pháp dùng một nhóm thông qua bí mật (secret pass-phrase) được tạo ra bởi người dùng để tạo ra một dãy tuần tự các mật khẩu một lần OTP (One-Time Password). Nhóm thông qua bí mật của người dùng không bao giờ được chuyển ra kh i máy tính cục bộ và truyền trên mạng, do vậy sẽ không bị tấn công.
Một chuỗi tuần tự các OTP được sinh ra bởi việc áp dụng một hàm băm bảo mật (secret hash function) đa thời gian đến các bản tin được tạo ra trong bước khởi tạo. OTP đầu tiên được sinh ra bằng cách chuyển bản tóm lược thông điệp qua hàm băm N lần, trong đó N được chỉ định bởi người dùng. OTP kế tiếp được sinh ra bằng cách chuyển bản tóm lược thông điệp qua hàm băm N-1 lần và cứ như thế cho đến khi OTP thứ N được sinh ra.
Khi người sử dụng đăng nhập vào mạng, máy chủ phục vụ đưa ra yêu cầu thách thức gồm một số và một chuỗi các ký tự, gọi là seed. Để đáp ứng yêu cầu, người dùng nhập vào con số thách thức và seed kèm theo nhóm thông qua bí mật. Danh sách các OTP được sinh ra tại máy của người dùng được tới máy chủ phục vụ mạng. Máy này cũng lặp lại hàm băm và so sánh kết quả với mật khẩu tức thời được lưu trữ trong máy (mật khẩu này được sử dụng cho lần đăng nhập vào mạng gần đây nhất). Nếu chúng phù hợp thì người dùng sẽ được đăng nhập vào mạng. Số yêu cầu được giảm đi và mật khẩu tức thời lần cuối cùng sẽ được lưu lại cho lần đăng nhập tiếp theo.
1.5.1.3 Xác thực theo giao thức PAP
PAP được thiết kế để hai máy tính tham gia giao tiếp thông qua giao thức PPP xác thực lẫn nhau. PAP là một giao thức bắt tay hai bước. Máy tính tạo kết nối sẽ gửi một cặp nhận dạng người dùng và mật khẩu tới hệ thống đích để thiết lập kết nối, hệ thống đích sẽ xác nhận máy tính đó và chập nhận kết nối.
Xác thực PPP có thể được sử dụng khi khởi tạo kết nối cũng như trong một phiên làm việc PPP để xác thực lại. Khi kết nối PPP được thiết lập, xác thực PPP có thể được chuyển qua đường kết nối đó. PAP không bảo mật vì thông tin được truyền đi ở dạng bản rõ và không có cơ chế bảo vệ việc tấn công lại ([19]).
CHAP cũng là mô hình xác thực dựa trên user name/password được thiết kế gần giống với PAP nhưng bảo mật hơn và được sử dụng khi khởi tạo kết nối PPP, cũng như sau khi kết nối được thiết lập. Khi người dùng đăng nhập vào hệ thống, máy chủ đảm nhiệm vai trò xác thực sẽ gửi một thông điệp thách thức (challenge message) trở lại máy tính người dùng. Máy tính người dùng sẽ phản hồi lại user name và password được mã hóa. Máy chủ xác thực sẽ so sánh phiên bản xác thực người dùng được lưu giữ với phiên bản mã hóa vừa nhận, nếu trùng khớp người dùng sẽ được xác thực. Bản thân Password không bao giờ được gửi qua mạng. Phương thức CHAP thường được sử dụng khi người dùng đăng nhập vào xác máy chủ từ xa của công ty chẳng hạn như RAS server và dữ liệu chứa password được mã hóa gọi là password băm (hash password) ([19]).
1.5.1.5 Xác thực theo phương pháp Kerberos
Xác thực Kerberos dùng một máy chủ trung tâm để kiểm tra việc xác thực người dùng và cấp phát thẻ thông hành (service tickets) để người dùng có thể truy cập vào tài nguyên. Kerberos là một phương thức rất an toàn trong xác thực bởi vì dùng cấp độ mã hóa rất mạnh. Kerberos cũng dựa trên độ chính xác của thời gian xác thực giữa máy chủ và máy khách, do đó cần đảm bảo tính đồng bộ về mặt thời gian. Kerberos là nền tảng xác thực chính của nhiều OS như Unix, Windows
1.5.1.6 Xác thực theo phương pháp Tokens
Tokens là phương tiện vật lý như các thẻ thông minh (smart cards) hoặc thẻ đeo của nhân viên (ID badges) chứa thông tin xác thực. Tokens có thể lưu trữ số nhận dạng cá nhân (PIN), thông tin về user hoặc password. Các thông tin trên token chỉ có thể đọc và xử lý bởi các thiết bị đặc dụng, ví dụ như thẻ thông minh được đọc bởi đầu đọc thông minh gắn trên máy tính, sau đó thông tin này được gửi đến máy chủ xác thực. Tokens chứa chuỗi text hoặc giá trị số duy nhất, thông thường mỗi giá trị này chỉ sử dụng một lần ([1]).
1.5.1.7 Xác thực dựa trên Biometrics
Biometrics (phương pháp nhận dạng sinh trắc học) là mô hình xác thực dựa trên đặc điểm sinh học của từng cá nhân như quét dấu vân tay (fingerprint scanner), quét võng mạc mắt (retinal scanner), nhận dạng giọng nói (voice-recognition), nhận dạng khuôn mặt (facerecognition).Vì nhận dạng sinh trắc học hiện rất tốn kém chi phí khi triển khai nên không được chấp nhận rộng rãi như các phương thức xác thực khác ([1]).
1.5.2 Tính bí mật dữ liệu trong VPN
Các VPN hiện nay sử dụng mã hoá để đảm bảo tính bí mật của thông tin trao đổi giữa các bên tham gia giao tiếp.
Hai hệ thống mã hoá chính được sử dụng ngày nay đó là mã khoá khoá bí mật và mã hoá khoá công khai. Mã hoá khoá bí mật (hoặc khoá riêng) sử dụng một khoá chia sẻ giữa các bên giao tiếp để mã hoá và giải mã dữ liệu trao đổi. Vấn đề chính với mã hoá khoá bí mật là việc trao đổi khoá. Việc gửi các khoá bí mật qua môi trường truyền thông Internet là không được đảm bảo, đây chính là điểm yếu của mã hoá khoá bí mật. Tuy nhiên, điều này có thể được thực hiện bằng mã hoá khoá công khai. Với mã hoá khoá công khai, mỗi bên tham gia giao tiếp đều sử dụng một cặp khoá. Điều này có nghĩa là, dữ liệu được mã với một khoá và chỉ có thể giải được với khoá còn lại trong cặp khoá đó. Người gửi có thể mã hoá một thông điệp bằng khoá công khai của người nhận, khoá công khai này có thể được công bố rộng rãi. Người nhận có thể giải mã thông điệp bằng khoá riêng của mình.
Các hệ thống mã hoá khoá công khai khắc phục được điểm yếu của hệ thống mã hoá khoá bí mật, tuy nhiên tốc độ của nó lại chậm hơn so với hệ thống mã hoá khoá bí mật rất nhiều. Chính vì vậy, trong thực tế thường sử dụng kết hợp cả hai phương pháp mã hoá trên, mã hoá khoá công khai dùng vào việc trao đổi khoá bí mật, còn mã hoá khoá bí mật dùng cho việc trao đổi dữ liệu. Ví dụ, thuật toán mã hoá khoá công khai RSA có thể sử dụng kết hợp với thuật toán mã hoá khoá bí mật DES.
1.5.3 Tính toàn vẹn dữ liệu trong VPN
Tính toàn vẹn dữ liệu đảm bảo thông tin được truyền qua mạng công cộng không bị thay đổi. Các VPN thường sử dụng một trong các công nghệ sau đây để đảm bảo tính toàn vẹn của dữ liệu:
- Các hàm băm một chiều (One-way hash functions): Hàm băm một chiều nhận đầu vào là một chuỗi hoặc một tệp dữ liệu có độ dài tùy ý và sinh ra một chuỗi có độ dài cố định. Bằng việc sử dụng các hàm băm một chiều ta có thể dễ dàng sinh ra các giá trị băm từ dữ liệu ban đầu, tuy nhiên để xác định được dữ liệu ban đầu từ giá trị băm của nó là một việc hết sức khó khăn. Đây là một tính chất đặc biệt quan trọng của hàm băm. Để kiểm tra tính toàn vẹn của dữ liệu, người nhận tính toán giá trị băm của dữ liệu ban đầu và so sánh nó với giá trị băm được gửi kèm với dữ liệu ban đầu từ người gửi. Nếu hai giá trị này giống nhau, dữ liệu không bị thay đổi, ngược lại dữ liệu bị thay đổi trên đường truyền. Các giải thuật băm thường được dùng hiện nay là: MD5, SHA-1.
- M xác thực thông điệp MAC chỉ đơn giản là thêm một khoá vào các hàm băm. Người gửi tạo một file, tính toán giá trị MAC dựa trên một khoá chia sẻ với bên nhận, và sau đó bổ sung nó vào file đó. Khi bên nhận nhận được file, tính toán lại giá trị MAC từ file đó và so sánh giá trị này với giá trị MAC được gắn kèm với file.
- Chữ ký điện tử (Digital signatures) có thể được dùng cho mục đích đảm bảo tính toàn vẹn của dữ liệu. Chữ ký điện tử thường là một hệ thống mã hoá công khai theo thứ tự ngược. Người gửi “ký” vào tài liệu bằng khoá riêng của mình và người nhận có thể kiểm tra chữ ký thông qua khoá công khai của người gửi ([21]).
1.6 Kết luận chương
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