Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 27

HỌC VIỆN KỸ THUẬT MẬT MÃ

KHOA AN TOÀN THÔNG TIN

ĐỒ ÁN MÔN HỌC
AN TOÀN INTERNET & THƯƠNG MẠI
ĐIỆN TỬ

Đề tài:

TÌM HIỂU HIỆU SUẤT COPS QUA TLS VÀ


IPSEC

Sinh viên thực hiện:

Giảng viên hướng dẫn:

Hà Nội, 2022

1
HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN

ĐỒ ÁN MÔN HỌC
AN TOÀN INTERNET & THƯƠNG MẠI
ĐIỆN TỬ

Đề tài:

TÌM HIỂU HIỆU SUẤT COPS QUA TLS VÀ


IPSEC

Sinh viên thực hiện:

Giảng viên hướng dẫn:

Hà Nội, 2022

2
MỤC LỤC

MỤC LỤC..........................................................................................................3
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT......................................5
DANH MỤC CÁC BẢNG, HÌNH VẼ...............................................................6
LỜI NÓI ĐẦU....................................................................................................7
CHƯƠNG I. TỔNG QUAN VỀ GIAO THỨC IPSEC VÀ TLS........................8
1.1 Tổng quan về giao thức IPsec...................................................................8
1.1.1 Giới thiệu về IPSec............................................................................8
1.1.2 Đánh giá IPSec...................................................................................9
1.1.3 Ứng dụng của IPSec...........................................................................9
1.1.4 Kiến trúc IPSec................................................................................10
1.1.5 Tính năng của IPSec.........................................................................12
1.2 Tổng quan về giao thức TLS...................................................................12
1.2.1 Giới thiệu giao thức TLS..................................................................12
1.2.2 Cấu trúc của giao thức SSL/TLS......................................................13
1.2.3 Chức năng và hoạt động của giao thức TLS.....................................13
1.2.4 Ứng dụng giao thức TLS..................................................................14
CHƯƠNG II: TÌM HIỂU HIỆU SUẤT COPS QUA IPSEC VÀ TLS..............16
2.1 Giới thiệu................................................................................................16
2.2 Ba kịch bản để thực hiện COPS..............................................................16
2.2.1 COPS thuần túy................................................................................17
2.2.2 COPS qua TLS.................................................................................17
2.2.3 COPS qua IPsec...............................................................................18
2.2.4 TLS so với ipsec...............................................................................19
CHƯƠNG III MÔ PHỎNG THỰC NGHIỆM.................................................20
3.1 Mô phỏng,thực nghiệm...........................................................................20
3.1.1 Môi trường hệ thống........................................................................20

3
3.1.2 Cấu hình bảo mật.............................................................................20
3.2 Kết quả và phân tích :.............................................................................20
3.2.1 Thời gian kết nối..............................................................................21
3.2.2 Thời gian để PEP hoàn thành hoạt động COPS................................23
3.2.3 Thời gian để PDP hoàn thành các hoạt động COPS.........................24
3.2.4 Chi phí bảo mật và hoạt động COPS................................................26
3.3 Kết luận...................................................................................................26
3.3.1 Hiệu suất sử dụng thời gian..............................................................26
3.3.2 Triển khai COPS/IPSec....................................................................26
3.3.3 Triển khai COPS/TLS......................................................................27
TÀI LIỆU THAM KHẢO.................................................................................28

4
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

IETF Internet Engineering Task Force


Ipsec Internet Protocol Security
ESP Encapsulating Security Payload
DOI Domain of Interpretation
IKE Internet Key Exchange
COPS Common Open Policy Service
PDP Policy Decision Point
PEP Policy Enforcement Points
TLS Transport Layer Security
AH Authentication Header

5
DANH MỤC CÁC BẢNG, HÌNH VẼ

Hình 1.1 IPSec trong mô hình OSI.....................................................................8


Hình 1.2: Ứng dụng của IPSec..........................................................................10
Hình 1.3 Kiến trúc IPSec..................................................................................11
Hình 1.4 Cấu trúc TLS......................................................................................13
Hình 2.1 Ngăn xếp giao thức............................................................................17
Hình 2.2 Bắt tay TLS hoàn chỉnh giữa PDP và PEP trong COPS/TLS.............18
Hình 2.3 Xác thực Giai đoạn 1 bằng Khóa chia sẻ trước (Chế độ chính)..........19
Bảng 2.1 Thuật toán bảo mật được sử dụng trong TLS và Ipsec.......................19
Hình 3.1 Mô phỏng một phiên trong ba kịch bản..............................................21
Bảng 3.1 Thời gian kết nối (mili giây)..............................................................22
Hình 3.2 Thời gian để tạo ba thông điệp bắt tay...............................................23
Hình 3.3 Thời gian để PEP hoàn thành toàn bộ phiên cho ba tình huống trong cả
năm mô phỏng.............................................................................................................24
Hình 3.4 Thời gian để PDP hoàn thành toàn bộ phiên cho ba kịch bản trong cả
năm mô phỏng.............................................................................................................25
LỜI NÓI ĐẦU

Trong bối cảnh hiện nay, khi Internet phát triển rộng khắp và mạnh mẽ, hơn nữa
khi đại dịch xảy ra nhu cầu kết nối, chia sẻ, làm việc từ xa, trao đổi dữ liệu trên mạng
trở thành một phần thiết yếu trong cuộc sống. Để đáp ứng được nhu cầu trên, các nhà
cung cấp dịch vụ không chỉ quan tâm đến phát triển dịch vụ mà còn phải xây dựng,
củng cố và tối ưu hóa hạ tầng lẫn dịch vụ. Đảm bảo tính toàn vẹn, bí mật, xác thực, sẵn
sàng,…cho hệ thống. Hiểu được điều này chúng em đã chọn đề tài “Tìm hiểu hiệu
suất COPS qua TLS và IPsec”. Nội dung chính được đưa ra là đánh giá hiệu suất của
COPS qua các kết nối TLS IPsec an toàn. Đối với dữ liệu có kích thước lớn, khi chúng
ta áp dụng mã hóa xác thực, thông lượng sẽ giảm đi so với thông lượng có xác thực
hoặc mã hóa. COPS có các cơ chế bảo mật riêng, nhưng nó có những hạn chế. COPS
không bao gồm quản lý tiêu chuẩn và không bảo mật từng bước về quyền riêng tư của
dữ liệu. Để được triển khai, nó cần hỗ trợ các mô hình kiểm soát truy cập.
Đề tài được chúng em triển khai chia thành 3 chương như sau:
Chương 1. Tổng quan về giao thức IPsec và TLS
Chương 2. Tìm hiểu hiệu suất COPS qua TLS và Ipsec
Chương 3. Mô phỏng thực nghiệm
Do hạn chế về thời gian cũng như kiến thức, tài liệu chắc chắn sẽ có rất nhiều
khuyết điểm và sai sót, chúng em rất mong nhận được ý kiến nhận xét và sửa đổi của
cô và các bạn.

