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

bài thi cuối kỳ môn an ninh mạng viễn thông đề tài giao thức ssl tls

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

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA VIỄN THƠNG 1
----------

BÀI THI CUỐI KỲ
MÔN AN NINH MẠNG VIỄN THÔNG

ĐỀ TÀI: GIAO THỨC SSL/TLS

Giảng viên:

Nguyễn Thanh Trà

Nhóm mơn học:

05

Nhóm tiểu luận:

05

Sinh viên thực hiện: Nguyễn Trường Giang
Nguyễn Xuân Tiệp
Trương Kim Tài

Hà Nội, tháng 06 năm 2020


Bài thi cuối kỳ mơn ANM

BẢNG PHÂN CƠNG CƠNG VIỆC


Stt

Họ và tên

Mã sv

Cơng việc

1

Nguyễn Trường Giang

B17DCVT106

- Tìm hiểu về SSL ở chương 1
- Chỉnh sửa bản word

2

Nguyễn Xuân Tiệp

B17DCVT354

3

Trương Kim Tài

B17DCVT314

- Tìm hiểu TLS ở chương 1

- Làm mở đầu, cơ sở lý luận,
kết luận
- Tìm hiểu chương 2, 3
- Làm bìa, bảng thuật ngữ,
danh mục hình vẽ, mục lục

2 | Nhóm 05


Bài thi cuối kỳ môn ANM

MỤC LỤC

LỜI MỞ ĐẦU .........................................................................................................................................4
CƠ SỞ LÝ LUẬN……………………………………………………………………………………...5
BẢNG THUẬT NGỮ VIẾT TẮT .........................................................................................................6
DANH MỤC HÌNH VẼ .........................................................................................................................7
CHƯƠNG 1. SSL VÀ TLS ....................................................................................................................8
1.1 Secure Sockets Layer .....................................................................................................................8
1.1.1 Kiến trúc SSL ............................................................................................................................8
1.1.2 Hai trạng thái SSL.....................................................................................................................8
1.1.2.1 SSL session ...........................................................................................................................8
1.1.2.2 SSL connection ....................................................................................................................9
1.1.3 SSL Record Protocol ...............................................................................................................10
1.1.4 SSL Change Cipher Spec Protocol ........................................................................................12
1.1.5 SSL Alert Protocol ..................................................................................................................12
1.1.6 SSL Handshake Protocol ........................................................................................................13
1.1.6.1 Giai đoạn 1: Gửi thông điệp hello cho kết nối logic ........................................................14
1.1.6.2 Giai đoạn 2: Xác thực máy chủ và trao đổi khóa ............................................................15
1.1.6.3 Giai đoạn 3: Xác thực máy khách và trao đổi khóa ........................................................15

1.1.6.4 Giai đoạn 4: Kết thúc .........................................................................................................16
1.2 Giao thức TLS ..............................................................................................................................16
1.2.1 Thuật toán HMAC ..................................................................................................................17
1.2.2 Hàm giả ngẫu nhiên ................................................................................................................18
1.2.3 Mã cảnh báo.............................................................................................................................19
1.2.4 Thông điệp xác minh chứng chỉ .............................................................................................21
1.2.5 Thông điệp hồn thành ...........................................................................................................21
1.2.6 Tính tốn mật mã ....................................................................................................................21
CHƯƠNG 2. SSL ATTACK (TẤN CƠNG SSL) ..............................................................................23
2.1 Tìm hiểu về tấn cơng Man-in-the-Middle (MITM) ...................................................................23
2.1.1 Khái niệm .................................................................................................................................23
2.1.2 Hình thức tấn cơng MITM - Giả mạo ARP Cache ..............................................................24
2.1.3 Hình thức tấn cơng MITM - Giả mạo DNS (DNS Spoofing) ...............................................25
2.1.4 Hình thức tấn công MITM - Chiếm quyền điều khiển Session ...........................................27
2.1.5 Hình thức tấn cơng MITM - Chiếm quyền điều khiển SSL ................................................28
CHƯƠNG 3. CÁC ỨNG DỤNG CỦA SSL .......................................................................................31
3.1 Một vài ứng dụng cụ thể của SSL ...............................................................................................31
KẾT LUẬN ...........................................................................................................................................33
TÀI LIỆU THAM KHẢO ...................................................................................................................34

3 | Nhóm 05


Bài thi cuối kỳ môn ANM

LỜI MỞ ĐẦU
Yếu tố an ninh, bảo mật dữ liệu ngày nay đang trở thành vấn đề cấp thiết,
không chỉ đối với chủ sở hữu website mà còn với những nhà cung cấp Dịch vụ mạng,
dịch vụ làm web. Đối với một website, dù là trong lĩnh vực nào đi nữa thì các thơng
tin, dữ liệu lưu truyền trên đó đều có khả năng ảnh hưởng trực tiếp đến người dùng và

cả chủ sở hữu web. Một hệ thống với chất lượng bảo mật yếu, kém ảnh hưởng đến
khơng chỉ cá nhân mà cịn nguy hại đến các tài nguyên, tài liệu mật của quốc gia.
Chính vì vậy, các tiêu chuẩn về an ninh mạng và bảo mật thông tin website đã ra đời
như một giải pháp hiện đại và hữu ích với thời buổi công nghệ thông tin phát triển
ngày nay. Tiêu chuẩn này gọi là SSL.
Bộ môn An ninh mạng thông tin là một môn học nền tảng và cần thiết cho kiến
thức về bảo mật dữ liệu cho sinh viên trường ta. Nhóm em xin gửi lời cảm ơn đến Học
Viện Cơng Nghệ Bưu Chính Viễn Thơng và cơ Nguyễn Thanh Trà đã giúp nhóm được
tiếp cận, học hỏi những kiến thức chun mơn bổ ích trong kỳ học vừa qua. Tuy vậy,
những kiến thức mà nhóm tiếp thu, tìm hiểu được vẫn cịn nhiều hạn chế và thiếu sót.
Mong cơ xem xét và góp ý để bài tiểu luận của nhóm em được hồn thiện hơn.

4 | Nhóm 05


Bài thi cuối kỳ môn ANM

