Tải bản đầy đủ (.pdf) (18 trang)

Công nghệ mạng riêng ảo VPN: Các giao thức đường hầm và bảo mật chương 2_1 docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (531.52 KB, 18 trang )

ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG MẠNG

Đề tài:

Công nghệ mạng riêng ảo VPN: Các
giao thức đường hầm và bảo mật

CHƯƠNG 2
CÁC GIAO THỨC ĐƯỜNG HẦM VPN
Hiện nay có nhiều giải pháp để giải quyết hai vấn đề về đóng gói dữ
liệu và an toàn dữ liệu trong VPN, dựa trên nền tảng là các giao thức
đường hầm. Một giao thức đường hầm sẽ thực hiện đóng gói dữ liệu với
phần Header (và có thể cả Trailer) tương ứng để truyền qua Internet.
Giao thức đường hầm là cốt lõi của giải pháp VPN. Có 4 giao thức
đường hầm được sử dụng trong VPN đó là:
- Giao thức định hướng lớp 2 - L2F (Layer 2 Forwarding)
- Giao thức đường hầm điểm-điểm-PPTP (Point to Point
Tunneling protocol)
- Giao thức đường hầm lớp 2 - L2TP (Layer 2 tunneling protocol)
- Giao thức bảo mật IP - IPSec (Internet Protocol Security)
2.1 Giao thức định hướng lớp 2 - L2F
Giao thức định hướng lớp 2 L2F do Cisco phát triển độc lập và
được phát triển dựa trên giao thức PPP (Point-to-Point Protocol). L2F
cung cấp giải pháp cho dịch vụ quay số ảo bằng cách thiết lập một
đường hầm bảo mật thông qua cơ sở hạ tầng công cộng như Internet.
L2F là giao thức được phát triển sớm nhất, là phương pháp truyền thống
để cho những người sử dụng ở xa truy cập vào một mạng công ty thông
qua thiết bị truy cập từ xa.
L2F cho phép đóng gói các gói PPP trong L2F, định đường hầm ở
lớp liên kết dữ liệu.
2.1.1 Cấu trúc gói của L2F


1bi
t
1b
it
1bi
t
1bi
t
8bit 1bi
t
3bit 8bit 8bit
F K P S Reserve
d
C Versio
n
Protocol Sequence

Multiplex ID Client ID
Length Offset
Key
Data
Ckecksums

Hình 2.1: Khuôn dạng gói của L2F
Trong đó:
F: Trường “Offset” có mặt nếu bit này được thiết lập.
K: Trường “Key” có mặt nếu bít này được thiết lập.
P_ priority: Gói này là một gói ưu tiên nếu bít này được thiết lập.
S: Trường “Sequence” có mặt nếu bít này được thiết lập.
Reserved: luôn được đặt là: 00000000.

Version : Phiên bản chính của L2F dùng để tạo gói. 3 bit này luôn là
111.
Protocol : Xác định giao thức đóng gói L2F.
Sequence: Số chuỗi được đưa ra nếu trong L2F Header bít S=1.
Multiplex ID: Nhận dạng một kết nối riêng trong một đường hầm
(tunnel).
Client ID: Giúp tách đường hầm tại những điểm cuối.
Length: chiều dài của gói (tính bằng Byte) không bao gồm phần
checksum.
Offset: Xác định số Byte trước L2F Header, tại đó dữ liệu tải tin được
bắt đầu. Trường này có khi bít F=1.
Key: Trường này được trình bày nếu bit K được thiết lập. Đây là một
phần của quá trình nhận thực.
Checksum: Kiểm tra tổng của gói. Trường checksum có nếu bít C=1.
2.1.2 Ưu nhược điểm của L2F
Ưu điểm:
- Cho phép thiết lập đường hầm đa giao thức.
- Được cung cấp bởi nhiều nhà cung cấp.
Nhược điểm:
- Không có mã hoá.
- Yếu trong việc xác thực người dùng.
- Không có điều khiển luồng cho đường hầm.
2.1.3 Thực hiện L2F
L2F đóng gói những gói ở lớp 2 và trong trường hợp này là đóng
gói PPP, truyền xuyên qua một mạng. L2F sử dụng các thiết bị:
NAS: Hướng lưu lượng đến và đi từ máy khách ở xa (remote client)
và gateway home. Hệ thống ERX hoạt động như NAS.
Tunne:l Định hướng đường đi giữa NAS và home gateway. Một
đường hầm gồm một số kết nối.
Home gateway: Ngang hàng với NAS.