7
CHƯƠNG I. TỔNG QUAN VỀ GIAO THỨC IPSEC VÀ TLS

1.1 Tổng quan về giao thức IPsec

1.1.1 Giới thiệu về IPSec


Giao thức TCP/IP đóng một vai trò rất quan trọng trong các hệ thống hiện nay.
Về nguyên tắc, có nhiều tùy chọn khác nhau về giao thức để triển khai các hệ thống
mạng như TCP/IP, TPX/SPX, NetBEUI, Apple talk,… Tuy nhiên TCP/IP là sự lựa
chọn gần như bắt buộc do giao thức này được sử dụng làm giao thức nền tảng của
mạng Internet.
Vào thời điểm thiết kế giao thức này, vấn đề bảo mật thông tin chưa thật sự
được quan tâm, do đó, các giao thức trong bộ TCP/IP hầu như không được trang bị bất
cứ giao thức nào. Cấu trúc gói dữ liệu (IP, TCP,UDP và cả các giao thức ứng dụng)
được mô tả công khai, bắt được gói IP trên mạng, ai cũng có thể phân tích gói để đọc
phần dữ liệu chứa bên trong, đó là chưa kể hiện nay, các công cụ bắt và phân tích gói
được xây dựng với tính năng mạnh và phát hành rộng rãi. Việc bổ sung các cơ chế bảo
mật vào mô hình TCP/IP, bắt đầu từ giao thức IP là một nhu cầu cấp bách.
IP Security (IPSec – Internet Protocol Security) là một giao thức được chuẩn hoá
bởi IETF (Internet Engineering Task Force) từ năm 1998 nhằm mục đích nâng cấp các
cơ chế mã hoá và xác thực thông tin cho chuỗi thông tin truyền đi trên mạng bằng giao
thức IP. Hay nói cách khác, IPSec là sự tập hợp của các chuẩn mở được thiết lập để
đảm bảo sự cẩn mật dữ liệu, đảm bảo tính toàn vẹn dữ liệu và chứng thực dữ liệu giữa
các thiết bị mạng.

8
Hình 1.1 IPSec trong mô hình OSI

IPSec cung cấp một cơ cấu bảo mật ở tầng 3 (Network layer) của mô hình OSI vì mọi
giao tiếp trong một mạng trên cơ sở IP đều dựa trên các giao thức IP. Do đó, khi một cơ
chế bảo mật cao được tích hợp với giao thức IP, toàn bộ mạng được bảo mật bởi vì các
giao tiếp đều đi qua tầng 3 (Network layer) trong mô hình OSI. IPSec được thiết kế như
phần mở rộng của giao thức IP, được thực hiện thống nhất trong cả hai phiên bản IPv4
và IPv6. Đối với IPv4, việc áp dụng IPSec là một tuỳ chọn, nhưng đối với IPv6, giao
thức bảo mật này được triển khai bắt buộc.

1.1.2 Đánh giá IPSec

1.1.2.1 Ưu điểm
 Khi IPSec được triển khai trên bức tường lửa hoặc bộ định tuyến của
một mạng riêng, thì tính năng an toàn của IPSec có thể áp dụng cho toàn bộ vào
ra mạng riêng đó mà các thành phần khác không cần phải xử lý thêm các công
việc liên quan đến bảo mật.
 IPSec được thực hiện bên dưới lớp TCP và UDP, đồng thời nó hoạt động
trong suốt đối với các lớp này. Do vậy không cần phải thay đổi phần mềm hay
cấu hình lại các dịch vụ khi IPSec được triển khai.
 IPSec có thể được cấu hình để hoạt động một cách trong suốt đối với các
ứng dụng đầu cuối, điều này giúp che giấu những chi tiết cấu hình phức tạp mà
người dùng phải thực hiện khi kết nối đến mạng nội bộ từ xa thông qua mạng
Internet.

1.1.2.2 Hạn chế


 Tất cả các gói được xử lý theo IPSec sẽ bị tăng kích thước do phải thêm
vào các tiêu đề khác nhau, điều này làm cho thông lượng hiệu dụng của mạng
giảm xuống. Vấn đề này có thể được khắc phục bằng cách nén dữ liệu trước khi
mã hóa, song các kĩ thuật như vậy vẫn còn đang nghiên cứu và chưa được
chuẩn hóa.
 IPSec được thiết kế chỉ để hỗ trợ bảo mật cho lưu lượng IP, không hỗ trợ
các dạng lưu lượng khác.
 Việc tính toán nhiều giải thuật phức tạp trong IPSec vẫn còn là một vấn
đề khó đối với các trạm làm việc và máy PC năng lực yếu.
 Việc phân phối các phần cứng và phần mềm mật mã vẫn còn bị hạn chế
đối với chính phủ một số quốc gia.

1.1.3 Ứng dụng của IPSec

9
 Bảo vệ kết nối từ các mạng chi nhánh đến mạng trung tâm thông qua
Internet.
 Bảo vệ kết nối truy cập từ xa (Remote Access).
 Thiết lập các kết nối Intranet và Extranet .
 Nâng cao tính bảo mật của các giao dịch thương mại điện tử.

Hình 1.2: Ứng dụng của IPSec

1.1.4 Kiến trúc IPSec


IPSec là một giao thức phức tạp, dựa trên nền của nhiều kỹ thuật cơ sở khác
nhau như mật mã, xác thực, trao đổi khoá… Xét về mặt kiến trúc, IPSec được xây dựng
dựa trên các thành phần cơ bản sau đây, mỗi thành phần được định nghĩa trong một tài
liệu riêng tương ứng:

10
Hình 1.3 Kiến trúc IPSec

 Kiến trúc IPSec (RFC 2401): Quy định các cấu trúc, các khái niệm và yêu cầu
của IPSec.
 Giao thức ESP (RFC 2406): Mô tả giao thức ESP, là một giao thức mật mã và
xác thực thông tin trong IPSec.
 Giao thức AH (RFC 2402): Định nghĩa một giao thức khác với chức năng gần
giống ESP. Như vậy khi triển khai IPSec, người sử dụng có thể chọn dùng ESP hoặc
AH, mỗi giao thức có ưu và nhược điểm riêng.
 Thuật toán mật mã: Định nghĩa các thuật toán mã hoá và giải mã sử dụng trong
IPSec. IPSec chủ yếu dựa vào các thuật toán mã hoá đối xứng.
 Thuật toán xác thực: Định nghĩa các thuật toán xác thực thông tin sử dụng trong
AH và ESP.
 Quản lý khoá (RFC 2408): Mô tả các cơ chế quản lý và trao đổi khoá trong
IPSec.
 Miền thực thi (Domain of Interpretation – DOI): Định nghĩa môi trường thực
thi IPSec. IPSec không phải là một công nghệ riêng biệt mà là sự tổ hợp của nhiều cơ
chế, giao thức và kỹ thuật khác nhau, trong đó mỗi giao thức, cơ chế đều có nhiều chế
độ hoạt động khác nhau. Việc xác định một tập các chế độ cần thiết để triển khai IPSec
trong một tình huống cụ thể là chức năng của miền thực thi. Xét về mặt ứng dụng,
IPSec thực chất là một giao thức hoạt động song song với IP nhằm cung cấp 2 chức
năng cơ bản mà IP nguyên thuỷ chưa có, đó là mã hoá và xác thực gói dữ liệu. Một
cách khái quát có thể xem IPSec là một tổ hợp gồm hai thành phần:

11
 Giao thức đóng gói, gồm AH và ESP: bảo về truyền thông IP, dựa vào SA
(khóa, địa chỉ, các thuật toán mật mã)
 Giao thức trao đổi khoá IKE (Internet Key Exchange): để thiết lập các SA
(Security Association) cho AH hoặc ESP, và duy trì/quản lý các kết nối
1.1.5 Tính năng của IPSec
Để thực hiện được chức năng chính của mình là bảo mật dữ liệu trong VPN, IPSec
cung cấp những tính năng sau:

 Sự bảo mật dữ liệu (Data Confidentiality): Đảm bảo dữ liệu được an toàn, tránh
những kẻ tấn công phá hoại bằng cách thay đổi nội dung hoặc đánh cắp dữ liệu
quan trọng. Việc bảo vệ dữ liệu được thực hiện bằng các thuật toán mã hóa như
DES, 3DES và AES. Tuy nhiên, đây là một tính năng tùy chọn trong IPSec.
 Sự toàn vẹn dữ liệu (Data Integrity): Đảm bảo rằng dữ liệu không bị thay đổi
trong suốt quá trình trao đổi. Data Integrity bản thân nó không cung cấp sự an toàn
dữ liệu. Nó sử dụng thuật toán băm (hash) để kiểm tra dữ liệu bên trong gói tin có
bị thay đổi hay không. Những gói tin nào bị phát hiện là đã bị thay đổi thì sẽ bị loại
bỏ. Những thuật toán băm: MD5 hoặc SHA-1.
 Chứng thực nguồn dữ liệu (Data Origin Authentication): Mỗi điểm cuối của
VPN dùng tính năng này để xác định đầu phía bên kia có thực sự là người muốn
kết nối đến mình hay không. Lưu ý là tính năng này không tồn tại một mình mà
phụ thuộc vào tính năng toàn vẹn dữ liệu. Việc chứng thực dựa vào những kĩ thuật:
Pre-shared key, RSA-encryption, RSA-signature.
 Tránh trùng lặp (Anti-replay): Đảm bảo gói tin không bị trùng lặp bằng việc
đánh số thứ tự. Gói tin nào trùng sẽ bị loại bỏ, đây cũng là tính năng tùy chọn.

1.2 Tổng quan về giao thức TLS

1.2.1 Giới thiệu giao thức TLS


TLS (Transport Layer Security) – Bảo mật tầng vận chuyển. Đây là một giao
thức mật mã cung cấp bảo mật đầu cuối cho dữ liệu được gửi giữa các ứng dụng qua
Internet. TLS được biết đến chủ yếu thông qua việc sử dụng trong duyệt web an toàn
với chuẩn HTTPS và đặc biệt là biểu tượng ổ khóa xuất hiện trong trình duyệt web khi
một phiên truy cập bảo mật được thiết lập. Tuy nhiên, nó cũng có thể và được khuyến
khích sử dụng cho các ứng dụng khác như e-mail, truyền tệp, hội nghị truyền hình / âm
thanh, nhắn tin tức thì và VoIP, cũng như các dịch vụ Internet như DNS và NTP.

TLS phát triển từ Lớp cổng bảo mật (SSL – Secure Sockets Layer) bởi
Netscape Communications Corporation vào năm 1994 để bảo mật các phiên duyệt
web. TLS lần đầu tiên được định nghĩa trong RFC 2246 vào năm 1999 như một giao
thức độc lập với ứng dụng. Cần lưu ý rằng TLS không bảo mật dữ liệu trên các hệ
thống đầu cuối. Nó chỉ đảm bảo dữ liệu an toàn trên đường truyền qua Internet, tránh
khả năng bị nghe trộm hoặc thay đổi nội dung.

12
TLS thường được triển khai trên TCP để mã hóa các giao thức Lớp ứng dụng
như HTTP, FTP, SMTP và IMAP, mặc dù nó cũng có thể được triển khai trên UDP,
DCCP và SCTP (ví dụ: đối với ứng dụng dựa trên VPN và SIP).

1.2.2 Cấu trúc của giao thức SSL/TLS

 Do giao thức TLS được phát triển dựa trên giao thức SSL nên chúng ta cùng
tìm hiểu một chút về cấu trúc của giao thức SSL trước nhé. Chúng ta cùng xem hình
minh hoạ.

Hình 1.4 Cấu trúc TLS

 Theo hình mình hoạ trên thì cấu trúc và giao thức SSL được đặt giữa tầng vận