CƠ SỞ LÝ LUẬN
1. Lý do chọn đề tài
Ở thời đại công nghệ thông tin phát triển mạnh mẽ, bảo mật dữ liệu thông tin là
vấn đề được chú trọng hơn bao giờ hết. Không chỉ quân đội, nhà nước, các doanh
nghiệp, các cơ sở giáo dục mà chính mỗi chúng ta đều muốn bảo mật thơng tin của
mình. Những thơng tin truyền trên Internet cần được mã hóa và bảo mật, tránh cho bên
thứ ba nghe trộm hay giả mạo data, và thế là SSL/TLS ra đời. Vậy SSL/TLS là gì? Bộ
giao thức của chúng hoạt động như thế nào? Mã hóa và giải mã ra sao? Từ những câu
hỏi này nhóm em đã chọn SSL/TLS làm đề tài tiểu luận để tìm hiểu và phân tích rõ
hơn.
2. Mục đích nghiên cứu
-


Nghiên cứu về kiến trúc và hoạt động các giao thức SSL và TLS.

3. Phạm vi của tiểu luận
-

Tìm hiểu về kiến trúc, hoạt động, tính tốn mật mã của SSL/TLS.

-

Mơ tả các hình thức tấn cơng SSL và ứng dụng thực tế của bộ giao thức.

4. Phương pháp nghiên cứu
-

Dựa trên các kiến thức đã học ở bộ môn An ninh mạng truyền thơng, tìm hiểu
thêm qua các tài liệu tham khảo về SSL/TLS trong và ngoài nước

5. Nội dung bài tiểu luận bao gồm
-

Chương 1: SSL và TLS

-

Chương 2: SSL Attack (Tấn công SSL)

-

Chương 3: Ứng dụng thực tế của SSL


5 | Nhóm 05


Bài thi cuối kỳ môn ANM

BẢNG THUẬT NGỮ VIẾT TẮT

Thuật ngữ viết
tắt
CBC

Tiếng Anh

Tiếng Việt

Cipher Block Chaining

Chuỗi mật mã khối

DES

Data Encryption Standard

Tiêu chuẩn mã hóa dữ liệu

DNS

Domain Naming System

Hệ thống phân giải tên miền


HMAC

Hashed Message Authentication
Code

Mã xác thực thông điệp băm

HTTP

HyperText Transfer Protocol

ID

Identify

Giao thức truyền tải siêu văn
bản
Định danh

IDEA
MAC

International Data Encryption
Algorithm
Message Authentication Code

Mã xác thực bản tin

MD-5


Message-Digest algorithm 5

MITM

“Man-in-the-middle”

Tấn công xen giữa

PRF

Pseudo-random Function

Hàm giả ngẫu nhiên

RFC

Request for Comments

RSA

Rivest–Shamir–Adleman

Đề nghị duyệt thảo và bình
luận
Thuật tốn mật mã hóa khóa
cơng khai

SEO


Search Engine Optimization

SHA

Secure Hash Algorithm

SSL

Secure Sockets Layer

TCP

Transmission Control Protocol

Giao thức điều khiển truyền tin

TLS

Transport Layer Security

Bảo mật lớp giao vận

URL

Uniform Resource Locator

Định vị tài ngun thống nhất

6 | Nhóm 05


Tối ưu cơng cụ tìm kiếm


Bài thi cuối kỳ mơn ANM

DANH MỤC HÌNH VẼ

Stt

Tên hình

1

Hình 1.1

Ngăn xếp giao thức SSL

2

Hình 1.2

Hoạt động của SSL Record Protocol

3

Hình 1.3

Tính MAC trên dữ liệu đã được nén

4


Hình 1.4

Khn dạng bản tin SSL

5

Hình 1.5

SSL Handshake Protocol

6

Hình 1.6

Hoạt động của thuật tốn HMAC sử dụng MD5 hoặc SHA-1

7

Hình 1.7

8

Hình 2.1

Cơ chế mở rộng dữ liệu TLS sử dụng hàm P_hash
(secret,seed)
Mô hình tấn cơng SSL MITM

9


Hình 2.2

Q trình truyền thơng ARP

10

Hình 2.3

Chặn truyền thơng bằng các giả mạo ARP Cache

11

Hình 2.4

Mơ hình truy vấn đáp trả DNS

12

Hình 2.5

Tấn cơng giả mạo DNS bằng phương pháp giả mạo DNS ID

13

Hình 2.6

Một Session bình thường

14


Hình 2.7

Chiếm quyền điều khiển Session

15

Hình 2.8

Minh họa HTTPS

16

Hình 2.9

Q trình truyền thơng HTTPS

17

Hình 2.10

Chiếm quyền điều khiển truyền thơng HTTPS

7 | Nhóm 05

Nội dung


Bài thi cuối kỳ môn ANM


CHƯƠNG 1. SSL VÀ TLS
1.1 Secure Sockets Layer
1.1.1 Kiến trúc SSL
SSL là một giao thức phân lớp. SSL không phải là một giao thức đơn lẻ mà là hai
lớp giao thức được mô tả như hinh 1.

Hình 1.1 Ngăn xếp giao thức SSL
Ở lớp dưới, SSL Record Protocol nằm trên một số giao thức truyền tải đáng tin
cậy như TCP. SSL Record Protocol cung cấp các dịch vụ bảo mật cơ bản cho các giao
thức lớp trên. Ba giao thức lớp trên được sử dụng trong việc quản lý và trao đổi SSL
gồm: HandShake Protocol, Change Ciphher Spec Protocol và Alert Protocol.
1.1.2 Hai trạng thái SSL
Có hai thơng số kỹ thuật được định nghĩa ở SSL là SSL session (phiên) và SSL
connection (kết nối).
1.1.2.1 SSL session
SSL session là một liên kết giữa máy khách và máy chủ. Các phiên được tạo bới
HandShake Protocol, chúng xác định
một tập hợp các tham số bảo mật mật mã để
chia sẻ giữa nhiều kết nối, được sử dụng để tránh việc đàm phán tốn kém các tham số
bảo mật mới cho mỗi kết nối.
SSL session điều phối các trạng thái máy khách và máy chủ. Về mặt logic, trạng
thái được biểu thị hai lần gồm trạng thái hoạt động hiện tại và trạng thái chờ xử lý. Khi
máy khách hoặc máy chủ nhận được bản tin change cipher spec, nó sẽ sao chép trạng
thái đọc đang chờ xử lý sang trạng thái đọc hiện tại. Khi máy khách hoặc máy chủ gửi