Kết nối (connection): Là một kết nối PPP trong đường hầm. Trong
CLI, một kết nối L2F được xem như là một phiên.
Điểm đích (Destination): Là điểm kết thúc ở đầu xa của đường hầm.
Trong trường hợp này thì Home gateway là điểm đích.

Hình 2.2: Mô hình đặc trưng L2F
2.1.4 Hoạt động của L2F
Hoạt động L2F bao gồm các hoạt động: thiết lập kết nối, đường hầm
và phiên làm việc. Ta xem xét ví dụ minh hoạ hoạt động của L2F:
1) Một người sử dụng ở xa quay số tới hệ thống NAS và khởi đầu
một kết nối PPP tới ISP.
2) Hệ thống NAS và máy khách trao đổi các gói giao thức điều khiển
liên kết LCP (Link Control Protocol).
3) NAS sử dụng cơ sở dữ liệu cục bộ liên quan tới tên vùng (domain
name) hay nhận thực RADIUS để quyết định có hay không người
sử dụng yêu cầu dịch vụ L2F.
4) Nếu người sử dụng yêu cầu L2F thì quá trình tiếp tục: NAS thu
nhận địa chỉ của gateway đích (home gateway).
5) Một đường hầm được thiết lập từ NAS tới gateway đích nếu giữa
chúng chưa có đường hầm nào. Sự thành lập đường hầm bao gồm
giai đoạn nhận thực từ ISP tới gateway đích để chống lại tấn công
bởi những kẻ thứ ba.
6) Một kết nối PPP mới được tạo ra trong đường hầm, điều này tác
động kéo dài phiên PPP từ người sử dụng ở xa tới home gateway.
Kết nối này được thiết lập như sau: Home gateway tiếp nhận các
lựa chọn và tất cả thông tin nhận thực PAP/CHAP, như đã thoả
thuận bởi đầu cuối người sử dụng và NAS. Home gateway chấp
nhận kết nối hay nó thoả thuận lại LCP và nhận thực lại người sử
dụng.
7) Khi NAS tiếp nhận lưu lượng dữ liệu từ người sử dụng, nó lấy gói

và đóng gói lưu lượng vào trong một khung L2F và hướng nó vào
trong đường hầm.
8) Tại home gateway, khung L2F được tách bỏ, và dữ liệu đóng gói
được hướng tới mạng công ty.
2.1.5 Quản lý L2F
Khi hệ thống đã thiết lập những điểm đích, những đường hầm
tunnel, và những phiên kết nối ta phải điều khiển và quản lý lưu lượng
L2F như sau:
- Ngăn cản tạo những điểm đích, những đường hầm tunnel, những
phiên mới.
- Đóng và mở lại tất cả hay chọn lựa những điểm đích, những đường
hầm tunnel, những phiên.
- Có khả năng kiểm tra tổng UDP.
- Thiết lập thời gian rỗi cho hệ thống và lưu giữ cơ sở dữ liệu vào
của những đường hầm và những kết nối.
Sự thay đổi một điểm đích làm ảnh hưởng tới tất cả những đường
hầm và phiên tới điểm đích đó; Sự thay đổi một đường hầm làm ảnh
hưởng tới tất cả các phiên trong đường hầm đó. Ví dụ, Sự kết thúc ở
điểm đích đóng tất cả các đường hầm và phiên tới điểm đích đó.
L2F cung cấp các lệnh để thực hiện các chức năng. Ví dụ
L2F checksum: mục đích để kiểm tra toàn vẹn dữ liệu của các khung
L2F sử dụng kiểm tra tổng UDP, ví dụ host 1(config)#l2f checksum
L2F destruct-timeout: sử dụng để thiết lập thời gian rỗi, giá trị thiết
lập trong dải 10 -:- 3600 giây, ví dụ host1 (config)#l2f destruct-timeout
1200
2.2 Giao thức đường hầm điểm-điểm PPTP
Giao thức đường hầm điểm–điểm PPTP được đưa ra đầu tiên bởi
một nhóm các công ty được gọi là PPTP Forum. Nhóm này bao gồm 3
công ty: Ascend comm., Microsoft, ECI Telematicsunication và US
Robotic. Ý tưởng cơ sở của giao thức này là tách các chức năng chung

