Hình 2.20: Kiến trúc của L2TP
Những phần chính của L2TP bao gồm: Giao thức điểm – điểm, đường hầm và hệ thống xác thực. Tuy nhiên để tăng thêm độ bảo mật thì L2TP.
2.5.4.1.1 PPP và L2TP
PPP và L2TP dựa trên PPP để tạo kết nối quay số giữa client và máy chủ truy cập mạng (NAS).
L2TP sử dụng PPP để tạo kết nối vật lý, tiến hành giai đoạn xác thực, tạo gói dữ liệu PPP và đóng kết nối khi kết thúc phiên làm việc.
Sau khi PPP tạo kết nối xong, L2TP sẽ xác định NAS tại site chính có chấp nhận người dùng và sẵn sàng đóng vai trò là điểm kết thúc đường hầm cho người dùng đó. Sau khi đường hầm được tạo, L2TP sẽ đóng gói các gói PPP rồi truyền lên môi trường mà ISP đã gắn cho đường hầm đó (Hình 2.21). L2TP tạo đường hầm giữa NAS của ISP và máy chủ mạng của client, nó có thể gắn nhiều phiên làm việc cho đường hầm. L2TP tạo ra các số nhận dạng cuộc gọi (Call ID) cho mỗi phiên làm việc và chèn Call ID vào tiêu đề L2TP của mỗi gói để chỉ ra nó thuộc phiên làm việc nào.
Hình 2.21: Các giao thức sử dụng trong một kết nối L2TP
L2TP cũng có thể tạo ra nhiều đường hầm NAS của ISP và máy chủ truy cập mạng client. Bằng việc chọn gán một phiên làm việc của người dùng cho một đường hầm thay vì ghép nhiều phiên làm việc vào một đường hầm, cho phép gán các người dùng khác nhau vào các môi trường đường hầm tùy theo chất lượng dịch vụ của họ.
Giống như PPTP, L2TP cũng định nghĩa hai loại thông báo đó là thông báo điều khiển và thông báo dữ liệu. Tuy nhiên không giống như PPTP, L2TP truyền cả hai loại thông báo chung trên một luồng. Nếu như đường hầm được dùng cho truyền trên mạng IP thì cả hai loại thông báo đều được gửi trên cùng gói dữ liệu UDP.
Do L2TP làm việc ở lớp hai nên trong thông báo dữ liệu L2TP bao gồm tiêu đề môi trường để chỉ ra đường hầm làm việc trong môi trường nào (hình 2.22). Tùy theo nhà ISP mà môi trường có thể là Ethernet, X.25, Frame Relay, ATM hay liên kết PPP.
Hình 2.22: Bọc gói L2TP
L2TP cũng giúp đỡ làm giảm tải trên mạng, nó giúp máy chủ giải quyết tắc nghẽn bằng cơ chế điều khiển luồng giữa NAS, theo thuật ngữ gọi là bộ tập trung truy cập L2TP – LAC (L2TP Access Concerntrator) và máy chủ của mạng riêng, theo thuật ngữ gọi là máy chủ mạng L2TP – LNS (L2TP Network Server). Thông báo điều khiển
cho biết tốc độ truyền và tham số của bộ đệm dùng để điều khiển luồng các gói PPP trong một phiên làm việc.
2.5.4.1.2 Đường hầm L2TP
L2TP sử dụng những lớp đường hầm tương tự như PPTP (các đường hầm tự nguyện và bắt buộc) tùy theo người sử dụng client PPP hay client L2TP để khởi tạo kết nối.
Đường hầm tự nguyện được tạo theo yêu cầu của người dùng cho mục đích sử dụng cụ thể. Đường hầm bắt buộc được tạo tự động không cần bất kỳ hành động nào từ phía người dùng và đặc biệt là không cho phép người dùng có sự lựa chọn nào.
Hình 2.23: Các đường hầm tự nguyện và bắt buộc.
Khi người dùng sử dụng đường hầm tự nguyện thì có thể đồng thời mở đường hầm bảo mật thông qua Internet và vừa có thể truy cập vào một host bất kỳ trên Internet theo giao thức TCP/IP bình thường. Điểm kết thúc đường hầm của đường hầm tự nguyện nằm ở máy tính người dùng. Đường hầm tự nguyện thường được sử dụng để
cung cấp tính riêng tư và toàn vẹn dữ liệu cho lưu lượng Intranet được gửi thông qua Internet.
Do đường hầm bắt buộc được tạo ra không thông qua người dùng nên nó trong suốt đối với người dùng đầu cuối. Điểm kết thúc của đường hầm bắt buộc nằm ở LAC của ISP. Tất cả dữ liệu truyền đi từ người dùng qua đường hầm L2TP thông qua LAC. Truy cập vào những dịch vụ khác ngoài Intranet cần phải thông qua nhà quản lý mạng. Cần lưu ý là L2TP cho phép đa kết nối cùng tải trên một đường hầm, điều này làm tăng dung lượng cho L2TP.
Bởi vì đường hầm bắt buộc định trước điểm kết thúc và người dùng không thể truy nhập phần còn lại của Internet nên nó điều khiển truy nhập tốt hơn là đường hầm tự nguyện. Nếu như vì tính bảo mật mà không cho người dùng truy cập Internet công cộng thì đường hầm bắt buộc ngăn chặn không cho họ truy nhập Internet công cộng nhưng vẫn cho phép dùng Internet để truy cập VPN (nghĩa là chỉ truy nhập được các site trong VPN mà thôi).
Một ưu điểm nữa của đường hầm bắt buộc là một đường hầm có thể tải nhiều kết nối. Đặc tính này làm giảm yêu cầu băng thông mạng cho các ứng dụng đa phiên làm việc. Một khuyết điểm của đường hầm bắt buộc là kết nối từ LAC đến người dùng nằm ngoài đường hầm nên dễ bị tấn công. Điều này là một trong những lí do L2TP sử dụng một số đặc điểm của IPSec để bảo mật lưu lượng.
Mặc dù ISP có thể chọn cách thiếp lập tĩnh để định nghĩa đường hầm cho người dùng, nhưng điều này làm lãng phí tài nguyên mạng nếu như đường hầm tĩnh đó không được sử dụng thường xuyên. Có cách khác mềm dẻo hơn đó là chọn đường hầm động khi mà người dùng kết nối với RAS hay LAC, cho phép sử dụng tài nguyên của mạng hiệu quả hơn. Những đường hầm động này được thiết lập trong L2TP bằng cách kết nối hệ thống tới máy chủ RADIUS.
Sử dụng RADIUS để cung cấp đường hầm bắt buộc có một vài ưu điểm. Các đường hầm có thể định nghĩa và kiểm tra dựa trên xác thực người dùng và tính cước có thể dựa trên số điện thoại, hoặc các phương pháp xác thực khác, chẳng hạn như thẻ bài hay card thông minh. Để RADIUS có thể điều khiển việc thiết lập một đường hầm, nó cần phải lưu các thuộc tính của đường hầm. Các thuộc tính này bao gồm giao thức đường hầm được sử dụng (PPTP hay L2TP), địa chỉ của máy chủ và môi trường truyền dẫn trong đường hầm được sử dụng.
2.5.4.1.3 Xác thực và mã hóa trong L2TP
Việc xác thực người dùng diễn ra trong ba giai đoạn: Giai đoạn một diễn ra tại ISP, giai đoạn hai và giai đoạn ba (tùy chọn) diễn ra ở máy chủ của mạng riêng.
Trong giai đoạn đầu, ISP có thể sử dụng số điện thoại của người dùng hoặc tên người dùng để xác định dịch vụ L2TP được yêu cầu và khởi tạo kết nối đường hầm đến máy chủ của mạng riêng. Khi đường hầm được thiết lập, LAC của ISP phải chỉ định một số nhận dạng cuộc gọi (Call ID) mới để định danh cho kết nối trong đường hầm và khởi tạo phiên làm việc bằng cách chuyển thông tin xác thực đến máy chủ của mạng riêng.
Máy chủ của mạng riêng sẽ tiến hành tiếp bước thứ hai là quyết định có chấp nhận hay từ chối cuộc gọi. Cuộc gọi từ ISP chuyển đến có thể mang CHAP, PAP, EAP hay bất kỳ thông tin nào, máy chủ sẽ dựa vào các thông tin này để quyết định chấp nhận hay từ chối cuộc gọi này.
Sau khi cuộc gọi được chấp nhận thì máy chủ mạng có thể khởi động giai đoạn thứ ba của việc xác thực tại lớp PPP. Bước này tương tự như máy chủ xác thực một người dùng quay số truy cập vào thẳng máy chủ.
Mặc dù bai giai đoạn này cho phép người dùng, ISP và máy chủ của mạng riêng xác định được tính chính xác của cuộc gọi nhưng vẫn chưa bảo mật cho dữ liệu tránh khỏi sự can thiệp sửa đổi.
Giữa hai đầu của đường hầm xác thực luồng qua lại lẫn nhau trong suốt quá trình thiết lập đường hầm. Cơ chế xác thực cũng tương tự như thuộc tính bảo mật của CHAP bảo mật chống lại các vụ tấn công trong suốt tiến trình thiết lập đường hầm. Tuy nhiên nó vẫn còn đơn giản cho kẻ tấn công xen vào và chiếm đường hầm ngay khi quá trình xác thực đường hầm vừa mới hoàn tất.
Mặc dù xác thực L2TP cho phép xác thực qua lại lẫn nhau giữa LAC và LNS trong suốt quá trình thiết lập đường hầm nhưng nó không bảo mật cho các luồng thông báo điều khiển và thông báo dữ liệu. Sự khiếm khuyết này làm cho đường hầm dễ bị tấn công bao gồm việc chèn gói dữ liệu vào để chiếm quyền điều khiển đường hầm hay kết nối PPP, hoặc phá vỡ việc đàm phán PPP, lấy được mật khẩu người dùng…
Xác thực PPP từ client đến LNS nhưng nó không cung cấp xác thực cho gói, không toàn vẹn dữ liệu, hoặc bảo mật. Mã hóa PPP là một yêu cầu tin cậy cho luồng PPP nhưng nó không có xác thực địa chị, toàn vẹn dữ liệu, quản lý khóa nên làm cho nó trở thành công cụ bảo mật yếu kém, không thể giúp cho bảo mật trong kênh L2TP.
Để xác thực trong L2TP được như mong muốn, cần phải phân phối khóa. Mặc dù phân phối khóa bằng tay có thể khả thi trong một số trường hợp, nhưng yêu cầu phải có một giao thức quản lý khóa cho mọi trường hợp.
Đối với đường hầm L2TP trên IP, bảo mật gói IP sử dụng IPSec cung cấp khả năng bảo mật cao cho đường hầm. Việc bảo mật này không đòi hỏi phải sửa đổi giao thức L2TP.
Cần chú ý là một vài loại tấn công được tiến hành trên kết nối PPP giữa client quay số và NAS/LAC. L2TP sẽ là một giải pháp tốt cho VPN nếu như nó bảo mật dữ liệu đầu cuối – đầu cuối. Điều này dẫn đến phải có kế hoạch sử dụng IPSec để mã hóa các gói, tối thiểu là cho các đường hầm dựa trên IP.
Bởi vì các chức năng của ESP được định nghĩa trên tải IP nên tiêu đề IP không cần thiết cho ESP. Do đó L2TP trên các mạng không phải IP có thể chuyển được các gói ESP. Nhưng việc chuyển khóa và đàm phán SA lại là vấn đề khác. Đối với IKE, các thông báo tải trên UDP, điều này làm cho các môi trường không phải là IP phải hỗ trợ việc truyền gói dữ liệu UDP.
Hãy xem xét IPSec được thực thi như thế nào trong đường hầm tự nguyện và bắt buộc. Trong trường hợp đường hầm bắt buộc, người dùng gửi những gói PPP đến LAC mà không cần quan tâm đến đường hầm được tạo giữa LAC và LNS tại mạng riêng. Một SA được thiết lập giữa LAC và LNS dựa trên yêu cầu và danh định của người dùng và SA này chỉ được biết đến bởi LAC và LNS, người dùng không quan tâm đến.
Hình 2.24: Mã hóa gói cho đường hầm bắt buộc.
Do người dùng đầu cuối không quan tâm đến dịch vụ bảo mật dữ liệu nằm giữa LAC và LNS, nên cách giải quyết tốt nhất cho người dùng đầu cuối là IPSec được thực thi ngay tại máy của họ. Tuy nhiên không phải các điểm kết thúc đường hầm nào cũng tương thích IPSec, điều này có thể giải quyết bằng cách đàm phán lại chỉ sử dụng mã hóa PPP (Hình 2.25). Trong cả hai trường hợp LAC của ISP phải chèn IPSec AH vào luồng dữ liệu nhưng lại để cho người dùng đầu cuối chọn là ESP cho đầu cuối tương thích IPSec hay mã hóa PPP cho đầu cuối tương thích không IPSec.
Trong trường hợp đường hầm tự nguyện, người dùng đóng vai trò là điểm kết thúc đường hầm, do đó có thể tiến hành đàm phán SA với LNS tại mạng riêng. Tuy nhiên việc đàm phán lại phụ thuộc vào cả hai đầu có thương thích với IPSec hay không (Hình 2.26). Do người dùng đóng vai trò là điểm kết thúc của đường hầm nên IPSec AH được áp dụng ngay máy của họ chứ không phải trên thiết bị của ISP. Nếu như đích đến không tương thích IPSec thì mã hóa ESP chỉ bảo mật dữ liệu cho đến khi nó đến LNS của mạng riêng.
Hình 2.26: Mã hóa gói cho đường hầm tự nguyện
2.5.4.1.4 Đường hầm kết nối LAN – LAN
Mặc dù chức năng chính của L2TP là cho quay số truy nhập VPN sử dụng client PPP, nhưng nó cũng thích hợp cho kết nối LAN – LAN trong VPN.
Đường hầm kết nối LAN – LAN được thiết lập giữa hai máy chủ của L2TP với ít nhất một trong hai máy chủ phải có kết nối quay số tới ISP để khởi tạo phiên làm việc PPP. Thiết kế này thích hợp cho mạng LAN của văn phòng chi nhánh kết nối vào văn phòng chính khi kết nối không cần phải duy trì thường xuyên.
Hai bên đóng vai trò vừa là LAC và LNS, khởi tạo và kết thúc đường hầm khi cần thiết (hình 2.27).
Đối với LAN kết nối vào LAN thường xuyên thông qua Internet (sử dụng Frame Relay, T1,…) cần tồn tại đường tắt trong tiến trình xác thực bởi vì RAS của ISP không đóng vai trò là LAC.
Hình 2.27: Đường hầm L2TP kết nối LAN – LAN
2.5.4.1.5 Quản lý khóa
Khi hai đối tượng muốn chuyển giao dữ liệu một cách bảo mật thì họ cần phải chắc là cả hai bên xử lý dữ liệu như nhau. Cả hai bên phải cùng sử dụng chung giải thuật mã hóa, cùng chiều dài từ khóa, cùng chung một khóa thì dữ liệu truyền mới được bảo mật. Điều này được xử lý thông qua bảo mật kết hợp SA (Security Association).
Một IPSec SA mô tả các vấn đề sau:
- Giải thuật xác thực sử dụng cho AH và khóa của nó. - Giải thuật mã hóa ESP và khóa của nó.
- Dạng thức và kích thước của đồng bộ mật mã sử dụng trong giải thuật mã hóa. - Giao thức, giải thuật, khóa sử dụng cho việc truyền thông.
- Giao thức, giải thuật mã hóa, khóa sử dụng cho việc truyền thông riêng. - Bao lâu thì khóa được thay đổi.
- Giải thuật xác thực, kiểu, chức năng sử dụng trong ESP và khóa được sử dụng bởi giải thuật đó.
- Thời gian sống của khóa. - Thời gian sống của SA. - Địa chỉ nguồn SA.
Mặc dù SA giúp hai đối tượng truyền thông định nghĩa phương thức mã hóa mà họ sẽ thực hiện nhưng việc chuyển giao khóa lại do IKE đảm nhiệm. IKE có các khả năng sau:
- Cung cấp các phương tiện cho hai bên thỏa thuận sử dụng các giao thức, giải thuật và khóa.
- Quản lý khóa sau khi chúng được chấp nhận trong tiến trình thỏa thuận. - Đảm bảo các khóa được chuyển một cách bảo mật.
Chuyển khóa giống tương tự như quản lý SA. Khi cần tạo một SA cần phải chuyển khóa. Do đó cấu trúc của IKE bọc chúng lại với nhau và chuyển chúng đi như một gói tích hợp.
Bởi vì IKE dựa trên IP nên nó dễ dàng được ghép vào L2TP chạy trên mạng IP hơn là trên mạng không phải là IP.