chuyển (Transport Layer) và tầng ứng dụng (Application Layer)
 Giao thức SSL cung cấp giao thức bảo mật truyền thông có 3 đặc điểm nổi bật
o Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng
cách sử dụng mật mã khóa chung
o Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa
trong suốt sau khi một sự thiết lập quan hệ ban đầu và sự thương lượng khóa session
đã xảy ra.
o Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ
vì các thông báo được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt
bằng cách sử dụng MAC.
1.2.3 Chức năng và hoạt động của giao thức TLS

 Mục tiêu chính của giao thức TLS là cung cấp sự riêng tư và toàn vẹn dữ liệu
giữa hai ứng dụng trong môi trường mạng
 Cũng như giao thức SSL thì giao thức TLS cũng theo mô hình client-server
 Trong mô hình TCP/IP thì giao thức TLS gồm có hai lớp là Record Layer và
Handshake Layer
13
 Record layer là lớp thấp nhất bao gồm TLS record protocol (trên tầng giao vận
như giao thức điều khiển truyền tải TCP, giao thức truyền vận không tin cậy UDP)

 Đặc tính kết nối riêng tư: mã hoá đối xứng được sử dụng để mã hoá dữ liệu (mã
hoá AES...) Các khoá để mã hoá đối xứng được sinh ra cho mỗi lần kết nối và được
thoả thuận bí mật của giao thức khác (ví dụ TLS). Chính vì vậy giao thức TLS cũng có
thể được sử dụng mà không cần mã hoá.
 Đặc tính kết nối đáng tin cậy: Một thông điệp vận chuyển thông báo sẽ bao gồm
kiểm tra tính toàn vẹn (sử dụng hàm Băm ví dụ SHA-1)

 Ngoài ra giao thức TLS còn được sử dụng để phân mảnh, nén, đóng gói, mã hoá
dữ liệu, cho phép máy chủ xác nhận nhau và thoả thuận thuật toán mã hoá

 Giao thức bao gồm


o TLSPlaintext
o TLSCompressed
o TLSCiphertext
 Mỗi cấu trúc dữ liệu bao gồm 4 trường thông tin
o Type
o Version
o Length
o Fragment
 Handshake Layer: nằm trên lớp bản ghi
o Định danh của điểm kết nối có thể được xác thực bằng cách sử dụng mã
hóa bất đối xứng hoặc khóa công khai (RSA)
o Quá trình thỏa thuận khóa bí mật chia sẻ được an toàn
o Quá trình thỏa thuận đáng tin cậy
1.2.4 Ứng dụng giao thức TLS.
TLS có khả năng ứng dụng rộng rãi trong nhiều lĩnh vực, nhưng nổi bật nhất
vẫn là sử dụng làm giao thức bảo mật cho HTTPS. Cho dù độ phổ biến chưa cao như
SSL nhưng TLS có thể cung cấp những khả năng tương đương và thậm chí tốt hơn ở
một số khía cạnh. Điều đó khiến ngày nay người ta vẫn thường đặt chung SSL/TLS
khi nói về các giao thức bảo mật của HTTPS.

Ngoài HTTPS, TLS còn có thể ứng dụng trong nhiều giao thức khác như FTP,
SNMP, NNTP và XMPP. Ngay cả khi không hỗ trợ các giao thức tiêu chuẩn thì người
ta vẫn có thể sử dụng khả năng mã hóa, xác thực của TLS cho các ứng dụng client-
server cần giao tiếp an toàn.

14
15
CHƯƠNG II: TÌM HIỂU HIỆU SUẤT COPS QUA IPSEC VÀ
TLS

2.1 Giới thiệu


COPS (Common Open Policy Service) được thiết kế để phân phối thông tin
chính sách văn bản rõ ràng từ Điểm Quyết định Chính sách (PDP) tới một tập hợp các
Điểm Thực thi Chính sách (PEP) trên Internet. COPS cung cấp các cơ chế bảo mật của
riêng mình để bảo vệ per-hop của chính sách được triển khai.
Tuy nhiên, việc sử dụng COPS cho các ứng dụng nhạy cảm chẳng hạn như một số loại
phân phối chính sách bảo mật yêu cầu các biện pháp bổ sung, chẳng hạn như quyền
riêng tư của dữ liệu. Điều này là do một số tổ chức cần ẩn một số hoặc tất cả chính
sách bảo mật của họ, ví dụ: vì việc phân phối chính sách cho các thiết bị như nền tảng
di động có thể vượt qua các ranh giới miền.
COPS có thể sử dụng lại các giao thức hiện có để bảo mật như IPsec hoặc TLS xác
thực và bảo mật kênh giữa PDP và PEP. TLS được thiết kế để cung cấp bảo mật hướng
kênh. Nó cung cấp các cơ chế cho cả một và hai chiều xác thực, khóa phiên động,
quyền riêng tư và tính toàn vẹn của luồng dữ liệu. IPsec tích hợp cung cấp các dịch vụ
bảo mật tương tự như các dịch vụ của TLS. Ngoài ra còn có sự khác biệt khi sử dụng
hai giao thức này để bảo mật COPS.
Như đã biết, quá trình xử lý cần thiết cho các chức năng bảo mật không hề nhẹ và có
xu hướng khá lớn. Khi thực thi chức năng bảo mật (TLS hoặc Ipsec) yêu cầu sức mạnh
xử lý rất lớn, chúng tôi có thể thiếu thông lượng cho nhiều ứng dụng.
Hoặc nếu không, chúng tôi có thể cần triển khai phần cứng đặc biệt để xử lý các chức
năng bảo mật đó.

2.2 Ba kịch bản để thực hiện COPS


Dưới đây là ba kịch bản để nghiên cứu hiệu suất COPS có và không có tính
năng bảo mật: COPS thuần túy, COPS qua TLS và COPS qua IPsec. Ba kịch bản trong
ngăn xếp giao thức được hiển thị trong Hình 2.1. Phần này sẽ mô tả ngắn gọn về ba
kịch bản.

16
Hình 2.1 Ngăn xếp giao thức

2.2.1 COPS thuần túy


