Professional Documents
Culture Documents
MỤC LỤC
MỤC LỤC......................................................................................................................i
Danh mục bảng biểu......................................................................................................v
Danh sách hình vẽ.........................................................................................................vi
Ký hiệu viết tắt.............................................................................................................ix
LỜI NÓI ĐẦU...............................................................................................................1
Chương 1
BỘ GIAO THỨC TCP/IP..............................................................................................3
1.1 Khái niệm mạng Internet.....................................................................................3
1.2 Mô hình phân lớp bộ giao thức TCP/IP...............................................................4
1.3 Các giao thức trong mô hình TCP/IP...................................................................5
1.3.1 Giao thức Internet...................................................................................................5
1.3.1.1 Giới thiệu chung.................................................................................................5
1.3.1.2. Cấu trúc IPv4.....................................................................................................6
1.3.1.3. Phân mảnh IP và hợp nhất dữ liệu....................................................................8
1.3.1.4. Địa chỉ và định tuyến IP....................................................................................9
1.3.1.5. Cấu trúc gói tin IPv6 ........................................................................................9
1.3.2. Giao thức lớp vận chuyển....................................................................................11
1.3.2.1. Giao thức UDP................................................................................................11
1.3.2.2. Giao thức TCP.................................................................................................12
1.4 Tổng kết.............................................................................................................17
Chương 2
CÔNG NGHỆ MẠNG RIÊNG ẢO TRÊN INTERNET IP-VPN................................18
2.1 Gới thiệu về mạng riêng ảo trên Internet IP-VPN..............................................18
2.1.1 Khái niệm về mạng riêng ảo trên nền tảng Internet............................................18
2.1.2 Khả năng ứng dụng của IP-VPN.........................................................................18
2.2 Các khối cơ bản trong mạng IP-VPN................................................................19
2.2.1 Điều khiển truy nhập............................................................................................19
2.2.2 Nhận thực..............................................................................................................20
2.2.3 An ninh..................................................................................................................21
2.2.4 Truyền Tunnel nền tảng IP-VPN.........................................................................21
2.2.5 Các thỏa thuận mức dịch vụ.................................................................................23
2.3 Phân loại mạng riêng ảo theo kiến trúc..............................................................23
Hình 4.18: Mô hình tin tưởng thứ hai (phân cấp tin tưởng với các CAs).....................94
Hình 4.19: Cấu trúc chung của một chứng thực X.509................................................95
Hình 5.1: Ba mô hình IP-VPN.....................................................................................97
Hình 5.2: Truy nhập IP-VPN từ xa khởi tạo từ phía người sử dụng.............................98
Hình 5.3: Truy nhập IP-VPN khởi tạo từ máy chủ.......................................................99
Hình 5.4: IP-VPN khởi tạo từ routers..........................................................................99
Hình 5.5: Các thành phần của kết nối Client-to-LAN................................................101
Hình 5.6: Đường ngầm IPSec Client-to-LAN............................................................102
Hình 5.7: Phần mềm IPSec Client..............................................................................103
Hình 5.8: Đường ngầm IPSec LAN-to-LAN.............................................................104
Protocol
ECB Electronic Code Book Mode Chế độ sách mã điện tử
ESP Encapsulating Sercurity Payload Giao thức đóng gói an toàn tải tin
FCS Frame Check Sequence Chuỗi kiểm tra khung
FDDI Fiber Distributed Data Interface Giao diện dữ liệu cáp quang phân tán
FPST Fast Packet Switched Kỹ thuật chuyển mạch gói nhanh
Technology
FR Frame Relay Công nghệ chuyển tiếp khung
FTP File Transfer Protocol Giao thức truyền file
GRE Generic Routing Encapsulation Đóng gói định tuyến chung
HMAC Hashed-keyed Message Mã nhận thực bản tin băm
Authenticaiton Code
IBM International Bussiness Machine Công ty IBM
ICMP Internet Control Message Giao thức bản tin điều khiển Internet
Protocol
ICV Intergrity Check Value Giá trị kiểm tra tính toàn vẹn
IETF Internet Engineering Task Force Cơ quan tiêu chuẩn kỹ thuật cho Internet
IKE Internet Key Exchange Giao thức trao đổi khóa
IKMP Internet Key Management Giao thức quản lí khóa qua Internet
Protocol
IN Intelligent Network Công nghệ mạng thông minh
IP Internet Protocol Giao thức lớp Internet
IPSec IP Security Protocol Giao thức an ninh Internet
ISAKMP Internet Security Association Giao thức kết hợp an ninh và quản lí
and Key Management Protocol khóa qua Internet
Cùng với xu thế toàn cầu hóa, sự mở rộng giao lưu hợp tác quốc tế ngày càng
tăng, quan hệ hợp tác kinh doanh không chỉ dừng lại trong phạm vi một huyện, một tỉnh,
một nước mà còn mở rộng ra toàn thế giới. Một công ty có thể có chi nhánh, có các đối
tác kinh doanh ở nhiều quốc gia và giữa họ luôn có nhu cầu trao đổi thông tin với nhau.
Để bảo đảm bí mật các thông tin được trao đổi thì theo cách truyền thống người ta dùng
các kênh thuê riêng, nhưng nhược điểm là nó đắt tiền, gây lãng phí tài nguyên khi dữ
liêu trao đổi không nhiều và không thường xuyên. Vì thế người ta đã nghiên cứu ra
những công nghệ khác vẫn có thể đáp ứng được nhu cầu trao đổi thông tin như thế
nhưng đỡ tốn kém và thuận tiện hơn, đó là giải pháp mạng riêng ảo.
VPN được định nghĩa là mạng kết nối các site khách hàng đảm bảo an ninh trên
cơ sở hạ tầng mạng chung cùng với các chính sách điều khiển truy nhập và đảm bảo an
ninh như một mạng riêng. Đã có rất nhiều phương án triển khai VPN như: X.25, ATM,
Frame Relay, leased line… Tuy nhiên khi thực hiện các giải pháp này thì chi phí rất lớn
để mua sắm các thiết bị, chi phí cho vận hành, duy trì, quản lý rất lớn và do doanh
nghiệp phải gánh chịu trong khi các nhà cung cấp dịch vụ chỉ đảm bảo về một kênh
riêng cho số liệu và không chắc chắn về vấn đề an ninh của kênh riêng này.
Các tổ chức, doanh nghiệp sử dụng dịch vụ IP VPN sẽ tiết kiệm được rất nhiều
chi phí trong việc muốn kết nối các chi nhánh văn phòng với nhau, truy cập từ xa vào
mạng nội bộ, gọi điện thoại VoIP, với độ bảo mật cao. Hiện nay ADSL đã trở nên phổ
biến, chi phí thấp, nên việc thực hiện IP VPN trở nên rất đơn giản, hiệu quả vì tận dụng
được đường truyền Internet tốc độ cao. Tính tương thích của IP VPN cao vì sự phổ biến
của nó, nên bạn có thể kết hợp nhiều thiết bị của những sản phẩm thương hiệu khác
nhau.
Trên cơ sở đó, tôi quyết định chọn hướng nghiên cứu đô án của mình là công
nghệ IP-VPN.
Mục đích của đồ án là tìm hiểu những vấn đề kỹ thuật cơ bản có liên quan đến
việc thực hiện IP-VPN.
Bố cục của đồ án gồm 5 chương:
- Chương 1: Bộ giao thức TCP/IP. Chương này trình bày khái quát về bộ giao
thức của TCP/IP.
- Chương 2: Công nghệ mạng riêng ảo trên Internet IP-VPN. Chương này trình
bày các khái niệm VPN, bắt đầu với việc phân tích khái niệm IP-VPN, ưu điểm của nó
có thể trở thành một giải pháp có khả năng phát triển mạnh trên thị trường. Tiếp theo là
trình bày về các khối chức năng cơ bản của IP-VPN, phân loại mạng riêng ảo theo cấu
trúc của nó. Cuối cùng là trình bày về các giao thức đường ngầm sử dụng cho IP-VPN.
Chương 3: Giao thức IPSec cho IP-VPN. Chương này trình bày các vấn đề về
giao thức IPSec. Bộ giao thức rấ quan trọng IPSec dung cho IP - VPN để đảm bảo tính
toàn vẹn dữ liệu, tính nhất quán, tính bí mật và xác thực của truyền dữ liệu trên một hạ
tầng mạng công cộng.
Chương 4: An toàn dữ liệu trong IP-VPN. Trình bày một số thuật toán được áp
dụng để đảm bảo an toàn dữ liệu cho IP-VPN dựa trên IPSec
Chương 5: Thực hiện IP – VPN. Chương này trình bày các phương pháp thực
hiện IP – VPN hiện đang được sử dụng.
Công nghệ IP - VPN không phải là một vấn đề mới mẻ trên thể giới và cũng đang
được triển khai rộng rãi ở Việt Nam. Tuy nhiên để có thể triển khai được một cách hoàn
chỉnh thì còn có rất nhiều khó khăn phải giải quyết, đồ án chỉ dừng lại ở mức độ nghiên
cứu lý thuyết và có những phân tích cơ bản.
Em xin gửi lời cảm ơn chân thành đến Trường Đại học Vinh, các thầy cô trong
Khoa Công Nghệ đã tạo điều kiện giúp đỡ em trong quá trình học tập và nghiên cứu. Và
đặc biệt em xin bày tỏ lòng kính trọng và biết ơn sâu sắc đến Ts. Phạm Văn Bình,
giảng viên Đại học Bách Khoa Hà Nội, người đã tận tình hướng dẫn và chỉ bảo em
trong quá trình nghiên cứu, xây dựng và hoàn thành đồ án.
Mặc dù nhận được rất nhiều sự giúp đỡ của thầy hướng dẫn, các thầy cô giáo và
sự cố gắng của bản thân nhưng đồ án không tránh khỏi sai sót vì vậy tôi mong nhận
được sự đóng góp nhiều hơn nữa ý kiến từ phía các thầy cô và ban bè cùng những người
quan tâm đến lĩnh vực này.
Chương 1
BỘ GIAO THỨC TCP/IP
1.1 Khái niệm mạng Internet
Tháng 6/1968, một cơ quan của Bộ Quốc phòng Mỹ là Cục các dự án nghiên cứu
tiên tiến (Advanced Research Project Agency - viết tắt là ARPA) đã xây dựng dự án nối
kết các trung tâm nghiên cứu lớn trong toàn liên bang với mục tiêu là chia sẻ, trao đổi tài
nguyên thông tin, đánh dấu sự ra đời của ARPANET - tiền thân của mạng Internet hôm
nay. Ban đầu, giao thức truyền thông được sử dụng trong mạng ARPANET là NCP
(Network Control Protocol), nhưng sau đó được thay thế bởi bộ giao thức TCP/IP
(Transfer Control Protocol/ Internet Protocol). Bộ giao thức TCP/IP gồm một tập hợp các
chuẩn của mạng, đặc tả chi tiết cách thức cho các máy tính thông tin liên lạc với nhau,
cũng như quy ước cho đấu nối liên mạng và định tuyến cho mạng.
Trước đây, người ta định nghĩa “Internet là mạng của tất cả các mạng sử dụng
giao thức IP”. Nhưng hiện nay, điều đó không còn chính xác nữa vì nhiều mạng có kiến
trúc khác nhau nhưng nhờ các cầu nối giao thức nên vẫn có thể kết nối vào Internet và
vẫn có thể sử dụng đầy đủ các dịch vụ Internet. Internet không chỉ là một tập hợp các
mạng được liên kết với nhau, Internetworking còn có nghĩa là các mạng được liên kết
với nhau trên cơ sở cùng đồng ý với nhau về các quy ước mà cho phép các máy tính liên
lạc với nhau, cho dù con đường liên lạc sẽ đi qua những mạng mà chúng không được
đấu nối trực tiếp tới. Như vây, kỹ thuật Internet che dấu chi tiết phần cứng của mạng, và
cho phép các hệ thống máy tính trao đổi thông tin độc lập với những liên kết mạng vật lý
của chúng.
TCP/IP có những đặc điểm sau đây đã làm cho nó trở nên phổ biến:
Độc lập với kến trúc mạng: TCP/IP có thể sử dụng trong các kiến trúc Ethernet, Token
Ring, trong mạng cục bộ LAN cũng như mạng diện rộng WAN.
Chuẩn giao thức mở: vì TCP/IP có thể thực hiện trên bất kỳ phần cứng hay hệ
điều hành nào. Do đó, TCP/IP là tập giao thức lý tưởng để kết hợp phần cứng
cũng như phần mềm khác nhau.
Sơ đồ địa chỉ toàn cầu: mỗi máy tính trên mạng TCP/IP có một địa chỉ xác
định duy nhất. Mỗi gói dữ liệu được gửi trên mạng TCP/IP có một Header gồm
địa chỉ của máy đích cũng như địa chỉ của máy nguồn.
Khung Client - Server: TCP/IP là khung cho những ứng dụng client - server
mạnh hoạt động trên mạng cục bộ và mạng diện rộng.
Chuẩn giao thức ứng dụng: TCP/IP không chỉ cung cấp cho người lập trình
phương thức truyền dữ liệu trên mạng giữa các ứng dụng mà còn cung cấp nhiều
phương thức mức ứng dụng (những giao thức thực hiện các chức năng dùng như
E-mail, truyền nhận file).
1.2 Mô hình phân lớp bộ giao thức TCP/IP
Bộ giao thức TCP/IP là sự kết hợp của các giao thức khác nhau ở các lớp khác
nhau, không chỉ có các giao thức TCP và IP. Mỗi lớp có chức năng riêng. Mô hình
TCP/IP được tổ chức thành 4 lớp (theo cách nhìn từ phía ứng dụng xuống lớp vật lý)
như sau:
Lớp Internet (Internet layer): Cung cấp chức năng đánh địa chỉ, độc lập phần
cứng mà nhờ đó dữ liệu có thể di chuyển giữa các mạng con có kiến trúc vật lý
khác nhau. Lớp này điều khiển việc chuyển gói qua mạng, định tuyến gói. (Hỗ trợ
giao thức liên IP - khái niệm liên mạng là nói tới mạng lớn hơn: mạng liên kết giữa
các mạng LAN). Các giao thức của lớp này là IP, ICMP, ARP, RARP.
Lớp truy cập mạng (Network Access Network): Cung cấp giao tiếp với mạng
vật lý. (Thông thường lớp này bao gồm các driver thiết bị trong hệ thống vận
hành và các card giao diện mạng tương ứng trong máy tính. Lớp này thực hiện
nhiệm vụ điều khiển tất cả các chi tiết phần cứng hoặc thực hiện giao tiếp vật lý
vớ cácp (hoặc với bất kỳ môi trường nào được sử dụng)). Cung cấp kiểm soát lỗi
dữ liệu phân bố trên mạng vật lý. Lớp này không định nghĩa một giao thức riêng
nào cả, nó hỗ trợ tất cả các giao thức chuẩn và độc quyền. Ví dụ: Ethernet,
Tocken Ring, FDDI, X.25, wireless, Async, ATM, SNA…
1.3 Các giao thức trong mô hình TCP/IP
1.3.1 Giao thức Internet
Mục đích của giao thức Internet là chuyển thông tin (dữ liệu) từ nguồn tới đích.
IP sử dụng các gói tin dữ liệu đồ (datagram). Mỗi datagram có chứa địa chỉ đích và IP sử
dụng thông tin này để định tuyến gói tin tới đích của nó theo đường đi thích hợp. Các
gói tin của cùng một cặp người sử dụng dùng những tuyến thông tin khác nhau, việc
định tuyến là riêng biệt đối với từng gói tin. Giao thức IP không lưu giữ trạng thái, sau
khi datagram được chuyển đi thì bên gửi không còn lưu thông tin gì về nó nữa, vì thế mà
không có phương pháp nào để phát hiện các gói bị mất và có thể dẫn tới trình trạng lặp
gói và sai thứ tự gói tin.
1 1
2
1
3 1 2
2
3
3 2
Giao thức Internet là giao thức phi kết nối (connectionless), nghĩa là không cần
thiết lập đường dẫn trước khi truyền dữ liệu và mỗi gói tin được xử lí độc lập. IP không
kiểm tra tổng cho phần dữ liệu của nó, chỉ có Header của gói là được kiểm tra để tránh
gửi nhầm địa chỉ. Các gói tin có thể đi được theo nhiều hướng khác nhau để tới đích. Vì
vậy dữ liệu trong IP datagram không được đảm bảo. Để xử lý nhược điểm mất hoặc lặp
gói IP phải dựa vào giao thức lớp cao hơn để truyền tin cậy (ví dụ TCP).
Data
Sender 1 Data
Data
Receiver
Data
Data
Sender 2
Data
Thông tin nhận từ lớp vận chuyển được gán thêm vào tiêu đề IP. Tiêu đề này có
chiều dài từ 20 đến 60 bytes trên đường đi tùy thuộc vào các chức năng lựa chon được
sử dụng. Cấu trúc gói IPv4 được mô tả như trong hình 1.4.
* Version (phiên bản): chỉ ra phiên bản của giao thức IP dùng để tạo datagram,
được sử dụng để máy gửi, máy nhận, các bộ định tuyến cùng thống nhất về định dạng
lược đồ dữ liệu. Ở đây phiên bản là IPv4.
* IP header length (độ dài tiêu đề IP): cung cấp thông tin về độ dài của tiêu đề
datagram được tính theo các từ 32 bit.
* Type of service (loại dịch vụ): trường loại phục vụ dài 8 bit gồm 2 phần, trường
ưu tiên và kiểu phục vụ. Trường ưu tiên gồm 3 bit dùng để gán mức ưu tiên cho
datagram, cung cấp cơ chế cho phép điều khiển các gói tin qua mạng. Các bit còn lại
dùng để xác định kiểu lưu lượng datagram tin khi nó chuyển qua mạng như đặc tính
thông, độ trễ và độ tin cậy. Tuy nhiên, bản thân mạng Internet không đảm bảo chất
lượng dịch vụ, vì vậy trường này chỉ mạng tính yêu cầu chứ không mang tính đòi hỏi đối
với các bộ định tuyến.
* Total length (tổng độ dài): trường này gồm 16 bit, nó sử dụng để xác định chiều
dài của toàn bộ IP datagram.
* Identification (nhận dạng): trường nhận dạng dài 16 bit. Trường này được máy
chủ dùng để phát hiện và nhóm các đoạn bị chia nhỏ ra của gói tin. Các bộ định tuyến sẽ
chia nhỏ các datagram nếu như dơn vị truyền tin lớn nhất của gói tin (MTU-Maximum
Transmission Unit) lớn hơn MTU của môi trường truyền.
* Flags (cờ): chứa 3 bit được sử dụng cho quá trình điều khiển phân đoạn, bít đầu
tiên chỉ thị tới các bộ định tuyến cho phép hoặc không cho phép phân đoạn gói tin, 2 bit
giá trị thấp được sử dụng điều khiển phân đoạn, kết hợp với trường nhận dạng để xác
định được gói tin nhận sau quá trình phân đoạn.Fragment offset: mạng thông tin về số
lần chỉa một gói tin, kích thước của gói tin phụ thuộc vào mạng cơ sở truyền tin, tức là
đọ dài gói tin không thể vượt quá MTU của môi trường truyền.
* Time - to - live (thời gian sống): được dùng để ngăn việc các gói tin lặp vòng
trên mạng. Nó có vai trò như một bộ đếm ngược, tránh hiện tượng các gói tin đi quá lâu
trong mạng. Bất kì gói tin nào có thời gian sống bằng 0 thì gói tin đó sẽ bị bộ định tuyến
hủy bỏ và thông báo lỗi sẽ được gửi về trạm phát gói tin.
* Protocol (giao thức): trường này được dùng để xác nhận giao thức tầng kế tiếp
mức cao hơn đang sử dụng dịch vụ IP dưới dạng con số.
* Header checksum: trường kiểm tra tổng header có độ dài 16 bit, được tính toán
trong tất cả các trường của tiêu đề IPv4. Một gói tin khi đi qua các bộ định tuyến thì các
trường trong phần tiêu đề có thể bị thay đổi, vì vậy trường này cần phải được tính toán
và cập nhập lại để đảm bảo độ tin cậy của thông tin định tuyến.
* Source Address - Destination Address (địa chỉ nguồn và địa chỉ đích): được các
bộ định tuyến và các gateway sử dụng để định tuyến các đơn vị số liệu, luôn luôn đi
cùng với gói tin từ nguồn tới đích.
* Option and Padding (tùy chọn và đệm): có độ dài thay đổi, dùng để thêm thông
tin chọn và chèn đầy đảm bảo số liệu bắt đầu trong phạm vi 32 bit.
Giao thức IP khi thực hiện phải luôn có các thuật toán phân chia và hợp nhất dữ
liệu. Vì mỗi datagram đều được quy định một kích thước khung cho phép tối đa trên một
kết nối điểm - điểm, được gọi là MTU. Khi đi qua các mạng khác nhau có các MTU
khác nhau, gói sẽ bị phân chia tùy theo giá trị MTU của mạng đó. Việc xác định MTU
của một mạng phụ thuộc vào các đặc điểm của mạng sao cho gói được truyền đi với tốc
độ cao nhất.
Trong quá trình di chuyển từ nguồn tới đích, một datagram có thể đi qua nhiều
mạng khác nhau. Mỗi Router mở gói IP datagram từ khung dữ liệu nó nhận được, xử lý
và sau đó đóng gói nó trong một khung dữ liệu khác. Các datagram hình thành sau khi
phân chia sẻ được đánh số thứ tự để tiện lợi cho qua trình hợp nhất sau này. Định dạng
và kích cỡ của khung dữ liệu nhận được phụ thuộc vào giao thức của mạng vật lý mà
khung dữ liệu đi qua. Nếu IP cần chuyển datagram có kích cỡ lớn hơn MTU thì nó gửi
datagram trong các mảnh (fragment), các mảnh này sẽ được ghép lại ở đầu thu để trở lại
trạng thái ban đầu. Hình 1.5 minh họa hiện tượng phân mảnh.
của nó. Chỉ có host đích là có khả năng ghép các mảnh lại với nhau. Vì mỗi mảnh được
xử lý độc lập nên có thể đi qua nhiều mạng và node khác nhau để tới đích.
1.3.1.4. Địa chỉ và định tuyến IP
Địa chỉ: Mỗi trạm trong mạng đều được đặc trưng bởi một số hiệu nhất định gọi
là địa chỉ IP. Địa chỉ IP được sử dụng trong lớp mạng để định tuyến các gói tin qua
mạng. Do tổ chức và độ lớn của các mạng con trong liên mạng khác nhau, nên người ta
chia địa chỉ IP thành các lớp A, B, C, D, E.
Thế giới đang đối mặt với việc thiếu địa chỉ IP cho các thiết bị mạng, địa chỉ dài
32 bit không đáp ứng được sự bùng nổ của mạng. Thêm nữa, IPv4 là giao thức cũ,
không đáp ứng được các yêu cầu mới về bảo mật, sự linh hoạt trong định tuyến và hỗ trợ
lưu lượng. Diễn đàn IPv6 được bắt đầu vào tháng 7-1999 bởi 50 nhà cung cấp Internet
hàng đầu với mục đích phát triển giao thức IPv6, nó được thiết kế bao gồm các chức
năng và định dạng mở rộng hơn IPv4 để giải quyết vấn đề cải thiện chất lượng và bảo
mật của Internet. IPv6 đặc biệt quan trong khi các thiết bị tính toán di động tiếp tục tham
gia vào Internet trong tương lai.
Do sự thay đổi bản chất của Internet và mạng thương mại mà giao thức liên mạng
IP trở nên lỗi thời. Trước đây, Internet và hầu hết mạng TCP cung cấp sự hỗ trợ các ứng
dụng phân tán khá đơn giản như truyền file, mail, truy nhập từ xa TELNET. Song ngày
nay, Internet ngày càng trở thành phương tiện, môi trường giàu tính ứng dụng, dẫn đầu là
dịch vụ www (World Wide Web). Tất cả sự phát triển này đã bỏ xa khả năng đáp ứng
chức năng và dịch vụ của IP. Một môi trường liên mạng cần phải hỗ trợ lưu lượng thời
gian thực, kế hoạch điều khiển tắc nghẽn linh hoạt và các đặc điểm bảo mật mà IPv4 hiện
không đáp ứng được đầy đủ. Hình 1.7 minh họa cấu trúc gói tin IPv6.
00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Source Address
Destination Address
* Hop Limit (giới hạn bước nhảy): có độ dài 8 bit, được dùng để ngăn việc
datagram liên tục xoay vòng trở lại. Giá trị này giảm mỗi khi datagram đi qua một router
và nếu nó có giá trị bằng 0 trước khi tới được đích chỉ định thì datagram này sẽ bị hủy.
* Source Address và Destination Address (địa chỉ nguồn và địa chỉ đích): trường
địa chỉ nguồn và địa chỉ đích trong IPv6 có độ dài 128 bit, sử dụng hệ 16 (hecxa), ngăn
cách bằng dấu hai chấm.
Những đặc điểm của IPv6
+ Mở rộng không gian địa chỉ cho phép phân cấp và giải quyết được sự thiếu địa
chỉ. Với IPv6 có 2128 địa chỉ (khoảng 3,4x1038 địa chỉ).
+ Hiệu quả hơn trong việc định tuyến: việc đăng ký địa chỉ IPv6 được thiết kế để
kích cỡ của bảng định tuyến đường trục không vượt quá giá trị 10.000 trong khi kích cỡ
bảng định tuyến của IPv4 thường lớn hơn 100.000 bản ghi.
+ Tiêu đề nhỏ hơn so với các mở rộng tùy chọn, vì vậy một số trường bị loại bỏ
hoặc thay bằng tùy chọn nên làm giảm gánh nặng cho các quá trình xử lý và giảm chi
phí cho băng thông.
+ Tăng cường chất lượng dịch vụ.
+ Xây dựng sẵn cơ chế truyền tin an toàn.
+ Hỗ trợ mạng thông tin di động.
1.3.2. Giao thức lớp vận chuyển
1.3.2.1. Giao thức UDP
Giao thức UDP (User Datagram Protocol) cung cấp cơ chế chính yếu mà các
chương trình ứng dụng sử dụng để gửi đi các gói tin tới các chương trình ứng dụng khác.
UDP cung cấp các cổng để phân biệt các chương trình ứng dụng trên một máy tính đơn.
Nghĩa là, cùng với mỗi một bản tin gửi đi, mỗi bản tin UDP còn bao gồm một giá trị
cổng nguồn và cổng đích, giúp cho phần mềm UDP tại đích có thể phát chuyển gói tin
tới đúng nơi nhận và cho phép nơi nhận gửi trả lại xác nhận tin.
UDP cung cấp dịch vụ chuyển phát không định hướng, không đảm bảo độ tin cậy
như IP. UDP không sử dụng cơ chế xác nhận để đảm bảo gói tin đên đích hay không,
không thực hiện sắp xếp các bản tin và không cung cấp thông tin phản hồi để xác định
mức độ truyền thông tin giữa hai máy. Chính vì vậy, một chương trình ứng dụng sử
dụng giao thức UDP chấp nhận hoàn toàn trách nhiệm cho vấn đề xử lý độ tin cậy. Cấu
trúc tiêu đề của UDP được mô tả như trong hình 1.8.
0 15 31
8 octet
Segment length Checksum
Giao thức TCP (Transmission Control Protocol) cung cấp dịch vụ truyền thông
dữ liệu định hướng truyền thống cho các chương trình - dịch vụ chuyển dòng (stream)
tin cậy. TCP cung cấp một mạch ảo, còn được gọi là kết nối. Nó cấp khả năng đứt
quảng, kiểm tra lỗi và điều khiển luồng.
a) Cấu trúc tiêu đề TCP
0 4 10 15 31
Header
length
Unused Flags Window
Checksum Urgent Pointer
Option Padding
Đơn vị truyền giữa hai phần mềm TCP trên hai máy được gọi là segment. Các
segment được trao đổi để thiết lập kết nối, để truyền dữ liệu, để gửi các ACK (thông báo
xác nhận đã nhận dữ liệu), để thông báo kích thước của cửa sổ (nhằm tối ưu hóa quá
trình truyền và nhận dữ liệu) và để ngắt kết nối.
Hình 1.10: Thiết lập kết nối theo giao thức TCP
Gói tin khởi đầu cho kết nối được xác định bởi bit SYN trong trường dữ liệu
CODE, bản tin trả lời lập giá trị cho bit SYN và ACK để chuyển ý nghĩa đồng bộ và tiếp
tục tiến trình bắt tay. Bản tin cuối cùng chỉ có ý nghĩa như một lời đáp và chỉ để đơn
giản dùng để thông báo cho đích rằng cả hai bên cùng đồng ý một kết nối đã được thiết
lập.
Tiến trình bắt tay ba bước là điều kiện cần và đủ để có sự đồng bộ chính xác giữa
hai đầu của kết nối, thông thường các phần mềm TCP thường sử dụng phương pháp đợi
thụ động để chờ kết nối, nhưng điều này không gây khó khăn trong quá trình kết nối vì
các kết nối được thiết lập từ các bên độc lập với nhau. Số thực tự được chọn ngẫu nhiên
và độc lập với nhau cũng có thể được gửi kèm cùng với dữ liệu. Trong những trường
hợp đó, phần mềm TCP giữ lại dữ liệu cho đên khi hoàn tất quá trình bắt tay kết nối.
Một khi kết nối được thiết lập, phần mêm TCP sẽ giải phóng dữ liệu trước đây và nhanh
chóng chuyển chúng tời các chương trình ứng dụng cấp cao hơn.
Thủ tục đóng kết nối TCP được thực hiện theo từng chiều, (giả thiết kết nối TCP
là song công). Một khi kết nối đóng lại theo chiều nào đó, TCP sẽ từ chối nhận thêm dữ
liệu trong kết nối của chiều đó, trong lúc dữ liệu vẫn di chuyển theo chiều ngược lại
cho đến khi nơi gửi thực hiện đóng kết nối. Như vây, lời đáp của kết nối vẫn được
chuyển về nơi gửi ngay cả khi kết nối đã đóng lại, khi cả hai chiều đều đóng, phần mềm
TCP tại mỗi bên xóa bỏ những ghi nhận về kết nối này.
quả hơn và tối thiểu giao thông trên mạng, các cài đặt thường tập hợp cho đủ dữ liệu để
đặt vào datagram có độ lớn thích hợp trước khi truyền nó qua Internet.
Như vậy ngay cả khi chương trình ứng dụng phát sinh dòng dữ liệu có kích thước
là 1 octet mỗi lần thì việc truyền qua Internet vẫn hoàn toàn hiệu quả.
Tương tự, nếu chương trình ứng dụng quyết định phát chuyển những khối dữ liệu
cực lớn, phần mềm giao thức có thể quyết định chia khối này thành những khối nhỏ hơn
khi truyền.
Đối với những chương trình ứng dụng mà dữ liệu phải được phát chuyển ngay cả
khi nó không đầy một vùng đệm, dịch vụ stream cung cấp cơ chế đẩy cho các chương
trình ứng dụng để bắt buộc truyền.
Stream không có cấu trúc: Dịch vụ TCP stream không xác định các dòng dữ liệu
có cấu trúc. Nghĩa là nó không phân biệt được cấu trúc hay nội dung phân chia bên trong
của dòng dữ liệu. Các chương trình ứng dụng sử dụng dịch vụ stream phải hiểu nội dung
stream và thống nhất với nhau về định dạng stream trước khi khởi động việc kết nối.
Kết nối hai chiều: Các kết nối do dịch vụ TCP cấp cho phép truyền đồng thời cả
hai chiều. Cách kết nối này được gọi là song công. Nghĩa là từ quan điểm của một tiến
trình ứng dụng, kết nối 2 chiều bao gồm 2 dòng dữ liệu độc lập chạy ngược nhau, không
có tương tác hay va chạm. Dịch vụ stream cho phép một tiến trình ứng dụng chấm dứt
dòng chảy theo một chiều trong khi dữ liệu vẫn tiếp tục chảy theo chiều kia làm cho kết
nối trở thành một chiều (half duplex). Ưu điểm chính của kết nối hai chiều là phần mềm
giao thức cơ sở có thể gửi thông tin điều khiển cho một tream ngược trở về nguồn trong
những datagram đang chuyển tải dữ liệu theo chiều ngược lại. Điều này làm giảm bớt
giao thông trên mạng.
Để thực hiện cung cấp tính tin cậy khi truyền tin, TCP sử dụng giao thức xác
nhận gói tin (ACK) đã nhận được và truyền lại những gói tin bị mất hoặc bị lỗi. Bộ đếm
thời gian bên gửi sẽ được kích hoạt mỗi khi gửi gói (mỗi gói được gửi sẽ được một bộ
thời gian đếm từ lúc gửi). Khi qúa thời gian của bộ đếm mà chưa nhận được ACK thì
mặc nhiên coi là mất gói hoặc hỏng gói và gói sẽ được gửi lại. Số thứ tự gói trong tiêu
đề dùng cho bên gửi và thu xác định việc mất gói và trùng lặp dữ liệu, từ đó tái truyền
hay loại bỏ gói lặp cho phù hợp.
d) Kỹ thuật cửa sổ trượt
Để thực hiện việc điều khiển luồng, TCP sử dụng kỹ thuật cửa sổ trượt. Cửa sổ
trượt có kích thước cố định hoặc có thể thay đổi được cho phép xác định số gói dữ liệu tối
đa được truyền trước khi nhận được một ACK từ đích xác nhận về. Kỹ thuật này giải
quyết vấn đề quan trọng là tăng hiệu quả truyền dẫn và điều khiển tốc độ dòng dữ liệu.
Gửi gói 1
Gửi gói 1
Gửi gói 1
Vẫn chưa nhận Nhận gói 1, gửi ACK
được ACKnên
1 Không nhận được gói 2
không truyền AC K
đi nữa Nhận gói 3, gửi ACK
2
AC K
Gửi gói 4
3
AC K
Mất gói 2 hoặc
quá thời gian
Gửi lại gói 2
Chương 2
CÔNG NGHỆ MẠNG RIÊNG ẢO TRÊN INTERNET IP-VPN
quá trình truyền thông và khả năng mở rộng hoạt động rộng lớn ngay cả tại những vùng
địa lí phức tạp.
2.2 Các khối cơ bản trong mạng IP-VPN
Các khối cơ bản của VPN bao gồm:
Điều khiển truy nhập
Nhận thực
An ninh
Truyền Tunnel
Các thoả thuận mức dịch vụ
2.2.1 Điều khiển truy nhập
Điều khiển truy nhập (AC: Access Control) trong kết nối mạng số liệu được định
nghĩa là tập các chính sách và các kỹ thuật điều khiển truy nhập đến các tài nguyên nối
mạng riêng cho các phía được trao quyền. Các cơ chế AC hoạt động độc lập với nhận
thực và an ninh và cơ bản định nghĩa các tài nguyên nào khả dụng cho một người sử
dụng cụ thể sau khi người này đã được nhận thực. Trong thế giới IP-VPN, các thực thể
vật lí như các máy trạm ở xa, tường lửa và cổng IP-VPN trong các mạng thuộc hãng
tham dự vào phiên thông tin thường chịu trách nhiệm (hay ít nhất chỉ trách nhiệm) cho
quá trình tham dự đảm bảo trạng thái kết nối IP-VPN.
Thí dụ các quyết định bao gồm:
+ Khởi đầu
+ Cho phép
+ Tiếp tục
+ Từ chối
+ Kết thúc
Mục đích chính của IP-VPN là cho phép truy nhập có đảm bảo an ninh và có
chọn lựa đến các tài nguyên nối mạng từ xa. Nếu chỉ có an ninh và nhận thực mà không
có AC, IP-VPN chỉ bảo vệ tính toàn vẹn, tính bí mật của lưu lượng được truyền và ngăn
cản các người sử dụng vô danh sử dụng mạng, nhưng không quản lí truy nhập các tài
nguyên nối mạng. AC thường phụ thuộc vào thông tin mà thực thể yêu cầu kết nối ở
dạng nhận dạng hay chứng chỉ cũng như các quy tắc định nghĩa AC. Chẳng hạn một số
IP-VPN có thể được điều hành bởi một server tập trung hay thiết bị điều khiển IP-VPN
khác đặt tại trung tâm số liệu của nhà cung cấp dịch vụ, hay có thể cổng IP-VPN quản lí
địa phương trong các mạng liên quan đến thông tin IP-VPN.
Tập các quy tắc và các quy luật quy định các quyền truy nhập đến các tài nguyên
mạng được gọi là chính sách điều khiển truy nhập. Chính sách truy cập đảm bảo mục
đích kinh doanh, chẳng hạn, chính sách “Cho phép truy nhập cho các thuê bao chưa vượt
quá 60 giờ sử dụng” có thể thực hiện bằng cách sử dụng nhận thực dựa trên RADIUS
(Remote Authentication Dial-in User Service: Dịch vụ nhận thực người dùng quay số từ
xa) và sử dụng một bộ đếm thời gian mỗi khi người sử dụng truy nhập. Về mặt lí thuyết
có thể sử dụng bản tin RADIUS DISCONNECT (tháo gỡ kết nối radius) để ngắt phiên
của người sử dụng khi đã vượt quá 60 giờ, tuy nhiên đôi khi chính sách này chỉ được áp
dụng tại thời gian đăng nhập, khi tin tưởng người sử dụng không thường xuyên ở trình
trạng đăng nhập, hay bằng cách đặt ra một giới hạn phiên như bên trên của mức độ sử
dụng khi vượt quá thời gian cho phép cực đại. Có thể thực hiện các chính sách tương tự
bằng cách thay giới hạn thời gian bằng một giới hạn tính chỉ có thể liên quan đến tài
khoản trả trước.
2.2.2 Nhận thực
Một trong các chức năng quan trọng nhất được IP-VPN hỗ trợ là nhận thực.
Trong nối mạng riêng ảo, mọi thực thể liên quan đến thông tin phải có thể tự nhận dạng
mình với các đối tác liên quan khác và ngược lại. Nhận thực là một quá trình cho phép
các thực thể thông tin kiểm tra các nhận dạng như vậy. Một trong các phương pháp nhận
thực phổ biến được sử dụng rộng rãi hiện nay là PKI (Public Key Infrasrtucture: cơ sở
hạn tầng khóa công cộng). Phương pháp này được gọi là nhận thực dựa trên chứng nhận,
và các bên tham dự thông tin nhận thực lẫn nhau bằng cách trao đổi các chứng nhận của
chúng. Các chứng nhận này được đảm bảo bởi quan hệ tin tưởng với một bộ phận thẩm
quyền chứng nhận.
Quá trình nhận thực có thể liên quan đến việc cung cấp thông tin nhận thực dựa
trên bí mật chia sẻ (Shared Secret) như: Mật khẩu hay cặp khẩu lệnh/ trả lời của CHAP
cho người nhận thực, hay như NAS (Network Access Server) để nó tra cứu một file địa
phương hay yêu cầu server RADIUS. Về mặt này, hoạt động của VPN gồm hai kiểu
nhận thực: nhận thực kiểu client - cổng và cổng - cổng. Trong trường hợp nhận thực
kiểu client - cổng, chỉ khi nào người dùng truy nhập thành công với VPN cổng thì mới
được phép vào IPSec Tunnel nối đến IPSec của mạng khách hàng. Trường hợp thứ hai,
nó thường gặp khi kết nối site - site được thiết lập hay khi các mạng quay số ảo được sử
dụng và nhận thực thiết lập Tunnel L2TP được yêu cầu giữa LAC (L2TP Access
Concentrator) và LNS (L2TP Network Server).
2.2.3 An ninh
Theo định nghĩa thì VPN được xây dựng trên các phương tiện công cộng dùng
chung không an toàn, vì thế tính toàn vẹn và mật mã hoá là yều cầu nhất thiết. Có thể
đảm bảo an ninh cho VPN bằng cách triển khai một trong các phương pháp mật mã hoá
đã có hay cơ chế mật mã hoá kết hợp với các hệ thống phân bố khóa an ninh. Tuy nhiên
cần nhắc lại rằng an ninh không chỉ là mật mã hoá lưu lượng VPN. Nó cũng liên quan
đến các thủ tục phức tạp của nhà khai thác và các hạng cung cấp nó. Và khi VPN dựa
trên mạng, cần thiết lập quan hệ tin tưởng giữa nhà cung cấp dịch vụ và khách hành
VPN yêu cầu thỏa thuận và triển khai cơ chế an ninh tương ứng. Chẳng hạn, có thể truy
nhập server AAA trong hãng bằng cách đảm bảo an ninh các bản tin RADIUS thông qua
IPSec khi chúng truyền trên cơ sở hạ tầng mạng chung. Ngoài AAA server có thể trực
thuộc một mạng không ở trong VPN để cách ly lưu lựong AAA với lưu lượng người sử
dụng
2.2.4 Truyền Tunnel nền tảng IP-VPN
Truyền Tunnel là công nghệ quan trọng duy nhất để xây dựng IP-VPN. Truyền
Tunnel bao gồm đóng bao (Encapsulation) một số gói số liệu vào các gói khác theo một
tập quy tắc được áp dụng cho cả hai đầu cuối của Tunnel. Kết quả là nội dung được
đóng bao trong Tunnel không thể nhìn thấy đối với mạng công cộng không an ninh nơi
các gói được truyền. Các vấn đề cụ thể về công nghệ Tunnel được trình bày trong các
phần sau.
Khái niệm truyền Tunnel được áp dụng cho nối mạng riêng ảo được trình bày
trong hình 2.2 sau đây. Trên hình này, các gói được gửi đi từ máy trạm A đến máy trạm
Z phải qua rất nhiều chuyển mạch và router. Nếu router C đóng gói đến từ máy A và
cổng Y mở bao gói, thì các nút khác mà gói này đi qua sẽ không nhận biết được gói
đóng bao “bên ngoài” này và sẽ không thể biết được phần tải tin cũng như địa chỉ điểm
nhận cuối cùng của nó. Bằng cách này, tải tin của gói được gửi giữa C và Y sẽ chỉ được
nhận biết bởi 2 nút mạng này và các máy A, Z là nơi khởi đầu và kết thúc cuối lưu
lượng. Điều này tạo ra một Tunnel một cách hiệu quả để qua đó qua đó các gói được
truyền tải với mức an ninh mong muốn.
Z
Tunnel Y
M ộtchặng
Kếtnốivậtlý Mạngriêng
C
Internet
A
Có thể định nghĩa Tunnel bởi các điểm cuối, các thực thể mạng nơi sử dụng các
giao thức tháo bao và đóng bao. Các kỹ thuật truyền Tunnel hỗ trợ IP-VPN như L2TP
hay PPTP được sử dụng để đóng bao các khung lớp liên kết (PPP). Tương tự các kỹ
thuật truyền Tunnel như IP trong IP và các giao thức IPSec được sử dụng để đóng bao
các gói lớp mạng.
Theo ngữ cảnh nối mạng riêng ảo, truyền Tunnel có thể thực hiện ba nhiệm vụ
chính sau:
+ Đóng bao.
+Tính trong suốt đánh địa chỉ riêng.
+ Bảo vệ tính toàn vẹn và bí mật số liệu đầu cuối đến đầu cuối.
Tính trong suốt đánh địa chỉ riêng cho phép sử dụng các địa chỉ riêng trên hạ tầng
IP nơi cho phép đánh địa chỉ công cộng. Vì các nội dung của gói được truyền Tunnel và
các thông số, như các địa chỉ, chỉ có thể hiểu bên ngoài các điểm cuối Tunnel, đánh địa
chỉ IP riêng hoàn toàn che đậy khỏi mạng IP công cộng bằng cách sử dụng các địa chỉ
hợp lệ.
Hình 2.2: Che đậy địa chỉ IP riêng bằng truyền Tunnel
Các chức năng toàn vẹn và bảo mật đảm bảo rằng một kẻ không được phép không
thể thay đổi các gói truyền Tunnel của người sử dụng và nhờ vậy nội dung của gói được
bảo vệ chống việc truy nhập trái phép. Ngoài ra, tùy chọn truyền Tunnel có thể bảo vệ sự
toàn vẹn của tiêu đề gói IP bên ngoài, vì thế đảm bảo nhận thực nguồn gốc số liệu.
Chẳng hạn, trong IP-VPN có thể sử dụng tiêu đề IPSec AH để bảo vệ các địa chỉ IP của
các đầu cuối Tunnel không bị bắt chước. Tuy nhiên trong công nghệ số liệu, trong nhiều
trường hợp điều này không được coi là quan trọng và thực tế nhiều cổng IP-VPN thậm
chí không áp dụng AH. Lí do vì nều gói truyền Tunnel của người sử dụng được bảo bệ
ESP và gói này được mật mã hóa bằng cách sử dụng phân phối khóa an ninh và các kỹ
thuật quản lý cũng như các giải thuật gần như là không thể bị phá vỡ như 3DES, thì mọi
ý đồ sử dụng sự thay đổi địa chỉ IP để chặn hoặc để gửi lưu lượng đều vô nghĩa. Vì thế
các điểm cuối có ý đồ xấu không có cách nào tham dự vào liên kết an ninh trên IPSec
ESP và vì thế việc tách hú họa an ninh hiện thời sẽ không dễ dàng và mức độ không thể
diễn dải số liệu đánh cắp là rất cao. Đây là điều mà các khách hàng IP-VPN quan tâm và
cũng là lý do sử dụng hạn chế AH. Cần lưu ý rằng AH hữu ích khi cần cung cấp thông
tin điều khiển thiết lập Tunnel.
dụng VPN. Nó cung cấp phương thức truy nhập an toàn tới những ứng dụng của tổ chức
cho những người sử dụng ở xa, những nhân viên luôn di chuyển, văn phòng nhánh và
những đối tác thương mại. Cấu trúc IP-VPN này là phương tiện thông qua một cơ sở hạ
tầng công cộng chung sử dụng đường dây ISDN (mạng số đa dịch vụ), dial (quay số),
tương tự, Mobile IP (di động IP), DSL (đường dây thuê bao số) và điện thoại cácp. Cấu
trúc IP-VPN này được quan tâm đến ở khắp mọi nơi vì nó có thể thiết lập tại bất kì thời
điểm nào và bất kể đâu thông qua Internet.
Thêm vào đó là một số thuận lợi có được do việc chuyển đổi từ những mạng quản
lí riêng sang dạng IP-VPN truy nhập từ xa dưới đây:
+ Loại bỏ chi phí cho kết nối khoảng cách xa từ người sử dụng đến mạng của tổ
chức bởi vì tất cả kết nối xa bây giờ được thay thế bằng kết nối Internet.
+ Khoảng cách kết nối rộng và chi phí giảm xuống do người sử dụng IP-VPN chỉ
cần quay số tới số của nhà cung cấp dịch vụ Internet ISP hoặc trực tiếp kết nối qua mạng
băng rộng luôn hiện hành.
+ Triển khai thêm người sử dụng đơn giản và sự tăng lên nhanh chóng của IP-
VPN cho phép thêm vào người dùng mới mà không tăng chi phí cho cơ sở hạ tầng.
+ Quay lại với vấn đề quản lí và bảo dưỡng mạng quay số đơn giản khi thêm
người sử dụng mới sẽ giúp các tập đoàn có thể chuyển hướng kinh doanh hơn.
Mặc dù là có rất nhiều thuận lợi thì để phát triển một IP-VPN truy nhập từ xa vẫn
gặp phải khó khăn sau:
+ Giao thức đường ngầm có một tiêu đề nhỏ dùng để mật mã dữ liệu khi truyền
và giải mật mã khi nhận được thông tin. Mặc dù tiêu đề nhỏ, nhưng nó cũng ảnh hưởng
đến một số ứng dụng.
+ Với người sử dụng Modem tương tự kết nối tới Internet với tốc độ nhỏ hơn 400
kb/s thì IP-VPN có thể là nguyên nhân làm giảm tốc độ vì tiêu đề của giao thức đường
ngầm cần có thời gian để xử lí dữ liệu.
+ Khi sử dụng giao thức đường ngầm, chúng ta có cảm giác phải chờ đợi. Bởi vì
cơ sở hạ tầng mạng Internet được sử dụng, không có đảm bảo về số lượng phải đợi nên
đụng độ trong mỗi đoạn kết nối như đường hầm dữ liệu qua Internet. Điều này có thể
không phải là vấn đề quá khó khăn, nhưng nó cũng cần sự quan tâm. Người dùng có thể
cần đến chu kì thiết lập kết nối nếu họ cảm thấy lâu.
Cùng với sự phát triển nhanh chóng của mạng truy nhập từ xa, trên toàn bộ quốc
gia và thậm chí là triển khai quốc tế các POP (Point - Of - Presence: điểm hiện diện)
quay số bởi các nhà cung cấp dịch vụ, chi phí cho những cuộc gọi đường dài được giảm
đi, tất cả các lo lắng về thủ tục quay số có thể được nhà cung cấp dịch vụ Internet (ISP)
và nhà cung cấp truy nhập gánh chịu. Các IP-VPN truy nhập từ xa quay số có thể được
xây dựng trên các phương pháp truyền Tunnel bắt buộc hay tự ý. Trong một kịch bản
truy nhập từ xa quay số sử dụng phương tiện của hãng khác, người sử dụng quay số đế
các POP địa phương của các nhà cung cấp dịch vụ Internet bằng cách thiết lập kết nối
PPP (Point to Point Protocol: Giao thức điểm tới điểm). Sau khi người sử dụng đã được
nhận thực và liên kết PPP được thiết lập, nhà cung cấp dịch vụ thiết lập theo cách bắt
buộc (nghĩa là trong suốt đối với người sử dụng) một Tunnel đến một cổng trong mạng
riêng mà người sử dụng ở xa muốn truy nhập đến. Mạng riêng thực hiện nhận thực
người sử dụng lần cuối và thiết lập kết nối. Kiến trúc này được mô tả ở hình 2.4. Công
nghệ truyền Tunnel được lựa chọn cho IP-VPN truy nhập quay số theo phương tiện của
hãng khác là L2TP.
DNS DHCP RADIUS ACCT
Cổng SS 7 RADIUS
IPSec Client
ISP
Chuyển mạch
L2T P
LNS
DSLAM IP S e
ISDN Modem c
RAS
Hãng
Internet
PSTN
Cổng IPSec
LNS: L2TP Network Server - Server mạng L 2TP
DSL L2TP: Layer Two Tunneling Protocol - Giao thức truyền tunnel lớp 2
RAS: Remote Access Server - Server truy nhập xa
DSLAM : DSL Access Multiplex - Ghép kênh truy nhập DSL
Một tổ chức có thể dùng IP-VPN không chỉ để kết nối các site trực thuộc tổ chức
mà còn để kết nối trong miền quản lí của mình như là các văn phòng từ xa hoặc là các
văn phòng nhánh tại các vùng địa lí khác nhau tới mạng đầu não thông qua cơ sở hạ tâng
chia sẻ. Những kết nối này có thể dùng một kênh dành riêng, như là mạng Frame Relay,
ATM, hoặc kênh điểm tới điểm. Tuy nhiên khi sử dụng IP-VPN thì sẽ có những ưu điểm
sau đây: Giảm bớt chi phí cho WAN, đặc biệt là khi sử dụng Internet; dể dàng mở rộng
site mới, và vấn đề an toàn dữ liệu được đảm bảo hơn. Với khả năng này, Intranet IP-
VPN lại được sử dụng để tạo lập môi trường giống như phân chia vật lí các nhóm người
sử dụng vào các mạng con LAN khác nhau được kết nối bởi các cầu hay các Router.
Rem ote
office
POP
H om e
d
evic
e 1
devic e 3 d
evic e 2 1
office
Internet / POP
IP -VPN
Rem ote
office Headquarters
POP
device 3 de
vic e 2 1
d
ev
ice 1
Extranet IP-VPN được sử dụng khi một tập đoàn không chỉ muốn tương tác với
các văn phòng ở xa của mình mà cả với các site trực thuộc khách hàng của họ, các
nguồn cung cấp và các thực thể khác liên quan đến các giao dịch hay trao đổi thông tin.
Các thực thể này thường được gọi là các mạng đối tác. Để hỗ trợ các thông tin này, các
Tunnel IP-VPN có thể được thiết lập giữa các mạng riêng trực thuộc các thực thể riêng
khác nhau. Các chức năng IP-VPN như điều khiển truy nhập, nhận thực và các dịch vụ
an ninh có thể được sử dụng để từ chối hay cho phép truy nhập đến các tài nguyên cần
thiết cho kinh doanh. Các nguy cơ an ninh đối với Extranet lớn hơn trong Intranet, vì thế
IP-VPN và Extranet phải thực hiện được thiết kế cẩn thận với các chính sách điều khiển
truy nhập đa lớp và các sắp xếp an ninh duy nhất giữa các thành viên Extranet.
Remote
office
Business
Partner
POP
Hom e
d
ev
ice 1
de
vice 3 devic
e 2 1
office
Internet / POP
IP -VPN
Remote
office Headquarters
POP
Supplier
d
evice 1
device 3 devic
e 2 1
Customer
trong khi IPSec còn đang hoàn thiện thì PPTP và L2TP vẫn được sử dụng rộng rãi. Cụ
thể PPTP và L2TP thường được sử dụng trong các ứng dụng truy nhập từ xa.
Trong phần này chúng ta sẽ đi tìm hiểu 2 giao thức đường ngầm là PPTP và
L2TP. Với giao thức đường ngầm IPSec sẽ được đề cập trong chương 3.
2.4.1 PPTP (Point - to - Point Tunneling Protocol)
PPTP đóng gói các khung dữ liệu của giao thực PPP vào các IP datagram để
truyền qua mạng IP (Internet hoặc Intranet). PPTP dùng một kết nối TCP (gọi là kết nối
điều khiển PPTP) để khởi tạo, duy trì, kết thúc đường ngầm; và một phiên bản của giao
thức GRE (Generic Routing Encapsulation - đóng gói định tuyến chung) để đóng gói các
khung PPP. Phần tải tin của khung PPP có thể được mật mã hoặc/và giải nén.
PPTP giả định tồn tại một mạng IP giữa PPTP client (VPN client sử dụng giao
thức đường ngầm PPTP) và PPTP server (VPN server sử dụng PPTP). PPTP client có
thể được nối trực tiếp qua việc quay số tới máy chủ truy nhập mạng (Network Access
Server - NAS) để thiết lập kết nối IP.
Việc xác thực trong quá trình thiết lập kết nối IP-VPN trên giao thức PPTP sử
dụng các cơ chế xác thực của kết nối PPP, ví dụ EAP (Extensible Authentication
Protocol: giao thức nhận thực mở rộng), CHAP (Challenge - Handshake Authentication
Protocol: giao thức nhận thực đòi hỏi bắt tay), PAP (Password Authentication Protocol:
giao thức nhận thực khẩu lệnh). PPTP cũng thừa hưởng việc mật mã hoặc/ và nén phần
tải tin của PPP. Mật mã phần tải PPP sử dụng MPPE (Microsoft Point - to - Point
Encryption: mật mã điểm tới điểm của Microsoft) (với điều kiện xác thực sử dụng giao
thức EAP - TLS (EAP - Transport Level Security: EAP - an ninh mức truyền tải) hoặc
MS - CHAP của Microsoft). MPPE chỉ cung cấp mật mã mức truyền dẫn, không cung
cấp mật mã đầu cuối đến đầu cuối. Nếu cần sử dụng mật mã đầu cuối đến đầu cuối thì
có thể sử dụng IPSec để mật mã lưu lượng IP giữa các đầu cuối sau khi đường ngầm
PPTP đã được thiết lập. Máy chủ PPTP là máy chủ IP-VPN sử dụng giao thức PPTP
với một giao diện nối với Internet và một giao diện khác nối với Intranet.
2.4.1.1 Duy trì đường ngầm bằng kết nối điều khiển PPTP
Kết nối điều khiển PPTP là kết nối giữa địa chỉ IP của máy trạm PPTP (có cổng
TCP được cấp phát động) và địa chỉ IP của máy chủ PPTP (sử dụng cổng TCP dành
riêng 1723). Kết nối điều khiển PPTP mang các bản tin điều khiển và quản lí cuộc gọi
PPTP được sử dụng để duy trì đường ngầm PPTP. Các bản tin này bao gồm các bản tin
PPTP Echo - Request và PPTP Encho - Reply định kỳ để phát hiện các lỗi kết nối giữa
PPTP client và PPTP server. Các gói của kết nối điều khiển PPTP bao gồm IP header,
TCP header, các bản tin điều khiển PPTP và các header, trailer của lớp đường truyền dữ
liệu.
Data link PPTP Control Data link
IP TCP
Header Message Trailer
Hình 2.6: Gói dữ liệu của kết nối điều khiển PPTP
2.4.1.2 Đóng gói dữ liệu đường ngầm PPTP
a) Đóng gói khung PPP: Dữ liệu đường ngầm PPTP được đóng gói thông qua
nhiều mức. Hình 2.8 là cấu trúc dữ liệu đã được đóng gói.
Encrypted PPP Payload
Data link IP GRE PPP (IP Datagram , Data link
Header Header Header Header IPX Datagram , Trailer
NetBEUI Frame )
NetBEU
TCP /IP IPX
I
Bắt đầugói ở
đây
NDIS
NDISWAN
text
L2TP PPTP Async X.25 ISDN
PPP EncryptedPPPPayload
Datalink IP GRE (IPDatagram , Datalink
Heade IPXDatagram ,
Header Header Header Trailer
r NetBEUI Frame )
Cấutrúcgói tincuối cùng
* NDISWAN gửi dữ liệu tới giao thức PPTP, nơi đóng gói khung PPP với phần
tiêu đề GRE. Trong GRE Header, trường chỉ số cuộc gọi được đặt giá trị thích hợp để
xác định đường ngầ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 dóng gói dữ liệu đường ngầm PPTP với phần tiêu đề IP, sau đó gửi kết
quả tới giao diện đại diện cho kết nối quay số tới local ISP sử dụng NDIS.
* NDIS gửi gói tin tới NDISWAN, nơi 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ố (ví dụ, cổng không đồng bộ cho kết nối modem).
2.4.2 L2TP (Layer Two Tunneling Protocol)
Để tránh việc hai giao thức đường ngầm không tương thích cùng tồn tại gây khó
khăn cho người sử dụng, IETF đã kết hợp và phát triển hai giao thức L2F và PPTP thành
L2TP, trên cơ sở tận dụng các ưu điểm của cả hai giao thức này, đồng thời có thể sử
dụng được trong tất cả các trường hợp ứng dụng của PPTP và L2F. L2TP được mô tả
trong khuyến nghị RFC 2661.
L2TP đóng gói các khung PPP để truyền qua mạng IP, X.25, Frame Relay, hoặc
ATM. Hiện nay mới chỉ có L2TP trên mạng IP được định nghĩa. Khi truyền qua mạng
IP, các khung L2TP được đóng gói như các bản tin UDP, L2TP có thể được sử dụng như
một giao thức đường ngầm thông qua Internet hoặc các mạng riêng Intranet. L2TP dùng
các bản tin UDP qua mạng IP cho các dữ liệu đường ngầm cũng như các dữ liệu bảo
dưỡng đường ngầm. Phần tải của khung PPP đã đóng gói có thể được mật mã, nén. Tuy
nhiên mật mã trong các kết nối L2TP thường được thực hiện bởi IPSec ESP (chứ không
phải MPPE như đối với PPTP). Cũng có thể tạo kết nối L2TP không mật mã IPSec. Tuy
nhiên, đây không phải là kết nối IP-VPN vì dữ liệu riêng được đóng gói bởi L2TP không
được mật mã. Các kết nối L2TP không mật mã có thể sử dụng tạm thời để sửa lỗi các kết
nối L2TP dùng IPSec.
L2TP giả định tồn tại mạng IP giữa L2TP client (VPN client dùng giao thức
đường ngầm L2TP và IPSec). L2TP client có thể được nối trực tiếp tới mạng IP để truy
nhập tới L2TP server hoặc gián tiếp thông qua việc quay số tới máy chủ truy nhập mạng
(Network Access Server - NAS) để thiết lập kết nối IP. Việc xác thực trong quá trình
hình thành đường ngầm L2TP phải sử dụng các cơ chế xác thực như trong các kết nối
PPP như EAP, MS-CHAP, CHAP, PAP. Máy chủ L2TP là máy chủ IP-VPN sử dụng
giao thức L2TP với một giao diện nối với Internet và một giao diện khác nối với mạng
Intranet. Các dữ liệu đường ngầm và dữ liệu duy trì đường ngầm có cùng cấu trúc gói.
2.4.2.1 Duy trì đường ngầm bằng bản tin điều khiển L2TP
Không giống PPTP, việc duy trì đường ngầm L2TP không được thực hiện thông
qua một kết nối TCP riêng biệt. Các lưu lượng điều khiển và duy trì cuộc gọi được gửi
đi như các bản tin UDP giữa L2TP client và L2TP server (L2TP client và L2TP server
đều sử dụng cổng UDP 1701).
Các bản tin điều khiển L2TP qua mạng IP được gửi như các UDP datagram. UDP
datagram lại được mật mã bởi IPSec ESP như trên hình 2.10.
IPSec
IPSec IPSec Data
Data link IP UDP L2TP ESP
ESP ESP link
Header Header Header Message Auth
Header Trailer Trailer Trailer
Encryption by IPSec
Đường ngầm dữ liệu L2TP được thực hiện thông qua nhiều mức đóng gói. Hình
2.11 chỉ ra cấu trúc cuối cùng của dữ liệu đường ngầm L2TP trên nên IPSec.
PP P P ayloa d IP S e c IP S ec D a ta
IP S ec
Da ta link IP U DP L2TP P PP (IP datagram , ESP
Heade r H eader
ES P
Heade rHeaderHe ader IPX data gram,
ESP lin k
A uth
H eader T ra ile r
N etB EU I Fram ) e T ra iler T ra ile r
Encryption
a) Đóng gói L2TP: phần tải PPP ban đầu được đóng gói với một PPP Header và
một L2TP Trailer.
b) Đóng gói UDP: gói L2TP sau đó được đóng gói với một UDP Header, các địa
chỉ cổng nguồn và đích được đặt bằng 1701.
c)Đóng gói IPSec: tuỳ thuộc vào chính sách IPSec, gói UDP được mật mã và
đóng gói với IPSec ESP Header, IPSec ESP Trailer, IPSec Authentication Trailer.
d) Đóng gói IP: gói IPSec được đóng gói với IP Header chứa địa chỉ IP nguồn và
đích của IP-VPN client và IP-VPN server.
e)Đóng gói lớp đường truyền dữ liệu: để truyền đi được trên đường truyền LAN
hoặc WAN, IP datagram cuối cùng sẽ được đóng gói với phần Header và Trailer tương
ứng với kỹ thuật lớp đường truyển dữ liệu của giao diện vật lý đầu ra. Ví dụ, khi các IP
datagram được gửi vào một giao diện Ethernet, IP datagram sẽ được đóng gói với
Ethernet Header và Trailer. Khi các IP datagram được gửi trên đường truyền WAN điểm
tới điểm (chẳng hạn đường dây điện thoại ISDN), IP datagram được đóng gói với PPP
Header và Trailer.
Khi nhận được dữ liệu đường ngầm L2TP trên nền IPSec, L2TP client hay L2TP
server sẽ thực hiện các bước sau:
* Xử lý và loại bỏ Header va Trailer của lớp đường truyền dữ liệu.
* Xử lý và loại bỏ IP Header.
* Dùng IPSec ESP Auth Trailer để xác thực IP payload và IPSec ESP Header.
* Dùng IPSec ESP Header để giải mã phần gói đã mật mã.
* Xử lý UDP Header và gửi gói L2TP tới L2TP.
* L2TP dùng chỉ số đường ngầm và chỉ số cuộc gọi trong L2TP Header để xác
định đường ngầm L2TP cụ thể.
* Dùng PPP Header để xác định PPP Payload và chuyển tiếp nó tới đúng giao
thức để xử lý.
Hình 2.12 là sơ đồ đóng gói L2TP qua kiến trúc mạng từ một IP-VPN client
thông qua một kết nối IP-VPN truy nhập từ xa sử dụng một modem tương tự.
Bắtđầugói ởđây
NDIS
NDISWAN
text
L2TP PPTP Async X.25 ISDN
PP PP ayload IPSec
IPSec IPS ec
PPP IP UDP L2TP PPP (IPdatagram , E S P P P P
ESP E SP
Header Header Header Header Header IPXdatagram , A uth Trailer
Header Trailer
NetBEUI Fram e ) Trailer
Chương 3
GIAO THỨC IPSEC CHO IP-VPN
Trong chương 2 đã trình bày về các giao thức đường ngầm PPTP và L2TP sử
dụng để xây dựng mạng IP-VPN. Trong chương này sẽ trình bày về giao thức IPSec,
một giao thức được coi là tối ưu nhất cho IP-VPN. Như ta đã biết, mạng Internet nguyên
thủy được phát triển để truyền thông giữa các máy tính tin cây, vì vậy nó không hỗ trợ
các dịch vụ an ninh. Cùng với sự phát triển rộng khắp của Internet trên tòan cầu thì
vấn đề an ninh là một trong những vấn đề quan trọng. Giao thức IPSec được phát
triển để giải quyết vấn đề an ninh này và trong IP-VPN là một trong những ứng dụng
của nó.
3.1.1 Khái niệm về IPSec
IPSec (Internet Protocol Security) là một giao thức được IETF phát triển. IPSec
được định nghĩa là một giao thức trong tầng mạng cung cấp các dịch vụ bảo mật, nhận
thực, toàn vẹn dữ liệu và điều khiển truy cập. Nó là một tập hợp các tiêu chuẩn mở làm
việc cùng nhau giữa các phần thiết bị.
Một cách chung nhất, IPSec cho phép một đường ngầm bảo mật thiết lập giữa 2
mạng riêng và nhận thực hai đầu của đường ngầm này. Các thiết bị giữa hai đầu đường
ngầm có thể là một cặp host, hoặc một cặp cổng bảo mật (có thể là router, firewall, bộ
tập trung VPN) hoặc một cặp thiết bị gồm một host và một cổng bảo mật. Đường ngầm
đóng vai trò là một kênh truyền bảo mật giữa hai đầu và các gói dữ liệu yêu cầu an toàn
được truyền trên đó. IPSec cũng thực hiện đóng gói dữ liệu các thông tin để thiết lập,
duy trì và hủy bỏ kênh truyền khi không dùng đến nữa. Các gói tin truyền trong đường
ngầm có khuôn dạng giống như các gói tin bình thường khác và không làm thay đổi các
thiết bị, kiến trúc cũng như những ứng dụng hiện có trên mạng trung gian, qua đó cho
phép giảm đáng kể chi phí để triển khai và quản lý.
IPSec có hai cơ chế cơ bản để đảm bảo an toàn dữ liệu đó là AH (Authentication
Header) và ESP (Encapsulating Security Payload), trong đó IPSec phải hỗ trợ ESP và có
thể hỗ trợ AH:
+ AH cho phép xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn dữ liệu và dịch
vụ tùy chọn chống phát lại của các gói IP truyền giữa hai hệ thống. AH không cung cấp
tính bảo mật, điều này có nghĩa là nó gửi đi thông tin dưới dạng bản rõ.
+ ESP là một giao thức cung cấp tính an toàn của các gói tin được truyền bao
gồm: Mật mã dữ liệu, xác thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn phi kết nối của
dữ liệu. ESP đảm bảo tính bí mật của thông tin thông qua việc mật mã gói tin IP. Tất cả
lưu lương ESP đều được mật mã giữa hai hệ thống. Với đặc điểm này thì xu hướng sẽ sử
dụng ESP nhiều hơn AH để tăng tính an toàn cho dữ liệu.
+ Cả AH và ESP là các phương tiện cho điều khiển truy nhập, dựa vào sự phân
phối của các khóa mật mã và quản lý các luồng giao thông có liên quan đến những giao
thức an toàn này.
Những giao thức này có thể được áp dụng một mình hay kết hợp với nhau để
cung cấp tập các giao thức an toàn mong muốn trong IPv4 và IPv6, nhưng cách chúng
cung cấp các dịch vụ là khác nhau. Đối với cả hai giao thức AH và ESP này, IPSec
không định các thuật toán an toàn cụ thể được sử dụng, mà thay vào đó là một khung
chuẩn để sử dụng các thuật toán theo tiêu chuẩn công nghiệp. IPSec sử dụng các thuật
toán: Mã nhận thực bản tin trên cơ sở băm (HMAC), thuật toán MD5 (Message Digest 5),
thuật toán SHA-1 để thực hiện chức năng toàn vẹn bản tin; Thuật toán DES, 3DES để
mật mã dữ liệu; Thuật toán khóa chia sẻ trước, RSA chữ ký số và RSA mật mã giá trị
ngẫu nhiên (Nonces) để nhận thực các bên. Ngoài ra các chuẩn còn định nghĩa việc sử
dụng các thuật toán khác như IDEA, Blowfish và RC4.
IPSec có thể sử dụng giao thức IKE (Internet Key Exchange) để xác thực hai phía
và làm giao thức thương lượng các chính sách bảo mật và nhận thực thông qua việc xác
định thuật toán được dùng để thiết lập kênh truyền, trao đổi khóa cho mỗi phiên kết nối,
dùng trong mỗi phiên truy cập. Mạng dùng IPSec để bảo mật các dòng dữ liệu có thể tự
động kiểm tra tính xác thực của thiết bị bằng giấy chứng nhận số của hai người dùng
trao đổi thông tin qua lại. Việc thương lượng này cuối cùng dẫn đến thiết lập kết hợp an
ninh (SAs) giữa các cặp bảo mật, kết hợp an ninh này có tính chất hai chiều trực tiếp.
Thông tin kết hợp an ninh được lưu trong cơ sử dữ liệu liên kế an ninh, và mỗi SA được
ấn định một số tham số an ninh trong bảng mục lục sao cho khi kết hợp một địa chỉ đích
với giao thức an ninh (ESP hoặc AH) thì có duy nhất một SA.
IETF đưa ra một loạt các RFC (Request for Comment) có liên quan đến IPSec:
IPSec có hai kiểu cung cấp nhận thực và mã hóa mức cao để thực hiện đóng gói
thông tin, đó là kiểu Transport (truyền tải) và kiểu Tunnel (đường ngầm). Sau đây chúng
ta sẽ xét đến hai kiểu này trước khi tìm hiểu về các giao thức AH và ESP:
3.2.1.1 Kiểu Transport
Trong kiểu này, vấn đề an ninh được cung cấp bởi các giao thức lớp cao hơn (từ
lớp 4 trở lên). Kiểu này bảo vệ phần tải tin của gói nhưng vẫn để phần IP header ban đầu
ở dạng bản rõ. Địa chỉ IP ban đầu được sử dụng để định tuyến gói qua Internet.
Kiểu này bảo vệ toàn bộ gói IP. Gói IP ban đầu (bao gồm cả IP header) được xác
thực hoặc mật mã. Sau đó, gói IP đã mã hóa được đóng gói vào một IP header mới. Địa
chỉ IP bên ngoài được sử dụng cho định tuyến gói IP truyền qua Internet.
New AH Original
AH- kiểu Tunnel Payload
Header Header Header
Authenticated
thay cho các trạm cuối (host). Hình 3.3 là ví dụ: Router A xử lý các gói từ host A, gửi
chúng vào đường ngầm. Router B xử lý các gói nhận được trong đường ngầm, đưa về
dạng ban đầu và chuyển hóa chúng tới host B. Như vậy, các trạm cuối không cần thay
đổi nhưng vẫn có được tính an toàn dữ liệu của IPSec. Ngoài ra, nếu sử dụng kiểu
Tunnel, các thiết bị trung gian trong mạng sẽ chỉ có thể nhìn thấy được các địa chỉ hai
điểm cuối của đường hầm (ở đây là các router A và B). Khi sử dụng kiểu Tunnel, các
đầu cuối của IP-VPN không cần phải thay đổi ứng dụng hay hệ điều hành.
Host A Host B
Router A Router B
Computer Computer
IPSec Tunnel
Giao thức AH (Authentication Header) được định nghĩa trong RFC 1826 và sau
đó là phát triển lại trong RFC 2402. AH cung cấp xác thực nguồn gốc dữ liệu (data
origin authentication), kiểm tra tính toàn vẹn dữ liệu (data integrity), và dịch vụ chống
phát lại (anti-replay service). Đến đây, cần phải phân biệt được hai khái niệm toàn vẹn
dữ liệu và chống phát lại: toàn vẹn dữ liệu là kiểm tra những thay đổi của từng gói tin IP,
không quan tâm đến vị trí các gói trong luồng lưu lượng; còn dịch vụ chống phát lại là
kiểm tra sự phát lặp lại một gói tin tới địa chỉ đích nhiều hơn một lần. AH cho phép xác
thực các trường của IP header cũng như dữ liệu của các giao thức lớp trên, tuy nhiên do
một số trường của IP header thay đổi trong khi truyền và phía phát có thể không dự đoán
trước được giá trị của chúng khi tới phía thu, do đó giá trị của các trường này không bảo
vệ được bằng AH. Có thể nói AH chỉ bảo vệ một phần của IP header mà thôi. AH không
cung cấp bất cứ xử lý nào về bảo mật dữ liệu của các lớp trên, tất cả đều được truyền
dưới dạng văn bản rõ. AH nhanh hơn ESP, nên có thể chọn AH trong trường hợp chắc
chắn về nguồn gốc và tính toàn vẹn của dữ liệu nhưng tính bảo mật dữ liệu không cần
được chắc chắn.
Giao thức AH cung cấp chức năng xác thực bằng cách thực hiện một hàm băm
một chiều (one-way hash function) đối với dữ liệu của gói để tạo ra một đoạn mã xác
thực (hash hay message digest). Đoạn mã đó được chèn vào thông tin của gói truyền đi.
Khi đó, bất cứ thay đổi nào đối với nội dung của gói trong quá trình truyền đi đều được
phía thu phát hiện khi nó thực hiện cùng với một hàm băm một chiều đối với gói dữ liệu
thu được và đối chiếu nó với giá trị hash đã truyền đi. Hàm băm được thực hiện trên toàn
bộ gói dữ liệu, trừ một số trường trong IP header có giá trị bị thay đổi trong quá trình
truyền mà phía thu không thể dự đoán trước được (ví dụ trường thời gian sống của gói
tin bị các router thay đổi trên đường truyền dẫn).
3.2.2.2 Cấu trúc gói tin AH
Các thiết bị sử dụng AH sẽ chèn một tiêu đề vào giữa lưu lượng cần quan tâm của
IP datagram, ở giữa phần IP header và header lớp 4. Bởi vì AH được liên kết với IPSec,
IP-VPN có thể định dạng để chọn lưu lượng nào cần được an toàn và lưu lượng nào
không cần phải sử dụng giải pháp an toàn giữa các bên. Ví dụ như bạn có thể chọn để xử
lý lưu lượng email nhưng không đối với các dịch vụ web. Quá trình xử lý chèn AH
header được diễn tả như trong hình 3.4.
Original IP Original Layer 4
Data
Header Header
SequenceNumber
32 bits
* Security Parameters Index (SPI: chỉ dẫn thông số an ninh): Trường này có độ
dài 32 bit, mang tính chất bắt buộc.
* Sequence Number (số thứ tự): Đây là trường 32 bit không đánh dấu chứa một
giá trị mà khi mỗi gói được gửi đi thì tăng một lần. Trường này có tính bắt buộc. Bên
gửi luôn luôn bao gồm trường này ngay cả khi bên nhận không sử dụng dịch vụ chống
phát lại. Bộ đếm bên gửi và nhận được khởi tạo ban đầu là 0, gói đầu tiên có số thứ tự là
1. Nếu dịch vụ chống phát lại được sử dụng, chỉ số này không thể lặp lại, sẽ có một yêu
cầu kết thúc phiên truyền thông và SA sẽ được thiết lập mới trở lại trước khi truyền 2 32
gói mới.
* Authentication Data (dữ liệu nhận thực): Còn được gọi là ICV (Integrity Check
Value: giá trị kiểm tra tính toàn vẹn) có độ dài thay đổi, bằng số nguyên lần của 32 bit
đối với IPv4 và 64 bit đối với IPv6, và có thể chứa đệm để lấp đầy cho đủ là bội số các
bit như trên. ICV được tính toán sử dụng thuật toán nhận thực, bao gồm mã nhận thực
bản tin (Message Authentication Code MACs). MACs đơn giản có thể là thuật toán mã
hóa MD5 hoặc SHA-1. Các khóa dùng cho mã hóa AH là các khóa xác thực bí mật được
chia sẻ giữa các phần truyền thông có thể là một số ngẫu nhiên, không phải là một chuỗi
có thể đoán trước của bất cứ loại nào. Tính toán ICV được thực hiện sử dụng gói tin mới
đưa vào. Bất kì trường có thể biến đổi của IP header nào đều được cài đặt bằng 0, dữ
liệu lớp trên được giả sử là không thể biến đổi. Mỗi bên tại đầu cuối IP-VPN tính toán
ICV này độc lập. Nếu ICV tính toán được ở phía thu và ICV được phía phát truyền đến
khi so sánh với nhau mà không phù hợp thì gói tin bị loại bỏ, bằng cách như vậy sẽ đảm
bảo rằng gói tin không bị giả mão.
3.2.2.3 Quá trình xử lý AH
Hoạt động của AH được thực hiện qua các bước như sau:
Bước 1: Toàn bộ gói IP (bao gồm IP header và tải tin) được thực hiện qua một
hàm băm một chiều.
Bước 2: Mã hash thu được dùng để xây dựng một AH header, đưa header này vào
gói dữ liệu ban đầu.
Bước 3: Gói dữ liệu sau khi thêm AH header được truyền tới đối tác IPSec.
Bước 4: Bên thu thực hiện hàm băm với IP header và tải tin, kết quả thu được
một mã hash.
Bước 5: Bên thu tách mã hash trong AH header.
Bước 6: Bên thu so sánh mã hash mà nó tính được mà mã hash tách ra từ AH
header. Hai mã hash này phải hoàn toàn giống nhau. Nếu khác nhau chỉ một bit trong
quá trình truyền thì 2 mã hash sẽ không giống nhau, bên thu lập tức phát hiện tính không
toàn vẹn của dữ liệu.
a) Vị trí của AH
AH có hai kiểu hoạt động, đó là kiểu Transport và kiểu Tunnel. Kiểu Transport là
kiểu đầu tiên được sử dụng cho kết nối đầu cuối giữa các host hoặc các thiết bị hoạt
động như host và kiểu Tunnel được sử dụng cho các ứng dụng còn lại.
Ở kiểu Transport cho phép bảo vệ các giao thức lớp trên, cùng với một số trường
trong IP header. Trong kiểu này, AH được chèn vào sau IP header và trước một giao
thức lớp trên (chẳng hạn như TCP, UDP, ICMP…) và trước các IPSec header đã được
chen vào. Đối với IPv4, AH đặt sau IP header và trước giao thức lớp trên (ví dụ ở đây là
TCP). Đối với IPv6, AH được xem như phần tải đầu cuối-tới - đầu cuối, nên sẽ xuất hiện
sau các phần header mở rộng hop-to-hop, routing và fragmentation. Các lựa chọn đích
(dest options extension headers) có thể trước hoặc sau AH.
Orig IP hdr
IPv4 AH TCP Data
(any options)
Sau khi thêm AH
Hình 3.5: Khuôn dạng IPv4 trước và sau khi xử lý AH ở kiểu Transport
Hình 3.6: Khuôn dạng IPv6 trước và sau khi xử lý AH ở kiểu Traport
Trong kiểu Tunnel, inner IP header mang địa chỉ nguồn và đích cuối cùng, còn
outer IP header mang địa chỉ để định tuyến qua Internet. Trong kiểu này, AH bảo vệ
toàn bộ gói tin IP bên trong, bao gồm cả inner IP header (trong khi AH Transport chỉ
bảo vệ một số trường của IP header). So với outer IP header thì vị trí của AH giống như
trong kiểu Trasport.
+ Tính toán ICV: bằng cách sử dụng các thuật toán, phía thu sẽ tính toán lại ICV
ở phía thu và so sánh nó với giá trị có trong AH để quyết định tới khả năng tồn tại của
gói tin đó.
+ Chèn dữ liệu: có hai dạng chèn dữ liệu trong AH, đó là chèn dữ liệu xác thực
(Authentication Data Padding) và chèn gói ngầm định (Implicit Packet Padding). Đối
với chèn dữ liệu xác thực, nếu đầu ra của thuật toán xác thực là bội số của 96 bit thì
không được chèn. Tuy nhiên nếu ICV có kích thước khác thì việc chèn thêm dữ liệu là
cần thiết. Nội dung của phần dữ liệu chèn là tùy ý, cũng có mặt trong phép tính ICV và
được truyền đi. Chèn gói ngầm định được sử dụng khi thuật toán xác thực yêu cầu tính
ICV là số nguyên của một khối b byte nào đó và nếu độ dài gói IP không thỏa mãn điều
kiện đó thì chèn gói ngầm định được thực hiện ở phía cuối của gói trước khi tính ICV.
Các byte chèn này có giá trị là 0 và không được truyền đi cùng với gói.
+ Phân mảnh: khi cần thiết, phân mảnh sẽ được thực hiện sau khi đã xử lý AH. Vì
vậy AH trong kiểu transport chỉ được thực hiện trên toàn bộ gói IP, không thực hiện trên
từng mảnh. Nếu bản thân gói IP đã qua xử lý AH bị phân mảnh trên đường truyền thì ở
phía thu phải được ghép lại trước khi xử lý AH. Ở kiểu Tunnel, AH có thể thực hiện trên
gói IP mà phần tải tin là một gói IP phân mảnh.
d) Xử lý gói đầu vào
Quá trình xử lý gói tin đầu vào ngược với quá trình xử lý gói tin đầu ra:
+ Ghép mảnh: được thực hiện trước khi xử lý AH (nếu cần).
+ Tìm kiếm SA: khi nhận được gói chứa AH header, phía thu sẽ xác định một SA
phù hợp dựa trên địa chỉ IP đích, giao thức an ninh (AH) và SPI. Quá trình tìm kiếm có
thể xem chi tiết trong RFC 2401. Nếu không có SA nào thích hợp được tìm thấy cho
phiên truyền dẫn, phía thu sẽ loại bỏ gói.
+ Kiểm tra SN: AH luôn hỗ trợ dịch vụ chống phát lại, mặc dù dịch vụ này được
sử dụng hay không là hoàn toàn dựa vào tùy chọn phía thu. Vì vậy quá trình kiểm tra
này có thể được thực hiện hoặc không.
3.2.3 Giao thức đóng gói an toàn tải tin ESP
ESP được định nghĩa trong RFC 1827 và sau đó được phát triển thành RFC 2408.
Cũng như AH, giao thức này được phát triển hoàn toàn cho IPSec. Giao thức này cung
cấp tính bí mật dữ liệu bằng việc mật mã hóa các gói tin. Thêm vào đó, ESP cũng cung
cấp nhận thực nguồn gốc dữ liệu, kiểm tra tính toàn vẹn dữ liệu, dịch vụ chống phát lại
và một số giới hạn về luồng lưu lượng cần bảo mật. Tập các dịch vụ cung cấp bởi ESP
phụ thuộc vào các lựa chọn tại thời điểm thiết lập SA, dịch vụ bảo mật được cung cấp
độc lập với các dịch vụ khác. Tuy nhiên nếu không kết hợp sử dụng với các dịch vụ
nhận thực vào toàn vẹn dữ liệu thì hiệu quả bí mật sẽ không được đảm bảo. Hai dịch vụ
nhận thực và toàn vẹn dữ liệu luôn đi kèm nhau. Dịch vụ chống phát lại chỉ có thể có
nếu nhận thực được lựa chọn. Giao thức này được sử dụng khi yêu cầu về bí mật của lưu
lượng IPSec cần truyền.
3.2.3.2 Cấu trúc gói tin ESP
Hoạt động của ESP khác hơn so với AH. Như ngụ ý trong tên gọi, ESP đóng gói
tất cả hoặc một phần dữ liệu gốc. Do khả năng bảo mật dữ liệu nên xu hướng ESP được
sử dụng rộng rãi hơn AH. Phần header của giao thức nằm ngay trước ESP header có giá
trị 51 trong trường protocol của nó. Hình 3.8 diễn tả quá trình xử lý đóng gói:
Encryption
Coverage
32 bits
Sau đây sẽ định nghĩa các trường trong ESP. Lưu ý các trường này có thể là tùy
chọn hay bắt buộc. Việc lựa chọn một trường tùy chọn được định nghĩa trong quá trình
thiết lập kết hợp an ninh. Như vây, khuôn dạng ESP đối với SA nào đó là cố định trong
khoảng thời gian tồn tại của SA đó. Còn các trường bắt buộc luôn có mặt trong tất cả các
ESP.
* SPI (chỉ dẫn thông số an ninh): Là một số bất kỳ 32 bit, cùng với địa chỉ IP đích
và giao thức an ninh ESP cho phép nhận dạng duy nhất SA cho gói dữ liệu này. Các giá
trị SPI từ 0÷ 255 được dành riêng để sử dụng trong tương lai. SPI thường được chọn lửa
bởi phía thu khi thiết lập SA. SPI là trường bắt buộc.
* Sequence Number (số thứ tự): Tương tự như trường số thứ tự của AH
* Payload Data (trường dữ liệu tải tin): Đây là trường bắt buộc. Nó bao gồm một
số lượng biến đổi các byte dữ liệu gốc hoặc một phần dữ liệu yêu cầu bảo mật đã được
mô tả trong trường Next Header. Trường này được mã hóa cùng với thuật toán mã hóa
đã chọn lựa trong suốt quá trình thiết lập SA. Nếu thuật toán yêu cầu các vectơ khởi tạo
thì nó cũng được bao gồm ở đây. Thuật toán được dùng để mã hóa ESP thường là thuật
toán DES-CBC. Đôi khi các thuật toán khác cũng được hỗ trợ như 3DES hay CDMF
trong trường hợp nhà cung cấp dịch vụ IBM.
* Padding (0÷ 255 bytes): Có nhiều nguyên nhân dẫn đến sự có mặt của trường
này:
- Nếu thuật toán mật mã được sử dụng yêu cầu bản rõ (plaintext) phải là số
nguyên lần khối các byte (ví dụ trường hợp mã khối) thì Padding được sử dụng để điền
đầy vào plaintext (bao gồm Payload Data, Pad Length, Next Header và Padding) có kích
thước theo yêu cầu.
- Padding cũng cần thiết để đảm bảo phần dữ liệu mật mã (ciphertext) sẽ kết thúc
ở biên giới 4 byte để phân biết rõ ràng với trường Authentication Data.
Ngoài ra, Padding còn có thể sử dụng để che dấu độ dài thực của Payload, tuy
nhiên mục đích này cần phải được cân nhắc vì nó ảnh hưởng tới băng tần truyền dẫn.
* Pad length (độ dài trường đệm): Trường này xác định số byte Padding được
thêm vào. Các giá trị phù hợp là 0÷ 255 bytes, Pad length là trường bắt buộc.
* Next Header (tiêu đề tiếp theo): Trường này dài 8 bit, xác định kiểu dữ liệu
chứa trong Payload Data, ví dụ một extension header trong IPv6, hoặc nhận dạng của
một giao thức lớp trên khác. Giá trị của trường này được lựa chọn từ tập các giá trị IP
Protocol Number định nghĩa bởi IANA. Next Header là trường bắt buộc.
* Authentication Data (dữ liệu nhận thực): Trường có độ dài biến đổi chứa một
giá trị kiểm tra tính toàn vẹn ICV tính trên dữ liệu của toàn bộ gói ESP trừ trường
Authentication Data. Độ dài của trường này phụ thuộc vào thuật toán xác thực được sử
dụng. Trường này là tùy chọn, và chỉ được thêm vào nếu dịch vụ xác thực được lựa chọn
cho SA đang xét. Thuật toán xác thực phải chỉ ra độ dài ICV và các bước xử lý cũng như
các luật so sánh cần thực hiện để kiểm tra tính toàn vẹn của gói tin.
Hình 3.10: Khuôn dạng IPv4 trước và sau khi xử lý ESP ở kiểu Transport
Hình 3.11: Khuôn dạng IPv6 trước và sau khi xử lý ESP ở kiểu Transport
Trong kiểu Tunnel, inner IP header mang địa chỉ nguồn và đích cuối cùng, còn
outer IP header mạng địa chỉ để định tuyến qua Internet. Trong kiểu này, ESP sẽ bảo vệ
toàn bộ gói tin IP bên trong, bao gồm cả inner IP header. So với outer IP header thì vị trí
của ESP giống như kiểu Trasport
Authenticated
Các thuật toán khác có thể được hỗ trợ. Lưu ý là ít nhất một trong hai dịch vụ bảo
mật hoặc nhận thực phải được thực hiện, nên hai thuật toán xác thực và mật mã không
đồng thời bằng NULL.
- Các thuật toán mật mã: Thuật toán mật mã được xác định bởi SA. ESP làm việc
với các thuật toán mật mã đối xứng. Vì các gói IP có thể đến không đúng thứ tự, nên mỗi
gói phải mang thông tin cần thiết để phía thu có thể thiết lập đồng bộ mật mã
(cryptographic synchronization) để giải mã. Dữ liệu này có thể được chỉ định trong
trường Payload (chẳng hạn dưới dạng các vectơ khởi tạo IV- Initialization Vector), hoặc
thu được từ header của gói. Với sự có mặt của trường Padding, các thuật toán mật mã sử
dụng với ESP có thể có các đặc tính khối (block) hoặc luồng (stream). Vì dịch vụ bảo
mật là tùy chọn nên thuật toán mật mã có thể là NULL.
- Các thuật toãn xác thực: Thuật toán xác thực sử dụng để tính ICV được xác định
bởi SA. Đối với truyền thông điểm-tới-điểm, các thuật toán xác thực thích hợp bao gồm
các hàm băm một chiều (MD5, SHA-1). Vì dịch vụ xác thực là tùy chọn nên thuật toán
xác thực có thể là NULL.
c) Xử lý gói đầu ra
Trong kiểu Transport, phía phát đóng gói thông tin giao thức lớp trên vào ESP
header/ trailer và giữ nguyên IP header (và tất cả IP extension headers đối với IPv6).
Trong kiểu Tunnel, có thêm sự xuất hiện của outer IP header. Quá trình xử lý gói tin đầu
ra như sau:
- Tìm kiếm SA: ESP được thực hiện trên một gói tin đầu ra chỉ khi quá trình
IPSec đã xác định được gói tin đó được liên kết với một SA, SA đó sẽ yêu cầu ESP xử lý
gói tin. Việc xác định quá trình xử lý IPSec nào cần thực hiện trên lưu lượng đầu ra có
thể xen trong RFC 2401.
- Mật mã gói tin: Đối với kiểu Transport chỉ đóng gói thông tin giao thức lớp cao.
Đối với kiểu Tunnel, đóng gói toàn bộ gói IP ban đầu: Thêm trường Padding nếu cần
thiết, mật mã các trường sử dụng khóa, thuật toán và kiểu thuật toán được chỉ ra bởi SA
và dữ liệu đồng bộ mật mã nếu có.
Các bước cụ thể để xây dựng outer IP header phụ thuộc vào kiểu sử dụng
(Transport hay Tunnel). Nếu dịch vụ xác thực được lựa chọn thì mật mã được thực hiện
trước, và quá trình mật mã không bao gồm trường Authentication Data. Thứ tự xử lý này
cho phép nhanh chóng xác định và loại bỏ các gói lỗi hoặc lặp lại mà không cần phải
thực hiện giải mã, qua đó làm ảnh hưởng của các tấn công kiểu từ chối dịch vụ (denial of
service attacks), đồng thời cho phép phía thu xử lý song song: giải mã và xác thực tiến
hành song song.
phép kiểm tra này là cần được thực hiện đầu tiên để có thể nhanh chóng quyết định khả
năng tồn tại của gói đó.
Các gói bị loại bỏ thông qua sử dụng một cửa sổ thu trượt. Giá trị cửa sổ tối thiểu
là 32 và mặc định là 64, phía thu cũng có thể sử dụng các cửa sổ có kích thước lớn hơn.
Bên phải của cửa sổ đại diện cho SN hợp lệ lớn nhất đã thu được trong SA này. Các gói
có SN nhỏ hơn bên trái của cửa sổ sẽ bị loại bỏ. Các gói có SN nằm trong khoảng giữa
hai bên của cửa sổ sẽ được kiểm tra với một danh sách các gói đã thu được trong cửa sổ.
Nếu gói thu được nằm trong vùng cửa sổ và là mới, hoặc gói đã tới bên phải của cửa sổ
thì phía thu sẽ tiến hành xử lý tiếp ICV. Nếu việc kiểm tra ICV sai thì phía thu phải loại
bỏ gói IP vì không hợp lệ. Cửa sổ thu chỉ được cập nhật sau khi việc kiểm tra ICV thành
công.
- Kiểm tra ICV: nếu dịch vụ xác thực được lựa chọn, phía thu sẽ tính ICV dựa
trên dữ liệu của gói ESP ngoại trừ trường Authentication Data, sử dụng thuật toán xác
thực xác định trong SA và so sánh với giá trị ICV trong trường Authentication của gói.
Nếu hai giá trị ICV hoàn toàn trùng khớp thì gói tin là hợp lệ và được chấp nhận. Ngược
lại, phía thu sẽ loại bỏ gói tin.
Việc kiểm tra tiến hành như sau: trước hết giá trị ICV nằm trong trường
Authentication Data được tách ra khỏi gói ESP và được lưu trữ. Tiếp theo kiểm tra độ
dìa của gói ESP (ngoại trừ trườn Authentication Data). Nếu Padding ngầm định được
yêu cầu bởi thuật toán xác thực thì các byte 0 được thêm vào cuối gói ESP, ngay sau
trường Next Header. Tiếp theo thực hiện tính toán ICV và so sánh với giá trị đã lưu sử
dụng các luật so sánh được định nghĩa bởi thuật toán.
e) Giải mã gói
Nếu ESP sử dụng mật mã thì sẽ phải thực hiện quá trình giải mã gói. Nếu dịch vụ
bảo mật không được sử dụng, tại phía thu không có quá trình giải mã gói này. Quá trình
giải mã gói diễn ra như sau:
- Giải mã ESP (bao gồm trường Payload Data, Padding, Pad Length, Next
Header) sử dụng khóa. Thuật toán mật mã và kiểu thuật toán được xác định bởi SA.
- Xử lý phần Padding theo đặc tả của thuật toán. Phía thu cần tìm và loại bỏ phần
Padding trước khi chuyển dữ liệu đã giải mã lên lớp trên.
- Xây dựng lại cấu trúc gói IP ban đầu từ IP header ban đầu và thông tin giao thức
lớp cao trong tải tin của ESP (ở kiểu Transport), hoặc outer IP header và toàn bộ gói IP
ban đầu trong tải tin của ESP (ở kiểu Tunnel).
Nếu dịch vụ xác thực cũng được lựa chọn thì quá trình kiểm tra ICV và mật mã
có thể tiến hành nối tiếp hoặc song song. Nếu tiến hành nối tiếp thì kiểm tra ICV phải
được thực hiện trước. Nếu tiến hành song song thì kiểm tra ICV phải hoàn thành trước
khi gói đã giải mã được chuyển tới bước xử lý tiếp theo. Trình tự này giúp loại bỏ nhanh
chóng các gói không hợp lệ.
Có một số lý do như sau dẫn đến quá trình giải mã không thành công:
- SA được lựa chọn không đúng: SA có thể sai do các thông số SPI, địa chỉ đích,
trương Protocol type sai.
- Độ dài phần Padding hoặc giá trị của nó bị sai.
- Gói ESP mật mã bị lỗi (có thể được lựa chọn nếu dịch vụ xác thực được lựa
chọn cho SA).
3.3 Kết hợp an ninh SA và giao thức trao đổi khóa IKE
3.3.1 Kết hợp an ninh SA
IPSec cung cấp nhiều lựa chọn để thực hiện các giải pháp mật mã và xác thực ở
lớp mạng. Phần này sẽ định nghĩa các thủ tục quản lý SA cho cả IPv4 và IPv6 để thực
thi AH hoặc ESP hoặc cả hai, phụ thuộc vào lựa chọn của người sử dụng. Khi thiết lập
kết nối IPSec, hai phía phải xác định chính xác các thuật toán nào sẽ được sử dụng, loại
dịch vụ nào cần đảm bảo an toàn. Sau đó bắt đầu xử lý thương lượng để chọn một tập
các tham số và các giải thuật toán học áp dụng cho mã hóa bảo mật hay nhận thực. Theo
IETF thì dịch vụ bảo mật quan hệ giữa hai hoặc nhiều thực thể để thỏa thuận truyền
thông an toàn được gọi là SA (Security Association).
Một SA là một kết nối đơn công, nghĩa là với mỗi cặp truyền thông với nhau, có
ít nhất 2 SA (một từ A tới B và một từ B tới A). Khi lưu lượng cần truyền trực tiếp 2
chiều qua VPN, giao thức trao đổi khóa IKE (Internet Key Exchange) thiết lập một cặp
SA trực tiếp và sau đó có thể thiết lập thêm nhiều SA khác. Mỗi SA có một thời gian
sống riêng. SA được nhận dạng duy nhất bởi bộ 3 gồm có: chỉ dẫn thông số an ninh
(SPI), địa chỉ IP đích và một nhận dạng giao thức an toàn (AH hay ESP). Tập các giá trị
SPI trong dãy từ 1 đến 255 được để dành bởi IANA để sử dụng cho tương lai. Theo
nguyên lý, địa chỉ IP đích có thể là một địa chỉ đơn nhất (unicast), một địa chỉ quảng bá
(broadcast) hay một địa chỉ nhóm (multicast). Tuy nhiên, cơ chế quản lý SA IPSec hiện
nay được định nghĩa chỉ cho những SA đơn nhất (unicast).
Một lên kết an ninh có thể là một trong hai kiểu: Transport và Tunnel, phụ thuộc
vào kiểu của giao thức sử dụng SA. Một SA kiểu Transport là một liên kết an toàn giữa
hai host, hoặc liên kết an toàn được yêu cầu giữa hai hệ thống trung gian dọc trên đường
truyền. Trong trường hợp khác, kiểu Transport cũng có thể được sử dụng để hỗ trợ IP-
in-IP hay đường ngầm GRE qua các SA kiểu Transport. SA kiểu Tunnel là một SA cơ
bản được ứng dụng tới một đường ngầm IP. Một SA giữa 2 cổng an toàn là một SA kiểu
Tunnel điển hình giống như một SA giữa một host và một cổng an toàn. Tuy nhiên, trong
những trường hợp mà lưu lượng đã được định hình từ trước như những lệnh SNMP, cổng
an toàn làm nhiệm vụ như host và kiểu Transport được cho phép.
SA cung cấp nhiều lựa chọn cho các dịch vụ IPSec, nó phụ thuộc vào giao thức
an toàn được lựa chọn (AH hay ESP), kiểu SA, điểm kết thúc của SA đó và một sự
tuyển chọn của các dịch vụ tùy ý các bên trong giao thức đó. Ví dụ như khi sử dụng AH
để xác minh nguồn gốc dữ liệu, tính toàn vẹn phi kết nối cho gói IP, có thể sử dụng dịch
vụ chống phát lại hoặc không tùy thuộc vào các bên.
Khi một bên IP-VPN muốn gửi lưu lượng IPSec tới đầu bên kia, nó kiểm tra để
biết nếu có một đã tồn tại một SA trong cơ sở dữ liệu hay chưa để hai bên có thể sử dụng
dịch vụ an ninh theo yêu cầu. Nếu nó tìm được một SA tồn tại, nó để SPI của SA này
trong tiêu đề IPSec, thực hiện các thuật toán mã hóa và gửi gói tin đi. Bên thu sẽ lấy SPI,
địa chỉ đích và giao thức IPSec (AH hay ESP) và tìm SA trong cơ sở dữ liệu phù hợp để
xử lý gói tin đó. Lưu ý rằng một đầu cuối IP-VPN có thể đồng thời tồn tại nhiều kết nối
IPSec, vì vậy cũng có nghĩa là tồn tại nhiều SA.
3.3.1.2 Kết hợp các SA
Các gói IP truyền qua một SA riêng biệt được cung cấp sự bảo vệ một cách chính
xác bởi giao thức an ninh có thể là AH hoặc ESP nhưng không phải là cả hai. Đôi khi
một chính sách an toàn có thể được gọi cho một sự kết hợp của các dịch vụ cho một
luồng giao thông đặc biệt mà không thể thực hiện được với một SA đơn lẻ. Trong trường
hợp đó cần thiết để giao cho nhiều SA thực hiện chính sách an toàn được yêu cầu. Thuật
ngữ cụm SA được sử dụng để một chuỗi các SA xuyên qua lưu lượng cần được xử lý để
thỏa mãn một tập chính sách an toàn.
Đối với kiểu Tunnel, có 3 trường hợp cơ bản của kết hợp an ninh như sau:
1) Cả hai điểm cuối SA đều trùng nhau: mỗi đường ngầm bên trong hay bên
ngoài là AH hay ESP, mặc dù host 1 có thể định rõ cả hai đường ngầm là như nhau, tức
là AH bên trong AH và ESP bên trong ESP.
Hình 3.13: Kết hợp SA kiểu Tunnel khi 2 điểm cuối trùng nhau
2) Một điểm cuối SA trùng nhau: đường hầm bên trong hay bên ngoài có thể là
AH hay ESP.
Security Association 1
(Tunnel)
Security Association 2 (Tunnel)
Hình 3.14: Kết hợp SA kiểu Tunnel khi một điểm cuối trùng nhau
3) Không có điểm cuối nào trùng nhau: Mỗi đường hầm bên trong và bên ngoài là
AH hay ESP.
SA 1 (Tunnel)
Security Association 2 (Tunnel)
Hình 3.15: Kết hợp SA kiểu Tunnel khi không có điểm cuối trùng nhau
Chi tiết về kết hợp các SA có được trình bày trong RFC 2401.
3.3.1.3 Cơ sở dữ liệu SA
một lối vào trong SAD. SAD quyết định SA nào được sử dụng cho một gói đã cho. Cho
xử lý đi về, SAD được tham khảo để quyết định gói được xử lý như thế nào.
Hình 3.16: Các chế độ chính, chế độ tấn công, chế độ nhanh của IKE
Sau đây chúng ta sẽ đi xem xét cụ thể các bước và mục đích của các pha IKE.
3.3.2.1 Bước thứ nhất
Việc quyết định lưu lượng nào cần bảo vệ là một phần trong chính sách an ninh
của mạng VPN. Chính sách được sử dụng để quyết định cần bảo vệ lưu lượng nào
(những lưu lượng khác không cần bảo vệ sẽ được gửi dưới dạng văn bản rõ).
Chính sách an ninh sẽ được phản chiếu trong một danh sách truy nhập. Các bên
phải chứa danh sách giống nhau, và có thể có đa danh sách truy nhập cho những mục
đích khác nhau giữa các bên. Những danh sách này được gọi là các danh sách điều khiển
truy nhập (ACLs- Acess Control List). Nó đơn giản là danh sách truy nhập IP mở rộng
của các routers được sử dụng để biết lưu lượng nào cần mật mã. ACLs làm việc khác
nhau dựa vào mục đích các câu lệnh permit (cho phép) và denny (phủ nhận) là khác
nhau. Hình 3.17 trình bày kết quả của các trạng thái khi thực hiện lệnh permit và deny
của nguồn và đích:
Clear-Text Clear-Text
Packet Packet
Destination
Source Peer
Peer
Crypto IPSec
ACL
Deny
Permit Deny Permit AH or ESP
Packet
IPSec Crypto
ACL
AH or ESP AH or ESP or
Packet Clear-Text
Packet
Bảng 3.2: Kết quả khi kết hợp lệnh permit và deny
Router A Router B
Computer Computer
IKE pha 1
Chế độ chính
Thương lượng Thương lượng
chính sách chính sách
Hình 3.18: IKE pha thứ nhất sử dụng chế độ chính (Main Mode)
Chế độ chính có trao đổi 6 bản tin (tức là có 3 trao đổi 2 chiều) giữa hai bên khởi
tạo và biên nhận:
* Trao đổi thứ nhất: Các thuật toán mật mã và xác thực (sử dụng để bảo vệ các
trao đổi IKE) sẽ được thỏa thuận giữa các đối tác.
* Trao đổi thứ hai: Sử dụng trao đổi Diffie-Hellman để tạo khóa bí mật chia sẻ
(shared secret keys), trao đổi các số ngẫu nhiên (nonces) để khẳng định nhận dạng của
mỗi đối tác. Khóa bí mật chia sẻ được sử dụng để tạo ra tất cả các khóa bí mật và xác
thực khác.
* Trao đổi thứ ba: xác minh nhận dạng các bên (xác thực đối tác). Kết quả chính
của chế độ chính là một đường truyền thông an toàn cho các trao đổi tiếp theo của hai
đối tác.
Chế độ nhanh thực hiện trao đổi 3 bản tin. Hầu hết các trao đổi đều được thực
hiện trong trao đổi thứ nhất: thỏa thuận các tập chính sách IKE, tạo khóa công cộng
Diffie-Hellman, và một gói nhận dạng có thể sử dụng để xác định nhận dạng thông qua
một bên thứ ba. Bên nhận gửi trở lại mọi thứ cần thiết để hoàn thành việc trao đổi. Cuối
cùng bên khởi tạo khẳng định việc trao đổi.
a) Các tập chính sách IKE
Khi thiết lập một kết nối IP-VPN an toàn giữa hai host A và host B thông qua
Internet, một đường ngầm an toàn được thiết lập giưa router A và router B. Thông qua
đường hầm, các giao thức mật mã, xác thực và các giao thức khác được thỏa thuận. Thay
vì phải thỏa thuận từng giao thức một, các giao thức được nhóm thành các tập và được
gọi là tập chính sách IKE (IKE policy set). Các tập chính sách IKE được trao đổi trong
IKE pha thứ nhất, trao đổi thứ nhất. Nếu một chính sách thống nhất được tìm thấy ở hai
phía thì trao đổi được tiếp tục. Nếu không tìm thấy chính sách thống nhất nào, đường
ngầm sẽ bị loại bỏ. Ví dụ Router A gửi các tập chính sách IKE policy 10 và IKE plicy
20 tới router B. Router B so sánh với tập chính sách của nó, IKE policy 15, với các tập
chính sách nhận được từ router A . Trong trường hợp này, một chính sách thống nhất
được tìm thấy: IKE policy 10 của router A và IKE policy 15 của router B là tương
đương. Trong ứng dụng điểm - tới - điểm, mỗi bên chỉ cần định nghĩa một tập chính
sách IKE. Tuy nhiên ở mạng trung tâm có thể phải định nghĩa nhiều chính sách IKE để
đáp ứng nhu cầu của tất cả các đối tác từ xa.
nghĩa: DH 1÷ 7. Trong IKE pha thứ nhất, các bên phải thỏa thuận nhóm Diffie-Hellman
được sử dụng. Khi đã hoàn tất việc thỏa thuận nhóm, khóa bí mật chung sẽ được tính.
Bước thứ 3 này chính là IKE pha 2. Mục đích của IKE pha 2 là để thỏa thuận các
thông số an ninh IPSec sử dụng để bảo vệ đường ngầm IPSec. Chỉ có một chế độ nhanh
được sử dụng cho IKE pha 2. IKE pha 2 thực hiện các chức năng sau:
* Thỏa thuận các thông số anh ninh IPSec (IPSec Security parameters), các tập
chuyển đổi IPSec (IPSec transform sets).
* Thiết lập các kết hợp an ninh IPSec (IPSec Security Associations).
* Định kỳ thỏa thuận lại IPSec SA để đảm bảo tính an toàn của đường ngầm
* Thực hiện một trao đổi Diffie-Hellman bổ sung (khi đó các SA và các khóa mới
được tạo ra, làm tăng tính an toàn cho đường ngầm).
Chế độ nhanh cũng được sử dụng để thỏa thuận lại một kết hợp an ninh mới khi
kết hợp an ninh cũ đã hết hạn. Khi đó các bên có thể không cần quay trở lại bước thứ 2
nữa mà vẫn đảm bảo thiết lập một SA cho phiên truyền thông mới.
RouterA RouterB
Computer Co
m pu
ter
Thỏathuận
cáctậpchuyểnđổi
Tậpchuyểnđổi Tậpchuyểnđổi
30 50
ESP ESP
3D ES 3D ES
SH A SH A
Tunnel Tunnel
Lifetim e Lifetim e
Tậpchuyểnđổi
40
ESP
D ES
M D 5
Tunnel
Lifetime
được truyền đi và tính theo giây. Các khóa và SA có hiệu lực cho đến khi hết thời gian
tồn tại của SA hoặc đến khi đường ngầm bị ngắt, khi đó SA bị xóa bỏ.
3.3.2.4 Bước thứ tư
Sau khi đã hoàn thành IKE pha 2 và chế độ nhanh đã được thiết lập các kết hợp
an ninh IPSec SA, lưu lượng có thể được trao đổi giữa các bên IP-VPN thông qua một
đường ngầm an toàn. Quá trình xử lý gói tin (mã hóa, mật mã, đóng gói) phụ thuộc vào
các thông số được thiết lập của SA.
3.3.2.5 Kết thúc đường ngầm
Các kết hợp an ninh IPSec SA kết thúc khi bị xóa bỏ hoặc hết thời gian tồn tại.
Khi đó các bên IP-VPN không sử dụng các SA này nữa và bắt đầu giải phóng cơ sở dữ
liệu của SA. Các khóa cũng bị loại bỏ. Nếu ở thời điểm này các bên IP-VPN vẫn còn
muốn thông tin với nhau thì một IKE pha 2 mới sẽ thực hiện. Trong trường hợp cần thiết
thì cũng có thể thực hiện lại từ IKE pha 1. Thông thường, để đảm bảo tính liên tục của
thông tin thì các SA mới được thiết lập trước khi các SA cũ hết hạn.
3.4 Những giao thức đang được ứng dụng cho xử lý IPSec
IPSec sử dụng nhiều giao thức đang tồn tại để mật mã, nhận thực, trao đổi khóa.
Điều này giống như duy trì IPSec trở thành tiêu chuẩn ứng dụng cơ bản, làm cho nó có
khả năng trở thành phổ biến trong thông tin IP. Một vài giao thức tiêu chuẩn được trình
bày sau đây:
3.4.1 Mật mã bản tin
Có thể mật mã bản tin khi sử dụng giao thức ESP IPSec, bản tin mật mã cho phép
bạn gửi thông tin nhạy cảm cao qua mạng công cộng mà không sợ bị xâm phạm dữ liệu.
Có 2 tiêu chuẩn cơ bản để mật mã dữ liệu hiện nay đang được dùng phổ biến là DES
(Data Encryption Standard: tiêu chuẩn mật mã dữ liệu) và tiêu chuẩn phát triển thêm là
3DES (Triple DES: tiêu chuẩn mật mã dữ liệu gấp ba).
3.4.1.1 Tiêu chuẩn mật mã dữ liệu DES
DES là phương pháp mật mã dữ liệu tiêu chuẩn cho một số phát triển VPN. DES
áp dụng một khóa 56 bit cho 64 bit dữ liệu. DES có thể cung cấp tới 72*10 5 khóa đóng
gói dữ liệu. DES được IBM phát triển IBM vào năm 1977 và được U.S Department of
Defense (cục phòng thủ Mỹ) chọn, DES đã là một trong những kỹ thuật mật mã mạnh.
Nó được xem như là không thể bẻ gãy tại thời điểm đó, nhưng khi máy tính tốc độ cao
hơn đã bẻ gãy DES trong khoảng thời gian ngắn (ít hơn một ngày), vì vậy DES không
được sử dụng lâu dài cho những ứng dụng bảo mật cao.
Kỹ thuật DES-CBC là một trong rất nhiều phương pháp của DES. CBC (Cipher
Block Chaining: chế độ chuỗi khối mật mã) yêu cầu một vectơ khởi tạo IV (Initialization
Vector) để bắt đầu mật mã. IPSec đảm bảo cả hai phía IP-VPN cùng có một IV hay một
khóa bí mật chia sẻ. Khóa bí mật chia sẻ được đặt vào thuật toán mật mã DES để mật mã
những khối 64 bit do văn bản rõ (clear text) chia ra. Văn bản rõ được chuyển đổi thành
dạng mật mã và được đưa tới ESP để truyền qua bên đợi, khi xử lý ngược lại sử dụng
khóa bí mật chia sẻ để tạo lại văn bản rõ.
3.4.1.2 Tiêu chuẩn mật mã hóa dữ liệu gấp ba 3DES
Một phiên bản của DES là 3DES, có tên như vậy vì nó thực hiện 3 quá trình mật
mã. Nó sử dụng một quá trình đóng gói, một quá trình mở gói và một quá trình đóng gói
khác cùng với khóa 56 bit khác nhau. Ba quá trình này tạo ra một tổ hợp khóa 168 bit,
cung cấp đóng gói mạnh.
Trong chương 4 sẽ trình bày cụ thể thuật toán DES.
3.4.2 Toàn vẹn bản tin
Toàn vẹn bản tin được thực hiện nhờ sử dụng một hàm băm toán học để tính toán
đặc trưng của bản tin hay của file dữ liệu. Đặc trưng này được gọi là tóm tắt bản tin MD
(Message Digest) và độ dài phụ thuộc vào hàm băm được sử dụng. Tất cả hoặc một phần
của tóm tắt bản tin được truyền với dữ liệu tới host đích, nơi mà sẽ thực hiện cùng hàm
băm để tái tạo tóm tắt bản tin này. Tóm tắt bản tin nguồn và đích sẽ được đối chiếu. Bất
cứ sai lệch nào đều có nghĩa là bản tin đã biến đổi kể từ khi bản tin nguồn được thiết lập.
Sự tương xứng với nhau có nghĩa là chắc chắn dữ liệu không bị biến đổi trong quá trình
truyền.
Khi sử dụng giao thức IPSec, bản tin tóm tắt được thiết lập nhờ sử dụng trường
không biến đổi từ gói tin IP và trường biến đổi được thay thế bằng giá trị 0 hoặc giá trị
có thể dự đoán được. Tính toán MD và sau đó là đặt nó vào trường dữ liệu nhận thực
(ICV) của AH. Thiết bị đích sau đó copy MD từ AH và tách trường dữ liệu nhận thực
trước khi tính toán lại MD.
Với giao thức IPSec ESP, việc xử lý cũng tương tự, tóm tắt bản tin được tạo nhờ
sử dụng dữ liệu không biến đổi trong gói tin IP bắt đầu từ ESP header và kết thúc là ESP
trailer. MD tính toán được sau đó đặt vào trường ICV tại cuối của gói tin. Với ESP, host
đích không cần tách trường ICV bởi vì nó đặt bên ngoài phạm vi hàm băm thông
thường.
Có 2 thuật toán chính để hỗ trợ toàn vẹn bản tin, đó là MD5 và SHA-1 (Secure
Hash Algorithm-1: thuật toán băm an toàn-1), chúng sử dụng chơ chế khóa băm gọi là
HMAC (Hashed-keyed Message Authenticaiton Code: mã nhận thực bản tin băm). Sau
đây là tổng quan ba công cụ cho toàn vẹn bản tin này.
3.4.2.1 Mã nhận thực bản tin băm HMAC
RFC 2104 trình bày về thuật toán HMAC, bởi vì nó được phát triển để làm việc
cùng với thuật toán băm đang tồn tại là MD5 và SHA-1. Nhiều quá trình xử lý an ninh
phức tạp trong chia sẻ dữ liệu yêu cầu sử dụng khóa bí mật và một cơ chế được gọi là
mã nhận thực bản tin (MAC: Message Authentication Code). Một bên tạo MAC sử dụng
khóa bí mật và truyền MAC tới bên kia. Bên kia tạo lại MAC sử dụng cùng một khóa bí
mật và so sánh 2 giá trị MAC.
MD5 và SHA-1 có khái niệm tương tự nhau, nhưng chúng sử dụng khóa bí mật
khác nhau. Điều này chính là yêu cầu có HMAC. HMAC được phát triển thêm vào một
khóa bí mật cho tiêu chuẩn thuật toán băm tính toán tóm tắt bản tin. Khóa bí mật được
thêm vào theo thể thức cùng độ dài nhưng kết quả tóm tắt bản tin khác nhau khi sử dụng
thuật toán khác nhau.
3.4.2.2 Thuật toán MD5
Thuật toán tóm tắt bản tin MD5 thực hiện tóm tắt bất kì bản tin hay trường dữ
liệu nào cũng miêu tả cô đọng lại còn 128 bít. Với HMAC-MD5-96, khóa bí mật có độ
dài là 128 bít. Với AH và ESP, HMAC chỉ sử dụng có 96 bit nằm bên trái, đặt chúng vào
trường nhận thực. Bên đích sau đó tính toán lại 128 bit tóm tắt bản tin nhưng chỉ sử dụng
96 bit nằm bên trái để so sánh với giá trị được lưu trong trường nhận thực.
MD5 tạo ra một tóm tắt bản tin ngắn hơn SHA-1 và được xem như là ít an toàn
hơn nhưng kết quả lại được thực hiện tốt hơn. MD5 không có HMAC được biết như là
yếu hơn cho những lựa chọn dịch vụ chất lượng bảo mật cao.
3.4.2.3 Thuật toán băm an toàn SHA
Thuật toán băm an toàn được diễn tả trong RFC 2404. SHA-1 tạo ra một tóm tắt
bản tin dài 160 bit, và sử dụng khóa bí mật 160 bit. Có thể với một vài sản phẩm thì nó
sẽ lấy 96 bít bên trái của tóm tắt bản tin để gửi vào trường nhận thực. Bên thu tạo lại tóm
tắt bản tin 160 bit sử dụng khóa bí mật dài 160 bit và chỉ so sánh 96 bit với tóm tắt bản
tin trong khung của trường nhận thực.
Tóm tắt bản tin SHA-1 dài 160 bit an toàn hơn so với MD5 dài 128 bit. Điều này
được xem như là quá an toàn nhưng nếu như bạn cần một an toàn cao cho toàn vẹn bản
tin thì có thể chọn thuật toán HMAC-SHA-1.
3.4.3 Nhận thực các bên
Một trong những xử lý IKE là thực hiện nhận thực các bên. Quá trình này diễn ra
trong pha thứ nhất sử dụng thuật toán khóa băm cùng với một trong 3 loại khóa sau:
+ Khóa chia sẻ trước
+ Chữ ký số RSA
+ RSA mật mã nonces
Đây là ba loại khóa và chúng kết hợp với xử lý nhận thực như phác thảo sau
3.4.3.1 Khóa chia sẻ trước
Xử lý khóa chia sẻ trước là thủ công. Người quản lý tại một đầu cuối của IPSec
IP-VPN đồng ý về khóa được sử dụng và sau đó đặt khóa vào thiết bị là host hoặc
gateway một cách thủ công. Phương pháp này đơn giản, nhưng không được ứng dụng
rộng rãi.
3.4.3.2 Chữ ký số RSA
Một giấy chứng nhận của người có quyền chứng nhận (Certificate Authority: CA)
cung cấp chữ ký số RSA vào lúc đăng ký với CA. Chữ ký số cho phép an ninh hơn là
khóa chia sẻ. Một khi cấu hình ban đầu đã được hoàn thành, các bên sử dụng chữ ký số
RSA có thể nhận thực đối phương không cần can thiệp của người điều hành.
Khi một chữ ký số RSA được yêu cầu, một cặp khóa công cộng và khóa riêng
được sinh ra. Host sử dụng khóa riêng tạo ra một chữ ký số. Host này sẽ gửi chữ ký số
của nó tới bên kia IPSec. Bên sử dụng khóa công cộng từ chữ ký số để phê chuẩn chữ ký
số nhận được từ bên kia.
3.4.3.3 RSA mật mã nonces
Một cách phát triển của chữ ký số là xử lý RSA trong lúc mật mã để nhận thực
các bên. Một nonce là một số giả ngẫu nhiên. Xử lí này yêu cầu đăng ký với một CA để
thu được một chữ ký số RSA. Các bên không chia sẻ khóa công cộng ở dạng nhận thực
này. Chúng không trao đổi các chữ ký số. Việc xử lí một khóa chia sẻ là thủ công và
phải thực hiện trong suốt quá trình thiết lập ban đầu. RSA mật mã nonce cho phép từ
chối truyền thông khi mà một bên từ chối hợp lý.
3.4.4 Quản lí khóa
Quản lí khóa có thể là một vấn đề lớn khi làm việc cùng với IPSec VPN. Nó
giống như che dấu các khóa ở mọi nơi. Trong thực tế, chỉ có 5 khóa cố định cho mọi bên
IPSec quan hệ với nhau.
+ 2 khóa riêng được làm chủ bởi mỗi bên và không bao giờ chia sẻ. Chúng được
sử dụng để mật hiệu bản tin.
+ 2 khóa công cộng được làm chủ bởi mỗi bên và chia sẻ cho mọi người. Những
khóa này được sử dụng để kiểm tra chữ ký.
+ Khóa thứ 5 được sử dụng là khóa bảo mật chia sẻ. Cả hai bên sử dụng khóa này
cho mật mã và hàm băm. Đây là khóa được tạo ra bởi thuật toán Diffie-Hellman, sẽ
được diễn tả sau đây.
Điều này không giống như là nhiều khóa. Nhưng trong thực tế, khóa riêng và
khóa công cộng được sử dụng cho nhiều kết nối IPSec cho một bên đưa ra. Một tổ chức
nhỏ, những khóa này có thể toàn bộ được quản lý thủ công. Vấn đề xuất hiện khi cố
gắng phân chia xử lí hỗ trợ cho hàng trăm hoặc hàng ngàn phiên VPN. Phần tiếp theo
trình bày về giao thức Diffie-Hellman và nhận thực số, đây là hai trong số những giải
pháp hoàn hảo để quản lí tự động vấn đề nan giải này.
3.4.4.1 Giao thức Diffie-Hellman
Diffie-Hellman là giao thức đồng ý khóa cho phép 2 bên trao đổi một khóa bí mật
không cần bất kì ưu tiên bí mật nào. Giao thức này là một ví dụ về xử lí trao đổi khóa
đối xứng, trong đó các bên trao đổi khóa công cộng khác nhau để sinh ra khóa riêng
giống nhau.
Giao thức Diffie-Hellman được sử dụng trong IPSec VPN, nhưng bạn rất khó để
tìm ra nó. Nó được sử dụng trong xử lí thiết lập kênh an toàn giữa các bên IPSec. Dấu
hiệu của nó như sau:
* IPSec sử dụng giao thức liên kết an ninh Internet và quản lí khóa (Internet
Security Association and Key Management Protocol: ISAKMP) để cung cấp một khung
cho nhận thực và trao đổi khóa.
* ISAKMP sử dụng giao thức IKE để thương lượng an toàn và cung cấp nguyên
liệu tạo khóa cho liên kết an ninh.
* IKE sử dụng một giao thức được gọi là OAKLEY, nó sẽ đưa ra một loạt các
trao đổi khóa và chi tiết dịch vụ được cung cấp cho mỗi trao đổi.
* OAKLEY sử dụng Diffie-Hellman để thiết lập một khóa bí mật chia sẻ giữa các
bên.
Xử lý mật mã khóa đối xứng sau đó sử dụng khóa bí mật chia sẻ cho mật mã và
nhận thực kết nối. Các bên sử dụng giao thức mật mã khóa đối xứng phải chia sẻ với
nhau cùng một khóa bí mật. Diffie-Hellman cung cấp một giải pháp để cung cấp mỗi
bên một khóa bí mật chia sẻ không cần giữ dấu vết các khóa sử dụng.
Xử lí mật mã khóa đối xứng quá chậm cho yêu cầu mật mã khối lượng lớn trong
kênh IP-VPN tốc độ cao. Các bên IPSec sử dụng giao thức Diffie-Helman để thương
lượng khóa bí mật chia sử dụng cho AH hoặc ESP để tạo dữ liệu nhận thực hay mật mã
gói tin IP. Bên thu sử dụng khóa đó để nhận thực gói tin và giải mã phần tải tin. Chi tiết
về các bước của thuật toán Diffie-Helman được trình bày trong chương 4.
3.4.4.2 Quyền chứng nhận CA
Một phương pháp khác để nắm giữ khóa mà không nắm giữ nhiều công việc hỗ
trợ quản lí là sử dụng CA (Certificate Authorities) như là một thực thể tin cậy để đưa ra
và thu hồi chứng nhận số và cho việc cung cấp một ý nghĩa giúp kiểm tra về nhận thực
những chứng thực. CA thường có 3 phần tác nhân như VeriSign hoặc Entrust, nhưng để
tiết kiệm, bạn có thể thiết lập thiết lập CA cho riêng mình trên cơ sở sử dụng dịch vụ
giấy chứng nhận Windows 2000.
Dưới đây trình bày quá trình làm việc của CA:
1) Một client muốn sử dụng chứng thực số tạo ra một cặp khóa, một khóa công
cộng và một khóa riêng. Tiếp theo, chient chuẩn bị chứng nhận không đánh dấu (X.509)
nó chứa, giữ nhiều thứ: ID nhận dạng client và khóa công cộng mà nó vừa tạo thành.
Chứng nhận không đánh dấu này sau đó được gửi tới phía CA nhờ sử dụng một vài
phương pháp an toàn.
2) Phía CA tính toán mã băm của chứng nhận không đánh dấu. Sau đó CA giữ mã
băm và đóng gói nó sử dụng khóa công khai của CA. Hàm mật mã băm này là một chữ
ký số, và CA tấn công vào nó để chứng nhận và quay lại đánh dấu chứng nhận client.
Chứng nhận này được gọi là nhận dạng chứng nhận và được lưu trong thiết bị client cho
đến khi nó kết thúc hoặc bị xóa. CA cũng gửi cho client chứng nhận số của nó, các mà
trở thành chứng nhận gốc cho client.
3) Bây giờ client có một chứng nhận số đánh dấu mà nó có thể gửi tới bất kì bên
thành viên nào. Nếu bên thành viên muốn nhận thực chứng nhận, nó giải mã chứng nhận
nhờ sử dụng khóa công khai.
Chú ý quan trọng là với mỗi client thì CA chỉ gửi một chứng nhận của client đó.
Nếu client muốn thiết lập IPSec IP-VPN với một client khác, nó trao đổi chứng nhận số
với client kia nhờ sử dụng khóa công khai chia sẻ.
Khi một client muốn mật mã dữ liệu để gửi tới một bên, nó sử dụng khóa công
khai của bên đó lấy từ chứng nhận số. Bên này sau đó giải mã gói tin với khóa công cộng.
Một chức năng khác của CA là sinh ra một loạt các chứng nhận theo chu kì mà nó
đã hết hiệu lực hoặc đã mất giá trị. CA tạo ra danh sách chứng nhận bị hũy bỏ
(Certificate Revocation Lists: CRL) của những khách hàng của nó. Khi một client nhận
một chứng nhận số, nó kiểm tra CRL để tìm nếu như chứng nhận vẫn còn giá trị.
V
ănbảnđ
ư ợ
cmậtm
ã
V
ănb
ảnrõ
C
ertific
a te
Au th ority
C
hữkýs
ố
In
tern
et C
omp
ute
r C
omp
ute
r C
omp
ute
r
P
h iên
IK E
Đ
ườngngầm
Nhậnthực
Mậtmã
U
ser
C
omp
ute
r
N
gườ
idù
ng
Tới đây, router người sử dụng sẽ đóng gói dữ liệu theo các yêu cầu đã thương
lượng trong IPSec SA (thuật toán mật mã, nhận thực, giao thức đóng gói là AH hay
ESP…), thêm các thông tin thích hợp để đưa gói tin được mã hóa này về dạng IP
datagram ban đầu và chuyển tới router mạng trung tâm. Khi nhận được gói tin từ router
người dùng gửi đến, router mạng trung tâm tìm kiếm IPSec SA, xử lý gói theo yêu cầu,
đưa về dạng gói tin ban đầu và chuyển nó tới mạng trung tâm.
3.6 Tổng kết
Chương này trình bày chi tiết về giao thức IPSec và ứng dụng của nó đối với
công nghệ IP-VPN. IPSec là một chuẩn mở, nó không định nghĩa các giải pháp cụ thể
mà nó chỉ đưa ra các chuẩn. Giao thức IPSec gồm có 2 giao thức là AH và ESP, hoạt
động khác nhau cung cấp khả năng đảm bảo tính toàn vẹn, bí mật, an toàn cho dữ liệu.
Liên kết an ninh SA có chứa tập các chính sách, tham số, thuật toán, giao thức
cho quá trình đóng gói dữ liệu giữa các bên tham gia vào IPSec. Tại mỗi đầu đường
ngầm IPSec, SA được sử dụng để xác đinh loại lưu lượng cần được xử lý IPSec, giao
thức IPSec được sử dụng (AH hay ESP), thuật toán và khóa được sử dụng cho quá trình
mật mã và xác thực.
Bên cạnh đó, giao thức IKE là một giao thức quan trọng để thảo thuận xác thực
các bên tham gia, thiết lập các tham số, chính sách của liên kết an ninh trong quá trình
thiết lập. Nhiệm vụ của giao thức IKE chính là thương lượng giữa các bên trong quá
trình thiết lập hoặc thương lượng lại khi cần thiết để tạo ra một liên kết an ninh SA.
Bảng 3.3 đưa ra tóm tắt về 3 giao thức trong chương 3.
Bảng 3.3: Tổng kết chương các giao thức của IPSec
ESP Bảo mật, toàn vẹn dữ liệu DES, 3DES, AES, MD5,
SHA1
IKE Xác thực đối tác, thiết lập các Khóa chia sẻ trước, RSA,
tham số Diffie-Hellman, CA
Chương 4
AN TOÀN DỮ LIỆU TRONG IP-VPN
phương pháp, thuật toán mật mã, xác thực mạng nhất hiện có. Thứ ba, IPSec là một
khung chuẩn mở, nghĩa là có thể lựa chọn các thuật toán phù hợp với mức độ an toàn dữ
liệu mong muốn mà không bị giới hạn cứng nhắc phải sử dụng đúng một thuật toán nào
đó, đồng thời có khả năng sử dụng các thuật toán tiên tiến phát triển trong tương lai.
Điều này thể hiện tính linh hoạt rất cao của IPSec.
Nội dung của chương này nhằm làm rõ vấn đề an toàn dữ liệu của công nghệ IP-
VPN dựa trên giao thức IPSec.
4.2 Mật mã
4.2.1 Khái niệm mật mã
Hình 4.1 cho thấy khái niệm chung sử dụng trong các thuật toán mật mã và mối
quan hệ giữa chúng.
Khóa K
Plaintext Ciphertext
Bản tin Cipher
Giải mã Bản tin được
ban đầu DK(C)=P mật mã
C
Khóa K
Hình 4.1: Các khái niệm chung sử dụng trong các thuật toán mật mã
Một hệ mật là một bộ 5 (P, C, K, E, D)thỏa mãn các điều kiện sau:
1) P là một tập hữu hạn các bản rõ có thể.
2) C là một tập hữu hạn các bản mã có thể.
3) K là một tập hữu hạn các khóa có thể.
4) Đối với k ∈ K có một quy tắc mã ek: P→C và một quy tắc giải mã tương ứng
dk:C→P sao cho dk(ek(x)) = x với mọi bản rõ x ∈ P.
Điều kiện 4 nói lên rằng một bản rõ x được mã hóa bằng ek và bản mã nhận được
sau đó được giải mã bằng dk thì ta phải thu được bản rõ ban đầu x. Các khái niệm trong
hình được trình bày như sau:
+ Plaintext và ciphertext: bản tin ban đầu được gọi là bản tin rõ (plaintext hay
cleartext). Quá trình biến đổi bản tin để che dấu nội dung thật của nó được gọi là mật mã
(encryption). Bản tin đã mật mã được gọi là ciphertext. Quá trình biến bản tin đã mật mã
về bản tin ban đầu được gọi là giải mã (decryption).
+ Thuật toán và khóa: thuật toán mật mã (còn gọi là cipher) là một hàm toán học
sử dụng để mật mã và giải mã. Tính an toàn của một thuật toán mật mã phụ thuộc vòa
một khóa bí mật (secret key). Khoảng các giá trị có thể có của khóa được gọi là không
gian khóa (key space). Các quá trình mật mã và giải mã đều phụ thuộc vào khóa K như
sau:
Mật mã: EK(P)=C
Giải mã: DK(C)=P
Về cơ bản thì các thuật toán mật mã được chia thành hai loại: các hệ thống mật
mã khóa đối xứng (Symmetric Key Cryptosystem), và các hệ thống mật mã khóa công
khai (Public Key Cryptosystem). Mật mã khóa đối xứng sử dụng cùng một khóa duy
nhất trong quá trình mật mã và giải mã, với hệ thống này thì hai đầu kênh được cung cấp
cùng một khóa qua một kênh tin cậy và khóa này phải tồn tại trước quá trình truyền tin.
Còn mật mã khóa công khai sử dụng hai khóa khác nhau (một khóa bí mật và một khóa
công khai), khóa công khai dùng để lập mã và chỉ có khóa bí mật là có khả năng giải mã.
Bản thân các hệ mật mã này có nhiều thuật toán thực hiện.
4.2.2 Các hệ thống mật mã khóa đối xứng
4.2.2.1 Các chế độ làm việc ECB, CBC
Tùy thuộc vào cách thức chuyển các khối plaintext đầu vào thành các khối
ciphertext đầu ra mà các thuật toán mật mã khối được phân loại theo các chế độ làm việc
khác nhau, trong đó có ECB, CBC và OFB.
Chế độ sách mã điện tử ECB (Electronic Code Book Mode): đối với thuật toán
mật mã khối ECB, một khối plaintext đầu vào được ánh xạ tĩnh thành một khối
ciphertext đầu ra. Với những nguồn tài nguyên bộ nhớ hưu hạn, có thể xây dựng một
bảng tra cứu (loopup table) hay danh sách mã điện tử (Electronic Code Book) để ánh xạ
ngược một khối ciphertexxt về dạng plaintext tương ứng.
P1 E C1 C1 D P1
P2 E C2 C2 D P2
P3 E C3 C3 D P3
P1 E C1 C1 D P1
P2 E C2 C2 D P2
P3 E C3 C3 D P3
Bất cứ bản tin được mật mã CBC nào cũng phải được khởi tạo bởi một véc tơ IV
(Initialization Vector). IV được truyền qua kênh không an toàn ở thời điểm bắt đầu của
phiên truyền dẫn. Để tránh các tấn công kiểu lặp lại, giá trị IV chỉ sử dụng một lần. Điều
này có thể thực hiện được bằng cách gán giá trị ngẫu nhiên những tăng đơn thuần cho
IV.
4.2.2.2 Giải thuật DES (Data Encryption Standard)
Thuật toán DES được đưa ra vào năm 1977 tại Mỹ và đã được sử dụng rất rộng
rãi. Nó còn là cơ sở để xây dựng một thuật toán tiên tiến hơn là 3DES. Hiện nay, DES
vẫn được sử dụng cho những ứng dụng không đòi hỏi tính an toàn cao, và khi chuẩn mật
mã dữ liệu mới là AES chưa chính thức thay thế nó. DES mã hóa các khối dữ liệu 64 bit
với khóa 56 bit. Sơ đồ thuật toán DES cho trên hình 4.4.
Plaintext block (64 bits ) Key (64 bits )
Round 1
Round 2
Round 16
Đảokhởi tạohoánvị
chỗ chi nhau, vì vậy input của IP-1 là R16L16. Trong đó hàm F được thể hiện là khối hộp
đen.
Li-1 Ri-1 Khóa Ki-1
32 Dịch 56 Dịch
Hoán vị mở rộng
Hoán vị nén
Hộp 48
đen 48
S-Box (Thay thế )
32
P-Box (Hoán vị )
56
32 32
Li Ri Khóa Ki
F B
E C
Hình 4.6: Phân phối khóa trong hệ thống mật mã khóa đối xứng
Thuật toán DES với khóa 56 bit đã được phát triển cách đây gẩn 28 năm, và hiện
không còn phù hợp với những ứng dụng đòi hỏ tính an toàn dữ liệu cao (đặc biệt các ứng
dụng về quân sự, hoặc thương mại điện tử). Đây là lý do cần phát triển các thuật toán
mật mã mới đáp ứng được những yêu cầu an toàn dữ liệu ngày càng cao. Trong số các
thuật toán mới được phát triển gần đây có 3DES (Triple DES) với khóa công khai 168
bít và đặc biệt là AES. Năm 1997, NIST (US National Institute of Standards and
Technology) đã tổ chức lựa chọn những thuật toán sau:
* MARS (IBM): Cải tiến mạng Fiestel, thực hiện 32 vòng và dựa trên cấu trúc kết
hợp của DES.
* RC6 (RSA): Thực hiện mạng Fiestel 20 vòng, cải tiến thuật toán RC5.
* Twofish (Bruce Schneier): thực hiện mạng Fiestel 16 vòng, cải tiến thuật toán
Blowfish.
* Serpent (Ross Anderson/ Eli Biham/ Lars Knudsen): Thực hiện mạng hoán vị
thay thế 32 vòng.
* Rijndael (Joan Daemen/ Vincent Rijimen): Thực hiện mạng hoán vị thay thế
cải tiến 10 vòng.
Trong 5 thuật toán trên, NIST đã chọn Rijindael cho chuẩn AES vào năm 2000. Trong
tương lai, AES sẽ là chuẩn mật mã khối đối xứng và sẽ được thực hiện trên cả phần cứng
lẫn phần mềm. AES sẽ được thiết kế để có thể tăng độ dài khóa khi cần thiết. Độ dài
khối dữ liệu của AES là n = 128 bít, còn độ dài khóa k = 128, 192, 256 bit.
4.2.2.4Thuật toán mật mã luồng (stream cipher)
Mật mã luồng dựa trên một bộ tạo luồng khóa (key stream generator) để tạo nên
một chuỗi số giả ngẫu nhiên (pseudo-random sequence) khởi tạo bởi một khóa bí mật
(secret key). Chuỗi khóa được XOR với chuỗi bit plaintext. Tại phía thu, một bộ tạo
khóa giống hệt khởi tọa bởi cùng một khóa bí mật được đồng bộ với chuỗi ciphertext
đầu vào. Phía thu phục hồi plaintext bằng cách XOR chuỗi ciphertext với chuỗi khóa đã
đồng bộ.
Khóa
Bộ tạo chuỗi
giả ngẫu nhiên
Hệ thống mật mã khóa công khai còn được gọi là hệ thống mật mã khóa không
đối xứng, vì theo như có chế mật mã này thì khóa được dùng để mã hóa gói tin và khóa
được dùng để giải mã là khác nhau. Sự phát triển của mật mã khóa công khai có ý nghĩa
rất lớn và tạo ra một cuộc cách mạng trong toàn bộ lịch sử của mật mã khóa. Những
thuật toán công khai đều dựa trên những hàm toán học hơn là những nhóm thay thế và
hoán vị trong mật mã khóa cổ điển. Trong hệ thống mật mã khóa công khai thì mỗi đối
tác tham gia sẽ sở hữu một cặp khóa duy nhất, bao gồm một khóa bí mật (được lưu bí
mật bởi đối tác) và một khóa công khai tương ứng (được phát trong các thư mục công
cộng). Hai khóa này có quan hệ với nhau để đảm bảo rằng khóa công khai thực hiện
chức năng mã hóa và khóa bí mật thực hiện chức năng giải mã.
Các bước cần thiết trong quá trình mã hóa khóa công khai:
- Một hệ thống cuối trong mạng tạo ra một cặp khóa để dùng cho mã hóa và giải
mã đoạn tin mà nó sẽ nhận.
- Mỗi hệ thống công bố rộng rãi khóa mã hóa bằng cách đặt khóa vào một thanh
ghi hay một file công khai. Đây là khóa công khai, khóa còn lại được giữ riêng.
- Nếu A muốn gửi một đoạn tin tới B thì A sẽ mã hóa đoạn tin bằng khóa công
khai của B.
- Khi B nhận được đoạn tin mã hóa, nó giải mã bằng khóa bí mật của mình.
Không một người nào khác có thể giải mã đoạn tin mã này bởi vì chỉ minh B biết khóa
bí mật đó thôi.
Kênh
truyền
Giải thuật Giải thuật
User A User B
mã hóa giải mã
Đoạn tin Đoạn tin
Đoạn tin
được mật mã Khóa bí mật
4/ Công việc tính toán không thể thấy trước đối với địch thủ biết khóa công khai
KUb để xác định khóa bí mật KRb.
Công việc tính toán không thể thấy trước đối với địch thủ biết khóa công khai
KUb và đoạn tin mật mã C để khôi phục đoạn tin ban đầu M.
5/ Chức năng mã hóa và giải mã có thể được áp dụng theo thứ tự:
M = DKRb[EKUb(M)]
M = EKUb[DKRb(M)]
Có thể nhận thấy rằng việc tính Y = f(X) thì dễ dàng trong khi tính X=f -1(Y) là
không thể thấy trước. Nói chung từ “dễ dàng” được xác định bởi 1 bài toán là nó có thể
được giải quyết trong thời gian nhất định (nó phụ thuộc vào chiều dài input). Nếu chiều
dài input là n bít thì thời gian để tính hàm đó tỉ lệ với n a . Để đảm bảo tính bảo mật thì
phải sử dụng khóa có kích thước đủ lớn (thường trên 100 chữ số thập phân). Ví dụ kích
thước khóa và thời gian bẻ khóa (MIPS tính theo năm) trong các giải thuật RSA/DSS và
ECC như sau.
Bảng 4.2: Thời gian bẻ khóa trong giải thuật RSSA/DSS và ECC.
C = Me mod n
M = Cd mod n = (Me)d mod n = Mde mod n
Cả người gửi và nhận phải biết giá trị n, người gửi biết e và chỉ có người nhận
biết d. Cho nên đây là giải thuật mã hóa với khóa công khai KU = [e,n] và khóa bí mật
KR = [d,n]. Vì giải thuật này thỏa giải thuật mã khóa công khai nên các yêu cầu sau phải
được đáp ứng:
* Có thể tìm thấy giá trị d, e, n để: M = Mde mod n với mọi M<n hay không?
* Một cách tương đối dễ dàng tính Me và Cd với mọi M<n hay không?
Tại B: chọn B=6→ Y=36mod 31 = 16. Y=16 này được gửi đến A.
Tính khóa bí mật K:
Tại A: KA=168mod 31 = 4
Tại B: KB=206mod 31 = 4
⇒ Hai bên chọn khóa bí mật là KA=KB=K=8 cho quá trình mật mã và giải mã
thông tin.
4.3 Xác thực
Xác thực là thuật ngữ để chỉ hai khái niêm: xác thực tính toàn vẹn của dữ liệu và
xác thực nguồn gốc dữ liệu. Về cơ bản thì các xác thực này được giải quyết bằng các
phương pháp khác nhau. Trong phần này chúng ta sẽ xem xét cách thức giải quyết hai
vấn đề này.
4.3.1 Xác thực tính toàn vẹn của dữ liệu
Xác thực tính toàn vẹn của dữ liệu (data intẻgity)bao gồm 2 vấn đề sau:
+ Phát hiện các bản tin bị lỗi (corrupted message): Phát hiện các lỗi bít do nguyên
nhân lỗi của phương pháp truyền dẫ hoặc của thiết bị lưu trữ. Giải pháp cho vấn đề này
sử dụng một Message Digest (MD: giản lược thông điệp- còn gọi là hàm hash) cho mỗi
bản tin. MD hoạt động như một dấu vân tay (fingerprint) cho phép xác định duy nhất
một bản tin (tương tự như CRC).
+ Bảo vệ chống sửa đổi bất hợp pháp bản tin (unathurized modification): phát
hiện ra những bản tin đã bị sửa đổi một cách bất hợp pháp trong quá trình truyền dẫn. Có
hai giải pháp cho vấn đề này trên cơ sở sử dụng mật mã khóa đối xứng và khóa không
đối xứng. Gải pháp khóa đối xứng tạo ra một mã xác thực bản tin MAC (Message
Authentication Code) dựa trên một hàm giản lược thông điệp có khóa tác động (keyed
message digest function). Giải pháp khóa không đối xứng tạo ra một chữ ký số (digital
signature) bằng cách mật mã giản lược thông điệp MD với khóa công khai của người
gửi.
4.3.1.1 Giản lược thông điệp MD dựa trên các hàm băm một chiều
trong một ngày viết 100 văn bản, như vậy tổng số văn bản mới chỉ là 365.10 14. Nếu mỗi
văn bản có một dấu vân tay xác định thì cũng chỉ có một phần rất nhỏ trong số 10 38 khả
năng có thể của MD được sử dụng.
b) Các hàm băm một chiều
Các hàm băm một chiều được sử dụng để tính MD. Một hàm băm được coi là tốt
nếu thỏa mãn các yêu cầu sau:
- Việc tính toán MD đơn giản, hiệu quả, cho phép tính MD của các bản tin có
kích thước nhiều GB.
- Không có khả năng tính ngược lại bản tin ban đầu khi biết giá trị MD của nó.
Đây là lý do tại sao hàm băm được gọi là một chiều.
- Giá trị MD phải phụ thuộc vào tất cả các bit của bản tin tương ứng. Dù chỉ một
bit trong bản tin bị thay đổi, thêm vào hoặc xóa bớt thì sẽ có khoảng 50% các bản tin
trong MD sẽ thay đổi giá trị một cách ngẫu nhiên. Hình 4.9 diễn tả điều này. Hàm băm
có khả năng thực hiện ánh xạ message - to - digest giả ngẫu nhiên, nghĩa là với hai bản
tin gần giống hệt nhau thì mã hash của chúng lại hoàn toàn khác nhau.
- Do bản chất giả ngẫu nhiên của hàm băm và số lượng cực lớn các giá trị hash có
thể có, nên hầu như không có khả năng hai bản tin phân biệt có cùng giá trị hash. Vì vậy,
với các ứng dụng thực tế hiện nay, có thể coi đầu ra của hàm băm thực hiện trên một bản
tin là dấu vân tay duy nhất của bản tin đó.
Hình 4.9: Một bít thay đổi trong bản tin dẫn đến 50% các bít MD thay đổi
Có hai hàm băm thông dụng là MD5 (Message Digest #5) và SHA (Secured Hash
Funtion). MD5 do Ron Rivest (RSA Sercurity Inc) phát minh, tính giá trị hash 128 bit từ
một bản tin nhị phân độ dài tùy ý. SHA được phát triển bởi NIST (US National Institute
of Standards and Technology) với sự cộng tác của NSA (National Security Agency).
SHA-1 tính giá trị hash 160 bit từ một bản tin nhị phân có độ dài tùy ý. Thuật toán này
tương tự như MD5 nhưng an toàn hơn vì kích thước hash lớn hơn. Thuật toán SHA-2 với
các kích thước hash là 256, 384 và 512 bít đã được NIST công bố vào tháng 10 năm 2000
để thích ứng với các khóa có độ dài lớn của thuật toán AES.
Document Pad L
N x 512 bit
H H H
Hàm băm a Hàm băm a Hàm băm a
I s s s
MD5/SHA MD5/SHA MD5/SHA
V h h h
Kênh truyền
Key Key
Keyed Keyed
Hash Funtion Hash Funtion
MAC
So sánh
MAC MAC
Hình 4.12: Xác thực tính toàn vẹn dựa trên mã xác thực bản tin MAC
Lý do xây dựng mã xác thực bản tin MAC là vì bản thânh MD không cung cấp
bất kỳ bảo vệ nào chống lại việc thay đổi bất hợp pháp nội dung của bản tin. Khi một
người nào đó thay đổi nội dung của bản tin trên đường truyền dẫn thì anh ta cũng có thể
tính lại giá trị hash MD5 hay SHA dựa trên nội dung bản tin đã thay đổi đó. Như vậy, tại
phía thu, giá trị hash của bản tin nhận được vẫn hoàn toàn hợp lệ.
Để giải quyết vấn đề này, phải sử dụng một khóa bí mật trong quá trình tính vân
tay của bản tin thì mới đảm bảo chống lại những thay đổi bất hợp pháp. Phía thu (nơi có
khóa bí mật) tạo ra một giản lược thông điệp hợp lên (valid MD), gọi là mã xác thực bản
tin MAC. Phía thu sử dụng khóa bí mật để xác định tính hợp lệ của bản tin bằng cách
tính lại giá trị MAC và so sánh với giá trị MAC mà phía phát truyền đi. Đến đây, vấn đề
là xây dựng các hàm băm một chiều sử dụng khóa dựa trên các hàm băm đã trình bày ở
trên.
RFC 2104 đưa ra một phương án để xây dựng các hàm băm có sử dụng khóa trên
cơ sở các hàm băm như MD5, SHA.
XOR
XOR
Hash MAC
Hình 4.13: Quá trình tạo mã xác thực bản tin MAC
Phía trước bản tin cần xác thực, thêm vào 512 bit khóa bên trong (inner key).
Khóa này được hình thành bằng cách thêm các bit đêm (padding) vào khóa bí mật cho
đủ 512 bit, sau đó XOR khối này với các giá trị 0x36. Để đảm bảo tính an toàn cao nhất
thì độ dài của khóa bí mật phải lớn hơn hoặc bằng độ dài của giá trị hash (128 bit đối với
MD5 và 160 bit đối với SHA).
Bản tin bây giờ được đưa tới hàm băm. Vì giá trị hash của khối dữ liệu trước luôn
đóng vai trò là vectơ khởi tạo cho khối sau, nên hàm băm thực hiện trên khối inner key
sẽ tạo ra một vectơ khởi tạo để thực hiện hash cho bản tin gốc ban đầu, giá trị của vectơ
khởi tạo này chỉ phụ thộc vào khóa bí mật mà thôi. Như vây, khi khóa bí mật giữ nguyên
thì tất cả các bản tin đều có thể được ký sử dụng cùng một vectơ khởi tạo bí mật.
Tương tự đối với khóa ngoài (outer key). Khóa ngoài được hình thành bằng cách
XOR khóa bí mật (đã chèn các bit đệm) với các giá trị 0x5C. Khi đó, hàm băm thực hiện
trên khối outer key sẽ tạo ra một vectơ khởi tạo để thực hiện hash cho chính giá trị hash
tính ở vòng thứ nhất.
Thông thường giá trị MAC cuối cùng được tạo ra bằng cách cắt ngán giá trị hash
thu được bởi MD5 (128 bit) và SHA (160 bit) xuống còn 96 bit. Mặc dù việc cắt ngắn
này làm giảm đáng kể số các tổ hợp cần thử đối với một tấn công kiểu brute fore, nhưng
nó có tác dụng che dấu trạng thái bên trong của thuật toán băm và sẽ khó khăn hơn rất
nhiều cho kẻ tấn công để có thể đi từ đầu ra của vòng băm thứ hai tới kết quả trung gian
của vòng băm thứ nhất.
Phưong pháp xác thực tính toàn vẹn sử dụng MAC có ưu điểm là thực hiện nhanh
và hiệu quả, vì việc tạo MAC dựa trên các hàm băm tương đối đơn giản, do đó thường
được sử dụng để xác thực các cụm dữ liệu ở tốc độ cao. Nhược điểm là phía thu phải
biết được khóa bí mật thì mới xác định được tính toàn vẹn của bản tin, dẫn đến vấn đề
phân phối khóa một cách an toàn.
Chữ ký số là một phương pháp để bảo vệ chống sửa đổi bất hợp pháp nội dung
bản tin. Chữ ký số được thực hiện bằng cách mật mã giá trị hash thu được từ một hàm
băm một chiều. Hình 4.14 diễn tả giá trị hash (MD5 hoặc SHA) của bản tin được mật mã
với khóa bí mật của phía phát để tạo thành chữ ký số và được truyền đi cùng với bản tin
tương ứng.
Kênh truyền
Hàm băm Giá trị băm
So sánh
Giá trị băm Giá trị băm
Chữ ký Chữ ký
- Nguy cơ thứ hai: mật khẩu phải được lưu trong một phương tiện lưu trữ của
máy chủ, thông thường là máy chủ đăng nhập (login server). Việc lưu trữ mật khẩu cũng
là một nguy có mất an toàn cao.
b) Phương thức xác thực dựa trên các giao thức hỏi đáp
Để xác thực qua một kênh không an toàn, có thể sử dụng một giao thức hỏi đáp
để kiểm tra xem đối tác cần xác thực có sở hữu một giá trị bí mật để xác thực đối tác đó
hay không. Phương thức này không yêu cầu phải trao đổi các giá trị bí mật thông qua
kênh không an toàn. Giao thức hỏi đáp này sử dụng mã xác thực bản tin MAC hoặc chữ
ký số.
- Giao thức hỏi đáp sử dụng mã xác thực bản tin MAC
U Kênh không Server
ser an toàn
IDU RU RS RS Giá trị ngẫu nhiên
(Nonce)
Khẩu lệnh
MAC MAC
Máy chủ dựa vào các thông tin mà nó có (bao gồm ID, R U, RS, khóa bí mật) để
tính giá trị MAC, sau đó so sánh với MAC mà người sử dụng gửi đi. Nếu người sử dụng
có đúng khóa bí mật sử dụng chung thì hai giá trị này trùng khớp với nhau và quá trình
xác thực thành công.
- Giao thức xác thực sử dụng chữ ký số
Giao thức hỏi đáp cũng có thể dựa trên chữ ký số, sử dụng mật mã khóa công
khai. Người sử dụng là người duy nhất có khóa bí mật, còn một server bất kỳ đề có khóa
công khai tương ứng của người sử dụng đó nếu muốn xác thực. Người sử dụng tạo ra
một mã hash từ các thông tin: ID, RS (nhận được từ máy chủ như một khẩu lệnh), RU.
Bằng cách mật mã giá trị hash với khóa bí mật, sẽ tạo thành một chữ ký số để gửi lại
máy chủ (như một trả lời).
Các hệ thống mật mã khóa công khai đã trở nên thông dụng vì khóa công khai
không cần phải giữ bí mật và do đó có thể được phân phối một cách rộng rãi. Vì vậy, khi
một máy chủ xác thực một người sử dụng bằng cách kiểm tra chữ ký trên cơ sở khóa
công khai của người sử dụng đó thì vấn đề đặt ra là liệu cặpkhóa công khai/ bí mật sử
dụng trong quá trình xác thực có thực sự thuộc về người sử dụng này hay không.
U
Kênh không Server
ser an toàn Giá trị ngẫu nhiên
IDU RU RS RS
(Nonce)
Khẩu
lệnh
Hash IDU RU RS
Sig
A B
Signed by D
Certificate
C D
Signed by B
Signed by D Trust
Signed by C
Certificate
Hình 4.17: Mô hình tin tưởng thứ nhất (PGP Web of Trust)
Trong mạng tin tưởng, mỗi đối tác tham gia sẽ yêu cầu các đôi tác khác ký vào
mã hash của chứng thực (chưa nhận dạng, chẳng hạn địa chỉ email và khóa công khai)
của đối tác đó. Giả sử C nhận được một email ký gửi bởi A, C sẽ lấy chứng thực của A
từ một thư mục công cộng và thấy rằng chứng thực đó đã được ký bởi B. Tiếp theo, C
lấy chứng thực của B và thấy rằng nó đã được ký bởi D. Tiếp theo, C lấy chứng nhận
của D và thấy rằng nó đã được ký bởi chính mình. Đến đây, các mắt xích đã hoàn tất và
có thể thiết lập tin tưởng A.
Cách tiếp cận kiểu mạng tin tưởng chỉ thích hợp với một nhóm nhỏ người sử
dụng. Khi số người cần được xác thực tăng lên, chẳng hạn hàng triệu người, số lượng
các đường liên kết trung gian trung bình tăng và kéo theo tăng việc tìm các chứng thực.
Ngoài ra, khi số các mắt xích tin tưởng tăng thì độ tin cậy cũng giảm đi. Ưu điểm của
mạng tin tưởng là không cần sự có mặt của một nhà phân phối trung tâm (central
authority).
Verisign Swisskey
Root CA
Intermediate CA
Amazon
Verisign
Trust
Hình 4.18: Mô hình tin tưởng thứ hai (phân cấp tin tưởng với các CAs)
- Các nhà phân phối chứng thực gốc (Root CAs)
Tại mức trên cùng của phân cấp các mắt xích tin tưởng là một số nhà phân phối
chứng thực gốc. Các Root CAs được dùng phổ biến là: Verisign, RSA, Baltimore,
Rntrust, Deutsche Telekom và Swisskey.
- Các nhà phân phối chứng thực trung gian (Intermediate CAs)
Root CAs có thể trực tiếp cấp phát các chứng thực cho người sử dụng. Tuy nhiên
đối với các tổ chức trung bình hoặc lớn thì sẽ thuận lợi hơn nhiều nếu tự thiết lập lấy
một CS, khi đó họ có thể tự cấp phát hoặc hũy bỏ các chứng thực cho các các nhân trong
tổ chức. Bản thân chứng thực của CA trung gian này thường được cấp phát với ký tự
Root CA.
Về nguyên tắc thì có thể thực hiện một số tùy ý các phân cấp, nhưng thông
thường chỉ sử dụng từ hai đến ba cấp từ chứng thực của người sử dụng đến Root CA.
- Cấu trúc chung của một chứng thực X.509
Mạng tin tưởng thường sử dụng chứng thực OpenPGP (RFC 2440). Còn mô hình
phân cấp tin tưởng thường sử dụng chứng thực ITU-T X.509 (RFC 2459).
Version
Serial Number
Hàm hash
Signature*
Issuer
Validity
Subject
Hash/ Fingerprint
SubjectPublicKeyInfo
IssuerUniqueID Optional
SubjectUniqueID Optional
Extensions Optional
Encryption with
Issure’s Private Key
SignatureAlgorithm*
Signature
Hình 4.19: Cấu trúc chung của một chứng thực X.509
Một chứng thực X.509v3 bao gồm 3 phần
- Phần thân của chứng thực.
- Định nghĩa thuật toán sử dụng bởi CAs để ký chứng thực.
- Chữ ký đảm bảo tính xác thực của chứng thực, bao gồm mã hash của phần thân
chứng thực được mật mã với khóa bí mật của CAs.
Riêng phần thân của chứng thực bao gồm các thông tin sau:
i/ Version Number (số phiên bản): hiện tại có các phiên bản v1, v2, v3.
ii/ Serial Number: duy nhất được cấp bởi SA tương ứng.
iii/ Signature (chữ ký) và Issure: mô tả thuật toán được sử dụng để chứng thực.
iv/ Nhận dạng (ID) của CA phát hành và ký chứng thực.
v/ Nhận dạng (ID) của đối tượng sử dụng.
vi/ Khóa công khai của đối tượng sử dụng.
vii/ Các mở rộng tùy chọn của v2 hoặc v3.
Chương 5
THỰC HIỆN IP-VPN
VPN
Dial Dedicated
- Intranet VPN: kết nối các mạng chi nhánh với mạng trung tâm thông qua
Internet, đồng thời vẫn đảm bảo các đặc tính của một mạng riêng.
- Extranet VPN: kết nối với khách hàng, đối tác với một phần mạng trung tâm
thông qua Internet, đồng thời vẫn đảm bảo các đặc tính của một mạng riêng.
5.2.1 Access VPN
Có rất nhiều lựa chọn để thực hiện Access VPN, do vậy cần cân nhắc thận trọng
trước khi quyết định lựa chọn phương án nào. Như liệt kê ở đây, có nhiều công nghệ
truy nhập, từ các công nghệ quay số hoặc ISDN truyền thông tới các công nghệ mới như
truy nhập sử dụng DSL. Thêm vào đó phải lực chọn một kiến trúc VPN: kiến trúc khởi
tạo từ máy khách (client inititated) hay kiến trúc khởi tạo từ máy chủ truy nhập (network
access server initiated architure).
5.2.1.1 Kiến trúc khởi tạo từ máy khách
Đối với Access IP-VPN khởi tạo từ phia máy khách, mỗi PC của người sử dụng
từ xa phải cài đặt phần mềm IPSec. Khi người sử dụng quay số tới POP (Point of
Presence) của ISP, phần mềm này sẽ khởi tạo một đường ngầm IP-VPN và thực hiện
mật mã. Kiến trúc này rất an toàn vì dữ liệu được bảo vệ trên toàn bộ đường ngầm PC
của người sử dụng đến mạng trung tâm. Trong phương án này có thể sử dụng bất kỳ
công nghệ truy nhập nào để kết nối tới Internet. Thêm vào đó, phương án này là trong
suốt đối với nhà cung cấp dịch vụ ISP, nghĩa là có thể thực hiện IP-VPN mà không cần
thực hiện bất cứ thay đổi nào đối với ISP, chẳng hạn như mật mã dữ liệu. Nhược điểm
của mô hình này là phải cài đặt và quản trị phần mềm IPSec client trên tất cả các PC truy
nhập từ xa.
Private
Corporate Telecommuter
Network Client IPSec
Dial -up
Firewall Router
Gateway
POTS
Network
Access
Internet
Server
Modem
(NAS )
Dial -in
IPSecTunnel
MobileIP
Hình 5.2: Truy nhập IP-VPN từ xa khởi tạo từ phía người sử dụng
5.2.1.2 Kiến trúc khởi tạo từ máy chủ truy nhập NAS
Đối với truy nhập IP-VPN khởi tạo từ máy chủ truy nhập thì NAS (tại POP) sẽ
khởi tạo đường ngầm và thực hiện mật mã thay cho người sử dụng. Sẽ có một phần kết
nối không được bảo vệ giữa người sử dụng và POP. Phần kết nối còn lại được bảo đảm
an toàn bởi một đường ngầm và mật mã dữ lệu. Mô hình này dễ quản lí hơn, vì không
phải kiểm soát tất cả phần mềm IPSec client tại các PC truy nhập từ xa. Mô hình này
cũng dể dàng mở rộng hơn so với mô hình truy nhập khởi tạo từ người sử dụng vì chỉ
cần cấu hình máy chủ NAS, thay vì cấu hình tất cả các PC.
Service Provider Corporate
Network
NAS
PSTN
/ISDN
Internet Home
Gateway Server
Corporate
Servers
Computer Computer
Remote Users
Internet
Service
POP Provider POP
IPSec
Tunnel
Computer
Remote Router Initiated Computer
Mô hình này có một số lựa chọn thực hiện khác nhau. Trường hợp thứ nhất, ISP
quản lý, cung cấp và duy trì kết nối Internet cơ sở, còn bản thân tổ chức phải quản lý tất
cả các vấn đề như an toàn dữ liệu, quản lý router, máy chủ, các nguồn tài nguyên như
ngân hàng các modem quay số. Trường hợp thứ hai là mô hình lai (hybrid model). Trong
mô hình này, tổ chức và nhà cung cấp dịch vụ chia sẻ các công việc tương đối ngang
bằng, ISP cung cấp thiết bị VPN, đảm bảo QoS với mức băng tần thỏa thuận, còn phía
nhà quản trị mạng quản trị các ứng dụng và cấu hình, cung cấp các dịch vụ trợ giúp và
an toàn dữ liệu. Trường hợp thứ ba, nhà quản trị mạng chỉ quản lý các máy chủ an ninh,
còn ISP cung cấp toàn bộ giải pháp VPN, dịch vụ trợ giúp, huấn luyện…
5.2.3 Một số sản phẩm thực hiện VPN
Như ta đã biết, có nhiều hãng tham gia nghên cứu, phát triển các sản phẩm VPN,
mỗi hãng lại đưa ra nhiều dòng sản phẩm. Các hãng khác nhau có cách tiếp cận và ưu
nhược điểm riêng. Sau đây ví dụ về các sản phẩm của Cisco và Netsreen. Sản phẩm của
2 hãng này tương đối đa dạng và có thể phục vụ cho một phạm vi rộng các nhu cầu ứng
dụng khác nhau.
Bảng 5.1: Ví dụ về các sản phẩm của Cisco và Netsreen
Để minh họa, ta xét 2 trường hợp: ứng dụng kết nối remote Access và ứng dụng
Site-to-Site sử dụng thiết bị VPN 3000 Concentrantor của Cisco.
VPN concentrantor có các thông số kỹ thuật sau:
- Xác thực tính toàn vẹn dữ liệu: sử dụng thuật toán HMAC-MD5 (128 bit),
HMAC-SHA-1 (160 bit).
- Xác thực nguồn gốc dữ liệu: có thể cấu hình để sử dụng mật khẩu (khóa chia
sẻ trước) hoặc chữ ký số.
- Trao đổi khóa: sử dụng thuật toán Diffie-Hellman, chứng thực số.
- Mật mã dữ liệu: sử dụng một trong các thuật toán DES, 3DES ở chế độ CBC.
Trong tương lai, các thiết bị VPN cần hỗ trợ các thuật toán tiên tiến hơn, chẳng
hạn thuật toán mật mã AES, xác thực SHA-2.
5.3.1 Kết nối Client-to-LAN
Trong trường hợp này, người sử dụng từ xa cần kết nối vào mạng trung tâm để
truy nhập thư điện tử, các file cơ sở dữ liệu, trình diễn… Để thực hiện kết nối này, một
phương án là sử dụng thiết bị VPN 3000 Concentrator ở mạng trung tâm của tổ chức, và
phần mềm VPN 3000 Concentrantor Client tại máy tính của người sử dụng.
Application
Server
Telecommuter
VPN with VPN 3000
ISP ISP Client
Concentrator
Internet
Computer
PPP Computer
connectivity
Computer
IPSec Tunnel
- Mạng trung tâm, VPN 3000 Concentrator là một điểm cuối còn lại của đường
ngầm. Nó thực hiện giải mã, xác thực, và mở gói dữ liệu.
Telecommuter
Application VPN private IP with VPN 3000
Server ISP Client
192 .168 .1.5
Internet
VPN public IP Computer
Computer
172 .26 .26 .1
172 .26 .26.1 Adapter (NIC ) IP Address
203 .16 .5.19 203 .162 .5.19
192 .168 .1.10
ESP
192 .168 .1.10 Client IP address
192 .168 .1.20 192 .168 .1.20
DATA
- Thiết lập các quyền truy nhập của người sử dụng: thời gian, số giờ truy nhập,
các giao thức được phép…
- Quản trị các khóa an ninh để mật mã va giải mã.
- Thiết lập phiên trao đổi IPSec.
- Xác thực, mật mã và giải mã các dữ liệu đi qua đường ngầm.
Tunnel
VPN VPN
Concentrator Concentrator
Internet
VPNpublicIP VPNpublicIP
Computer
172 .26 .26 .1 203 .16 .5.19 Computer
DATA
KẾT LUẬN
VPN là công nghệ được sử dụng phổ biến hiện nay nhằm cung cấp kết nối an
toàn và hiệu quả để truy cập tài nguyên nội bộ công ty từ bên ngoài thông qua mạng
Internet. Mặc dù sử dụng hạ tầng mạng chia sẻ nhưng chúng ta vẫn bảo đảm được tính
riêng tư của dữ liệu giống như đang truyền thông trên một hệ thống mạng riêng.
Đồ án này đã đi sâu tìm hiểu các vấn đề kỹ thuật và mô hình thực hiện của công
nghệ IP-VPN. Trong đó, đường ngầm là nền tảng của IP-VPN, phạm vi của đồ án này đã
trình bày về các giao thức đường ngầm: PPTP, L2TP và IPSec. PPTP và L2TP là những
giao thức đường ngầm được phát triển dựa trên giao thức PPP. Hai giao thức này là các
chuẩn đã hoàn thiện và các sản phẩm hỗ trợ chúng tương đối phổ biến.
Đối với những ứng dụng yêu cầu an toàn dữ liệu cao thì IPSec là giao thức thích
hợp. IPSec hỗ trợ các phương pháp xác thực và mật mã mạnh nhất, có tính linh hoạt cao
do không bị ràng buộc bởi một phương pháp xác thực cũng như mật mã nào. Đây được
xem là giao thức tối ưu nhất cho IP-VPN và được tìm hiểu một cách chi tiết nhất. Bên
cạnh đó, đồ án đã trình bày một số thuật toán mật mã, xác thực, toàn vẹn dữ liệu là
những thuật toán được dùng kết hợp với IPSec.
Hiện nay, tại Việt Nam có rất nhiều hãng đang cung cấp các giải pháp VPN cho
các doanh nghiệp, mỗi hãng có một cấu hình VPN riêng. Do nhu cầu bảo mật thông tin
ngày càng được các doanh nghiệp quan tâm nhiều nên công nghệ IP – VPN hứa hẹn là
công nghệ rất có tiềm năng phát triển mạnh trong tương lai.
Hiện nay mạng viễn thông trên thế giới đang chuyển sang xu hướng IP hóa và sử
dụng công nghệ cho mạng thế hệ sau NGN. Do đó việc tích hợp giữa cố định và di động
đang đươc quan tâm và phát triển. Vì vậy, trong tương lai IP-VPN sẽ được ứng dụng
cho mạng điện thoại di động. Khi đó, các dịch vụ viễn thông sẽ rất linh hoạt, kết hợp
giữa truyền hình ảnh, số liệu và thoại. Đây cũng chính là hướng phát triển tiếp theo của
để tài.
Mặc dù đã cố gắng, nhưng do công nghệ IP-VPN có nhiều giải pháp để thực hiện
và liên quan đến nhiều giao thức và thuật toán phức tạp, thời gian và trình độ có hạn nên
đồ án này khó tránh khỏi thiếu sót. Tôi rất mong nhận được ý kiến đóng góp của thầy cô
và bạn bè để có thể sửa đổi, bổ sung cho những vấn đề trình bày trong đồ án này.