DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT Chữ viết tắt Ý nghĩa đầy đủ IPSec Internet Protocol Security VPN Private Virtual Network IP Internet Protocol TCP Transmission Control Protocol UDP User D
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN THANH SƠN
ỨNG DỤNG IPSEC VPN TRONG BẢO MẬT TẦNG MẠNG
LUẬN VĂN THẠC SĨ KỸ THUẬT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG DỮ LIỆU
Hà Nội – Năm 2018
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
NGUYỄN THANH SƠN
ỨNG DỤNG IPSEC VPN TRONG BẢO MẬT TẦNG MẠNG
Chuyên ngành: MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG DỮ LIỆU
LUẬN VĂN THẠC SĨ KỸ THUẬT MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG DỮ LIỆU
NGƯỜI HƯỚNG DẪN KHOA HỌC :
PGS TS NGUYỄN LINH GIANG
Hà Nội – Năm 2018
Trang 3LỜI CẢM ƠN
Đầu tiên, tôi muốn gửi lời biết ơn chân thành tới PGS, TS: Nguyễn Linh Giang, người trực tiếp hướng dẫn và giúp đỡ tận tình cho tôi về kiến thức, định hướng và tài liệu tham khảo quý báu
Tiếp theo, tôi xin cảm ơn các thầy cô trong Viện Công nghệ thông tin và Truyền thông – Đại học Bách khoa Hà Nội đã giảng dạy, truyền đạt kiến thức cho tôi trong suốt thời gian qua
Tôi cũng xin cảm ơn gia đình, bạn bè đã chia sẻ, giúp đỡ tôi trong học tập và thời gian thực hiện nghiên cứu đề tài này
Trong luận văn này chắc chắn không tránh khỏi những chỗ thiếu sót, tôi mong nhận được những lời góp ý, chỉ bảo từ các thầy cô để có thể hoàn thiện đề tài của mình tốt hơn
Hà Nội, ngày 22 tháng 03 năm 2018
Người thực hiện
Trang 4
LỜI CAM ĐOAN
Luận văn Thạc sĩ “Ứng dụng IPSec VPN trong bảo mật tầng mạng” là công trình của cá nhân tôi Các nội dung nghiên cứu và kết quả trình bày trong luận văn là trung thực rõ ràng Các tài liệu tham khảo và nội dung trích dẫn đã ghi rõ nguồn gốc
Hà Nội, ngày 22 tháng 03 năm 2018
Người thực hiện
Trang 5
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT
Chữ viết tắt Ý nghĩa đầy đủ
IPSec Internet Protocol Security
VPN Private Virtual Network
IP Internet Protocol
TCP Transmission Control Protocol
UDP User Datagram Protocol
SMTP Simple Mail Transfer Protocol
ICMP Internet Control Message Protocol
IGMP Internet Group Management Protocol
TLS Transport Layer Security
HTTP Hypertext Transfer Protocol
ISP Internet Service Provider
DES Digital Encryption Standard
3DES Triple Digital Encryption Standard
AES Advanced Encryption Standard
IDEA International Data Encryption Algorithm
SHA-1 Secure Hash Algorithm
DSA Digital Signature Algorithm
ECDSA Elliptic Curve Digital Signature Algorithm
ESP Encapsulating Security Payload
AH Authentication Header
IKE Internet Key Exchange
IPcomp Internet Protocol Payload Compression Protocol
MAC Message Authentication Code
AES Advanced Encryption Standard
NAT Network Address Translation
SPI Security Parameters Index
SA Security Association
ASCII American Standard Code for Information Interchange
IV Initialization Vector
DSS Digital Signature Standard
PKI Public Key Infrastructure
Trang 6SAD Security Association Database
SPD Security Policy Database
L2TP Layer 2 Tunneling Protocol
DSP Digital Subscriber Line
CRL Certifiactes Revocation Lists
DHCP Dynamic Host Configutation Protocol
PPTP Point-To-Point Tunneling Protocol
CA Certification Authority
OCSP Online Certificate Status Protocol
LDAP Light Directory Access Protocol
TACACS Terminal Access Controller Access Control System
RADIUS Remote Authentication Dial In User Service
EAP Extensible Authentication Protocol
CPU Central Processing Unit
PFS Perfect Forward Secrecy
IETF Internet Engineering Task Force
DPD Dead Peer Detection
NVD National Vulnerability Database
PAP Password Authentication Protocol
PPP Point-to-Point
GRE Generic Routing Encapsulation
MPPE Microsoft Point-to-Point Encryption
L2VPN Layer 2 Virtual Private Networks
URL Uniform Resource Locator
TLS Transport Layer Security
SSL Secure Sockets Layer
CLI Command Line Interface
ISAKMP Internet Security Association và Key Management Protocol EIGRP Enhanced Interior Gateway Routing Protocol
Trang 7DANH MỤC CÁC HÌNH VẼ
Hình 1: Kiến trúc Gateway-to-Gateway 14
Hình 2: Kiến trúc Host-to-Gateway 15
Hình 3: Kiến trúc Host-to-Host 16
Hình 4: Gói tin AH chế độ Tunnel 18
Hình 5: Gói tin AH trong chế độ Transoprt 18
Hình 6: AH header 20
Hình 7: Mẫu gói tin AH chế độ transport 20
Hình 8: Các trường của AH header 21
Hình 9: Gói tin ESP chế độ tunnel 22
Hình 10: Gói tin ESP chế độ transport 22
Hình 11: Các trường trong gói tin ESP 24
Hình 12: Gói tin ESP 25
Hình 13: ESP header 25
Hình 14: Diễn giải cặp bản tin đầu chế độ main 27
Hình 15: Diễn giải cặp bản tin thứ hai chế độ main 28
Hình 16: Diễn giải cặp bản tin thứ ba chế độ main 28
Hình 17: Biểu diễn của một bản tin chế độ quick 30
Hình 18: Chính sách an ninh tương ứng với peer 59
Hình 19: Cấu hình IPsec trasfrom set 60
Hình 20: Tạo crypto map 62
Hình 21: Áp dụng crypto map vào các interface 62
Hình 22: Hiển thị cấu hình chính sách IPsec 63
Hình 23: Hiển thị crypto map 63
Hình 24: Hiển thị IKE SA 64
Hình 25: Hiển thị các SA không được sử dụng 64
Hình 26: Thiết lập debug IPsec 65
Hình 27: Thực hiện gửi gói tin ping 65
Hình 28: Kết quả sử dụng IPsec khi gửi gói tin ping 66
Trang 8DANH MỤC CÁC BẢNG
Bảng 1: So sánh IPSec và các tùy chọn thay thế 55
Trang 9MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
DANH MỤC KÝ HIỆU, CHỮ VIẾT TẮT 3
DANH MỤC CÁC HÌNH VẼ 5
DANH MỤC CÁC BẢNG 6
MỤC LỤC 7
MỞ ĐẦU 9
1 Lý do chọn đề tài 9
2 Mục đích nghiên cứu 9
3 Phạm vi nghiên cứu 9
4 Bố cục luận văn 10
NỘI DUNG 11
Chương 1: Tổng quan bài toán bảo mật tầng mạng 11
1.1 Bài toán bảo mật tầng mạng 11
1.2 Internet Protocol Security (IPsec) 13
1.3 Mạng riêng ảo (VPN) 13
Chương 2: Tổng quan về IPSec 18
2.1 Authentication Header (AH) 18
2.2 Encapsulating Security Payload (ESP) 21
2.3 Internet Key Exchange (IKE) 25
2.4 Giao thức nén IP Payload Compression Protocol (IPComp) 31
2.5 Tích hợp các thành phần 32
Chương 3: Thực thi IPSec 36
3.1 Xác định nhu cầu 36
3.2 Thiết kế các giải pháp 37
3.3 Thực thi và kiểm thử mẫu 43
3.4 Triển khai giải pháp 46
3.5 Quản lý giải pháp 47
Chương 4: Các tùy chọn giao thức VPN 48
4.1 Giao thức VPN tầng liên kết dữ liệu 48
4.2 Giao thức VPN tầng giao vận 50
Trang 104.3 Giao thức VPN tầng ứng dụng 53
Chương 5: Kết quả thực nghiệm khi sử dụng IPSec 56
5.1 Kịch bản 56
5.2 Kết quả đạt được 63
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 67
TÀI LIỆU THAM KHẢO 68
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, Internet đã trở thành một điều không thể thiếu trong cuộc sống của con người Nó là một hệ thống thông tin toàn cầu có thể được truy nhập công cộng gồm các mạng máy tính được liên kết với nhau Hệ thống này truyền thông tin theo kiểu nối
chuyển gói dữ liệu (packet switching) dựa trên một giao thức liên mạng đã được chuẩn hóa (giao thức IP) Hệ thống này bao gồm hàng ngàn mạng máy tính nhỏ hơn của các doanh nghiệp, của các viện nghiên cứu và các trường đại học, của người dùng cá nhân và các chính phủ trên toàn cầu Mạng Internet mang lại rất nhiều tiện ích hữu dụng và cung cấp cho người dùng một khối lượng thông tin và dịch vụ khổng lồ Hiện nay, các tổ chức cơ quan hay chính phủ sử dụng Internet để giới thiệu các sản phẩm, dịch vụ hay điều hành bằng các website của mình Cùng với thời gian, nó sẽ phát triển thành thương mại điện tử, mọi hoạt động kinh doanh, các giao dịch, điều hành được thực hiện qua mạng Internet
Tuy nhiên, song song với những tiện ích không thể phủ nhận mà mạng Internet mang tới, người dùng còn đối mặt với hàng loạt các nguy cơ mà trong đó nguy cơ hàng đầu bị đánh cắp thông tin, thay đổi thông tin truyển tải một cách có chủ đích Bài toán đặt
ra là làm thế nào để bảo mật an toàn cho các dữ liệu trong quá trình truyền qua mạng? Làm thế nào có thể bảo vệ chống lại các cuộc tấn công trong quá trình truyền tải các dữ liệu đó?
Từ nhu cầu trên, luận văn đã nghiên cứu, tìm hiểu về bảo mật các dữ liệu qua mạng Internet bằng việc sử dụng giao thức IPSec Luận văn tập trung trình bày về IPSec và cũng nói sơ lược về VPN (sử dụng phổ biến nhất của việc triển khai IPsec)
2 Mục đích nghiên cứu
Giúp hiểu được lợi ích của việc sử dụng IPSec trong bảo mật các dữ liệu trên mạng Từ đó, có thể lựa chọn được giải pháp phù hợp với từng cấu trúc mạng hiện có Vì cơ sở hạ tầng mạng ở mỗi nơi là không giống nhau
3 Phạm vi nghiên cứu
Phạm vi nghiên cứu của luận văn :
● Nghiên cứu thuật toán, cơ chế và các gói tin của IPSec
● Nghiên cứu mạng riêng ảo VPN và các kiến trúc của nó
● Đánh giá kết quả khi sử dụng site-to-site IPSec VPN
Trang 124 Bố cục luận văn
Bố cục của luận văn được chia thành 4 chương như sau:
Chương 1: Tổng quan bài toán bảo mật tầng mạng
Chương 1 trình bày về tính cấp thiết của bảo mật tầng mạng, giới thiệu qua về IPsec và
kiến trúc của VPN
Chương 2: Tổng quan về IPSec
Chương 2 giới thiệu về các kiến thức tổng quan về IPSec Chương này trình bày về các
thành phần của công nghệ bảo mật này, và việc tích hợp các thành phần đó lại với nhau
Chương 3: Thực thi IPSec
Chương 3 trình bày về lên kế hoạch, thực thi, triển khai IPsec trong mạng danh nghiệp
Chương 4: Các tùy chọn giao thức VPN
Chương 4 liệt kê một số giao thức VPN được sử dụng như là lựa chọn thay thế hoặc kết
hợp IPsec Từ đó, đánh giá ưu, nhược điểm của các giải pháp
Chương 5: Kết quả thực nghiệm khi sử dụng IPSec
Chương 5 trình bày mô phỏng và đánh giá khi một topo mạng sử dụng IPSec
Trang 13NỘI DUNG
Chương 1: Tổng quan bài toán bảo mật tầng mạng
1.1 Bài toán bảo mật tầng mạng
Bảo mật tầng mạng-bảo vệ các giao tiếp trên mạng tại tầng này đó là việc đảm bảo định tuyến cho các gói tin qua mạng Đầu tiên là về giao thức TCP/IP và các tầng trong mô hình ấy, từ đó để thấy sự cần thiết của việc sử dụng công cụ bảo mật tại mỗi tầng để bảo vệ giao tiếp truyền thông
TCP/IP là mô hình mạng truyền thông được sử dụng rộng rãi trên toàn thế giới Truyền thông TCP/IP bao gồm có 4 tầng cùng làm việc với nhau Khi một người dùng muốn truyền dữ liệu tới các mạng khác, dữ liệu sẽ được truyền từ tầng cao nhất qua tầng trung gian rồi xuống tới tầng thấp nhất, tại mỗi tầng dữ liệu lại được đóng thêm các thông tin tương ứng Dữ liệu sau khi xuống tầng thấp nhất sẽ được đặt lên đường truyền vật lí để truyền tới đích Về cơ bản, dữ liệu ở một tầng sẽ được đóng gói thêm các thông tin nên kích thước sẽ lớn hơn khi xuống tầng dưới nó Bốn tầng trong mô hình TCP/IP từ trên xuống dưới:
● Application layer (tầng ứng dụng): Tầng này sẽ gửi và nhận dữ liệu từ một ứng
dụng cụ thể chẳng hạn như: DNS, HTTP, SMTP,…
● Transport layer (tầng giao vận): tầng này sẽ cung cấp các dịch vụ hướng kết nối
hoặc không kết nối để truyền tải các dịch vụ tầng ứng dụng trên mạng Tầng giao vận có thể lựa chọn đảm bảo truyền thông tin cậy TCP và UDP là 2 giao thức được sử dụng trong tầng giao vận này
● Network layer (tầng mạng): tầng này sẽ thực hiện định tuyến các gói tin trên
mạng IP là giao thức tầng mạng cơ bản trong mô hình TCP/IP Giao thức thông dụng khác được dùng trong tầng mạng như ICMP hay IGMP
● Data link layer (tầng liên kết dữ liệu): Tầng này sẽ xử lí truyền thông trên các
thành phần vật lí Giao thức phổ biến nhất tầng liên kết dữ liệu là Ethernet
Kiểm soát an ninh trên mạng truyền thông tồn tại trên mỗi tầng trong mô hình TCP/IP Dữ liệu sẽ được truyền theo từng tầng từ tầng cao xuống tầng thấp, tại mỗi tầng dữ liệu sẽ được đóng thêm các thông tin Chính vì vậy, một kiểm soát an ninh nếu chỉ thực hiện trên tầng cao nhất sẽ không thể cung cấp tính an toàn tuyệt đối cho các tầng thấp hơn Hơn thế nữa, tại các tầng thấp hơn có thực hiện các chức năng mà tầng trên không thể nhận thức được Dưới đây là các công cụ bảo mật có sẵn tại mỗi tầng trong mô hình TCP/IP:
● Tầng ứng dụng: Điều khiển riêng biệt cần phải được thiết lập trên mỗi ứng dụng
Ví dụ, nếu một ứng dụng cần có sự bảo vệ khi gửi tới mạng khác, ứng dụng có thể cần tới sự sửa đổi để có thể được cung cấp sự bảo vệ ấy Trong khi điều này cung
Trang 14cấp một mức độ kiểm soát rất cao và sự linh hoạt trong các ứng dụng bảo mật, thì nó lại có thể đòi hỏi một sự đầu tư nguồn lực lớn để thêm và cấu hình điều khiển đúng cho mỗi ứng dụng
● Tầng giao vận: Kiểm soát tại lớp này có thể được sử dụng để bảo vệ các dữ liệu
trong một phiên truyền thông giữa hai thiết bị đầu cuối Bởi vì các thông tin IP được thêm vào tại tầng mạng nên kiểm soát tầng giao vận không thể bảo vệ được
nó
● Tầng mạng: Kiểm soát tầng này có thể áp dụng cho tất cả các ứng dụng nhưng
không phải một ứng dụng nào đó cụ thể Ví dụ, tất cả các giao tiếp mạng giữa 2 thiết bị đầu cuối hoặc giữa 2 mạng có thể được bảo vệ ở tầng này mà không có bất kì sự sửa đổi nào trên máy chủ hoặc máy khách Kiểm soát tầng mạng cũng cung cấp một cách cho các nhà quản trị mạng để thực thi các chính sách bảo mật nhất định Một lợi thế của điều khiển tầng mạng là kể từ khi thông tin IP (ví dụ, địa chỉ IP) được thêm vào tại lớp này, các điều khiển có thể bảo vệ cả dữ liệu trong các gói tin lẫn các thông tin IP của mỗi gói tin Tuy nhiên, điều khiển tầng mạng cung cấp kiểm soát ít hơn và kém linh hoạt hơn khi bảo vệ các ứng dụng cụ thể so với các điều khiển tầng giao vận và ứng dụng
● Tầng liên kết dữ liệu: Điều khiển tầng liên kết dữ liệu được áp dụng cho tất cả
các giao tiếp mạng trên một liên kết vật lí cụ thể, chẳng hạn như là một mạch chuyên dụng giữa hai tòa nhà hoặc kết nối modem adial-up cho một nhà cung cấp dịch vụ Internet (ISP) Điều khiển lớp liên kết dữ liệu cho các mạch chuyên dụng thường được cung cấp bởi các thiết bị phần cứng chuyên biệt được biết đến là bộ mã hóa liên kết dữ liệu, điều khiển lớp liên kết dữ liệu cho các loại kết nối khác, chẳng hạn truyền thông asdial-up modem, và thường được cung cấp thông qua phần mềm Bởi vì tầng liên kết dữ liệu nằm dưới tầng mạng nên các điều khiển ở tầng này có thể bảo vệ cả dữ liệu lẫn thông tin IP Bởi vì điều khiển lớp liên kết dữ liệu là cụ thể cho một liên kết vật lý cụ thể, nên nó sẽ tương thích kém khi bảo vệ các kết nối với nhiều liên kết, chẳng hạn như thiết lập một VPN trên Internet
Bởi vì có thể cung cấp bảo vệ cho nhiều ứng dụng cùng một lúc mà không yêu cầu phải sửa đổi, nên kiểm soát an ninh tầng mạng đã được sử dụng thường xuyên để bảo mật trong truyền thông, đặc biệt là trên các mạng chia sẻ như
Internet Điều khiển bảo mật tầng mạng cung cấp một giải pháp duy nhất cho việc bảo vệ dữ liệu từ tất cả các ứng dụng, đó là bảo vệ thông tin IP Tuy nhiên, trong nhiều trường hợp, điều khiển tại các tầng khác là phù hợp hơn để cung cấp bảo vệ
so với điều khiển tầng mạng Ví dụ, nếu chỉ một hoặc 2 ứng dụng cần được bảo vệ thì một điều khiển tầng mạng có thể là sẽ vượt quá mức cần thiết Điều khiển tại mỗi tầng thường có các điểm mạnh và thuộc tính riêng mà các điều khiển tầng khác không có được
Trang 151.2 Internet Protocol Security (IPsec)
Internet Protocol Security (IPsec) đã nổi lên như kiểm soát an ninh mạng được sử dụng phổ biến nhất tầng mạng để bảo vệ giao tiếp truyền thông IPsec là một khuôn khổ của các tiêu chuẩn mở để đảm bảo tính riêng tư trong truyền thông tin qua mạng IP Tùy thuộc vào cách IPsec được thực hiện và cấu hình, nó có thể cung cấp các loại bảo vệ sau:
● Bảo mật: IPsec có thể đảm bảo rằng dữ liệu không thể được đọc bởi các bên
không được phép Điều này được thực hiện bằng cách mã hoá dữ liệu sử dụng thuật toán mã hóa và một khóa bí mật, giá trị chỉ được biết đến để hai bên trao đổi dữ liệu Các dữ liệu chỉ có thể được giải mã bởi một người có khóa bí mật
● Tính toàn vẹn: IPsec có thể xác định nếu dữ liệu đã được thay đổi (cố ý hoặc vô
ý) trong quá trình truyền Tính toàn vẹn của dữ liệu có thể được đảm bảo bằng cách tạo ra giá trị mã xác thực thông điệp (MAC), đó là kiểm tra mã hóa của dữ liệu Nếu dữ liệu được thay đổi và MAC được tính toán lại, thì các giá trị MAC cũ và mới sẽ khác nhau
● Xác thực ngang hàng: Mỗi thiết bị đầu cuối IPsec xác nhận danh tính của các
thiết bị đầu cuối IPsec khác mà nó muốn giao tiếp, đảm bảo rằng lưu lượng truy cập mạng và dữ liệu đang được gửi từ các máy mong đợi
● Replay Protection: Cùng một dữ liệu không được phân phối nhiều lần, và các dữ
liệu không được phân phối không được ra khỏi thứ tự Tuy nhiên, IPsec không đảm bảo rằng dữ liệu được phân phối theo thứ tự chính xác mà nó được gửi
● Bảo vệ phân tích truy cập: Một người giám sát truy cập mạng sẽ không biết các
bên đang giao tiếp, không biết quá trình giao tiếp đang diễn ra như thế nào, hoặc lượng dữ liệu đang được trao đổi Tuy nhiên, số lượng các gói tin được trao đổi có thể tính được
● Điều khiển truy cập: thiết bị đầu cuối IPsec có thể thực hiện lọc để đảm bảo rằng
chỉ người dùng có thẩm quyền IPsec mới có thể truy cập tài nguyên mạng cụ thể Thiết bị đầu cuối IPsec có thể cho phép hoặc chặn một số loại lưu lượng mạng, chẳng hạn như cho phép truy cập máy chủ Web, nhưng từ chối chia sẻ tập tin IPsec có thể được sử dụng trong ba lĩnh vực bảo mật khác nhau: mạng riêng ảo (Private Virtual Network hoặc VPN), bảo mật cấp ứng dụng và bảo mật định tuyến Vào thời điểm này, IPsec được sử dụng chủ yếu trong các ứng dụng vượt tường lửa VPN 1.3 Mạng riêng ảo (VPN)
Việc sử dụng phổ biến nhất của việc triển khai IPsec là cung cấp dịch vụ Mạng riêng ảo (VPN) VPN là một mạng ảo, được xây dựng bên trên các mạng vật lý hiện có, nó có thể cung cấp một cơ chế truyền thông an toàn cho dữ liệu và thông tin IP truyền giữa các mạng Bởi vì một VPN có thể được sử dụng trên các mạng hiện có, chẳng hạn như Internet, nên nó có thể tạo điều kiện thuận lợi cho việc truyền an toàn các dữ liệu nhạy cảm trên các mạng công cộng Điều này thường là ít tốn kém hơn so với các lựa
Trang 16chọn thay thế chẳng hạn như các đường viễn thông chuyên dụng giữa các tổ chức hoặc các văn phòng chi nhánh VPN cũng có thể cung cấp các giải pháp linh hoạt, chẳng hạn như đảm bảo truyền thông giữa truy cập mạng từ xa tới tổ chức là các máy chủ, bất kể nơi nào mà người làm việc từ xa đi tới Một VPN thậm chí có thể được thành lập trong một mạng lưới duy nhất để bảo vệ các truyền thông đặc biệt nhạy cảm từ các bên khác
trên cùng một mạng Ở đây, sẽ xem xét về 3 mô hình: gateway-to-gateway,
host-to-gateway, và host-to-host
1.2.1 Kiến trúc Gateway-to-Gateway
IPsec-based VPN thường được sử dụng để cung cấp truyền thông an toàn giữa hai mạng Điều này thường được thực hiện bằng cách triển khai một cổng VPN cho từng mạng và thiết lập kết nối VPN giữa hai cổng Truy cập giữa hai mạng cần phải vượt qua được bảo vệ trong các kết nối VPN thành lập giữa hai cổng VPN Các cổng VPN có thể là một thiết bị chuyên dụng chỉ thực hiện các chức năng VPN, hoặc nó có thể là một phần của một thiết bị mạng, chẳng hạn như một tường lửa hoặc router Hình sau cho thấy một ví dụ về một kiến trúc mạng IPsec sử dụng các mô hình gateway-to-gateway để cung cấp một kết nối bảo vệ giữa hai mạng
Hình 1: Kiến trúc Gateway-to-Gateway
Mô hình này là tương đối đơn giản để hiểu Để tạo thuận lợi cho các kết nối VPN, một trong những cổng VPN sẽ gửi một yêu cầu khác để thiết lập một kết nối IPsec Hai cổng vào VPN trao đổi thông tin với nhau và tạo ra một kết nối IPsec Định tuyến trên mỗi mạng được cấu hình để thiết bị trên một mạng có thể giao tiếp với các thiết bị trên mạng khác, việc truy cập mạng của họ sẽ được tự động định tuyến thông qua kết nối IPsec, và sẽ được bảo vệ một cách thích hợp Một kết nối IPsec sẽ thiết lập một đường hầm giữa các cổng để có thể hỗ trợ tất cả truyền thông giữa hai mạng, hoặc nhiều kết nối IPsec có thể bảo vệ các loại truy cập mạng khác nhau hay cấp truy cập mạng khác nhau
Hình trên minh họa một VPN gateway-to-gateway không cung cấp bảo vệ đầy đủ cho dữ liệu trong suốt quá trình truyền của nó Trong thực tế, mô hình gateway-to-
gateway chỉ bảo vệ dữ liệu giữa hai cổng, được biểu thị bằng nét liền Các đường đứt nét cho thấy rằng sự truyền thông giữa các máy khách VPN và cổng bên trong của nó, và giữa truy cập cổng từ xa với thiết bị đích (ví dụ, máy chủ) không được bảo vệ
Trang 17Các mô hình VPN khác cung cấp bảo vệ nhiều hơn trong quá trình truyền tin Mô hình gateway-to-gateway thường được sử dụng khi kết nối hai mạng đã được bảo đảm, chẳng hạn như liên kết một văn phòng chi nhánh đến trụ sở chính qua Internet Gateway-to-gateway VPN thường thay thế cho chuyển mạch trong mạng diện rộng (WAN), với chi phí lớn
Mô hình gateway-to-gateway là dễ nhất để thực hiện, trong quản lí người sử dụng và các thiết bị Gateway-to-gateway VPN thường là trong suốt đối với người sử dụng, không cần phải thực hiện xác thực riêng biệt chỉ để sử dụng VPN Ngoài ra, hệ thống của người sử dụng và thiết bị cuối (ví dụ, máy chủ) không cần phải cài đặt bất kỳ phần mềm VPN client nào, và cũng không yêu cầu cấu hình lại, để có thể sử dụng VPN
1.2.2 Kiến trúc Host-to-Gateway
Một mô hình VPN ngày càng trở lên phổ biến là mô hình host-to-gateway, nó thường được sử dụng để cung cấp sự an toàn cho các truy cập từ xa Tổ chức triển khai một cổng VPN vào mạng của họ, mỗi người dùng truy cập từ xa sau đó thiết lập một kết nối VPN giữa các máy tính cục bộ (host) với cổng VPN Với mô hình gateway-to-
gateway, cổng VPN có thể là một thiết bị chuyên dụng hoặc một phần của một thiết bị mạng khác Hình dưới đây sẽ cho ta thấy một ví dụ về một kiến trúc host-to-gateway, IPsec sẽ cung cấp một kết nối bảo vệ cho người sử dụng từ xa
Hình 2: Kiến trúc Host-to-Gateway
Trong mô hình này, các kết nối IPsec được tạo ra khi cần thiết, theo yêu cầu của mỗi người dùng VPN Thiết bị của các người dùng từ xa được cấu hình để hoạt động như IPsec khách hàng với cổng IPsec của tổ chức Khi một người dùng từ xa muốn sử dụng tài nguyên máy tính thông qua VPN, thiết bị sẽ thực hiện khởi tạo truyền thông với cổng VPN Người sử dụng thường xuyên thực hiện hỏi cổng VPN để xác thực trước khi kết nối có thể được thành lập Cổng VPN có thể tự mình thực hiện xác thực người dùng hoặc tham khảo ý kiến của một máy chủ xác thực chuyên dụng Trao đổi thông tin cổng, khách hàng và kết nối IPsec được thành lập Người sử dụng có thể sử dụng các tài nguyên của
tổ chức, truy cập mạng giữa các thiết bị của người sử dụng và cổng VPN sẽ được bảo vệ bởi các kết nối IPsec Truy cập giữa người sử dụng và hệ thống không được kiểm soát
Trang 18bởi tổ chức cũng có thể được định tuyến thông qua cổng VPN, điều này cho phép IPsec có thể áp dụng bảo vệ cho các truy cập này nếu muốn
Theo như hình vẽ, có thể thấy rằng mô hình VPN, host-to-gateway, không cung cấp bảo vệ đầy đủ cho dữ liệu trong suốt quá trình truyền của nó Các đường đứt nét cho thấy rằng truyền thông giữa cổng và thiết bị (ví dụ, máy chủ) là không được bảo vệ Mô hình host-to-gateway thường được sử dụng khi kết nối một thiết bị trên mạng không được bảo vệ với tài nguyên trên mạng đã được bảo vệ, chẳng hạn như liên kết các nhân viên đi
du lịch trên khắp thế giới đến trụ sở chính qua Internet Mô hình Host-to-gateway thường được sử dụng để thay thế modem dial-up Mô hình host-to-gateway có một số điều phức tạp khi tiến hành thực hiện và duy trì cũng như quản lí các thiết bị và người dùng Mô hình Host-to-gateway thường không minh bạch cho người dùng bởi vì họ phải xác thực trước khi sử dụng VPN Ngoài ra, trên thiết bị của người sử dụng cần phải có phần mềm VPN client
1.2.3 Kiến trúc Host-to-Host
Kiến trúc VPN ít được sử dụng nhất là mô hình host-to-host, nó chỉ được sử dụng cho các mục đích đặc biệt, chẳng hạn như quản trị hệ thống thực hiện quản lý từ xa của một máy chủ duy nhất Trong trường hợp này, tổ chức sẽ cấu hình máy chủ cung cấp dịch
vụ VPN và quản trị hệ thống máy chủ để hoạt động như các máy khách VPN Các quản trị viên hệ thống sử dụng VPN client khi cần thiết để thiết lập mã hóa kết nối đến máy chủ từ xa Hình dưới đây cho thấy một ví dụ về kiến trúc mạng IPsec sử dụng mô hình host-to-host để cung cấp một kết nối tới máy chủ đã được bảo vệ cho một người sử dụng
Hình 3: Kiến trúc Host-to-Host
Trong mô hình này, các kết nối IPsec được tạo ra cho mỗi người dùng VPN khi cần thiết Thiết bị của người sử dụng phải được cấu hình để hoạt động như IPsec khách hàng với máy chủ IPsec Khi một người dùng muốn sử dụng tài nguyên trên máy chủ IPsec, thiết bị của người sử dụng tiến hành khởi tạo truyền thông với máy chủ IPsec Máy chủ IPsec sẽ yêu cầu người dùng xác thực trước khi kết nối có thể được thành lập Nếu
Trang 19việc xác thực là thành công, kết nối IPsec được thành lập, máy khách và máy chủ có thể trao đổi thông tin với nhau Khi đó, người sử dụng có thể sử dụng máy chủ, và truy cập mạng giữa thiết bị người dùng và máy chủ sẽ được bảo vệ bởi các kết nối IPsec
Như thể hiện trong hình, mô hình VPN, host-to-host, là mô hình duy nhất cung cấp bảo vệ cho dữ liệu trong suốt quá trình truyền Điều này có thể là một vấn đề, bởi vì không thể tích hợp vào mạng hệ thống tường lửa, hệ thống phát hiện xâm nhập, và các thiết bị khác để kiểm tra dữ liệu được giải mã, và điều này chắc chắn sẽ làm mất đi tính bảo mật của các tầng Mô hình host-to-host thường được sử dụng khi có một số lượng nhỏ người sử dụng tin cậy, cần phải sử dụng hoặc quản lý một hệ thống từ xa, yêu cầu sử dụng một trong các giao thức an toàn và có thể được cập nhật để cung cấp các dịch vụ VPN
VPN Host-to-host là mô hình không minh bạch cho người dùng bởi vì họ phải xác thực trước khi sử dụng VPN Ngoài ra, tất cả các hệ thống người dùng và máy chủ sẽ tham gia vào VPN cần phải cài đặt và/hoặc cấu hình phần mềm VPN cụ thể
Trang 20Chương 2: Tổng quan về IPSec
IPsec là một tập hợp các giao thức hỗ trợ bảo vệ truyền thông trên mạng IP Các giao thức IPsec làm việc với nhau theo nhiều cách kết hợp để cung cấp sự bảo vệ cho giao tiếp Ở đây sẽ tập trung vào 3 thành phần chính: các giao thức Encapsulating
Security Payload (ESP), Authentication Header (AH) và Internet Key Exchange (IKE) Phần này cũng nói đến việc sử dụng IP Payload Compression Protocol (IPcomp) như một thành phần của việc thực hiện IPsec
2.1 Authentication Header (AH)
AH là một trong những giao thức của IPsec, cung cấp việc bảo đảm tính toàn vẹn cho phần dữ liệu và header của gói tin Ngoài ra, nó có thể tùy chọn để cung cấp replay protection và bảo vệ truy cập AH không thể mã hóa bất kỳ phần nào của gói tin Trong các phiên bản IPsec đầu tiên, giao thức ESP có thể cung cấp mã hóa nhưng không có xác thực, do đó AH và ESP thường được sử dụng chung để cung cấp cả sự bảo đảm tin cậy và toàn vẹn dữ liệu cho truyền thông Tuy nhiên tính năng xác thực đã được thêm vào ESP trong phiên bản IPsec thứ 2, AH trở nên ít quan trọng Trong thực tế một số phần mềm IPsec không còn hỗ trợ AH Tuy nhiên, AH vẫn có giá trị bởi vì AH có thể xác thực
1 phần của packet mà ESP không thể và nhiều triển khai IPsec hiện nay vẫn sử dụng AH
2.1.1 Các chế độ AH
AH có hai chế độ: transport và tunnel Trong chế độ tunnel, AH tạo một IP header mới cho mỗi gói tin, trong chế độ transport, AH không tạo IP header mới Trong kiến trúc IPsec có sử dụng gateway, địa chỉ IP nguồn và IP đích thật của gói tin phải được thay đổi thành địa chỉ IP gateway Bởi vì chế độ transport không thể thay đổi IP header gốc hoặc tạo một IP header mới nên chế độ transport thường sử dụng kiến trúc host-to-host Như trong hình 4 và 5, AH cung cấp sự đảm bảo toàn vẹn cho các gói tin, bất kể chế độ nào được sử dụng (Trường IP header không dự đoán được trong khi chuyển tiếp là không đảm bảo toàn vẹn)
Hình 4: Gói tin AH chế độ Tunnel
Hình 5: Gói tin AH trong chế độ Transoprt
Trang 212.1.2 Quá trình đảm bảo toàn vẹn
Bước đầu tiên của đảm bảo toàn vẹn là tạo một hash sử dụng thuật toán băm có khóa (keyed hash), hay cũng gọi là thuật toán mã xác thực thông điệp (message
authentication code - MAC) Một thuật toán băm cơ bản tạo ra một hash dựa trên thông điệp, trong khi thuật toán băm có khóa tạo ra hash dựa trên cả thông điệp và khóa mật được chia sẻ ở 2 đầu Hash được thêm vào gói tin và gói tin được gửi đến bên nhận Bên nhận có thể sinh lại hash bằng cách sử dụng khóa chia sẻ và thông điệp nhận được, sau đó xác nhận rằng hai hash giống nhau, khi đó gói tin được đảm bảo toàn vẹn IPsec sử dụng thuật toán hash message authentication code (HMAC) thực hiện hai keyed hash Ví dụ các thuật toán keyed hash là HMAC-MD5 và HMACSHA-1 Một số thuật toán MAC thông thường là AES Cipher Block Chaining MAC (AES-XCBCMAC-96)
Về kỹ thuật, hình 4 và 5 có phần nào đó dễ gây hiểu nhầm bởi vì nó không thể bảo vệ tính toàn vẹn của IP header Chắc chắn một số trường IP header, như là Time to Live (TTL) và IP header checksum là động và có thể thay đổi trong suốt đường đi của gói tin Nếu hash được tính trên tất cả các giá trị của IP header gốc, một số giá trị có thể thay đổi hợp lệ trong quá trình truyền, hash được tính lại sẽ khác Tại đích có thể kết luận rằng gói tin đã thay đổi trong quá trình truyền và tính toàn vẹn đã bị vi phạm Để tránh vấn đề này, các trường IP header có thể thay đổi hợp lệ theo cách không thể đoán được trong quá trình truyền sẽ được loại trừ khỏi tính toán bảo đảm toàn vẹn
Theo cách giải thích tương tự như trên ta có thể thấy được tại sao AH thường không tương thích với sự thực thi network address translation (NAT) Địa chỉ nguồn và địa chỉ đích được cho vào trong tính toán đảm bảo toàn vẹn Nếu địa chỉ này được thay đổi do NAT (ví dụ như đổi địa chỉ nguồn thì địa chỉ private thành địa chỉ public), tính toán đảm bảo toàn vẹn ở đích sẽ không giống với giá trị nhận được (giá trị tính toán ở nguồn), ở đây là giá trị hash
2.1.3 AH header
AH thêm header vào mỗi gói tin Như trong hình 6, mỗi AH header chứa 6 trường:
● Next Header: Chứa IP protocol number chỉ ra giao thức đóng gói của payload
packet tiếp theo Trong chế độ tunnel, payload packet là một gói tin IP do dó, Next Header chứa giá trị 4 tức là IP đóng gói trong IP Ở chế độ transport payload là một giao thức ở tầng transport, thường là TCP (có protocol number là 6) hoặc UDP (có protocol number là 17)
● Payload Length: chứa chiều dài của payload (đo bằng đơn vị 4 bytes) trừ 2, ví dụ
chiều dài của payload là 12 byte, giá trị trong Payload Length sẽ là 1 (3 – 2 = 1)
● Reserved: trường này để dùng cho tương lai do đó nó để giá trị là 0
● Security Parameters Index (SPI): Mỗi điểm cuối của mỗi phiên kết nối IPsec có
một giá trị SPI tự chọn, nó đóng vài trò như một định danh duy nhất cho kết nối
Trang 22Nơi nhận sử dụng giá trị SPI cùng với địa chỉ IP đích và loại giao thức IPsec (ở đây là AH) để xác định Security Association (SA) nào đang được sử dụng Nó chỉ
ra cho thiết bị nhận giao thức IPsec và thuật toán nào được áp dụng trên gói tin
● Sequence Number: Mỗi gói tin được gắn với một sequence number, và chỉ những
gói tin có sequence number nằm trong cửa sổ trượt mới được chấp nhận Nó bảo vệ khỏi tấn công truyền lại bởi vì những packet trùng sẽ có cùng sequence number Điều này cũng giúp ngăn chặn tấn công từ chối dịch vụ bởi các gói tin cũ được truyền lại sẽ có sequence number nằm ngoài cửa sổ trượt, và sẽ bị loại bỏ ngay mà không cần thực hiện bất cứ xử lý nào
● Authentication Data: trường này chứa đầu giá trị MAC được tính toán bởi bên
gửi Bên nhận khi nhận được gói tin, tính toàn lại MAC và so sánh với giá trị trong trường này để xác nhận rằng gói tin không bị thay đổi trong quá trình truyền
Hình 6: AH header
2.1.4 Cách AH làm việc
Hình 7 cho thấy các byte trong gói tin AH Giá trị ở bên trái là giá trị các byte ở dạng hexa, giá trị bên phải là chuyển đổi mỗi giá trị ở bên trái sang ký tự ASCII (các byte không thể chuyển thành các ký tự ASCII in được thì để dạng dấu chấm) Các phân cách trong gói tin AH: Ethernet header, IP header, AH header và payload Theo các hình 4 và
5 thì đây là gói tin ở chế độ transport bởi vì nó chỉ chứa 1 IP header Trong hình này, payload chứa một gói tin ICMP echo request cho lệnh ping Gói tin ping nguyên gốc chứa các ký tự theo trình tự tăng dần của bảng chữ cái, thể hiện bằng các giá trị hexa trong mỗi byte được tăng dần (như là 61, 62, 63) Sau khi AH được áp dụng, nội dung gói tin ICMP không bị ảnh hưởng Bởi vì AH chỉ cung cấp sự bảo đảm toàn vẹn dữ liệu, không mã hóa
Hình 7: Mẫu gói tin AH chế độ transport
Trang 23Hình 8 cho thấy các trường trong AH header từ 4 gói tin đầu tin trong 1 phiên AH giữa host A và B Tên các trường được ghi ở AH header đầu tiên, các trường này tương ứng với các trường trong hình 6
● SPI: host A sử dụng giá trị cdb59934 cho trường SPI trong cả 2 gói tin, host B sử
dụng giá trị a6be2c00 cho cả 2 gói tin Điều này phản ánh một kết nối AH bao gồm 2 kết nối 1 chiều, mỗi kết nối có một SPI
● Sequence Number: Mỗi host khởi tạo sequence number là 1 và đến gói tin thứ
hai, cả 2 host đều tăng sequence number lên 2
● Authentication Data: thông tin xác thực (bảo đảm toàn vẹn), là một keyed hash
dựa trên hầu như tất cả các byte trong gói tin, khác nhau với mỗi gói tin Giá trị này khác nhau ngay cả khi chỉ có 1 byte trong phần được chọn để băm của gói tin thay đổi
Hình 8: Các trường của AH header
2.2 Encapsulating Security Payload (ESP)
ESP là giao thức bảo mật chính thứ 2 trong IPsec Trong phiên bản đầu tiên của IPsec, ESP chỉ cung cấp mã hóa cho packet payload Đảm bảo toàn vẹn, nếu cần được cung cấp bởi giao thức AH Trong phiên bản IPsec thứ 2, ESP trở nên linh hoạt hơn Nó có thể thực hiện xác thực để cung cấp sự đảm bảo toàn vẹn, mặc dù không hỗ trợ cho outermost IP header Mã hóa ESP cũng có thể được vô hiệu hóa thông qua thuật toán
Trang 24Null Encryption Do đó trong các triển khai IPsec, ESP có thể được dùng để cung cấp chỉ mã hóa, chỉ đảm bảo toàn vẹn hoặc cả mã hóa và đảm bảo toàn vẹn
Hình 9: Gói tin ESP chế độ tunnel
Chế độ ESP tunnel được sử dụng nhiều hơn chế độ ESP transport Trong chế độ transport, ESP sử dụng IP header gốc thay vì tạo ra IP header mới Hình 10 cho thấy chế độ transport, ở chế độ này mã hóa ESP chỉ có thể mã hóa và (hoặc) đảm bảo toàn vẹn cho packet payload và các thành phần ESP, nhưng không thể mã hóa hay đảm bảo toàn vẹn cho IP header Cũng như AH, chế độ ESP transport cũng chỉ dùng trong kiến trúc host-to-host Ngoài ra, chế độ transport cũng không tương thích với NAT Ví dụ, trong mỗi gói tin TCP, checksum được tính trên cả trường TCP và IP, bao gồm địa chỉ nguồn và đích trong IP header Nếu NAT được sử dụng một trong hai hoặc cả hai địa chỉ IP này sẽ thay đổi, do đó cần tính lại TCP checksum Nếu ESP mã hóa gói tin, TCP header sẽ được mã hóa, làm cho không thể tính toán lại checksum, do đó NAT thất bại Đây không phải là vần đề trong chế độ tunnel bởi vì gói tin TCP sẽ được ẩn đi (đóng gói bởi IP header), NAT sẽ không tính lại TCP checksum Tuy nhiên chế độ tunnel và NAT có những vấn đề tương thích khác
Hình 10: Gói tin ESP chế độ transport
Trang 252.2.2 Quá trình mã hóa
ESP sử dụng mật mã đối xứng để cung cấp mã hóa cho các gói tin IPsec Theo đó, cả hai thiết bị đầu cuối của một kết nối IPsec được bảo vệ bởi mã hóa ESP phải sử dụng cùng khóa để mã hóa và giải mã các gói tin Khi một thiết bị mã hóa dữ liệu, nó chia dữ liệu thành các khối nhỏ (với thuật toán AES, mỗi khối 128 bit), sau đó thực hiện nhiều hoạt động mã hóa sử dụng các khối dữ liệu và khóa Thuật toán mã hóa làm việc theo cách này được biết đến như các thuật toán mã hóa khối Khi một điểm cuối khác nhận được dữ liệu đã được mã hóa, nó thực hiện giải mã sử dụng cùng khóa với tiến trình tượng tự nhưng với các bước được đảo ngược và hoạt động mã hóa thay đổi Ví dụ thuật toán mã hóa sử dụng bởi ESP là AES-Cipher Block Chaining (AESCBC), AES Counter Mode (AES-CTR), và Triple DES (3DES)
2.2.3 Các trường của gói tin ESP
ESP thêm header và trailer cho mỗi packet payload Như trong hình 11, mỗi ESP header chứa 2 trường:
● SPI: Mỗi điểm đầu cuối trong mỗi kết nối ESP đều tự chọn một giá trị SPI, đóng
vai trò như một định danh duy nhất cho kết nối Bên nhận sử dụng giá trị SPI cùng với địa chỉ IP đích và kiểu giao thức IPsec (trong trường hợp này là ESP) để xác định SA nào được sử dụng
● Sequence number: Mỗi packet gắn với 1 sequence number và chỉ những packet
có sequence number nằm trong cửa sổ trượt mới được chấp nhận Nó bảo vệ khỏi tấn công truyền lại bởi vì những packet trùng sẽ có cùng sequence number Điều này cũng giúp ngăn chặn tấn công từ chối dịch vụ bởi các gói tin cũ được truyền lại sẽ có sequence number nằm ngoài cửa sổ trượt, và sẽ bị loại bỏ ngay mà không cần thực hiện bất cứ xử lý nào
Phần tiếp theo của gói tin là payload Nó bao gồm payload data, đây là phần được mã hóa và initialization vector (IV), không được mã hóa IV được sử dụng trong suốt quá trình mã hóa Giá trị của IV khác nhau trong mọi gói tin, do đó nếu có hai gói tin có cùng nội dung việc sử dụng cả IV sẽ làm kết quả mã hóa của hai gói tin khác nhau Nó giúp cho ESP ít có nguy cơ bị giải mã
Phần thứ 3 của gói tin là ESP trailer, trong đó có ít nhất hai trường và một trường có thể tùy chọn:
● Padding: một gói tin ESP có thể tùy chọn có trường này hay không, nó là các byte
thêm vào dữ liệu làm cho gói tin lớn hơn Bởi vì ESP sử dụng thuật toán mã hóa khối để mã hóa, padding có thể cần để cho kích thước dữ liệu được mã hóa chia hết cho kích thước mỗi khối Padding cũng có thể cần thiết để đảm bảo rằng ESP trailer kết thúc là bội của 4 byte Padding thêm vào cũng có thể dùng để thay đổi
Trang 26kích thước của mỗi gói tin, nhằm che giấu kích thước dữ liệu thực tế trong gói tin Điều này hữu ích trong việc ngăn chặn phân tích lưu lượng
● Padding length: trường này chỉ ra số lượng byte của padding, trường này là bắt
buộc
● Next Header: Trong chế độ tunnel, payload là một gói tin IP, do đó giá trị trường
Next header sẽ là 4 (chỉ gói tin IP) Trong chế độ transport, payload là một giao thức ở tầng transport, thường là TCP (protocol number là 6) hoặc UDP (protocol number là 17) Mỗi ESP trailer chứa một giá trị Next Header
Nếu đảm bảo toàn vẹn bởi ESP được kích hoạt, trường Authentication Information
sẽ được thêm vào sau ESP trailer Giống như AH, trường này có chứa giá trị MAC sau khi được tính toán Không giống như AH, MAC trong ESP không chứa outermost IP header trong tính toán Bên nhận sẽ tính toán lại MAC dựa trên gói tin nhận được để xác nhận rằng các thành phần của gói tin, trừ outermost IP header không bị thay đổi trong quá trình truyền
Hình 11: Các trường trong gói tin ESP
2.2.4 Cách ESP làm việc
Xem xét và phân tích gói tin ESP là phương pháp tốt để hiểu cách ESP làm việc, đặc biệt khi so sánh với gói tin AH Hình 12 cho thấy các byte chứa trong gói tin ESP thực sự và mã ASCII tương ứng của chúng Thứ tự bảng chữ cái đã thấy ở proteced payload của gói tin AH trước đó không thể thấy được ở protected payload của gói tin ESP bởi vì nó đã được mã hóa Gói tin ESP chỉ chứa 5 phần: Ethernet header, IP header, ESP header, dữ liệu được mã hóa (gồm có payload và ESP trailer) và authentication information (tùy chọn) Từ dữ liệu được mã hóa, không thể xác định gói tin được sinh ra
ở chế độ transport hay tunnel Tuy nhiên, bởi vì IP header không được mã hóa, trường IP trong header chỉ ra giao thức nào mà payload sử dụng (trong trường hợp này là ESP)
Trang 27Hình 12: Gói tin ESP
Trong hình 12 rất khó để nói ESP header không được mã hóa Ở hình 13 cho thấy các trường của ESP header của 4 gói tin đầu tiên trong phiên ESP giữa host A và B Trường SPI và sequence number hoạt động giống cách mà chúng hoạt động trong AH Mỗi host sử dụng một giá trị SPI tĩnh cho gói tin của nó, tương ứng với một kết nối ESP gồm 2 kết nối 1 chiều, mỗi kết nối có một SPI riêng Cả 2 host đều khởi tạo sequence number bằng và đều tăng lên bằng 2 cho gói tin thứ 2
Hình 13: ESP header
2.3 Internet Key Exchange (IKE)
Mục đích của giao thức Internet Key Exchange (IKE) là đàm phán, tạo và quản lý các security associations Security association (SA) là thuật ngữ chỉ một tập các giá trị định nghĩa các tính năng và biện pháp bảo vệ của IPsec được chấp nhận trong kết nối SA có thể được tạo thủ công, sử dụng giá trị đã được chấp nhận ở trên bởi cả 2 bên, nhưng
SA này không thể được cập nhật, phương pháp này không được mở rộng cho thực tế VPN quy mô lớn IKE sử dụng 5 loại trao đổi để tạo ra security association, trạng thái truyền, thông tin lỗi và xác định các nhóm DiffieHellman mới Trong IPsec, IKE được sử dụng để cung cấp cơ chế bảo mật cho việc thiết lập kết nối IPsec-protected Phần dưới đây sẽ mô tả 5 loại trao đổi (main mode, aggressive mode, quick mode, informational, và group) và giải thích cách chúng làm việc cùng nhau
Trang 282.3.1 Giai đoạn trao đổi một
Mục đích của giai đoạn 1 của IKE là để 2 điểm đầu cuối IPsec hoàn thành đàm phán kênh mật, thông qua đó một IPsec SA có thể được đàm phán Kênh mật được tạo ra trong giai đoạn 1 thường được gọi là IKE SA Mục đích của IKE SA là cung cấp mã hóa và xác thực hai chiều cho các trao đổi IKE khác: các cuộc đàm phán bao gồm hai giai đoạn, truyền thông tin trạng thái và lỗi, tạo thêm một nhóm Diffie-Hellman Thực tế, giai đoạn 1 của trao đổi IKE phải hoàn thành trước khi những loại trao đổi IKE khác có thể thực hiện Một IKE SA có thể được thiết lập thông qua hai chế độ: main mode và
aggressive mode
2.3.1.1 Chế độ main
Chế độ main đàm phán thiết lập IKE SA qua 3 cặp bản tin Cặp bản tin đầu tiên, mỗi điểm đầu cuối đề xuất các tham số sử dụng cho SA Bốn tham số sau là bắt buộc và được gọi chung là protection suite:
● Thuật toán mã hóa: Nó chỉ ra một thuật toán dùng để mã hóa dữ liệu Ví dụ các
thuật toán mã hóa là DES, 3DES, CAST, RC5, IDEA, Blowfish và AES
● Các thuật toán đảm bảo toàn vẹn: Chỉ ra thuật toán keyed hash nào nên được
dùng cho đảm bảo toàn vẹn Như đã giới thiệu ở phần trước, HMAC-MD5 và HMAC-SHA-1 là các thuật toán keyed hash thường được dùng
● Chế độ xác thực: có một số phương pháp để xác thực hai thiết bị đầu cuối với
nhau, bao gồm các phương pháp:
o Pre-shared Keys
o Digital Signatures
o Public Key Encryption
o External Authentication
● Diffie-Hellman (DH) Group: Diffie-Hellman được sử dụng để sinh ra bí mật chia
sẻ cho thiết bị cuối theo phương pháp an toàn, do đó một người quan sát giai đoạn
1 của trao đổi IKE không thể xác định khóa bí mật được chia sẻ Bí mật chia sẻ này sau đó được dùng để sinh ra một giá trị, giá trị này lại được dùng như đầu vào của tính toán cho khóa mật trong giai đoạn 1 và 2 Mỗi nhóm DH tương ứng với một độ dài khóa và một loại hàm sinh mã hóa (như exponentiation over a prime modulus [MODP] hay elliptic curve overG[2N] - EC2N) Mặc dù các nhóm sử dụng elliptic curves có thể hiệu quả hơn các nhóm sử dụng prime modulus, nhưng elliptic curves không thường được sử dụng bởi vì các vấn đề sở hữu trí tuệ liên quan đến việc cấp giấy phép cho các thuật toán mã hóa elliptic curves
Bên cạnh đàm phán các thông số của bộ bảo vệ IKE, cặp bản tin đầu tiên của chế độ main cũng bao gồm việc trao đổi các cookies Cookies một phần dựa trên địa chỉ IP của các host khác và biến đếm thời gian Nó cung cấp một số bảo vệ chống lại tấn công từ chối dịch vụ (Dos) bởi vì nó xảy ra trước các hoạt động mã hóa chuyên sâu trong các
Trang 29bước tuần tự Hình 14 cho thấy thể hiện của bản tin khởi tạo trong cặp bản tin đầu tiên chế độ main Ngoài giá trị cookie ban đầu, nó cho thấy nhiều phần tử khác, bao gồm chế độ sử dụng (ở đây là chế độ main), thuật toán mã hóa và thuật toán hash sử dụng, chế độ xác thực được sử dụng (ở đây là preshared keys)
Hình 14: Diễn giải cặp bản tin đầu chế độ main
Cặp bản tin thứ hai chế độ main thực hiện trao đổi khóa thông qua Diffie-Hellman, sử dụng các tham số đã được đàm phán trong bước đầu Hình 15 cho thấy thể hiện của bản tin khởi đầu trong cặp bản tin thứ hai chế độ main Hầu hết các gói tin đều chứa khóa trao đổi, cũng như nonce (nonce là một giá trị ngẫu nhiên không lặp lại, được sử dụng trong đầu vào của một vài tính toán mã hóa, bao gồm hỗ trợ toàn vẹn của đàm phán Nonce cũng được sử dụng để đảm bảo rằng trao đổi là mới, không phải là phát lại các trao đổi IKE trước đó) Nội dung của cặp bản tin thứ hai có thể thay đổi phụ thuộc vào phương thức xác thực Bản tin chứa xác thực dựa trên pre-shared key hoặc chữ ký số có cùng các trường là header, key, nonce Bản tin chứa xác thực dựa trên mã hóa khóa công khai mã hóa nonce với khóa công khai của thiết bị cuối khác và IDs trao đổi Khi xác thực dựa trên pre-shared key hoặc chữ ký số được sử dụng, IDs sẽ không được trao đổi
Trang 30cho đến cặp bản tin thứ ba bởi thế các khóa được thiết lập thông qua trao đổi Hellman có thể bảo vệ được ID
Diffie-Hình 15: Diễn giải cặp bản tin thứ hai chế độ main
Trong cặp bản tin thứ ba, mỗi thiết bị cuối xác thực lẫn nhau Điều này phụ thuộc vào phương pháp xác thực đã được đàm phán Nếu preshare key được sử dụng, xác thực bằng băm được trao đổi, nếu chữ ký số được sử dụng, nó sẽ được dùng Bất kể phương thức nào được dùng, bản tin này mã hóa dựa trên các thông tin trao đổi trong cặp thông điệp thứ hai Hình 16 cho thấy thể hiện của bản tin đầu trong cặp thông điệp thứ ba chế độ main Ngoài IKE header, phần còn lại của dữ liệu được mã hóa
Hình 16: Diễn giải cặp bản tin thứ ba chế độ main
Bất cứ cặp bản tin nào trong chế độ main cũng có thể chứa một ID của nhà cung cấp, nó là giá trị chỉ ra nhà cung cấp của phần mềm IPsec bên gửi dùng ID của nhà cung cấp có thể được dùng để xác định một số đặc điểm của bên gửi Tổng kết lại, chế độ main sử dụng ba cặp bản tin Mỗi cặp bản tin có mục đích khác nhau Cặp bản tin đầu tiên đàm
Trang 31phán các tham số IKE SA, cặp bản tin thứ hai thực hiện trao đổi khóa, cặp bản tin thứ ba xác thực các thiết bị đầu cuối với nhau
2.3.1.2 Chế độ Aggressive
Chế độ aggressive đề xuất một lựa chọn nhanh hơn chế độ main Nó đàm phán để thiết lập IKE SA bằng 3 bản tin thay vì 3 cặp bản tin Hai bản tin đầu tiên đàm phán các tham số IKE SA và thực hiện trao đổi khóa, bản tin thứ hai và thứ ba xác thực các thiết bị cuối với nhau Sau đây là chi tiết các bản tin:
● Ở bản tin đầu tiên, thiết bị cuối A gửi tất cả bộ các tham số bảo vệ, cũng như một phần của trao đổi khóa Diffie-Hellman, nonce, và định danh của nó
● Trong bản tin thứ hai, thiết bị cuối B gửi bộ các tham số bảo vệ, cũng như, cũng như một phần của trao đổi khóa Diffie-Hellman, nonce, định danh của nó và xác thực payload của nó (thông qua chữ ký số hoặc hash)
● Trong bản tin thứ 3, thiết bị A gửi xác thực payload của nó
Chế độ aggressive đàm phán tất cả các tham số như chế độ main với ít bản tin hơn Ngoài ra, không như chế độ main, chế độ aggressive có thể được sử dụng với chế độ xác thực pre-shared key cho các host không có địa chỉ IP cố định Tuy nhiên, việc tăng tốc độ của chế độ aggressive sẽ làm giảm an ninh Do trao đổi khóa Diffie-Hellman bắt đầu ở gói tin đầu tiên, 2 bên sẽ không có cơ hội đàm phán các tham số Diffie-Hellman Ngoài
ra, các thông tin định danh không phải luôn bị ẩn trong chế độ aggressive, do đó một người quan sát có thể xác định bên nào thực hiện đàm phán Chế độ aggressive có thể che giấu thông tin định danh trong một vài trường hợp khi khóa công khai đã được trao đổi Đàm phán trong chế độ aggressive dễ bị bẻ khóa preshared key, nó cho phép người dùng mạo danh và các tấn công man-in-the-middle Một vấn đề khác là trong khi các thiết bị IPsec phải hỗ trợ chế độ main, còn chế độ aggressive là tùy chọn Trừ khi có những vấn đề về hiệu suất, thường chế độ main được đề nghị cho trao đổi giai đoạn một
2.3.2 Giai đoạn trao đổi hai
Mục đích của giai đoạn hai là thành lập một SA cho kết nối IPsec thực sự SA này được gọi là IPsec SA Không như IKE SA là hai chiều, IPsec SA chỉ là một chiều Điều đó có nghĩa là một kết nối IPsec giữa hai hệ thống yêu cầu hai security associations Cặp IPsec SA được tạo ra qua một chế độ, là chế độ quick Chế độ quick dùng ba bản tin để thiết lập SA Chú ý là liên lạc chế độ quick được mã hóa bằng các phương thức được chỉ rõ trong IKE SA (được tạo ra trong giai đoạn một) Hình 17 cho thấy thể hiện của bản tin chế độ quick Mặc dù một số trường có thể nhìn thấy (như cookies, message ID, flags), hầu hết nội dung của bản tin đã được mã hóa Sau đây là các nội dung quan trọng nhất của phần được mã hóa trong bản tin chế độ quick:
● Trong bản tin đầu tiên, thiết bị cuối A gửi khóa, nonces, và tất cả các tham số IPsec SA được đề xuất Nonce là một biện pháp để chống truyền lại
Trang 32● Trong bản tin thứ hai, thiết bị cuối B gửi các khóa, nonces, và các tham số IPsec
SA được lựa chọn, cộng thêm một hash để xác thực
● Trong bản tin thứ ba, thiết bị cuối A gửi lại một hash để xác thực
Hình 17: Biểu diễn của một bản tin chế độ quick
Sau khi thiết bị B kiểm tra và chấp nhận bản tin thứ ba, IPsec SA được thiết lập Tất cả các SA hoạt động được lưu trong Security Association Database (SAD) SAD bao gồm các thông tin sau cho mỗi kết nối được bảo vệ:
● Địa chỉ IP nguồn
● Địa chỉ IP đích
● SPI
● Giao thức bảo mật IPsec (AH hoặc ESP)
● Chế độ (tunnel hoặc transport)
● Thuật toán mã hóa cho ESP (như AES-CBC)
● Thuật toán đảm bảo toàn vẹn (như HMAC-MD5, HMAC-SHA-1)
● Khóa mật được dùng bởi thuật toán đã được chọn
● Độ dài khóa, nếu có bất kỳ thuật toán được chọn nào có thể sử dụng nhiều kích thước khóa
● SA lifetime
● Thông tin sequence number
● Thông tin chống truyền lại
● Loại lưu lượng mà SA đó nên được áp dụng (như cổng cụ thể hoặc các giao thức) Một SA có thể được xác định duy nhất dựa vào kết hợp của ba tham số: địa chỉ IP đích, SPI và giao thức IPsec được dùng Khi một thiết bị cuối cần biết SA nào được chấp nhận cho 1 gói tin cụ thể, nó nhìn vào SAD sử dụng các tham số này SA mô tả các biện pháp an ninh mà IPsec nên sử dụng để bảo vệ thông tin liên lạc Tuy nhiên, nó không mô tả đầy đủ loại lưu lượng nào nên được bảo vệ và bảo vệ trong hoàn cảnh nào Thông tin này được lưu trong Security Policy Database (SPD), nó phân loại các lưu lượng yêu cầu IPsec bảo vệ (protect), các lưu lượng không yêu cầu IPsec bảo vệ (bypass), hoặc bị cấm (discard) SPD thường chứa các thông tin sau cho mỗi loại lưu lượng cần được bảo vệ:
Trang 33● Địa chỉ IP nguồn và đích
● Giao thức IP (như TCP, UDP, )
● Cổng TCP hoặc UDP (tùy chọn)
● IPsec được áp dụng
● Con trỏ đến SA trong SAD, nếu SA được đàm phán cho một loại lưu lượng cụ thể Hầu hết khi cài đặt đều có 1 GUI cho phép người dùng cấu hình SPD, SAD được tạo ra như là kết quả của các đàm phán IKE Trong một vài cài đặt, nó không rõ ràng làm thể nào các điều khoản được dùng trong công cụ cấu hình phù hợp với cơ sở dữ liệu SAD và SPD Cả cơ sở dữ liệu cũng nên được bảo vệ và chỉ quản trị mới có thể cấu hình SPD
Cả IKE SA và IPsec SA thường có thời gian sống giới hạn, không thể được tăng lên sau khi SA được tạo ra Nếu một SA gần hết thời gian sống của nó, thiết bị cuối phải tạo một SA mới và sử dụng nó thay thế, qua một quá trình gọi là rekeying Thời gian sống của SA xác định mức độ thường xuyên các SA nên được rekeyed, dựa trên thời gian đã trôi qua hoặc số lượng lưu lượng mạng
2.3.3 Trao đổi thông tin
Mục đích của trao đổi thông tin IKE là cung cấp cho các thiết bị cuối một phương pháp để gửi đến nhau các bản tin trạng thái và báo lỗi IKE cung cấp bảo vệ cho các bản tin trạng thái và báo lỗi, đảm bảo các bản tin trái phép không phá vỡ đàm phán IPsec hoặc kết thúc sớm một IPsec SA đang hoạt động Ví dụ, một thiết bị cuối có thể nói cho các thiết bị khác một SA cụ thể không còn được sử dụng Tuy nhiên các bản tin được gửi thông qua trao đổi thông tin là dựa trên UDP, và bên nhận không báo nhận chúng, vì vậy không thể đảm bảo các thiết bị cuối khác sẽ nhận được chúng
2.3.4 Trao đổi nhóm
Danh sách các nhóm Diffie-Hellman, mỗi số của nhóm xác định modulus size và một phương thức mã hóa Trao đổi nhóm IKE có thể dùng để đàm phán cho việc tạo thêm các nhóm Diffie-Hellman Hai thiết bị đầu cuối chấp nhận các đặc điểm của nhóm DiffieHellman mới, chúng có thể xác định số của nhóm mới trong giai đoạn đàm phán một Xác định một nhóm Diffie-Hellman mới không phải là vấn đề tầm thường, do đó, trong thực tế trao đổi nhóm không thường được sử dụng
2.4 Giao thức nén IP Payload Compression Protocol (IPComp)
Trong truyền tin, thường mong muốn thực hiện nén không mất dữ liệu để đóng gói thông tin theo định dạng nhỏ hơn và không làm thay đổi ý nghĩa của nó Ví dụ, nếu host
A muốn gửi đến host B một chuỗi gồm 1000 X, sẽ là hiệu quả hơn nếu nó gửi đến B một
X và nói với host B rằng X này được dùng 1000 lần Tương tự, sử dụng một giao thức nén cho truyền thông IPsec có thể cải thiện hiệu năng về băng thông của IPsec bởi vì sẽ có ít byte dữ liệu cần được truyền hơn Tuy nhiên, có vấn đề với việc này Theo lý tưởng, quá trình mã hóa làm cho dữ liệu xuất hiện ngẫu nhiên đối với người quan sát Ví dụ,
Trang 34những bức thư, các chữ số và dấu chấm của một bản tin email có thể được chuyển thành nhiều ký tự in được và không in được khác nhau Dữ liệu ngẫu nhiên rất khó để nén, bởi vì nén hoạt động bằng cách kết nối các thông tin trùng nhau vào một định dạng nhỏ hơn Bởi thế, sẽ hiệu quả hơn nếu đầu tiên nén dữ liệu sau đó mới mã hóa nó
Giao thức IP Payload Compression (IPComp) thường được sử dụng với IPsec Bằng cách áp dụng IPcomp cho payload đầu tiên sau đó mã hóa gói tin bằng ESP, có thể đạt được hiệu quả nén Tuy nhiên, điều này phần nào phụ thuộc và dữ liệu trên mỗi gói tin Ví dụ, nén không cung cấp nhiều tiết kiệm trên các payload nhỏ Ngoài ra, một số dữ liệu có thể đã được nén bằng các ứng dụng hoặc các phương thức khác Trong trường hợp này, sẽ lãng phí tài nguyên để nén các payload, khi đó giảm overhead dùng cho nén và giải nén dữ liệu lợi ích hơn việc giảm nhỏ kích thước payload rất ít (hoặc không giảm được gì) Theo đó, IPComp chỉ sử dụng nén nếu nó thực sự làm cho các gói tin nhỏ hơn Nếu nó cố gắng để nén một gói tin và nhận ra rằng không được lợi ích gì, nó sẽ gửi gói tin gốc mà không nén gói tin, bên nhận sẽ không lãng phí tài nguyên thực hiện giải nén
Mỗi gói tin áp dụng nén sẽ chứa một IPComp header Mỗi header chứa 3 trường:
● Next Header: Dùng để chứa IP protocol number cho payload của các gói tin, như
là 6 đối với TCP, 17 đối với UDP
● Reserved: Trường này được dành cho việc sử dụng trong tương lai, được đặt là 0
● Compression Parameter Index(CPI): tương tự SPI CPI và địa chỉ IP đích tạo
thành một compression security association
IPComp có thể cấu hình để cung cấp nén dữ liệu cho lưu lượng IPsec theo 1 chiều duy nhất (ví dụ, nén gói tin từ điểm A đến điểm B, nhưng không nén từ điểm B đến điểm A) hoặc cả 2 chiều Ngoài ra, IPComp cho phép quản trị viên chọn thuật toán nén từ các thuật toán bao gồm DEFLATE và LZS IPComp cung cấp biện pháp đơn giản nhưng linh hoạt để nén payload IPsec
2.5 Tích hợp các thành phần
Phần này chúng ta sẽ ghép các thành phần này với nhau để minh họa cho cách cài đặt và thực thi phiên IPsec Mỗi ví dụ ở đây bao gồm sử dụng IKE để thiết lập security associations
2.5.1 ESP trong kiến trúc Gateway-to-Gateway
Trong kịch bản này mục đích là thiết lập kết nối IPsec cung cấp dịch vụ mã hóa và đảm bảo toàn vẹn giữa hai điểm A và B Ở đây, kiến trúc IPsec là gateway-to-gateway, thiết bị cuối A sử dụng gateway A trên mạng A và thiết bị cuối B sử dụng gateway B trên mạng B Bước đầu tiên trong thiết lập kết nối là tạo một IKE SA (nếu chưa có cái nào), như sau:
Trang 35● Thiết bị A tạo và gửi gói tin bình thường (không IPsec), thiết bị này có đích là địa chỉ của thiết bị B
● Mạng A định tuyến gói tin đến gateway A
● Gateway A nhận gói tin và thực hiện NAT, thay đổi địa chỉ nguồn của gói tin
● Gateway A khớp các đặc điểm của gói tin đối với những thông tin của nó trong Security Policy Database Nó xác định các gói tin cần được bảo bệ bởi mã hóa và đảm bảo toàn vẹn qua ESP và cũng xác định địa chỉ của gateway đích Bởi vì SPD không có con trỏ đến một IKE SA nên nó biết rằng hiện không có một IKE SA nào để bảo vệ cho lưu lượng cụ thể này
● Gateway A khởi tạo đàm phán IKE với Gateway B sử dụng chế độ main hoặc chế độ aggressive
Bước tiếp theo trong thiết lập kết nối ESP là tạo IPsec SA:
● Gateway A sử dụng bộ các tham số trong IKE SA để khởi tạo một IPsec SA đàm phán với gateway B IKE SA cung cấp bảo vệ cho đàm phán, đàm phán này được thực hiện sử dụng chế độ quick Các tham số chỉ rõ ESP chế độ tunnel sẽ được sử dụng và nó sẽ cung cấp mã hóa và đảm bảo toàn vẹn Sau khi kết thúc đàm phán, một cặp IPsec SA một chiều được tạo ra cho ESP tunnel Mỗi SA cung cấp bảo vệ cho lưu lượng dữ liệu trong một hướng
● Khi 2 IPsec SA được tạo ra, gateway A có thể kết thúc xử lý gói tin được gửi đi từ thiết bị A trong bước 1 Các gói tin đầu tiên sẽ được mã hóa, sau đó xử lý để đảm bảo toàn vẹn Các bước sau phác thảo cách dữ liệu đến được đích của nó:
o Gateway A thay đổi các gói dữ liệu do đó chúng được bảo vệ phù hợp với các tham số SA Bao gồm một header mới của gói tin IP mà nó sử dụng địa chỉ gateway của A như địa chỉ IP nguồn và địa chỉ gateway của B như địa chỉ đích, mã hóa dữ liệu, sau đó thêm vào thông tin xác thực Gateway A sau đó gửi gói tin đến gateway B
o Gateway B nhận được gói tin và sử dụng giá trị trong trường SPI không được mã hóa từ ESP header để xác định SA nào được dùng cho gói tin Sau khi xem tham số SA, gateway B xử lý và xác nhận gói tin Việc này bao gồm loại bỏ IP header thêm vào của gói tin, kiểm tra tính toàn vẹn của dữ liệu được mã hóa, có thể tùy chọn thực hiện kiểm tra truyền lại (replay check), và giải mã payload gốc Gateway B kiểm tra SPD để đảm bảo rằng các bảo vệ cần thiết đã được áp dụng cho gói tin, sau đó gửi gói tin đến đích thực sự của nó, thiết bị B
Nếu thiết bị cuối B muốn trả lời gói tin, bước cuối cùng của tiến trình này sẽ được lặp lại, hai bên đổi vai trò với nhau Thiết bị B sẽ gửi một gói tin đến thiết bị A, định tuyến sẽ chỉ đường đến gateway B Gateway B thay đổi gói tin một cách thích hợp và gửi đến gateway A Gateway A sẽ xử lý và xác nhận gói tin NATaps dụng NAT để khôi phục địa chỉ IP gốc, sau đó gửi gói tin đến thiết bị A