COPS là một đặc tả giao thức theo dõi tiêu chuẩn từ IETF được thiết kế để
truyền đạt thông tin chính sách trong hệ thống quản lý chính sách. Đây là một mô hình
giao tiếp giữa máy khách và máy chủ bao gồm xác nhận được gửi khi xử lý thành công
các tin nhắn. Máy chủ COPS tập trung tại PDP đáp ứng yêu cầu trong các máy khách
COPS tại PEP. COPS sử dụng TCP làm giao thức vận chuyển để trao đổi tin nhắn đáng
tin cậy giữa các máy khách chính sách và máy chủ. Khi triển khai COPS mà không có
các tính năng bảo mật bổ sung, chúng tôi gọi tình huống đó là COPS thuần túy.
Các hoạt động cơ bản là Client-Open (OPN), Client-Close (CC), Client-Accept
(CAT), Keep-Alive (KA), Request (REQ), Decision (DEC), Report State (RP), Delete
Request State (DRQ), Synchronize State Request (SSQ) and Synchronize Complete
(SSC). Các thông báo này chứa các mã lệnh hướng dẫn các thao tác khác nhau trên các
thực thể PIB dành riêng cho khách hàng. Tính toàn vẹn của đối tượng sẽ có trong
thông báo khi tính năng bảo mật gốc của COPS được sử dụng. Nội dung của Tính toàn
vẹn là 96-bit MD5 HMAC được tính toán dựa trên nội dung thông báo và số thứ tự.
Nhưng tất cả thông tin chính sách được phân phối trong bản rõ.

2.2.2 COPS qua TLS


Giao thức TLS được thiết kế để thiết lập kết nối an toàn giữa hai bên giao tiếp. Để
thiết lập kết nối an toàn như vậy, TLS thực hiện bắt tay giữa hai bên giao tiếp để xác
thực chúng và đồng ý với một bộ tham số bảo mật. Các tham số bảo mật đã thương
lượng được sử dụng để tính toán khóa phiên chia sẻ HDR, SA nhằm bảo vệ việc truyền
dữ liệu giữa hai bên.

17
Hình 2.2 Bắt tay TLS hoàn chỉnh giữa PDP và PEP trong COPS/TLS

Việc triển khai COPS qua TLS được mô tả trong IETF Internet Draft “COPS
Over TLS”. Khi triển khai COPS/TLS, TLS nằm trên TCP và bên dưới COPS trong
ngăn xếp giao thức (Hình 2.1). Phiên COPS/TLS bắt đầu bằng bắt tay TLS giữa PDP
và PEP. PDP và PEP chịu trách nhiệm thiết lập kết nối TLS trước khi có thể trao đổi
bất kỳ bản tin COPS nào. PDP và PEP chỉ có thể trao đổi thông báo COPS đầu tiên
OPN và CAT sau khi kết nối TLS được thiết lập. Tất cả các tin nhắn COPS được trao
đổi trong bản mã.

2.2.3 COPS qua IPsec


RFC 2401 mô tả khung kiến trúc của IPsec. Bộ giao thức IPsec cung cấp một bộ chức
năng để trao đổi dữ liệu an toàn và đáng tin cậy qua Internet. IPsec có hai chức năng
sau: Xác thực và Mã hóa. IPsec định nghĩa AH (Tiêu đề xác thực, RFC 2402) để xác
thực người dùng đối với giao tiếp ngang hàng và ESP (Đóng gói tải trọng bảo mật,
RFC2403) để mã hóa và đóng gói dữ liệu người dùng trong các gói IP. Hình 2.3 cho
biết các thông báo được trao đổi khi thiết lập kết nối IPsec.

18
Hình 2.3 Xác thực Giai đoạn 1 bằng Khóa chia sẻ trước (Chế độ chính)

Khi chạy COPS trên IPsec, COPS và IPsec không liền kề nhau trong ngăn xếp
giao thức (Hình 2.1). Do đó việc chạy COPS qua IPsec khá đơn giản. Kết nối IPsec an
toàn được thiết lập giữa hai máy chủ lưu trữ PDP và PEP tương ứng. Nó bảo vệ các
thông báo COPS được trao đổi giữa PDP và PEP bằng cách bảo vệ tất cả lưu lượng
TCP giữa hai máy chủ này. PDP và PEP không chịu trách nhiệm thiết lập kết nối IPsec.
Tất cả các công việc mà PDP và PEP thực hiện trên IPsec hoàn toàn giống như trong
Pure COPS sau khi kết nối IPsec được thiết lập.

Dịch vụ được hỗ trợ TLS Ipsec


Xác thực ngang hàng X.509 Certificate X.509 Certificate Pre-
shared Key Kerberos
Trao đổi khóa RSA, Diffie-Hellman RSA, Diffie-Hellman
Thuật toán mã hóa DES, 3DES, RC4 DES, 3DES
Thuật toán MAC MD5, SHA-1 MD5, SHA-1

Bảng 2.1 Thuật toán bảo mật được sử dụng trong TLS và Ipsec

2.2.4 TLS so với ipsec


TLS và IPsec ở các lớp khác nhau trong ngăn xếp giao thức, nhưng chúng cung cấp
các dịch vụ bảo mật tương tự bằng cách sử dụng các thuật toán bảo mật tương tự.
Bảng 2.1 đưa ra một cái nhìn về các thuật toán mà TLS và IPsec hỗ trợ tương ứng.

19
CHƯƠNG III MÔ PHỎNG THỰC NGHIỆM

3.1 Mô phỏng, thực nghiệm


Mô phỏng được thực hiện trên máy tính PC window 2000

3.1.1 Môi trường hệ thống


Khởi chạy SecureCops trên 2 máy PC :
- Bộ xử lý: Intel Pentium III 700 Hz
- Bộ nhớ: 128MB
- Hệ điều hành: Windows 2000 Professional
- Trình mô phỏng PDP PDPSimulator chạy trên 1 máy tính, còn PEP
PEPSimulator chạy trên máy còn lại
- Sử dụng kết nối Hub (ASANTÉ FriendlyNet, 8-Port Ethernet)
- Môi trường chạy Java™, phiên bản tiêu chuẩn (1.4.0-b92)

3.1.2 Cấu hình bảo mật