8 | Nhóm 05


Bài thi cuối kỳ môn ANM


một bản tin change cipher spec, nó sẽ sao chép trạng thái ghi đang chờ xử lý vào trạng
thái ghi hiện tại. Khi đàm phán bắt tay hoàn tất, máy khách và máy chủ trao đổi bản tin
change cipher spec và sau đó họ giao tiếp bằng cách sử dụng thông số kỹ thuật mật mã
mới được thỏa thuận.
Trạng thái phiên được định nghĩa bởi các thông số sau:
- Session identifier (số nhận dạng phiên): là một giá trị được tạo bởi máy chủ xác
định trạng thái phiên là hoạt động (active) hay phục hồi lại (resumable).
- Peer certificate (chứng chỉ ngang hàng): là một chứng chỉ X.509 v3, thơng số
này có thể là rỗng
- Compression method (phương pháp nén): là thuật toán được sử dụng để nén dữ
liệu trước khi mật mã hóa.
- Cipher spec (thơng số mật mã): chỉ ra thuật tốn mã hóa dữ liệu (DES,…) và
thuật tốn băm (MD-5, SHA-1) để tính tốn MAC. Nó cũng xác định các thuộc tính
mật mã như kích thước băm.
- Master secret: 48 byte bí mật được chia sẻ giữa máy khách và máy chủ. Nó đại
diện cho dữ liệu bí mật an tồn được sử dụng để tạo khóa mã hóa, khóa bí mật MAC
và các vecto khởi tạo.
- Is resumable: là 1 cờ cho biết phiên có được sử dụng để bắt đầu các kết nối
mới.
1.1.2.2 SSL connection
Kết nối là một transport (định nghĩa trong mơ hình phân lớp OSI) cung cấp một
loại dịch vụ phù hợp. Đối với SSL, các kết nối này là tạm thời, có quan hệ ngang hàng
(peer-to-peer) và mọi kết nối được liên kết với một phiên.
Trạng thái kết nối được định nghĩa bởi các thông số sau:
- Server and client random: là chuỗi bytes được lựa chọn giữa máy khách và máy
chủ trong mỗi kết nối.
- Server write MAC secret: chỉ ra khóa bí mật được sử dụng trong MAC trên dữ
liệu được gửi từ máy chủ.
- Client write MAC secret: chỉ ra khóa bí mật được sử dụng trong MAC trên dữ
liệu từ máy khách gửi.

- Server write key: là khóa mật mã thường cho dữ liệu được mã hóa tại máy chủ
và giải mã tại máy khách.
- Client write key: là khóa mật mã thường cho dữ liệu được mã hóa tại máy
khách và giải mã tại máy chủ.
- Initialisation vectors (vecto khởi tạo): Khi mật mã khối ở chế độ CBC được sử
dụng, vecto khởi tạo được duy trì cho mỗi khóa. Trường này được khởi tạo đầu tiên
bởi SSL Handshake Protocol. Khối bản mã cuối cùng từ mỗi bản ghi được giữ lại để
sử dụng làm vecto khởi tạo với bản ghi sau. Vecto khởi tạo được XOR với khối bản rõ
đầu tiên trước khi mã hóa.

9 | Nhóm 05


Bài thi cuối kỳ môn ANM

- Sequence numbers (số thứ tự): mỗi bên duy trì các số thứ tự riêng với các tin
nhắn được truyền và nhận cho mỗi kết nối. Khi một bên gửi hoặc nhận thông báo
thông số kỹ thuật mật mã thay đổi, số thứ tự thích hợp được đặt về 0. Số thứ tự không
được vượt quá 264 − 1.

1.1.3 SSL Record Protocol
SSL Record Protocol nhận một bản tin ứng dụng để truyền, phân mảnh dữ liệu
thành các khối để quản lý, nén dự liệu tùy chọn, áp dụng vào một MAC, mã hóa, thêm
tiêu đề và truyền trong một phân đoạn TCP. Dữ liệu đầu nhận được giải mã, xác minh,
giải nén, tập hợp lại và sau đó được chuyển đến các máy khách.
Các bước thực hiện trong SSL Record Protocol được trình bày như hình 2

Hình 1.2 Hoạt động của SSL Record Protocol
Bước đầu tiên là phân mảnh các bản tin ở lớp cao hơn thành các khối (gọi là bản
ghi SSLPlaintext) có kích thước khơng vượt q 214 bytes. Sau đó tất cả các bản tin

được nén bởi thuật toán nén được định nghĩa ở trạng thái phiên hiện tại. Thuật toán
nén chuyển đổi cấu trúc SSLPlaintext trở thành cấu trúc SSLCompressed và nén phải
không làm mất dữ liệu và không được làm tăng độ dài hiện tại quá 1024 bytes.
Tiếp theo dùng khóa bí mật được chia sẻ để tính tốn MAC trên dữ liệu đã nén
được mơ tả như hình 1.3

10 | Nhóm 05


Bài thi cuối kỳ mơn ANM

Hình 1.3 Tính MAC trên dữ liệu đã được nén
Phép tính được định nghĩa như sau:
H1 = hash(MAC-write-secret || pad-1 || seq-num || SSLCompressed.type ||
SSLCompressed.length || SSLCompressed.fragment)
H = hash(MAC-write-secret || pad-2 ||H1)
Với:
• Hash: thuật tốn băm mật mã có thể là MD5 hay SHA-1
• MAC-write-secret: khóa bí mật được chia sẻ
• Pad-1: byte 0x36 (0011 0110) được lặp lại 48 lần (384 bits) đối với MD5 hay
lặp 40 lần (320 bits) đối với SHA-1
• Pad 2: byte 0x5C (0101 1100) được lặp lại 48 lần với MD5 hay lặp hay 40 lần
với SHA-1
• Seq-num: số thứ tự của bản tin
• SSLCompressed.type: giao thức lớp trên để xử lý phân đoạn này
• SSLCompressed.length: độ dài của phân đoạn đã nén
• SSLCompressed.fragment: đoạn nén (hay là bản rõ nếu khơng được nén)
• ||: ký hiệu nối
Tiếp đó, bản tin đã nén ghép với MAC được mã hóa bằng mật mã hóa đối xứng.
Các mật mã khối được sử dụng làm thuật tốn mã hóa là DES, Triple DES, IDEA,