và riêng của truy cập từ xa, lợi dụng cơ sở hạ tầng Internet sẵn có để tạo
kết nối bảo mật giữa người dùng ở xa (client) và mạng riêng. Người
dùng ở xa chỉ việc quay số tới nhà cung cấp dịch vụ Internet địa phương
là có thể tạo đường hầm bảo mật tới mạng riêng của họ.
Giao thức PPTP được xây dựng dựa trên chức năng của PPP, cung
cấp khả năng quay số truy cập tạo ra một đường hầm bảo mật thông qua
Internet đến site đích. PPTP sử dụng giao thức bọc gói định tuyến chung
GRE (Generic Routing Encapsulation) được mô tả lại để đóng gói và
tách gói PPP, giao thức này cho phép PPTP mềm dẻo xử lý các giao
thức khác không phải IP như: IPX, NETBEUI.
Do PPTP dựa trên PPP nên nó cũng sử dụng PAP, CHAP để xác
thực. PPTP có thể sử dụng PPP để mã hoá dữ liệu nhưng Microsoft đã
đưa ra phương thức mã hoá khác mạnh hơn đó là mã hoá điểm - điểm
MPPE (Microsoft Point- to- Point Encryption) để sử dụng cho PPTP.
Một ưu điểm của PPTP là được thiết kế để hoạt động ở lớp 2 (lớp
liên kết dữ liệu) trong khi IPSec chạy ở lớp 3 của mô hình OSI. Bằng
cách hỗ trợ việc truyền dữ liệu ở lớp thứ 2, PPTP có thể truyền trong
đường hầm bằng các giao thức khác IP trong khi IPSec chỉ có thể truyền
các gói IP trong đường hầm.
2.2.1 Kiến trúc của PPTP



Hình 2.3: Ki
ến trúc của PPTP
a) PPP và PPTP
PPP đã trở thành giao thức quay số truy cập vào Internet và các
mạng TCP/IP rất phổ biến hiện nay. Làm việc ở lớp liên kết dữ liệu
trong mô hình OSI, PPP bao gồm các phương thức đóng, tách gói cho
các loại gói dữ liệu khác nhau để truyền nối tiếp. Đặc biệt, PPP định

nghĩa hai bộ giao thức: giao thức điều khiển liên kết LCP (Link Control
Protocol) cho việc thiết lập, cấu hình và kiểm tra kết nối; Giao thức điều
khiển mạng NCP (Network Control Protocol) cho việc thiết lập và cấu
hình các giao thức lớp mạng khác nhau.
PPP có thể đóng các gói IP, IPX, NETBEUI và truyền đi trên kết
nối điểm-điểm từ máy gửi đến máy nhận. Để viêc truyền thông có thể
diễn ra thì mỗi PPP phải gửi gói LCP để kiểm tra cấu hình và kiểm tra
liên kết dữ liệu.
Khi một kết nối PPP được thiết lập thì người dùng thường đã được
xác thực. Đây là giai đoạn tuỳ chọn trong PPP, tuy nhiên nó luôn luôn
được cung cấp bởi các ISP. Việc xác thực được thực hiện bởi PAP hay
CHAP.
Với PAP mật khẩu được gửi qua kết nối dưới dạng văn bản đơn
giản và không có bảo mật để tránh khỏi bị tấn công thử và lỗi. CHAP là
một phương thức xác thực mạnh hơn, CHAP sử dụng phương thức bắt
tay 3 chiều. CHAP chống lại các vụ tấn công quay lại bằng cách sử dụng
các giá trị thách đố (challenge value) duy nhất và không thể đoán trước
được. CHAP phát ra giá trị thách đố trong suốt và sau khi thiết lập xong
kết nối, lập lại các thách đố có thể giới hạn số lần bị đặt vào tình thế bị
tấn công.
PPTP được thiết kế dựa trên PPP để tạo ra kết nối quay số giữa
khách hàng và máy chủ truy cập mạng. PPTP sử dụng PPP để thực hiện
các chức năng:
- Thiết lập và kết thúc kết nối vật lý.
- Xác thực người dùng.
- Tạo các gói dữ liệu PPP.
Sau khi PPP thiết lập kết nối, PPTP sử dụng các quy luật đóng gói
của PPP để đóng các gói truyền trong đường hầm.
Để tận dụng ưu điểm của kết nối tạo ra bởi PPP, PPTP định nghĩa
hai loại gói: Gói điều khiển; Gói dữ liệu và gán chúng và 2 kênh riêng là