Đối với COPS/TLS, các tham số bảo mật phải được định cấu hình trên
SecureCops. Ta đặt bộ mật mã TLS thành TLS_RSA_WITH_3DES_EDE_CBC_SHA.
Do đó, nó sử dụng mã RSA để trao đổi khóa, sử dụng mã 3DES đẻ mã hóa và SHA-1
cho MAC. Chứng chỉ X.509 tự ký được sử dụng để xác thực PDP và PEP truyền khóa
chung của máy chủ.
Đối với COPS/IPsec, vì chúng tôi sử dụng triển khai IPsec được tích hợp sẵn
trên Windows 2000 Professional nên việc cấu hình sẽ được thực hiện trên hệ điều
hành. Trong cấu hình Windows 2000, chúng tôi cài đặt Authentication Method để xác
thực khóa chia sẻ trước, IP Security Policy đến Máy chủ bảo mật (Yêu cầu bảo mật) và
Security Methods tới 3DES để bảo mật ESP và SHA-1 cho tính toàn vẹn của ESP

3.2 Kết quả và phân tích:


Để nghiên cứu hiệu suất của ba kịch bản triển khai COPS, ta chia phiên COPS
thành hai phần: quy trình kết nối và hoạt động COPS. Nghiên cứu hiệu suất của ta dựa
trên thời gian của hai phần này: thời gian kết nối và thời gian vận hành. Ta chạy
SecureCops để mô phỏng ba kịch bản.

Đối với mỗi trường hợp, ta lặp lại mô phỏng năm lần và ghi lại thời gian kết nối
cũng như thời gian hoạt động ở phía PDP (PDPSimulator) và phía PEP
(PEPSimulator).
20
Để đơn giản hóa, mô phỏng phiên làm việc trong mỗi kịch bản, mỗi phiên trao
đổi năm thông báo COPS: OPN, CAT, REQ, DEC và CC. Hai phần của phiên trong
mô phỏng và thời gian chúng tôi ghi lại được hiển thị trong hình 3.1:

Hình 3.1 Mô phỏng một phiên trong ba kịch bản

3.2.1 Thời gian kết nối


Thời gian ta ghi lại để thiết lập kết nối COPS giữa PDPSimulator và
PEPSimulator là thời gian thực hiện phương thức khởi tạo Socket từ lớp
java.net.Socket trong cả Pure COPS và COPS/IPsec và thời gian thực hiện của phương
thức khởi tạo TLSSocket và phương thức clientHandshake từ lớp
JTLS.Connection.TLSSocket trong COPS/TLS. Thời gian kết nối cho năm mô phỏng
trong ba kịch bản được trình bày trong bảng dưới đây.

Bảng 3.1 Thời gian kết nối (mili giây)

Trong số ba kịch bản này, Pure COPS mất thời gian ngắn nhất để kết nối.Thời
gian kết nối trung bình trong năm lần chỉ là 24 ms, bởi vì nó không thực hiện bất kỳ
hoạt động bổ sung nào, chỉ đơn giản là thiết lập kết nối TCP.
COPS/IPsec mất nhiều thời gian hơn cho kết nối. Thời gian kết nối trung bình
của nó trong năm lần gấp 27,39 lần so với Pure COPS. Trong quá trình kết nối (thực
thi phương thức Socket), IPsec đã thực hiện thương lượng bảo mật giữa hai PC nơi

21
PDPSimulator và PEPSimulator đang chạy. Do đó, cần thêm thời gian để tạo và trao
đổi các thông báo đó cũng như để thực hiện tính toán bảo mật.
COPS/TLS mất nhiều thời gian nhất để kết nối. Thời gian kết nối trung bình
của nó gấp 1001,45 lần so với Pure COPS và 36,56 lần so với COPS/IPsec..
Sau khi thiết lập kết nối TCP giữa PDPSimulator và PEPSimulator, hai bên phải thực
hiện “bắt tay” TLS. Chúng trao đổi tất cả các thông báo bắt tay ngoại trừ
ServerKeyExchange, vì chúng trao đổi khóa phiên với RSA và khóa chung của máy
chủ đã được chuyển trong chứng chỉ X.509 của máy chủ.
Trong quá trình bắt tay trong COPS/TLS, việc tạo ba thông báo ClientHello,
ServerHello và ClientKeyExchange tiêu tốn nhiều thời gian kết nối nhất. Đối với hai
tin nhắn đầu tiên, mỗi tin nhắn cần một số ngẫu nhiên 28 byte và tin nhắn cuối cùng
cần một số ngẫu nhiên 46 byte. Tạo số ngẫu nhiên là một tính toán tốn thời gian. Hình
3.2 cho thấy thời gian để tạo ba thông báo đó trong mỗi năm mô phỏng. Trong mỗi mô
phỏng, việc tạo ba thông báo này tiêu tốn ít nhất 85% thời gian kết nối.

Hình 3.2 Thời gian để tạo ba thông điệp bắt tay

3.2.2 Thời gian để PEP hoàn thành hoạt động COPS


Trong các mô phỏng của ta về cả ba kịch bản, hoạt động COPS trong một phiên
bao gồm năm lần trao đổi thông báo COPS, được hiển thị trong Hình 3.1. Thời gian
để PEP hoàn thành các hoạt động COPS trong một phiên mà chúng tôi đã ghi lại là
khoảng thời gian từ điểm PEPSimulator bắt đầu gửi tin nhắn OPN cho đến khi nó
gửi xong tin nhắn CC cuối cùng và tắt kết nối, như được chỉ ra trong Hình 3.1.
Thời gian để PEP hoàn thành các thao tác COPS trong một phiên đối với cả ba kịch
bản trong cả năm mô phỏng được thể hiện trong Hình 3.3. Ví dụ: trong mô phỏng
1, PEPSimulator mất 410 ms để hoàn thành các thao tác COPS đối với COPS thuần
túy, 450 ms đối với COPS/TLS và 521 ms đối với COPS/IPsec.

22
Hình 3.3 Thời gian để PEP hoàn thành toàn bộ phiên cho ba tình huống trong cả
năm mô phỏng