Fortezza với kích thước khóa lần lượt là 56,168,128, 80 và RC5 có kích thước khóa
tùy chọn. Đối với mã hóa khối, phần đệm được thêm vào sau MAC trước khi mã hóa

11 | Nhóm 05


Bài thi cuối kỳ mơn ANM

cịn đối với mã hóa dịng, tin nhắn nén cộng với MAC được mã hóa vì MAC được tính
tốn trước khi q trình mã hóa diễn ra, nó được mã hóa cùng với bản rõ đã nén.
Bước cuối cùng của quá trình SSL Record Protocol là gắn thêm một tiêu đề bản
ghi SSL. Khuôn dạng bản ghi SSL được mơ tả như hình 4.

Hình 1.4 Khuôn dạng bản tin SSL
Tiêu đề SSL bao gồm các trường sau:
- Content type (8 bit): là giao thức lớp trên được sử dụng để xử lý phân đoạn kèm
theo.
- Major version (8 bit): cho biết phiên bản chính của SSL đang sử dụng
- Minor version: (8 bit) cho biết phiên bản nhỏ của SSL đang sử dụng
- Compressed length (16 bit): cho biết độ dài tính bằng byte của phân đoạn bản
rõ hay phân đoạn nén nếu yêu cầu nén. Có giá trị lớn nhất là 214 + 2048.
1.1.4 SSL Change Cipher Spec Protocol
SSL Change Cipher Spec Protocol là giao thức đơn giản nhất trong 3 giao thức
đặc trưng của SSL. Giao thức này gồm 1 bản tin đơn 1 byte và có giá trị 1. Mục đích
duy nhất của giao thức này là sinh ra trạng thái tiếp theo để gán vào trạng thái hiện tại,
và trạng thái hiện tại sẽ cập nhật lại bộ mã hóa để sử dụng trên kết nối này.
1.1.5 SSL Alert Protocol
Giao thức SSL Alert được dùng để chuyển các cảnh báo liên kết SSL đến thực thể
ngang hàng. Mỗi bản tin trong giao thức này gồm 2 bytes. Byte đầu tiên mang giá trị
“cảnh báo” hoặc “nguy hiểm”. Nếu là mức độ “nguy hiểm”, SSL sẽ chấm dứt kết nối

ngay lập tức. Trong trường hợp này, những kết nối khác trong cùng phiên sẽ vẫn tiếp

12 | Nhóm 05


Bài thi cuối kỳ môn ANM

tục nhưng số nhận dạng phiên phải vơ hiệu hóa để ngăn phiên bị lỗi thiết lập kết nối
mới. Byte thứ hai của bản tin chứa một mã cho biết cảnh báo đặc trưng.
Những thông số của cảnh báo (liên kết SSL) luôn mang giá trị “nguy hiểm” bao
gồm:
- unexpected-message: bản tin đã nhận ko phù hợp
- bad-record-mac: cảnh báo này sẽ bị trả lại nếu MAC khơng chính xác
- decompression-failure: việc dải nén nhận đầu vào khơng thích hợp (ví dụ dữ
liệu bị mở rộng vượt quá độ dài cho phép)
- no-certificate: có thể gửi để phản hồi yêu cầu chứng chỉ nếu không có chứng
chỉ phù hợp
- bad-certificate: chứng chỉ nhận được bị lỗi (ví dụ: chứa chữ ký khơng được xác
minh)
- unsupported certificate: dạng chứng chỉ nhận đã nhận không được hỗ trợ
- certificate-revoked: chứng chỉ bị thu hồi bởi người kí
- certificate-expired: chứng chỉ đã hết hạn
- certificate-unknown: một số vấn đề khơng xác định phát sinh trong q trình xử
lý chứng chỉ khiến nó khơng hợp lệ
- illegal-parameter: một trường trong q trình bắt tay nằm ngồi phạm vi hoặc
khơng nhất quán với các trường khác
- close-notify: bản tin này thông báo cho người nhận rằng người gửi sẽ không gửi
thêm bất kỳ bản tin nào trên kết nối này. Mọi dữ liệu nhận sau bản tin này đều được bỏ
qua
1.1.6 SSL Handshake Protocol

SSL Handshake Protocol (giao thức bắt tay SSL) được vận hành phía trên tầng
SSL Record là phần quan trọng nhất của SSL. Giao thức này cung cấp ba dịch vụ cho
các kết nối giữa máy chủ và máy khách. Giao thức bắt tay cho phép máy khách/máy
chủ thống nhất về phiên bản giao thức, xác thực lẫn nhau bằng MAC, đàm phán một
thuật tốn mã hóa và khóa mật mã để bảo vệ dữ liệu được gửi trong bản ghi SSL trước
khi ứng dụng truyền dữ liệu.

13 | Nhóm 05


Bài thi cuối kỳ mơn ANM

Hình 1.5 SSL Handshake Protocol
1.1.6.1 Giai đoạn 1: Gửi thông điệp hello cho kết nối logic
Máy khách gửi một thông điệp hello và máy chủ cũng phải phản hồi lại bằng một
thông điệp hello nếu không sẽ xảy ra lỗi và kết nối sẽ không thành công. Thông điệp
hello dùng để thiết lập khả năng nâng cao bảo mật giữa máy chủ và máy khách với các
thuộc tính sau:
- Client version: là phiên bản của giao thức SSL được sử dụng trong phiên này,
phải là phiên bản cao nhất được hỗ trợ
- Random: là cấu trúc ngẫu nhiên 28 bytes được tạo bởi bộ sinh số ngẫu nhiên an
toàn
- Session ID: là ID của một phiên. SessionID khác 0 cho biết rằng máy khách
muốn cập nhật các tham số của kết nối hiện có hoặc tạo kết nối mới trong phiên này.
SessionID = 0 cho biết máy khách muốn tạo kết nối mới trên một phiên mới
- Cipher suites: là một danh sách tùy chọn mật mã được máy khách hỗ trợ với lựa
chọn ưu tiên máy khách trước.

14 | Nhóm 05



Bài thi cuối kỳ môn ANM