kênh điều khiển và kênh dữ liệu. Sau đó PPTP phân tách các kênh điều
khiển và kênh và kênh dữ liệu thành luồng điều khiển với giao thức TCP
và luồng dữ liệu với giao thức IP. Kết nối TCP được tạo giữa client
PPTP và máy chủ PPTP được sủ dụng để trưyền thông báo điều khiển.
Các gói dữ liệu là dữ liêu thông thường của người dùng. Các gói
điều khiển được gửi theo chu kỳ để lấy thông tin về trạng thài kết nối và
quản lý báo hiệu giữa client PPTP và máy chủ PPTP. Các gói điều khiển
cũng được dùng để gửi các thông tin quản lý thiết bị, thông tin cấu hình
giữa hai đầu đường hầm.
Kênh điều khiển được yêu cầu cho việc thiết lập một đường hầm
giữa client PPTP và máy chủ PPTP. Phần mềm client có thể nằm ở máy
người dùng từ xa hay nằm ở tại máy chủ của ISP.


Hình 2.4:Các giao thức dùng trong một kết nối PPTP

Sau khi đường hầm được thiết lập thì dữ liệu người dùng được
truyền giữa client và máy chủ PPTP. Các gói PPTP chứa các gói dữ liệu
IP. Các gói dữ liệu được đóng gói bởi tiêu đề GRE, sử dụng số ID của
Host cho điều khiển truy cập, ACK cho giám sát tốc độ dữ liệu truyền
trong đường hầm.
PPTP hoạt động ở lớp liên kết dữ liệu, nên cần phải có tiêu đề môi
trường truyền trong gói để biết gói dữ liệu truyền trong đường hầm theo
phương thức nào? Ethernet, Frame Relay hay kết nối PPP?



Hình 2.5 : bọc gói PPTP/ GRE
PPTP cũng có cơ chế điều khiển tốc độ nhằm giới hạn số lượng dữ
liệu truyền đi. Cơ chế này làm giảm tối thiểu dữ liệu phải truyền lại do

mất gói.
b) Cấu trúc gói của PPTP
*Đóng gói dữ liệu đường hầm PPTP
Dữ liệu đường hầm PPTP được đóng gói thông qua nhiều mức:
đóng gói khung PPP, đóng gói các gói GRE, đóng gói lớp liên kết dữ
liệu.
Cấu trúc gói dữ liệu đã được đóng gói

Hình 2.6: Cấu trúc gói dữ liệu trong đường hầm PPTP
+ Đóng gói khung PPP
Phần tải PPP ban đầu được mật mã và đóng gói với phần tiêu đề
PPP để tạo ra khung PPP. Sau đó, khung PPP được đóng gói với phần
tiêu đề của phiên bản sửa đổi giao thức GRE.
Đối với PPTP, phần tiêu đề của GRE được sử đổi một số điểm sau:
- Một bit xác nhận được sử dụng để khẳng định sự có mặt của trường
xác nhận 32 bit.
- Trường Key được thay thế bằng trường độ dài Payload 16bit và
trường nhận dạng cuộc gọi 16 bit. Trường nhận dạng cuộc goi Call
ID được thiết lập bởi PPTP client trong quá trình khởi tạo đường
hầm PPTP.
- Một trường xác nhận dài 32 bit được thêm vào.
GRE là giao thức cung cấp cơ chế chung cho phép đóng gói dữ liệu để
gửi qua mạng IP.
+ Đóng gói các gói GRE
Tiếp đó, phần tải PPP đã được mã hoá và phần tiêu đề GRE được
đóng gói với một tiêu đề IP chứa thông tin địa chỉ nguồn và đích cho
PPTP client và PPTP server.
+ Đóng gói lớp liên kết dữ liệu
Do đường hầm của PPTP hoạt động ở lớp 2 - Lớp liên kết dữ liệu
trong mô hình OSI nên lược đồ dữ liệu IP sẽ được đóng gói với phần