Trong cả năm lần mô phỏng, Pure COPS luôn mất thời gian ngắn nhất để hoàn
thành các thao tác COPS; trung bình là 416,4 ms. Đối với Pure COPS, PDP và PEP chỉ
đưa tin nhắn xuống TCP khi gửi hoặc nhận tin nhắn đã nhận từ TCP khi nhận.
Trong COPS/TLS, TLS mã hóa các tin nhắn sẽ được gửi trước khi chúng có thể
được xử lý xuống TCP và giải mã các tin nhắn đã nhận sau khi lấy chúng từ TCP
nhưng trước khi gửi đến PDP hoặc PEP nhận. Trong COPS/IPsec, IPsec mã hóa các tin
nhắn sẽ được gửi sau khi PDP hoặc PEP gửi chúng xuống TCP và khi PDP hoặc PEP
nhận được các tin nhắn đã nhận từ TCP, các tin nhắn đó đã được giải mã an toàn bởi
IPsec. Do đó, cần thêm thời gian để hoàn thành các hoạt động COPS trong hai kịch
bản COPS an toàn này.
Trung bình cho năm lần mô phỏng, COPS/TLS mất 514,6 mili giây để hoàn thành các
thao tác COPS trong một phiên COPS, gấp 1,24 lần so với COPS thuần túy và
COPS/IPsec mất 548,8 mili giây, gấp 1,34 lần so với COPS thuần túy. Sự khác biệt
giữa thời gian dành cho phiên COPS an toàn và phiên Pure COPS không quá lớn so
với thời gian thiết lập kết nối.

3.2.3 Thời gian để PDP hoàn thành các hoạt động COPS
Sau khi kết nối được thiết lập, PDP sẵn sàng nhận thông báo OPN từ PEP và sẽ
ngắt kết nối với PEP sau khi nhận được thông báo CC từ PEP. Thời gian để PDP hoàn
thành các hoạt động COPS trong một phiên mà chúng tôi đã ghi lại là khoảng thời gian
từ điểm PDPSimulator sẵn sàng nhận thông báo OPN cho đến khi nó kết thúc việc
nhận thông báo CC và tắt kết nối với PEPSimulator, như được chỉ ra trong Hình 3.4

23
Hình 3.4 Thời gian để PDP hoàn thành toàn bộ phiên cho ba kịch bản trong cả
năm mô phỏng

Về phía PDP, phiên Pure COPS một lần nữa chiếm thời gian ngắn nhất để hoàn
thành các thao tác COPS, vì nó không thực hiện mã hóa và giải mã khi gửi và nhận.
Trung bình cho năm lần mô phỏng, PDPSimulator mất 502,8 mili giây để hoàn thành
phiên trong Pure COPS, 579 mili giây trong COPS/IPsec và 735 mili giây trong
COPS/TLS. Thời gian trung bình này cho COPS/IPsec gấp 1,15 lần so với Pure COPS
và trong COPS/TLS là 1,46 lần so với Pure COPS.
Ta thấy rằng PDPSimulator luôn mất nhiều thời gian hơn PEPSimulator để
hoàn thành các hoạt động COPS cho một tình huống nhất định. Chúng ta hãy xem lại
Hình 3.1 Trong một phiên mô phỏng của chúng tôi, PDPSimulator nhận ba tin nhắn
(OPN, REQ và CC) và gửi hai tin nhắn (CAT và DEC). Ngược lại, PEPSimulator gửi
ba tin nhắn (OPN, REQ và CC) và nhận hai tin nhắn (CAT và DEC).
PDPSimulator hoặc PEPSimulator gửi tin nhắn bằng cách gọi phương thức ghi
từ lớp java.io.DataOutputStream trong Pure COPS và COPS/IPsec, đồng thời gọi
phương thức tlsWrite từ lớp JTLS.TLSio.TLSOutputStream trong COPS/TLS và nhận
tin nhắn bằng cách gọi phương thức đọc phương thức từ lớp java.io.DataInputStream
trong Pure COPS và COPS/IPsec, đồng thời gọi phương thức tlsRead từ lớp
JTLS.TLSio.TLSInputStream trong COPS/TLS.
write hoặc tlsWrite trả về ngay lập tức khi quá trình thực thi kết thúc. Tuy nhiên, các
khối read hoặc tlsRead cho đến khi có dữ liệu đầu vào. Khi PDPSimulator hoặc
PEPSimulator gọi read hoặc tlsRead để nhận tin nhắn, người gửi vẫn có thể chuẩn bị
và tạo tin nhắn sẽ được gửi trong khi PDPSimulator hoặc PEPSimulator đang đợi dữ
liệu có sẵn. Do đó, việc nhận tin nhắn mất nhiều thời gian hơn so với việc gửi tin nhắn.
Trong một phiên mô phỏng của chúng tôi, PDPSimulator nhận được một thông báo

24
nhiều hơn so với PEPSimulator. Đây là lý do tại sao PDPSimulator mất nhiều thời gian
hơn PEPSimulator để hoàn thành các thao tác COPS trong một phiên.

3.2.4 Chi phí bảo mật và hoạt động COPS


Bất kể trường hợp nào trong ba trường hợp của chúng tôi, COPS luôn xử lý dữ
liệu ở dạng văn bản rõ ràng. Thời gian để tạo và xác minh Tính toàn vẹn mà ta đã ghi
lại luôn bằng 0 mili giây, ví dụ: thời gian này quá ngắn để PC ghi lại. Do đó, chúng tôi
có thể nói rằng các hoạt động COPS không gây ra bất kỳ chi phí bảo mật nào.

3.3 Kết luận


Mô phỏng của ba kịch bản, Pure COPS, COPS/TLS và COPS/IPsec, cho thấy
mã hóa 3DES và SHA-1 có ảnh hưởng đến hiệu suất COPS khi gửi và nhận tin nhắn
COPS, nhưng sự khác biệt là không đáng kể. Cả TLS và IPsec đều cung cấp các dịch
vụ bảo mật mạnh mẽ để bảo vệ chính sách COPS với tính bảo mật và toàn vẹn.

3.3.1 Hiệu suất sử dụng thời gian


Như chúng ta đã thấy từ sự so sánh giữa ba kịch bản, việc trao đổi các bản tin
COPS trong bản mã không làm tăng thời gian nhiều so với việc trao đổi các bản tin
trong văn bản rõ ràng. Trong cả COPS/TLS và COPS/IPsec, các thuật toán mã hóa
không gây ra độ trễ đáng kể trong quá trình trao đổi thông báo COPS. Do đó, trả một
chút giá trong thời gian sử dụng có thể đảm bảo bảo vệ bí mật cho việc phân phối
thông tin chính sách COPS