- Compressed method: là một danh sách các phương pháp nén được hỗ trợ bởi
máy khách
Sau khi gửi thông điệp hello, máy khách sẽ chờ máy chủ phản hồi bằng thơng điệp
hello có những thơng số giống với thông điệp hello được gửi từ máy khách. Trường
version chứa phiên bản thấp hơn được đề nghị bởi máy khách và cao nhất được máy
chủ hỗ trợ. Trường random được tạo ra bởi máy chủ và khác với trường random của
máy khách. Nếu trường sessionID của máy khách khác 0 thì giá trị của máy chủ tương
tự, ngược lại nếu giá trị 0 thì sessionID của máy chủ sẽ mang giá trị của một phiên
mới. Trường CipherSuite và CompressedMethod sẽ chứa bộ mã hóa và phương thức
nén trong danh sách đề xuất của máy khách.
1.1.6.2 Giai đoạn 2: Xác thực máy chủ và trao đổi khóa
Sau khi trao đổi thông điệp hello, máy chủ bắt đầu giai đoạn này bằng cách gửi
bản tin chứng thực nếu yêu cầu xác thực và trao đổi khóa nếu được yêu cầu. Giai đoạn
2 gồm các bản tin sau:
- Server certificate: Nếu máy chủ được xác thực, nó sẽ gửi chứng thực ngay sau
thông điệp hello. Chứng thực phải chứa một khóa phù hợp với phương thức trao đổi
khóa và thường là chứng thực X.509.
- Server key exchange message: Bản tin trao đổi khóa được gửi đi nếu nó được
yêu cầu. Trong trường hợp máy chủ đã gửi chứng thực có tham số Diffie-Hellman hay
trao đổi khóa RSA được dùng thì nó khơng được u cầu. Chữ ký được tạo bằng cách
lấy băm của bản tin và mã hóa bằng khóa công khai. Đối với chữ ký DSS, hàm băm
được thực hiện bằng thuật toán SHA-1. Trong trường hợp chữ ký RSA, cả băm MD5
và SHA-1 đều được tính tốn và sự kết hợp của hai hàm băm được mã hóa bằng khóa
cơng khai của máy chủ
- Cerfiticate request message: Một máy chủ khơng ẩn danh có thể tùy chọn u
cầu chứng thực từ máy khách. Bản tin này bao gồm 2 tham số:
o certificate_types: trường này là danh sách các chứng thực được yêu cầu, sắp

xếp theo tùy chọn của máy chủ
o certificate_authorities: là danh sách của các nhà cung cấp chứng thực được chấp
nhận
- Server hello done message: Bản tin này được gửi từ máy chủ chỉ ra điểm cuối
của bản tin server_hello và các bản tin đi kèm.
1.1.6.3 Giai đoạn 3: Xác thực máy khách và trao đổi khóa
Giai đoạn này gồm các bản tin:
- Client certificate message: Máy khách sẽ gửi bản tin này khi máy chủ u cầu.
Nếu khơng có chứng thực hợp lệ nó sẽ gửi cảnh báo no_certificate thay thế.

15 | Nhóm 05


Bài thi cuối kỳ môn ANM

- Client key exchange message: một trường premaster secret được thiết lập thông
qua việc truyền trực tiếp mã hóa RSA hay tham số Diffie-Hellman sẽ cho phép mỗi
bên đống ý về premaster secret trước đó. Khi phương thức trao đổi khóa là DH – RSA
hoặc DH – DSS, chứng thực máy khách đã được yêu cầu và máy khách có thể phản
hồi bằng chứng thực có chứa khóa cơng khai Diffie – Hellman có các tham số khớp
với những thông số được máy chủ chỉ định trong chứng thực của nó.
- Certificate verify message: bản tin này được dùng để cung cấp xác minh chứng
thực máy khách. Thông báo chỉ được gửi sau bất kỳ chứng thực máy khách nào đánh
dấu có khả năng (tức là tất cả các chứng thực ngoại trừ những chứng thực có chứa
tham số Diffie – Hellman cố định). Bản tin này đánh dấu mã băm dựa trên các bản tin
trước đó có cấu trúc như sau:
struct{
Signature signature;
} CertificateVerify;
CertificateVerify.signature.md5_hash

MD5(master_secret||pad2||MD5(handshake_message|| master_secret||pad1))
Certificate.signature.sha_hash
SHA(master_secret||pad2||SHA(handshake_message|| master_secret||pad1))
Trong đó: pad1, pad 2 là các giá trị được xác định trước đó cho MAC,
handshake_message đề cập đến tất cả các bản tin giao thức bắt tay được gửi hay
nhận (không bao gồm bản tin này) và master_secret là khóa được tính tốn bí mật.
1.1.6.4 Giai đoạn 4: Kết thúc
Giai đoạn này hoàn thành thiết lập của một kết nối an toàn, máy khách gửi 1 bản
tin change_cipher_spec và sao chép CipherSpec đang chờ xử lý và CipherSpec hiện
tại. Sau đó máy khách cũng gửi ngay bản tin finished để xác minh quá trình trao xác
thực và trao đổi khóa đã thành cơng. Tại đây, q trình bắt tay hồn thành, máy khách
và máy chủ có thể bắt đầu trao đổi dữ liệu lớp ứng dụng.
1.2 Giao thức TLS
TLS là viết tắt của Transport Layer Security. Đây là một dạng giao thức bảo mật
(Security Protocol) cung cấp mức độ riêng tư cao, cũng như tính tồn vẹn của dữ liệu
khi giao tiếp bằng mạng và internet. TLS là tiêu chuẩn được sử dụng trong việc bảo
mật các ứng dụng web (Web applications) và trang web (Websites) trên khắp thế giới
kể từ khi được giới thiệu vào năm 1999. Nó là sự kế thừa và thay thế cho hệ thống
SSL (Lớp cổng bảo mật Secure Socket Layer) cũ hơn.
Bản thân giao thức TLSv1 dựa trên đặc tả giao thức SSLv3 do Netscape công bố.
Nhiều cấu trúc và quy tắc dữ liệu phụ thuộc vào thuật toán rất gần nhau nên sự khác
biệt giữa TLSv1 và SSLv3 là không đáng kể. Bởi vậy, chúng ta sẽ không lặp lại các

16 | Nhóm 05