tiêu đề (Header) và phần kết thúc (Trailer) của lớp liên kết dữ liệu. Ví
dụ, Nếu IP datagram được gửi qua giao diện Ethernet thì sẽ được đóng
gói với phần Header và Trailer Ethernet. Nếu IP datagram được gửi
thông qua đường truyền WAN điểm tới điểm thì sẽ được đóng gói với
phần Header và Trailer của giao thức PPP.
* Xử lý dữ liệu đường hầm PPTP
Khi nhận được dữ liệu đường hầm PPTP, PPTP client hay PPTP
server sẽ thực hiện các bước xử lý:
- xử ký và loại bỏ phần Header và Trailer của lớp liên kết dữ liệu.
- Xử lý và loại bỏ IP Header.
- Xử lý và loại bỏ GRE Header và PPP Header.
- Giải mã hoặc/và giải nén phần PPP payload nếu cần thiết.
- Xử lý phần payload để nhận hoặc chuyển tiếp.
* Sơ đồ đóng gói PPTP



Hình 2.7: Sơ đồ đóng gói PPTP
Quá trình:
- Các IP datagram, IPX datagram, hoặc NetBEUI frame được đưa tới
giao diện ảo bằng giao thức tương ứng (giao diện ảo đại diện cho kết
nối VPN) sử dụng NDIS (Network Driver Interface specification).
- NDIS đưa gói dữ liệu tới NDISWAN, nơi thực hiện mật mã, nén dữ
liệu và cung cấp PPP header. Phần mào đầu PPP này chỉ bao gồm
trường mã số giao thức PPP (PPP protocol ID field), không có các
trường flag và FCS (frame check sequence). Giả định trưòng địa chỉ
và điều khiển đã được thoả thuận ở giao thức điều khiển đường
truyền LCP (Link Control Protocol) trong quá trình kết nối PPP.
- NDISWAN gửi dữ liệu tới giao thức PPTP, nơi đóng gói khung PPP
với phần mào đầu GRE. Trong GRE header, trường Call ID đựoc đặt

giá trị thích hợp để xác định đường hầm.
- Giao thức PPTP sau đó sẽ gửi gói vừa hình thành tới giao thức
TCP/IP.
- TCP/IP đóng gói dữ liệu đường hầm PPTP với phần mào đầu IP, sau
đó gửi gói kết quả tới giao diện đại diện cho kết nối quay số tới ISP
địa phương sử dụng NDIS.
- NDIS gửi gói NDISWAN, nó cung cấp các phần PPP header và
trailer.
- NDISWAN gửi khung PPP kết quả tới cổng WAN tương ứng đại
diện cho phần cứng quay số.
c) Đường hầm
PPTP cho phép người dùng và ISP có thể tạo ra nhiều loại đuờng
hầm khác nhau. Người dùng có thể chỉ định điểm kết thúc của đường
hầm ở ngay tại máy tính của mình nếu có cài PPTP, hay tại máy chủ của
ISP (máy tính của ISP phải hỗ trợ PPTP). Có hai lớp đường hầm: Đường
hầm tự nguyên và đường hầm bắt buộc.
Đường hầm tự nguyện: được tạo ra theo yêu cầu của người dùng.
Khi sử dụng đường hầm tự nguyện, người dùng có thể đồng thời mở một
đường hầm bảo mật thông qua Internet và có thể truy cập đến một Host
trên Internet bởi giao thức TCP/IP bình thườ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.
Đườ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. Điểm kết thúc của đương hầm bắt
buộc nằm ở máy chủ truy cập từ xa. Tất cả dữ liệu truyền đi từ người
dùng qua đường hầm PPTP đều phải thông qua RAS.
Do đườ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 cập phần còn lại của Internet nên nó điều khiển truy nhập
tốt hơn so với đường hầm tự nguyện. Nếu 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

không cho họ truy cập Internet công cộng nhưng vẫn cho phép họ dùng
Internet để truy cập VPN (nghĩa là chỉ cho truy cập và đượ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 đuờng hầm có
nhiều điểm kết nối. Đặc tính này làm giảm yêu cầu băng thô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ừ RAS đến
người dùng nằm ngoài đường hầm nên dễ bị tấn công.
Internet
Internet
Máy chủ
Client
Client
Computer
ComputerComputer
Mạng riêng
Đường hầm tự nguyện
Computer
Computer
Computer
Computer
ComputerComputer
Máy chủ Máy chủ
Mạng riêng
được bảo vệ
Mạng riêng
được bảo vệ
Đường hầm
bắt buộc



Hình 2.8 : đường hầm bắt buộc và đường hầm tự nguyện

×