Nhưng khi thiết lập kết nối giữa PDPSimulator và PEPSimulator, chi phí thời
gian lại nói lên một câu chuyện khác. Thời gian là cái giá phải trả để thiết lập kết nối
bảo mật giữa COPS PDP và PEP. Để thiết lập kết nối bảo mật qua TLS giữa
PDPSimulator và PEPSimulator, mất khoảng 24 giây, gấp 1001,45 lần so với kết nối
Pure COPS, khoảng 0,6 giây cho kết nối qua IPsec, gấp 36,56 lần so với Pure COPS.
Để thêm tính năng bảo mật vào giao thức COPS, với TLS hoặc với IPsec, tốt
hơn là làm cho phiên bảo mật có thể sử dụng lại được. Khi thiết lập kết nối bảo mật
giữa PDP và PEP, việc sử dụng các tham số bảo mật được đàm phán bởi phiên trước
đó có thể giảm đáng kể thời gian kết nối bằng cách tránh tốn thời gian tính toán, ví dụ:
tạo số ngẫu nhiên trong quá trình bắt tay TLS, trong quá trình đàm phán bảo mật hoàn
chỉnh . Đồng thời, một chính sách nên được thiết lập để điều chỉnh thời gian và số lần
một tập hợp các tham số bảo mật đã thương lượng có thể được sử dụng lại.

3.3.2 Triển khai COPS/IPSec


Chạy COPS/IPsec khá đơn giản. Vì COPS và IPsec không liền kề trong ngăn
xếp giao thức nên việc triển khai không cần chạm vào bất kỳ thư viện API IPsec nào.

25
Không cần sửa đổi trong triển khai COPS để sử dụng triển khai IPsec hiện có. Chỉ cần
định cấu hình IPsec hiện có trong hệ điều hành, IPsec sẽ bảo vệ thông tin chính sách
COPS được trao đổi giữa PDP và PEP bằng cách bảo vệ tất cả lưu lượng TCP giữa hai
máy chủ này, nơi PDP và PEP cư trú tương ứng.
Nhược điểm của việc sử dụng IPsec là IPsec không thể cung cấp điều khiển
truy cập theo định hướng COPS khi thiết lập kết nối bảo mật. Do đó, đối với COPS,
không có xác thực của máy khách COPS với máy chủ COPS (vì không có ánh xạ giữa
danh tính IPsec và PEPID) trong quá trình đàm phán bảo mật. IPsec bảo vệ thông tin
chính sách COPS bằng cách bảo vệ tất cả lưu lượng TCP giữa hai máy chủ. Điều này
có nghĩa là nếu có các ứng dụng khác giao tiếp giữa hai máy chủ này, chúng sẽ sử
dụng cùng một phiên IPsec.
Nếu có bất kỳ Network Address Translation (NAT) nào giữa hai điểm cuối, thì
IPsec không hoạt động. Trong trường hợp này, COPS không thể nhận các dịch vụ bảo
mật từ IPsec. IPsec cần nhiều cấu hình hệ thống hơn.

3.3.3 Triển khai COPS/TLS


Vì TLS liền kề với COPS trong ngăn xếp giao thức nên có thể thiết lập kết nối
bảo mật hướng COPS bằng cách chạy COPS/TLS. Nếu có các ứng dụng khác giao tiếp
giữa cùng một máy chủ lưu trữ PDP và PEP và các ứng dụng đó không có thông tin
nhạy cảm nào cần được bảo vệ, thì có vẻ như IPsec đã làm quá nhiều khi xem xét rằng
các thuật toán mã hóa yêu cầu sức mạnh xử lý rất lớn khi tính toán trên một khối dữ
liệu lớn. Tuy nhiên, việc sử dụng COPS/TLS mang lại cho COPS kết nối an toàn
hướng phiên trong khi các ứng dụng khác vẫn có thể trao đổi tin nhắn ở dạng văn bản
rõ ràng nếu chúng không muốn ẩn thông tin của mình hoặc tin nhắn không nhạy cảm.
Nếu các ứng dụng khác muốn cuộc trò chuyện của họ được bảo mật, họ có thể
thiết lập kết nối bảo mật của riêng mình bằng cách sử dụng TLS. Do đó, phiên bảo mật
cho COPS được tách biệt với bất kỳ phiên bảo mật nào khác cho các ứng dụng khác và
có thể cung cấp xác thực ứng dụng khách COPS cho máy chủ COPS. Cấu hình bảo
mật để sử dụng TLS chỉ được thực hiện trong ứng dụng COPS. Không có vấn đề NAT
khi sử dụng COPS trên TLS.
Nhược điểm là các ứng dụng COPS nên được sửa đổi để hỗ trợ TLS. Sửa đổi
này sẽ có nhiều công việc cho các nhà phát triển.

26
TÀI LIỆU THAM KHẢO

Tài liệu tham khảo


1. D. Durham, J. Boyle, R. Cohen, S. Herzog, R. Rajan and A. Sastry, "The
COPS (Common Open Policy Service) Protocol", IETF RFC 2748, January
2000
2. T. Dierks and C. Allen, "TLS Protocol version 1.0", IETF RFC 2246,
January 1999
3. Jesse Walker and Amol Kulkarni, “COPS Over TLS”, IETF Internet
Draft, June 2002, http://www.ietf.org/internet-drafts/draft-ietf-rap-cops-tls-
04.txt
4. S. Kent and R. Atkinson, "Security Architecture for the Internet
Protocol", IETF RFC 2401, November 1998.
5. S. Kent and R. Atkinson, "IP Authentication Header", IETF RFC 2402,
November 1998.
6. S. Kent and R. Atkinson, "IP Encapsulation Security Payload (ESP)",
IETF RFC 2403, November 1998.
7. D. Harkins and D. Carrel, "The Internet Key Exchange (IKE)", IETF
RFC 2409, November 1998.
8. S. Deering and R. Hinden, "Internet Protocol version 6 Specification",
IETF RFC 2460, November 1998.
9. H. Orman, "The OAKLEY Key Determination Protocol", IETF RFC
2412, November 1998.
10. J. Postel, "Internet Protocol", IETF RFC 791, September 1981.
11. J. Walker, "CMS Over COPS", IETF Internet Draft, May 2000.
http://www.alternic.org/drafts/drafts-j-k/draft-jwalker-cops-cms-00.txt

27

You might also like