Bài thi cuối kỳ môn ANM

nội dung giao thức giống hệt nhau của TLSv1 và SSLv3 mà chỉ đi tìm hiểu những
điểm khác biệt.

1.2.1 Thuật toán HMAC
Một mã xác thực thông điệp băm (HMAC) là một mã xác thực thông điệp mà làm
cho việc sử dụng một khóa mật mã cùng với một hàm băm. Việc tạo ra HMAC nếu
không biết mật mã MAC là không thể thực hiện được. TLS sử dụng thuật toán HMAC
được định nghĩa trong RFC 2104 như sau:
HMAC = H[(K ⊕ opad)||H[(K ⊕ ipad)||M]]
Với:

H = Hàm băm 1 chiều cho TLS (hoặc MD5 và SHA-1)

K = Khóa bí mật, sau được mở rộng bằng cách thêm các bit 0 vào cuối để kết quả
bằng với chiều dài khối mã băm (Với MD5 và SHA-1 là 512 bit)
ipad = 00110110(0x36) lặp lại 64 lần (512 bits)
opad = 01011100(0x5c) lặp lại 64 lần (512 bits)
M = thông điệp đầu vào HMAC
Giải thích thuật tốn:
- Nối các bit 0 vào cuối K để tạo chuỗi có 512 bit độ dài (ví dụ K = 144 thì ta sẽ
thêm vào 368 bit 0 hoặc 46 byte 0 0x00)
- XOR K với ipad để tạo ra chuỗi bit như trên
- Nối M vào chuỗi từ bước 2
- Áp dụng H cho luồng được tạo ở bước 3
- XOR K với opad để tạo chuỗi bit giống bước 1
- Nối hàm băm ở bước 4 vào chuỗi có được ở bước 5
- Áp dụng H cho luồng được tạo ở bước 6 và xuất ra kết quả

17 | Nhóm 05


Bài thi cuối kỳ mơn ANM


Hình 1.6 Hoạt động của thuật toán HMAC sử dụng MD5 hoặc SHA-1
Đối với TLS, tính tốn MAC bao gồm các trường được chỉ ra như sau:
HMAC_hash(MAC_write_secret,
TLScompressed.type||TLSCompressed.version ||

seq_num||

TLSCompressed.length|| TLSCompressed.fragment)
Có thể thấy rằng phép tính Mac chứa tất cả các trường của SSLv3 cộng thêm
trường TLSCompressed.version là phiên bản của giao thức đang sử dụng
- Trường kiểu (type) chỉ giao thức tầng cao hơn.
- Trường phiên bản (version) chỉ phiên bản giao thức (ví dụ: 3,1 cho TLS v1.0).
- Trường độ dài (length) là độ dài (tính bằng byte) của phần dữ liệu phân mảnh.
- Trường phân mảnh (fragment) có độ dài tùy ý (lên đến 214 byte) tạo nên dữ liệu
của giao thức lớp cao hơn.
1.2.2 Hàm giả ngẫu nhiên
TLS sử dụng chức năng giả ngẫu nhiên (PRF) để mở rộng bí mật thành các khối
dữ liệu cho mục đích tạo khóa hoặc xác thực. PRF lấy các giá trị nhỏ như secret, “hạt
giống” và nhãn nhận dạng làm đầu vào và tạo ra đầu ra của các khối dữ liệu dài hơn
tùy ý. Hàm mở rộng dữ liệu, P băm (bí mật, dữ liệu), sử dụng một hàm băm duy nhất
để mở rộng đầu vào:
P_hash(secret, seed) = HMAC_hash (secret, A(1)||seed) ||
HMAC_hash (secret, A(2)||seed) ||

18 | Nhóm 05


Bài thi cuối kỳ môn ANM

HMAC_hash (secret, A(3)||seed) ||…

Với:

A(0) = seed

A(i) = HMAC hash(secret, A(i-1)) and || là phép nối.

Hình 1.7 Cơ chế mở rộng dữ liệu TLS sử dụng hàm P_hash (secret,seed)
Như hình trên ta thấy, hàm băm P được lặp đi lặp lại nhiều lần nếu cần để thu
được lượng dữ liệu cần thiết. Do đó, hàm mở rộng dữ liệu sử dụng thuật toán HMAC
với MD5 hoặc SHA-1 làm hàm băm cơ bản. PRF của TLS được tạo ra bằng cách chia
Secret làm 2 phần S1 và S2, sử dụng 1 phần để tạo dữ liệu với P MD5 và phần còn lại
với P SHA – 1. Sau ta XOR 2 kết quả để tạo đầu ra. S1 lấy từ nửa đầu của Secret, S2
thì được lấy từ nửa sau. Độ dài tương ứng của chúng bằng giá trị Secret tổng thể chia
đôi, nếu dư sẽ được làm trịn. Do vậy, nếu Secret ban đầu có độ dài là một số byte lẻ,
thì byte cuối cùng của S1 sẽ bằng byte đầu tiên của S2.
PRF sẽ là kết quả của việc XOR 2 luồng giả bằng nhiên:
PRF(secret, label, seed) = P MD5(S1, label||seed) ⊕ P SHA − 1(S2, label||seed)

1.2.3 Mã cảnh báo
Giao thức cảnh báo được phân thành 2 loại đó là cảnh báo khép kín và cảnh báo
lỗi. Một trong những chức năng của lớp TLS Record là một loại cảnh báo. Thơng báo

19 | Nhóm 05


Bài thi cuối kỳ môn ANM

cảnh báo thể hiện mức độ nghiêm trọng và mô tả về cảnh báo. Nếu như ở mức độ
nghiêm trọng sẽ dẫn tới việc ngắt kết nối ngay lập tức. Máy khách và máy chủ sẽ cho
nhau biết rằng kết nối được kết thúc để tránh bị tấn cơng. Một trong 2 bên có thể gửi

thơng báo đóng kết nối, với ý nghĩa là người gửi sẽ không gửi thêm bất cứ tin nhắn
nào trên kết nối này nữa.
Xử lý lỗi ở giao thức TLS Handshake rất đơn giản. Khi một trong hai phát hiện ra
lỗi, bên phát hiện sẽ gửi một tin nhắn cho bên cịn lại, nhận được thơng báo từ bên
phát hiện lỗi, cả hai ngay lập tức đóng kết nối lại.
TLS hỗ trợ tất cả các cảnh báo lỗi được xác định ở SSLv3 và bổ sung thêm các
cảnh báo lỗi dưới đây:
Mức độ nghiêm trọng:
- Decryption failed: Một bản mã TLS được giải mã không hợp lệ. Khi được kiểm
tra thì nó khơng phải bội số chẵn của độ dài khối hay bộ đệm.
- Record overflow: Một TLS Record nhận được bản mã có độ dài vượt quá 214 +
2048 byte hoặc một bản mã được giải mã với độ dài vượt quá 214 + 2048 byte.
- Unknown ca: Nhận được một chuỗi hoặc một phần chứng chỉ nhưng không
được chấp nhận do không thể xác định được chứng chỉ CA hoặc không khớp với một
CA đáng tin cậy đã biết từ trước.
- Access denied: Chứng chỉ hợp lệ đã được nhận, nhưng khi kiểm soát truy nhập
được áp dụng, người gửi không tiến hành thỏa thuận.
- Decode error: Thông điệp khơng thể giải mã do có một trường nằm ngồi phạm
vi xác định hoặc độ dài của thơng điệp khơng chính xác
- Export restriction: Một thỏa thuận khơng được tuân thủ do các hạn chế khi xuất.
- Protocol version: Một phiên bản giao thức mà khách hàng thỏa thuận đã được
khôi phục, nhưng không được hỗ trợ do các phiên bản giao thức cũ có thể bị từ chối vì
lý do bảo mật.
- Insufficient security: Trả về lỗi Handshake không được chấp nhận do máy chủ
yêu cầu mật mã an tồn hơn những mật mã mà máy khách có thể hỗ trợ
- Internal error: Một lỗi không liên quan gì về tính năng ngang hàng hay giao
thức bị sai, ví dụ như lỗi cấp phát bộ nhớ.
Mức độ cảnh báo:
- User canceled: Hoạt động Handshake bị hủy do những lỗi khơng liên quan về
tính đúng đắn của giao thức.

- No renegotiation: Được gửi đi từ máy chủ để phản hồi phần Hello của khách
hoặc gửi đi từ máy khách để đáp lại yêu cầu xin chào sau khi đã Handshake. Các thông
điệp kiểu như này thường là để thỏa thuận lại, nhưng trong trường hợp này thì cho biết
người gửi không thể thỏa thuận lại.
- Decrypt error: Handshake không thành công, bao gồm không xác minh được
chữ ký, giải mã trao đổi khóa hoặc xác thực một thơng điệp đã hồn tất.

20 | Nhóm 05


Bài thi cuối kỳ môn ANM

Trong những lỗi ở mức cảnh báo thường không được chỉ định rõ ràng, bên gửi có
thể tùy ý xác định xem đây là mức độ nghiêm trọng hay cảnh báo. Nếu nhận được
thông được ở mức độ cảnh báo, bên gửi có thể quyết định nó có phải là lỗi nghiêm
trọng với mình hay không. Nhưng khi thông điệp được truyền đi ở mức nghiêm trọng
thì chắc chắn được coi là lỗi nghiêm trọng với bên nhận.
1.2.4 Thông điệp xác minh chứng chỉ
Ở SSLv3 hàm băm được tính tốn bằng Secret chính, thơng điệp Handshake và bộ
đệm, thì trong thơng báo xác minh chứng chỉ của TLS, hàm băm của MD5 và SHA – 1
chỉ cần tính tốn qua thơng điệp Handshake:
CertificateVerify.signature.md5_hash MD5(handshake_message)
CertificateVerify.signature.sha_hash SHA(handshake_message)
1.2.5 Thơng điệp hồn thành
Một thơng báo hồn thành sẽ được gửi ngay sau khi quá trình trao đổi và xác thực
khóa thành cơng. Giống với SSLv3, thơng báo hồn thành trong TLS là một băm dưa
trên Secret chính, thơng báo Handsahke trước đó, nhãn định danh giữa máy khách và
máy chủ. Tuy vậy, tính tốn ở TLS cho dữ liệu xác minh khác biệt một chút so với
SSLv3:
PRF(master_secret, finished_label, MD5(handshake_message)||

SHA-1(handshake_message))
Với:
- Finished_label cho biết chuỗi “client finished” do máy khách gửi hay “server
finished” do máy chủ gửi.
- Handshake_message bao gồm tất cả những thông điệp Handshake bắt đầu từ
khi khách hàng gửi Hello, kết nối tất cả cấu trúc Handshake đã được trao đổi từ đầu
đến giờ, khác với SSLv3 vì ở SSLv3 bao gồm cả thông báo xác minh chứng chỉ.
Ngồi ra, thơng điệp Handshake ở thơng báo hồn thành do máy chủ gửi cũng sẽ
khác với máy khách.
1.2.6 Tính toán mật mã
Khi bắt đầu bảo vệ kết nối, giao thức TLS Record sẽ u cầu một bộ tính tốn cụ
thể, Secret chính và giá trị ngẫu nhiên của máy khách, máy chủ. Các thuật tốn xác
thực, mã hóa và MAC sẽ được máy chủ gửi trong thông báo Hello với khách hàng.
Giờ nhiệm vụ cịn lại sẽ là tính tốn Secret chính và khóa. Giống như ở SSLv3,
Secret chính được tính tốn dưới dạng hàm băm của Secret chính lúc trước và hai số
ngãu nhiên Hello nhưng sẽ được định nghĩa như sau:

21 | Nhóm 05


Bài thi cuối kỳ môn ANM

Master_secret = PRF(premaster_secret, ‘‘master secret’’, ClientHello.random
||ServerHello.random)
Secret chính ln có độ dài là 48 byte, cịn độ dài của Secret trước đó sẽ khác
nhau tùy thuộc vào phương thức trao đổi khóa:
- Với RSA, máy khách sẽ tạo Secret trước đó với độ dài 48 byte, được mã hóa
với khóa cơng khai của máy chủ rồi gửi đến máy chủ. Máy chủ sẽ dùng khóa riêng của
mình để giải mã Sercet trước đấy. Sau đó, cả hai sẽ cùng chuyển đổi Secret trước
thành Secret chính.

- Với Diffie–Hellman, khóa thời hạn Z được sử dụng làm Secret chính trước, sau
đó được chuyển đổi thành Secret chính hiện tại.
Việc tính tốn các tham số của khối khóa (khóa bí mật MAC, khóa mã hóa phiên
và IV) được định nghĩa như sau:
key_block=PRF(master_secret, ‘‘key expansion’’, SecurityParameters.server_random||
SecurityParameters.client_random)

22 | Nhóm 05


Bài thi cuối kỳ môn ANM

CHƯƠNG 2. SSL ATTACK (TẤN CÔNG SSL)
Lợi dụng những lỗ hổng bảo mật và một số tricks thì các cracker hay hacker đã tấn
cơng SSL nhằm trục lợi hoặc ăn cắp thông tin cho những mục đích xấu. Một số hình
thức tấn cơng SSL như:
- Tấn công xen giữa Man-in-the-middle
- Tấn công BEAST lên bộ giao thức SSL/TLS
- Tấn công lợi dụng lỗ hổng POODLE và Heartbleed
Và chúng ta sẽ được tìm về các cuộc tấn cơng xen giữa MITM.
2.1 Tìm hiểu về tấn cơng Man-in-the-Middle (MITM)
2.1.1 Khái niệm
Man in the Middle là một trong những kiểu tấn công mạng thường thấy nhất được
sử dụng để chống lại những cá nhân và các tổ chức lớn chính, nó thường được viết tắt
là MITM. Có thể hiểu nôm na rằng MITM giống như một kẻ nghe trộm. MITM hoạt
động bằng cách thiết lập các kết nối đến máy tính nạn nhân và chuyển tiếp dữ liệu giữa
chúng. Trong trường hợp bị tấn công, nạn nhân cứ tin tưởng là họ đang giao tiếp một
cách trực tiếp với nạn nhân kia, nhưng sự thực thì các luồn dữ liệu/thông tin lại bị
thông qua host của kẻ tấn công. Và kết quả là các host này không chỉ có thể lấy cắp dữ
liệu nhạy cảm mà nó cịn có thể gửi xen vào cũng như thay đổi luồng dữ liệu để kiểm

soát sâu hơn những nạn nhân của nó.

Hình 2.1. Mơ hình tấn cơng SSL MITM

23 | Nhóm 05


Bài thi cuối kỳ mơn ANM

2.1.2 Hình thức tấn cơng MITM - Giả mạo ARP Cache (ARP Cache Poisoning)
Tấn công này cho phép Hacker (nằm trên cùng một subnet với các nạn nhân của
nó) có thể nghe trộm/thấy được tất cả các phiên giao dịch/lưu thông dữ liệu giữa các
máy tính nạn nhân. Đây là hình thức tấn cơng đơn giản và hiệu quả nhất.

Hình 2.2. Q trình truyền thơng ARP
• Việc giả mạo Cache
Việc giả mạo bảng ARP chính là lợi dụng bản tính khơng an tồn của giao thức
ARP. Việc giả mạo bảng ARP chính là lợi dụng bản tính khơng an tồn của giao thức
ARP. Khơng giống như các giao thức khác, chẳng hạn như DNS (có thể được cấu hình
để chỉ chấp nhận các nâng cấp động khá an toàn), các thiết bị sử dụng giao thức phân
giải địa chỉ (ARP) sẽ chấp nhận nâng cấp bất cứ lúc nào. Điều này có nghĩa rằng bất
cứ thiết bị nào có thể gửi gói ARP reply đến một máy tính khác và máy tính này sẽ cập
nhật vào bảng ARP cache của nó ngay giá trị mới này. Việc gửi một gói ARP reply khi
khơng có request nào được tạo ra được gọi là việc gửi ARP “vu vơ”. Khi các ARP
reply vu vơ này đến được các máy tính đã gửi request, máy tính request này sẽ nghĩ
rằng đó chính là đối tượng mình đang tìm kiếm để truyền thông, tuy nhiên thực chất họ
lại đang truyền thơng với một kẻ tấn cơng.

24 | Nhóm 05



Bài thi cuối kỳ mơn ANM

Hình 2.3. Chặn truyền thơng bằng các giả mạo ARP Cache
2.1.3 Hình thức tấn cơng MITM - Giả mạo DNS (DNS Spoofing)
Giả mạo DNS
Giả mạo DNS là một kỹ thuật MITM được sử dụng nhằm cung cấp thông tin DNS
sai cho một host để khi người dùng duyệt đến một địa chỉ nào đó, ví dụ www.bankofamerica.com có IP XXX.XX.XX.XX, thì cố gắng này sẽ được gửi đến
một địa chỉ www.bankofamerica.com giả mạo cư trú ở địa chỉ IP YYY.YY.YY.YY,
đây là địa chỉ mà kẻ tấn công đã tạo trước để đánh cắp các thông tin tài khoản ngân
hàng trực tuyến từ người dùng.
Truyền thông DNS
Giao thức Domain Naming System (DNS) như được định nghĩa trong RFC
1034/1035 có thể được xem như là một trong những giao thức quan trọng nhất được sử
dụng trong Internet. Nói ngắn ngọn để dễ hiểu, bất cứ khi nào bạn đánh một địa chỉ
web chẳng hạn như vào trình duyệt, yêu cầu DNS sẽ được đưa
đến máy chủ DNS để tìm ra địa chỉ IP tương xứng với tên miền mà bạn vừa nhập. Các
router và các thiết bị kết nối Internet sẽ khơng hiểu google.com là gì, chúng chỉ hiểu
các địa chỉ chẳng hạn như 12.345.56.789.
Máy chủ DSN làm việc bằng cách lưu một cơ sở dữ liệu các entry (được gọi là
bản ghi tài nguyên) địa chỉ IP để bản đồ hóa tên DNS, truyền thơng các bản ghi tài
nguyên đó đến máy khách và đến máy chủ DNS khác. Kiến trúc máy chủ DNS trong
toàn doanh nghiệp và Internet là một thứ khá phức tạp. Như một vấn đề của thực tế,
bạn có thể hình dung chúng như các quyển sổ chuyên dụng cho kiến trúc DNS. Chúng
tôi sẽ không đi vào giới thiệu các khía cạnh về kiến trúc hay thậm chí các kiểu lưu

25 | Nhóm 05



×