You are on page 1of 32

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA VIỄN THÔNG 1

BÀI TIỂU LUẬN


MÔN HỌC

AN NINH MẠNG VIỄN THÔNG


( GIAO THỨC SSL/TLS )
Giảng viên : TS.Hoàng Trọng Minh

Họ và tên : MSV

Hoàng Văn Tuấn : B17DCVT387

Nguyễn Chí Công : B17DCVT043

Trần Mạnh Thắng : B17DCVT331

HÀ NỘI, 2021
Bài tập tiểu luận môn ANM

MỤC LỤC
DANH MỤC BẢNG BIỂU\ HÌNH VẼ………………………………………………3
LỜI NÓI ĐẦU……………….................……………………………………………..5
Phần 1: SSL………………………………………...…………………………………6
Chương 1: Tim̀ hiểu vềgiao thức SSL…………..…………….…………………….6
1. Khái niệm SSL?..................................................................................................................................6
2. Các giai đoạn phát triển của SSL……………………………………………….6
Chương 2: Cấu trúc vàcách hoaṭđông…………………………………...……...…7
̣
1. Cấu trúc của SSL…………………………….………….…………………….…7
1.1. Lớp bản ghi (Record Layer)……….........................................................…………..7
1.2. Lớp thiết lập SSL (SSL Handshake Protocol)...........................................................7
2. Chức năng và hoạt động của SSL theo mô hình client-sever……….….…….12
3. Các trạng thái phiên làm việc và kết nối của SSL…………………..….……..13
4. Các thuật toán mã hóa sử dụng trong SSL…..……………………….……….15
5. Bảo mật……………………………………………………………………..……16
5.1. SSL v2………………………………………………………………….……16
5.2. SSL v3…………………...........................................................................…..16
Chương 3: Ứng dụng của SSL……………………………………...…………….…16
1. Ứng Dụng SSL Trên Web Server……...............................................………………..17
1.1. Web Server ?..............................................................................................................................17
1.2. Giải Pháp Bảo Vệ Web Server……………………………………...………18

Phần 2: TLS………………………………………………………………....………..19
Chương 1: Tổng quan vềTLS.….….….….….….….….….…..…..….….….….…....19
1. Khái niệm TLS?.................................................................................................................................19
2. Các giai đoạn hoạt động của TLS………………………………………………19
2.1. TLS 1.0……………………………………………………….….....………..19
2.2. TLS 1.1…………………………………………………………...……….…19
2.3. TLS 1.2…………………………………………………………...……….…20
2.4. TLS 1.3…………………………………………………………….………...20
Chương 2: Cấu trúc và cách hoaṭđông………………………………….………….22
̣
1. Cấu trúc của TLS…………………………………………………….…………22
2. Chức năng và hoạt động của TLS……………………………………….……..22
2.1. Chức năng………………………………………………………......…….…22

1
Nhóm:15
Bài tập tiểu luận môn ANM

2.2. Quá trình bắt tay………………………………………………….………..24


2.3. Bắt tay TLS xác thực khách hàng………………………….…………..….25
Chương 3: Bảo mật/ ứng dụng………………………………………………..…….26
1. Một số cuộc tấn công chống lại TLS/SSL…………………………….….…….27
2. Ứng dụng…………………………………………………………………...……29
Phần 3: Kết luận………………………………………………………………..……29
TÀI LIỆU THAM KHẢO…………………………………………………………...31

2
Nhóm:15
Bài tập tiểu luận môn ANM

DANH MỤC BẢNG BIỂU\ HÌNH VẼ


DANH MỤC HÌNH

Hình 1: Chồng giao thức SSL


Hình 2: Hoạt động của SSL Record Protocol
Hình 3: Các bước thiết lập một kết nối SSL
Hình 4: Kết nối Client Server
Hình 5: Ứng dụng của Web server
Hình 6: Một số phương pháp cho Web Server
Hình 7: Sơ đồ hiển thị quá trình bắt tay TLS. Bắt tay đầy đủ TLS 1.2 bởi F..
MeatGrinder được cấp phép theo Muff.

DANH MỤC BẢNG BIỂU

Bảng 1: Các trường trong SSL Handshake Protocol


Bảng 2: Các trường trong SSL Change Cipher Spec Protocol
Bảng 3: Các trường trong SSL Alert Protocol.
Bảng 4: Các thuật toán mã hóa theo phương phap đối xứng.

3
Nhóm:15
Bài tập tiểu luận môn ANM

BẢNG PHÂN CÔNG CÔNG VIỆC NHÓM

Họ và Tên MSV Nội Dung Thực Hiện


Hoàng Văn Tuấn B17DCVT387 Phần 1: SSL
Chương 1: Tim hiểu vềgiao thưc SSL
̀ ́

Chương 2: Cấu truc va cach hoaṭđông ̣


́ ̀ ́

Chương 3: Ứng dụng của SSL


Phần 2: TLS
Chương 1: Tổng quan vềTLS
Chương 2: Cấu trúc và cách hoaṭđông ̣
Chương 3: Bảo mật/ ứng dụng
Nguyễn Chí Công B17DCVT043 Phần 1: SSL
Chương 1: Tim hiểu vềgiao thưc SSL
̀ ́

Chương 2: Cấu truc va cach hoaṭđông ̣


́ ̀ ́

Chương 3: Ứng dụng của SSL


Phần 2: TLS
Chương 1: Tổng quan vềTLS
Chương 2: Cấu trúc và cách hoaṭđông ̣
Chương 3: Bảo mật/ ứng dụng
Trần Mạnh Thắng B17DCVT331 Phần 1: SSL
Chương 1: Tim hiểu vềgiao thưc SSL
̀ ́

Chương 2: Cấu truc va cach hoaṭđông ̣


́ ̀ ́

Chương 3: Ứng dụng của SSL


Phần 2: TLS
Chương 1: Tổng quan vềTLS
Chương 2: Cấu trúc và cách hoaṭđông ̣
Chương 3: Bảo mật/ ứng dụng

4
Nhóm:15
Bài tập tiểu luận môn ANM

LỜI NÓI ĐẦU


Hiện nay nước ta đang trong giai đoạn tiến hành công nghiệp hóa, hiện đại hóa
đất nước.Công nghệ thông tin được xem là ngành công nghiệp mũi nhọn được ưu tiên
trong quá trình phát triển.Tin học đã và đang đóng góp rất nhiều cho xã hội trong mọi
mặt của đời sống xã hội.
Bên cạnh sự phát triển mạnh mẽ của công nghệ thông tin trong thương mại điện
tử cũng đã có những bước phát triển mới nhằm đáp ứng yêu cầu phát triển của nền
kinh tế thế giới. Một vấn đề quan trọng trong bán lẻ là bảo vệ tính bí mật của nội dung
thông tin. Ngày nay, các ứng dụng mã hóa và bảo mật thông tin ngày càng được sử
dụng nhiều hơn không chỉ trong thương mại điện tử mà còn ở nhiều lĩnh vực khác trên
thế giới, ví dụ như trong lĩnh vực an ninh, quân sự, quốc phòng ...
Việc sử dụng mã hóa và bảo mật thông tin trong các hệ thống thương mại điện
tử, giao dịch chứng khoán ... đã trở nên phổ biến trên toàn thế giới và ngày càng trở
nên quen thuộc với người Việt Nam. Vào tháng 7 năm 2000, sàn giao dịch lần đầu tiên
được thành lập tại Việt Nam; Việc sử dụng thẻ tín dụng đang bắt đầu, các ứng dụng hệ
thống giao dịch điện tử đang trong giai đoạn đầu được quan tâm và phát triển, do đó
nhu cầu về các ứng dụng mã hóa và bảo mật thông tin trở nên rất cần thiết.
Giao thức SSL / TLS ra đời nhằm đáp ứng các yêu cầu về bảo mật thông tin khi
truyền trên các kênh công cộng. SSL / TLS là các giao thức có mục đích chung được
phát triển để thiết lập giao tiếp giữa hai chương trình ứng dụng. Trong một cổng tiêu
chuẩn để mã hóa tất cả thông tin đến / đi, hiện được sử dụng rộng rãi cho các giao dịch
điện tử như truyền số thẻ tín dụng, mật khẩu và số riêng trên Internet. Trong bài tiểu
luận này,chúng em sẽ tìm hiẻu chi tiết về giao thức bảo mật SSL và TLS.

5
Nhóm:15
Bài tập tiểu luận môn ANM

Phần 1 : SSL
Chương 1: Tim̀ hiểu vềgiao thức SSL
1. Khái niệm SSL ?
- SSL ( Secure Sockets Layer). SSL là tiêu chuẩn cho công nghệ bảo mật, giao tiếp
được mã hóa giữa máy chủ web và trình duyệt, tiêu chuẩn này hoạt động và đảm bảo
rằng dữ liệu được truyền giữa máy chủ và trình duyệt của người dùng là riêng tư và
toàn vẹn.
- Chức năng và hoạt động của SSL:
SSL là một giao thức theo mô hình khách/chủ (client/server) cung cấp các dịch
vụ bảo mật cơ bản trong việc kết nối ngang hàng sau đây:
• Các dịch vụ xác thực.
• Các dịch vụ kết nối bảo mật.
• Các dịch vụ kết nối toàn vẹn (không phục hồi).
2. Các giai đoạn phát triển của SSL
- Phiên bản SSL 1.0: vào giữa năm 1994, Netscape Communications đã hoàn
thành thiết kế cho SSL phiên bản 1 (SSL 1.0). Phiên bản này chỉ lưu hành nội bộ và
chưa bao giờ được công bố ra bên ngoài vì nó đã có một số sai sót. Ví dụ, nó không
cung cấp bảo vệ toàn vẹn dữ liệu. Kết hợp với việc sử dụng thuật toán mã hóa dòng
RC4 để mã hóa dữ liệu, điều này cho phép một tin tặc thay đổi thông điệp gốc có thể
dự đoán được. Ngoài ra, SSL 1.0 không sử dụng số thứ tự, vì vậy nó dễ bị tổn thương
để chống lại các cuộc tấn công. Sau đó, các nhà thiết kế của SSL 1.0 thêm số thứ tự và
bít kiểm tra, nhưng SSL 1.0 vẫn sử dụng thuật toán kiểm tra lỗi dư thừa theo chu kỳ
(Cyclic Redundancy Check - CRC) thay vì sử dụng một hàm băm mã hóa mạnh mẽ.
- Phiên bản SSL 2.0: Đến cuối năm 1994, Netscape Communications đã phát
triển SSL phiên bản 2 (SSL 2.0) và công bố chính thức vào tháng 2/1995 nhưng chứa
nhiều lỗi nghiêm trọng nên dẫn đến phải phát triển SSL phiên bản 3 (SSL 3.0).
- Phiên bản SSL 3.0: SSL 3.0 do tổ chức Internet Engineering Task Force (IETF)
- Nhóm chuyên trách kỹ thuật Internet công bố vào tháng 11/1996 tại RFC 6101 nhưng
chỉ ở dạng bản nháp và chưa bao giờ được phát hành chính thức. Các phiên bản tiếp
theo của SSL cũng như TLS sẽ dựa trên SSL 3.0 để phát triển.
- Các mục tiêu của SSL 3.0 theo thứ tự ưu tiên là:
(1) An ninh mã hóa.
SSL nên được sử dụng để thiết lập một kết nối an toàn giữa hai bên.
(2) Khả năng liên thông .
Các nhà phát triển phần mềm độc lập có thể phát triển ứng dụng sử dụng SSL 3.0
có thể trao đổi các tham số mã hóa mà không cần hiểu hết mã nguồn của người khác.

6
Nhóm:15
Bài tập tiểu luận môn ANM

Không phải tất cả các trường hợp có thể kết nối thành công (ngay cả trong cùng
lớp ứng dụng). Ví dụ, nếu máy chủ hỗ trợ thiết bị phần cứng cụ thể và máy khách
không có quyền truy cập thiết bị phần cứng đó thì kết nối sẽ không thành công.
(3) Khả năng mở rộng.
SSL nhằm tạo ra một khung cho phép phương pháp khóa công khai và mã hóa số
lượng lớn mới tạo ra có thể kết hợp với nhau khi cần thiết. Điều này cũng sẽ thực hiện
hai mục tiêu khác: tránh tạo ra một giao thức mới (rủi ro vì có thể có điểm yếu mới) và
tránh phải xây dựng toàn bộ một thư viện bảo mật mới.
(4) Hiệu quả tương đối.
Mã hóa thường sử dụng tài nguyên CPU cao, đặc biệt là việc trao đổi khóa công
khai. Vì lý do này, SSL đã tích hợp một phương pháp lưu trữ phiên tùy chọn để giảm
số lượng kết nối. Kết nối phải được thiết lập từ đầu. Ngoài ra, SSL cũng đang xem xét
triển khai giảm hoạt động mạng.
Chương 2: Cấu trúc vàcách hoaṭđông ̣
1. Cấu trúc của SSL

Hình 1: Chồng giao thức


SSL 1.1. Lớp bản ghi (Record Layer)
Bao gồm Giao thức bản ghi SSL (SSL Record Protocol), nằm trên tầng giao vận,
một số giao thức trong tầng giao vận như Giao thức điều khiển truyền vận (TCP), Giao
thức truyền vận không tin cậy (UDP).
1.2. Lớp thiết lập SSL (SSL Handshake Protocol): nằm trên lớp chứa Giao
thức bản ghi SSL bao gồm bốn giao thức:

+ SSL Handshake Protocol.

7
Nhóm:15
Bài tập tiểu luận môn ANM

+ Byte +0 Byte +1 Byte +2 Byte +3

Byte 0 22
Bytes Version Length
1…4
(Major) (Minor) (bits 15…8) (bits 7…0)
Bytes Message Handshake message data length
5…8 type
(bits 23…16) (bits 15…8) (bits 7…0)
Bytes Handshake message data
9…(n-1)

Bytes Message Handshake message data length


n…(n+3) type
(bits 23…16) (bits 15…8) (bits 7…0)
Bytes Handshake message data
(n+4)…

Bảng 1: Các trường trong SSL Handshake Protocol

Giao thức thiết lập SSL (SSL Handshake Protocol) là giao thức cốt lõi của SSL,
nó cho phép các điểm giao tiếp xác thực lẫn nhau và thoả thuận cách thức mã hóa và
phương pháp nén. Cách thức mã hóa được sử dụng để mã hóa bảo vệ dữ liệu về tính
xác thực, tính toàn vẹn và tính bí mật, trong khi đó phương pháp nén là tùy chọn để
nén dữ liệu.
Giao thức này cho phép server và client chứng thực với nhau và thương lượng cơ
chế mã hóa , thuật toán MAC và khóa mật mã được sử dụng để bảo vệ dữ liệu được
gửi trong SSL record.Giao thức SSL Handshake thường được sử dụng trước khi dữ
liệu của ứng dụng được truyền đi.
+ SSL Change Cipher Spec Protocol.
Giao thức SSL Change Cipher Spec là giao thức đơn giản nhất trong ba giao thức
đặc trưng của SSL mà sử dụng giao thức SSL Record. Giao thức này bao gồm một
message đơn 1 byte giá trị là 1. Mục đích chính của message 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 cập nhật lại bộ mã hóa để
sử dụng trên kết nối này.

8
Nhóm:15
Bài tập tiểu luận môn ANM

+ Byte +0 Byte+1 Byte+2 Byte+3


Byte 0 20
Byte Version Length
1…4
(Major) (Minor) 0 1
Byte 5 CCS
protocol type
Bảng 2: Các trường trong SSL Change Cipher Spec Protocol
+ SSL Alert Protocol.
Giao thức cảnh báo SSL được sử dụng để phát các cảnh báo được liên kết SSL ở đầu
bên kia. Cũng như các ứng dụng khác sử dụng SSL, các cảnh báo được nén và mã hóa,
được biểu thị bằng trạng thái hiện tại. Mỗi message trong giao thức này gồm 2 bytes
.Byte đầu tiên giữ giá trị cảnh báo(1) hoặc nguy hiểm(2) để thông báo độ nghiêm ngặt
của message. Nếu mức độ là nguy hiểm,SSL lập tức chấp dứt kết nối. Những kết nối
cùng phiên khác vẫn có thể tiếp tục nhưng sẽ không kết nối nào khác trên phiên này
được khởi tạo thêm.Byte thứ hai chứa một mã chỉ ra cảnh báo đặc trưng. Đầu tiên,
chúng ta liệt kê những cảnh báo đó mà luôn ở mức nguy hiểm ( được định nghĩa từ
những thông số SSL):
unexpected_message: message không thích hợp
bad_record_mac: MAC không chính xác
decompression_failure: việc giải nén nhận input không thích hợp(ví dụ như
không thể giải nén hoặc giải nén lớn hơn độ dài tối đa cho phép).
handshake_failure: bên gửi không thể thương lượng một bộ chấp nhận được của
các thông số bảo mật được đưa ra từ những lựa chọn có sẵn
illegal_parameter: một trường trong một handshake message thì vượt khỏi dãy
hoặc trái với những trường khác
Phần còn lại của cảnh báo thì như sau:
close_notify: thông báo cho bên nhận rằng bên gửi sẽ không gửi thêm message
nào nữa trong kết nối này.Mỗi nhóm thì được yêu cầu gửi một close_notify cảnh báo
trước khi kết thúc phần ghi của một kết nối.
no_certificate: có thể được gửi để trả lời cho một yêu cầu certificate nếu không
certificate thích hợp nào có sẵn.
bad_certificate: certificate nhận được thì không hợp lệ(ví dụ như chứa một chữ
ký không xác minh)
unsupported_certificate: dạng certificate nhận được thì không hỗ trợ.

9
Nhóm:15
Bài tập tiểu luận môn ANM

certificate_revoked: certificate đã bị thu hồi bởi nhà cung cấp.


certificate_expired: certificate đã hết hạn đăng ký.
certificate_unknown: một số phát sinh không nói rõ xuất hiện trong quá trình xử
ký certificate làm cho nó không thể chấp nhận.
+ Byte +0 Byte +0 Byte +0 Byte +0
Byte 0 21
Bytes Version Length
1…4
(Major) (Minor) 0 2
Bytes Level Description
5…6

Bytes MAC (optional)


7…(p-1)

Bytes Padding (block ciphers only)


p…(q-1)

Bảng 3: Các trường trong SSL Alert Protocol.

+ SSL Record Protocol.


SSL Record Protocol cung cấp hai dịch vụ cho các kết nối SSL:
Confidentiality (tính cẩn mật): xác định một khóa bí mật được chia sẻ được sử
dụng để mã hóa dữ liệu SSL thông thường.
Message integrity (tính toàn vẹn thông điệp):Handshake Protocol cũng định
nghĩa 1 khóa bí mật được chia sẻ, khóa này được sử dụng để hình thành nên MAC (mã
xác thực message).
Hình dưới chỉ ra toàn bộ hoạt động của SSL Record Protocol. SSL Record
Protocol nhận 1 message ứng dụng sắp được truyền đi,phân mảnh dữ liệu thành nhiều
block,nén dữ liệu 1 cách tùy chọn,áp dụng vào 1 MAC,mã hóa,thêm vào header,và
truyền khối kết quả thu được trong 1 segment TCP. Dữ liệu nhận được được giải
mã,kiểm tra ,giải nén,sắp xếp lại và phân phối đến người sử dụng ở lớp cao hơn.

10
Nhóm:15
Bài tập tiểu luận môn ANM

Hình 2: Hoạt động của SSL Record Protocol


Phân mảnh :Mỗi message của lớp bên trên được phân mảnh thành các
block ,mỗi block là 214byte (16384 byte) hoặc ít hơn.
Nén: Việc nén phải không mất dữ liệu và không làm tăng độ dài của nội dung
quá 1024 byte (tất nhiên người ta sẽ mong đợi quá trình nén thu nhỏ hơn là mở rộng
dữ liệu. Tuy nhiên, đối với các khối ngắn, có thể do định dạng truyền thống, thuật toán
nén không đầu ra thực sự dài hơn đầu vào). Trong SSLv3 (cũng như phiên bản TLS
hiện tại) không có thuật toán nén nào được chỉ định, do đó, độ nén mặc định của thuật
toán bằng không.
Tính toán MAC (mã xác thực message) trên dữ liệu đã được nén.Để thực hiện
cần dùng đến 1 khóa bí mật được chia sẻ.
Mã hóa theo phương pháp mã hóa đối xứng: Mã hóa có thể không làm tăng
chiều dài nội dung hơn 1024 byte, vì vậy chiều dài tổng cộng không vượt quá (214
+2048). Các thuật toán mã hóa sau được cho phép là:
Block cipher (Mã hóa khối) Stream cipher (Mã hóa luồng)
Thuật toán Kíchthước Thuật toán Kíchthước
khóa khóa
AE 128,25 RC4- 40
IDE 128 RC4-128 128
RC2- 40
11

Nhóm:15
Bài tập tiểu luận môn ANM

DES- 40
DE 56
3DE 168
Fortezz 80

Bảng 4: Các thuật toán mã hóa theo phương phap đối xứng.
Gắn SSL Record Protocol: là gắn thêm vào1 header ,bao gồm các mục sau:
 Content Type (8 bit): giao thức lớp trên được dùng để xử lí phân mảnh đi kèm.
 Major Version (8 bit): chỉ ra phiên bản SSL tối đa được dùng.
 Minor Version (8 bit) : chỉ ra phiên bản tối thiểu được dùng.
 Compressed Length (16 bit) : chiều dài theo byte của phân mảnh plaintext
(hoặc chiều dài theo byte của phân mảnh đã nén nếu nén được dùng).Gía trị
lớn nhất là 214+2048.
2. Chức năng và hoạt động của SSL theo mô hình client-sever

Hình 3. Các bước thiết lập một kết nối SSL

12
Nhóm:15
Bài tập tiểu luận môn ANM

1) Client gửi cho máy chủ số phiên bản SSL được sử dụng, các thông số của
thuật toán mã hóa, dữ liệu được tạo ngẫu nhiên (chữ ký số) và một số thông tin khác
mà Server cần để kết nối với Client.
2) Server gửi cho client số phiên bản SSL đang dùng, các tham số của thuật toán
mã hoá, dữ liệu được tạo ra ngẫu nhiên và một số thông tin khác mà client cần để thiết
lập kết nối với server. Ngoài ra server cũng gửi certificate của nó đến client, và yêu
cầu certificate của client nếu cần.
3) Client sử dụng một số thông tin mà server gửi đến để xác thực server. Nếu như
server không được xác thực thì người sử dụng sẽ được cảnh báo và kết nối không được
thiết lập. Còn nếu như xác thực được server thì phía client sẽ thực hiện tiếp bước 4.
4)Sử dụng tất cả các thông tin được tạo ra trong giai đoạn bắt tay ở trên, client
(cùng với sự cộng tác của server và phụ thuộc vào thuật toán được sử dụng) sẽ tạo ra
premaster secret cho phiên làm việc, mã hoá bằng khoá công khai (public key) mà
server gửi đến trong certificate ở bước 2, và gửi đến server.
5) Nếu server có yêu cầu xác thực client, thì phía client sẽ đánh dấu vào phần
thông tin riêng chỉ liên quan đến quá trình “bắt tay” này mà hai bên đều biết. Trong
trường hợp này, client sẽ gửi cả thông tin được đánh dấu và certificate của mình cùng
với premaster secret đã được mã hoá tới server.
6) Server sẽ xác thực client. Trường hợp client không được xác thực, phiên làm
việc sẽ bị ngắt. Còn nếu client được xác thực thành công, server sẽ sử dụng khoá bí
mật (private key) để giải mã premaster secret, sau đó thực hiện một số bước để tạo ra
master secret.
7) Client và server sẽ sử dụng master secret để tạo ra các session key, đó chính là
các khoá đối xứng được sử dụng để mã hoá và giải mã các thông tin trong phiên làm
việc và kiểm tra tính toàn vẹn dữ liệu.
8) Client sẽ gửi một lời nhắn đến server thông báo rằng các message tiếp theo sẽ
được mã hoá bằng session key. Sau đó nó gửi một lời nhắn đã được mã hoá để thông
báo rằng phía client đã kết thúc giai đoạn “bắt tay”.
9) Server cũng gửi một lời nhắn đến client thông báo rằng các message tiếp theo
sẽ được mã hoá bằng session key. Sau đó nó gửi một lời nhắn đã được mã hoá để
thông báo rằng server đã kết thúc giai đoạn “bắt tay”.
10) Lúc này giai đoạn “bắt tay” đã hoàn thành, và phiên làm việc SSL bắt đầu.
Cả hai phía client và server sẽ sử dụng các session key để mã hoá và giải mã thông tin
trao đổi giữa hai bên, và kiểm tra tính toàn vẹn dữ liệu.
3. Các trạng thái phiên làm việc và kết nối của SSL
- Một phiên làm việc của SSL có trạng thái. Đây là nhiệm vụ của Giao thức thiết
lập SSL để điều phối các trạng thái của máy khách và máy chủ, do đó cho phép giao

13
Nhóm:15
Bài tập tiểu luận môn ANM

thức quản lý cơ chế làm việc của mỗi máy để hoạt động thống nhất mặc dù hành động
không diễn ra đồng thời.
- Có hai trạng thái làm việc, một là trạng thái hoạt động hiện tại (trong quá trình
cấu hình giao thức), trạng thái còn lại là trạng thái chờ. Ngoài ra, nó cũng phân biệt
giữa các trạng thái đọc và ghi để giữ cho cơ chế hoạt động. Mã hóa thông báo đặc
điểm kỹ thuật thay đổi, 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 thông báo đặc điểm kỹ thuật thay đổi mã
hóa, nó sẽ sao chép trạng thái chờ ghi sang trạng thái ghi hiện tại. Khi thương lượng
cấu hình hoàn tất, máy khách và máy chủ trao đổi thông báo đặc điểm kỹ thuật mã hóa
thay đổi và bắt đầu giao tiếp bằng cách sử dụng những thông báo đã thỏa thuận trước
đó trong đặc điểm kỹ thuật mã hóa.
- Một phiên làm việc SSL có thể bao gồm nhiều kết nối an toàn, bên cạnh đó, các
bên tham gia có thể có nhiều phiên làm việc khác nhau đồng thời.
- Một trạng thái phiên làm việc bao gồm những tham số sau đây:
• Định danh phiên làm việc (session identifier). Là một byte bất kỳ có thứ tự
được chọn bởi máy chủ để xác định một trạng thái phiên làm việc đang hoạt động hoặc
có thể khôi phục lại trạng thái phiên làm việc hiện tại.
• Chứng thư của thành phần tham gia (peer certificate). X509.v3, chứng thư của
thành phần tham gia, tham số này có thể bỏ trống.
• Phương pháp nén (compression method): Thuật toán sử dụng để nén dữ liệu
trước khi mã hóa.
• Đặc tả mã hóa (cipher spec): Xác định thuật toán mã hóa dữ liệu lớn (ví dụ như
DES..) và một thuật toán MAC (ví dụ MD5 hay SHA). Nó cũng định nghĩa các thuộc
tính mã hóa, ví dụ kích thước băm (hash_size).
• Mã bí mật chính (master secret): Một thông điệp bí mật có kích thước 48 byte
được chia sẻ giữa máy khách và máy chủ.
• Có thể khôi phục (is resumable): Một chỉ báo phiên làm việc có thể được sử
dụng để khởi tạo các kết nối mới.
- Trạng thái kết nối bao gồm các thành phần sau:
• Số thứ tự máy chủ và máy khách ngẫu nhiên (server and client random): Là một
byte sắp thứ tự được chọn bởi máy chủ và máy khách trong từng phiên làm việc.
• Máy chủ ghi mã MAC bí mật (server write MAC secret): Mã bí mật được máy
chủ ghi ra trong quá trình thực hiện MAC.
• Máy khách ghi mã MAC bí mật (client write MAC secret): Mã bí mật được
máy khách ghi ra trong quá trình thực hiện MAC.

14
Nhóm:15
Bài tập tiểu luận môn ANM

• Khóa máy chủ ghi (server write key): Khóa mã được sử dụng để mã hóa dữ liệu
bởi máy chủ và giải mã của máy khách.
• Khóa máy khách ghi (client write key): Khóa mã được sử dụng để mã hóa dữ
liệu bởi máy khách và giải mã của máy chủ.
• Các véc-tơ khởi tạo (initialization vectors): Khi một khối mã hóa trong mô hình
mã hóa theo khối (Cipher Block Chaining - CBC) được sử dụng, một véc-tơ khởi tạo
được sinh ra cho từng khóa. Trường này đầu tiên được khởi tạo bởi Giao thức thiết lập
SSL, sau đó khối mã hóa cuối cùng từ mỗi bản ghi được lưu trữ để sử dụng cho bản
ghi tiếp theo.
• Số thứ tự (sequence numbers): Mỗi bên tham gia trong phiên làm việc quản lý
những số thứ tự riêng biệt để truyền và nhận thông điệp trong mỗi kết nối. Khi một bên
gửi hoặc nhận một thông điệp đặc tả mã hóa thay đổi, số thứ tự tương ứng được đặt bằng
1. Các số thứ tự có dạng số nguyên và giá trị không được vượt quá 264 – 1.
4. Các thuật toán mã hóa sử dụng trong SSL.
- Các thuật toán mã hoá (cryptographic algorithm - cipher) là các hàm để mã hoá
và giải mã thông tin.
- Giao thức SSL hỗ trợ nhiều thuật toán mã hoá, sử dụng trong các quá trình xác
thực server và client, truyền tải các certificates và thiết lập các khoá của lần lượt từng
phiên giao dịch.
- Client và server có thể hỗ trợ các bộ mật mã (cipher suite) khác nhau tuỳ thuộc
vào phiên bản SSL đang dùng, chính sách về độ dài khoá cảm thấy chấp nhận được -
điều này liên quan đến mức độ bảo mật của thông tin, ….

Một số thuật toán SSL sử dụng :
- DES. (Data Encryption Standard ).
- DSA. (Digital Signature Algorithm).
- MD5. (Message Digest algorithm).
- RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá
dữ liệu được Rivest, Shamir, and Adleman phát triển.
- RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật
toán RSA.
- RC2 and RC4:
- SHA-1 (Secure Hash Algorithm):
- Các thuật toán trao đổi khoá như KEA, RSA key exchange được sử dụng để 2
bên client và server xác lập khoá đối xứng mà họ sẽ sử dụng trong suốt phiên giao dịch
SSL. Và thuật toán được sử dụng phổ biến là RSA key exchange
- Các phiên bản SSL 2.0 và SSL 3.0 hỗ trợ cho hầu hết các bộ mã hoá.

15
Nhóm:15
Bài tập tiểu luận môn ANM

Người quản trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server. Khi
một client và server trao đổi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác
định bộ mã hoá mạnh nhất có thể và sử dụn chúng trong phiên giao dịch SSL.
5. Bảo mật
Vì SSl 1.0 độ bảo mật thấp nên ta không xét đến.
5.1. SSL 2.0
 Các khóa mật mã giống hệt nhau đã được sử dụng để xác thực và mã hóa
tin nhắn . (Trong SSL 3.0, bí mật MAC có thể lớn hơn khóa mã hóa, do đó, tin
nhắn có thể vẫn chống giả mạo ngay cả khi khóa mã hóa bị hỏng )
 SSL 2.0 có cấu trúc MAC yếu sử dụng hàm băm MD5 với tiền tố bí mật,
khiến nó dễ bị tấn công mở rộng độ dài .
 SSL 2.0 không có bất kỳ biện pháp bảo vệ nào đối với việc bắt tay, có
nghĩa là một cuộc tấn công hạ cấp man-in-the-middle có thể không bị phát hiện.
 SSL 2.0 đã sử dụng kết nối TCP đóng để chỉ ra kết thúc của dữ liệu.
Điều này có nghĩa là có thể xảy ra các cuộc tấn công cắt ngắn: kẻ tấn công chỉ cần
giả mạo TCP FIN, khiến người nhận không biết về kết thúc bất hợp pháp của thông
báo dữ liệu (SSL 3.0 đã khắc phục sự cố này bằng cách có cảnh báo đóng rõ ràng).
 SSL 2.0 giả định một dịch vụ duy nhất và một chứng chỉ miền cố định,
xung đột với tính năng tiêu chuẩn của lưu trữ ảo trong máy chủ Web. Điều này có
nghĩa là hầu hết các trang web trên thực tế đã bị ảnh hưởng bởi việc sử dụng SSL
5.2. SSL 3.0.
SSL 3.0 được cải thiện dựa trên SSL 2.0 bằng cách thêm mật mã dựa trên SHA-1
và hỗ trợ xác thực chứng chỉ.
Từ quan điểm bảo mật, SSL 3.0 nên được coi là ít được mong đợi hơn TLS 1.0. Bộ
mật mã SSL 3.0 có quy trình dẫn xuất khóa yếu hơn; một nửa khóa chính được thiết lập
hoàn toàn phụ thuộc vào hàm băm MD5, không có khả năng chống va chạm và do đó,
không được coi là an toàn. Theo TLS 1.0, khóa chính được thiết lập phụ thuộc vào cả
MD5 và SHA-1, do đó quá trình dẫn xuất của nó hiện không được coi là yếu
Chương 3: Ứng dụng của SSL.
SSL được phát triển cho phép trao đổi riêng tư trên mạng Internet, cho phép các ứng
dụng khách/chủ giao tiếp an toàn, ngăn ngừa tấn công, bóc tách dữ liệu hay phá hủy thông
điệp trái phép như an toàn truyền siêu văn bản, an toàn trao đổi thư điện tử…
- Ngoài một số ứng dụng phổ biến hiện nay của SSL như bảo mật trong Remote
Desktop Protocol cho kết nối Terminal Service, Http cho Outlook Name Port
Description Web Access hay Smtp/Imap/Pop3 cho mail , ứng dụng quan trọng của
SSL mà không thể không nhắc tới là SSL VPN

16
Nhóm:15
Bài tập tiểu luận môn ANM

- Đó là lý do tại sao không chỉ các nhà cung cấp thiết bị mạng phần cứng đang
đua nhau trong việc phát triển các sản phẩm hổ trợ SSL VPN mà cả những nhà cung
cấp thiết bị mạng “mềm” như Microsoft cũng đưa nó vào sản phẩm Windows Server
2008 và Windows Vista Service Pack 1 của mình với cơ chế Secure Socket Tunneling
Protocol (SSTP).
1. Ứng Dụng SSL Trên Web Server
1.1. Web Server ?
- Web Server (Máy phục vụ Web): máy tính mà trên đó cài đặt phần mềm phục vụ Web,
đôi khi người ta cũng gọi chính phần mềm đó là Web Server. Tất cả các Web Server
đều hiểu và chạy được các file (*.htm) và (*.html).
- Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ
thông tin như một n hàng dữ liệu, chứa những website đã được thiết kế cùng với những
thông tin liên quan khác. (các mã Script, các chương trình, và các file Multimedia).
- Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một
Domain Name.
- Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các
thông tin từ một trang Web khác nào đó, Web Server Software sẽ nhận yêu cầu và gửi
lại cho bạn những thông tin mà bạn mong muốn .

Hình 4: Kết nối Client Server


- Server phải hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, để
phục vụ cho việc cung cấp thông tin trực tuyến.
- Có nhiều loại Web Server khác nhau, nhưng chủ yếu trên thị trường chỉ thường sử
dụng Apache và IIS (Internet Information Server của Microsoft).

17
Nhóm:15
Bài tập tiểu luận môn ANM

Hình 5: Ứng dụng của Web server

1.2. Giải Pháp Bảo Vệ Web Server


- Truyền thông HTTP được định nghĩa cho máy chủ Web nói chung, thông thường là
các trang thông tin.

Hình 6: Một số phương pháp cho Web Server

Tuy nhiên nếu đang nghĩ đến việc chạy một trang điện tử hoặc các dịch vụ Web
khác yêu cầu phiên giao dịch an toàn thì bạn cần phải mã hóa dữ liệu được truyền
thông giữa máy chủ Web và các máy khách của nó. Trường hợp thường được sử dụng
nhất đó là Secure Sockets Layer (SSL), SSL sử dụng mã hóa khóa công khai để bảo vệ
thông tin bí mật của người dùng (như là thẻ tín dụng, số tài khoản ngân hàng) vẫn
được truyền tải trên Web. Trong bài viết này sẽ giới thiệu 2 phương pháp:

18
Nhóm:15
Bài tập tiểu luận môn ANM

+ Cách cài đặt SSL trên máy chủ Internet Information Services (IIS) Web trên Win
Server.( Xin một chứng chỉ cho web)
+ Cách cài đặt SSL trên máy chủ Apache Web Server trên hệ điều hành CenTos( Tự
tạo một chứng chỉ web)

Phần 2: TLS
Chương 1: Tổng quan vềTLS
1. Khái niệm TLS ?
Bảo mật lớp truyền tải ( TLS ), sự kế thừa của Lớp cổng bảo mật ( SSL ) hiện
không được dùng nữa , là một giao thức mật mã được thiết kế để cung cấp bảo mật
thông tin liên lạc qua mạng máy tính. Một số phiên bản của giao thức được sử dụng
rộng rãi trong các ứng dụng như email , nhắn tin tức thì và thoại qua IP , nhưng việc sử
dụng nó làm lớp Bảo mật trong HTTPS vẫn được hiển thị công khai nhất.
Giao thức TLS chủ yếu nhằm mục đích cung cấp quyền riêng tư và tính toàn vẹn dữ
liệu giữa hai hoặc nhiều ứng dụng máy tính giao tiếp. Nó chạy trong lớp ứng dụng của
Internet và bản thân nó bao gồm hai lớp: bản ghi TLS và các giao thức bắt tay TLS.
TLS là tiêu chuẩn của Lực lượng Đặc nhiệm Kỹ thuật Internet (IETF) được đề
xuất, được xác định lần đầu tiên vào năm 1999 và phiên bản hiện tại là TLS 1.3 được
xác định vào tháng 8 năm 2018. TLS được xây dựng dựa trên các thông số kỹ thuật
SSL trước đó (1994, 1995, 1996) do Netscape Communications phát triển để bổ sung
giao thức HTTPS cho trình duyệt web Navigator của họ .
2. Các giai đoạn hoạt động của TLS
2.1. TLS 1.0
TLS 1.0 lần đầu tiên được định nghĩa trong RFC 2246 vào tháng 1 năm 1999 như
một bản nâng cấp của SSL Phiên bản 3.0, và được viết bởi Christopher Allen và Tim
Dierks of Consensus Development. Như đã nêu trong RFC, "sự khác biệt giữa giao
thức này và SSL 3.0 không đáng kể, nhưng chúng đủ đáng kể để loại trừ khả năng
tương tác giữa TLS 1.0 và SSL 3.0". Tim Dierks sau đó đã viết rằng những thay đổi
này và việc đổi tên từ "SSL" thành "TLS", là một cử chỉ lưu khuôn mặt đối với
Microsoft, "vì vậy nó sẽ không [giống như] IETF chỉ là giao thức của Netscape". Các
Hội đồng PCI đề nghị các tổ chức di chuyển từ TLS 1.0 đến TLS 1.1 trở lên trước
ngày 30 tháng 6, năm 2018. Trong tháng 10 năm 2018, của Apple , Google , Microsoft
và Mozilla cùng công bố họ sẽ không dùng TLS 1.0 và 1.1 tháng ba Năm 2020.
2.2. TLS 1.1

19
Nhóm:15
Bài tập tiểu luận môn ANM

TLS 1.1 được định nghĩa trong RFC 4346 vào tháng 4 năm 2006. Đây là bản cập
nhật từ phiên bản TLS 1.0. Những khác biệt đáng kể trong phiên bản này bao gồm:
+ Đã thêm bảo vệ chống lại các cuộc tấn công chuỗi khối mật mã (CBC).
+ Vectơ khởi tạo ngầm định (IV) đã được thay thế bằng một IV rõ ràng.
+ Thay đổi cách xử lý lỗi đệm .
+ Hỗ trợ đăng ký IANA các thông số.
+ Hỗ trợ TLS phiên bản 1.0 và 1.1 đã bị các trang web không dùng nữa vào
khoảng năm 2020, vô hiệu hóa quyền truy cập vào các phiên bản Firefox trước 18 và
Google Chrome trước 29.
2.3. TLS 1.2
TLS 1.2 được định nghĩa trong RFC 5246 vào tháng 8 năm 2008. Nó dựa trên
đặc điểm kỹ thuật TLS 1.1 trước đó. Sự khác biệt chính bao gồm:
Tổ hợp MD5 - SHA-1 trong hàm giả ngẫu nhiên (PRF) được thay thế bằng SHA-
256, với tùy chọn sử dụng bộ mật mã PRF được chỉ định.
Sự kết hợp MD5 – SHA-1 trong mã băm thông báo hoàn chỉnh đã được thay thế
bằng SHA-256, với một tùy chọn để sử dụng các thuật toán băm cụ thể của bộ mật mã.
Tuy nhiên, kích thước của hàm băm trong thông báo thành phẩm vẫn phải ít nhất là 96
bit .
Sự kết hợp MD5 – SHA-1 trong phần tử được ký điện tử đã được thay thế bằng một
băm duy nhất được thương lượng trong quá trình bắt tay , mặc định là SHA-1. Nâng cao
khả năng của máy khách và máy chủ trong việc chỉ định các thuật toán băm và chữ ký mà
họ chấp nhận. Mở rộng hỗ trợ cho mật mã mã hóa đã xác thực , được sử dụng chủ yếu cho
chế độ Galois / Counter (GCM) và chế độ CCM của mã hóa Tiêu chuẩn mã hóa nâng cao
(AES). Định nghĩa Tiện ích mở rộng TLS và bộ mật mã AES đã được thêm vào. Tất cả
các phiên bản TLS đã được cải tiến thêm trong RFC 6176 vào tháng 3 năm 2011, loại bỏ
khả năng tương thích ngược của chúng với SSL để các phiên TLS không bao giờ thương
lượng việc sử dụng Lớp cổng bảo mật (SSL) phiên bản 2.0.
2.4. TLS 1.3
TLS 1.3 được định nghĩa trong RFC 8446 vào tháng 8 năm 2018. Nó dựa trên
đặc điểm kỹ thuật TLS 1.2 trước đó. Sự khác biệt chính so với TLS 1.2 bao gồm:
+ Tách các thuật toán xác thực và thỏa thuận khóa khỏi các bộ mật mã
+ Loại bỏ hỗ trợ cho các đường cong elliptic có tên yếu và ít được sử dụng hơn
+ Loại bỏ hỗ trợ cho các hàm băm mật mã MD5 và SHA-224
+ Yêu cầu chữ ký điện tử ngay cả khi cấu hình trước đó được sử dụng
+ Tích hợp HKDF và đề xuất DH bán phù du
+ Thay thế tiếp tục bằng PSK và vé

20
Nhóm:15
Bài tập tiểu luận môn ANM

+ Hỗ trợ bắt tay 1- RTT và hỗ trợ ban đầu cho 0- RTT


+ Áp dụng bí mật chuyển tiếp hoàn hảo , bằng cách sử dụng các khóa tạm thời
trong thỏa thuận khóa DH (EC)
Bỏ hỗ trợ cho nhiều tính năng không an toàn hoặc lỗi thời bao gồm nén , thương
lượng lại, mật mã không phải AEAD , trao đổi khóa không phải PFS (trong số đó là
trao đổi khóa RSA tĩnh và DH tĩnh ), nhóm DHE tùy chỉnh , thương lượng định dạng
điểm EC, giao thức Change Cipher Spec, Thông báo Hello thời gian UNIX và trường
độ dài AD đầu vào cho mật mã AEAD.
+ Cấm thương lượng SSL hoặc RC4 để tương thích ngược
+ Tích hợp sử dụng băm phiên
+ Không dùng nữa số phiên bản lớp bản ghi và đóng băng số để cải thiện khả
năng tương thích ngược
+ Di chuyển một số chi tiết thuật toán liên quan đến bảo mật từ phụ lục sang đặc
tả và chuyển ClientKeyShare xuống phụ lục
+ Thêm mật mã luồng ChaCha20 với mã xác thực tin nhắn Poly1305
+ Thêm thuật toán chữ ký số Ed25519 và Ed448
+ Thêm x25519 và x448 giao thức trao đổi khóa
+ Thêm hỗ trợ để gửi nhiều phản hồi OCSP
+ Mã hóa tất cả các thông báo bắt tay sau ServerHello
Dịch vụ An ninh Mạng (NSS), thư viện mật mã do Mozilla phát triển và được sử
dụng bởi trình duyệt web Firefox , đã bật TLS 1.3 theo mặc định vào tháng 2 năm
2017. Hỗ trợ TLS 1.3 sau đó đã được thêm vào - nhưng do các vấn đề tương thích đối
với một số ít người dùng, không được bật tự động - lên Firefox 52.0 , được phát hành
vào tháng 3 năm 2017. TLS 1.3 được bật theo mặc định vào tháng 5 năm 2018 với bản
phát hành Firefox 60.0 .
Google Chrome đã đặt TLS 1.3 làm phiên bản mặc định trong một thời gian ngắn
vào năm 2017. Sau đó, nó đã xóa nó làm phiên bản mặc định do hộp trung gian không
tương thích như proxy web Blue Coat.
Trong IETF 100 Hackathon diễn ra tại Singapore vào năm 2017, TLS Group đã
làm việc để điều chỉnh các ứng dụng mã nguồn mở để sử dụng TLS 1.3. Nhóm TLS
bao gồm các cá nhân đến từ Nhật Bản , Vương quốc Anh và Mauritius thông qua
nhóm cyberstorm.mu. Công việc này được tiếp tục trong IETF 101 Hackathon ở
London, và IETF 102 Hackathon ở Montreal.
WolfSSL cho phép sử dụng TLS 1.3 kể từ phiên bản 3.11.1, được phát hành vào
tháng 5 năm 2017. Là lần triển khai TLS 1.3 thương mại đầu tiên, wolfSSL 3.11.1 đã
hỗ trợ Bản nháp 18 và hiện hỗ trợ Bản nháp 28, phiên bản cuối cùng, cũng như nhiều

21
Nhóm:15
Bài tập tiểu luận môn ANM

phiên bản cũ hơn. Một loạt blog đã được xuất bản về sự khác biệt hiệu suất giữa TLS
1.2 và 1.3.
Trong Tháng 9 năm 2018, dự án OpenSSL phổ biến đã phát hành phiên bản 1.1.1
của thư viện, trong đó hỗ trợ cho TLS 1.3 là "tính năng mới tiêu đề".

Chương 2: Cấu trúc và cách hoaṭđông ̣


1. Cấu trúc của TLS
Giống như SSL, TLS là một giao thức theo mô hình khách/chủ (client/server),
nằm trên một giao thức của tầng giao vận (trong mô hình Internet TCP/IP) đáng tin cậy
và có cấu trúc giống SSL, TLS bao gồm hai lớp: Lớp bản ghi (Record Layer) và Lớp
thiết lập (Handshake Layer)
2. Chức năng và hoạt động của TLS
2.1. Chức năng
Mục tiêu chính của TLS là đảm bảo quyền riêng tư và tính toàn vẹn của dữ liệu
giữa hai ứng dụng giao tiếp trong môi trường mạng.
Giống như SSL, TLS là một giao thức theo mô hình máy khách/máychủ (client
/server), nằm trên một giao thức của tầng giao vận (trong mô hình TCP/IP) đáng tin
cậy và có cấu trúc giống SSL, TLS bao gồm hai lớp: Lớp bản ghi (Record Layer) và
Lớp thiết lập (Handshake Layer).
- Lớp thấp nhất gọi là Lớp bản ghi (Record Layer), bao gồm các giao thức bản
ghi TLS (TLS Record Protocol), nằm trên tầng giao vận, một số giao thức trong tầng
giao vận như Giao thức TCP, Giao thức truyền vận không tin cậy UDP. Giao thức bản
ghi TLS cung cấp bảo mật kết nối an toàn có hai đặc tính:
+ Kết nối riêng tư. Mã hóa đối xứng được sử dụng để mã hóa dữ liệu . Các khóa
để mã hóa đối xứng được sinh ra duy nhất cho mỗi kết nối và được dựa trên một thỏa
thuận bí mật bởi một giao thức khác (chẳng hạn như giao thức thiết lập TLS). Giao
thức bản ghi TLS có thể được sử dụng mà không cần mã hóa.
+ Kết nối đáng tin cậy. Thông điệp vận chuyển thông báo bao gồm kiểm tra tính
toàn vẹn thông điệp sử dụng một hàm băm Mã xác thực thông điệp (Message
Authentication Code - MAC), hàm băm an toàn được sử dụng để tính toán MAC (ví dụ
SHA-1...). Giao thức bản ghi SSL có thể hoạt động mà không cần sử dụng MAC, chỉ
trong trường hợp một giao thức khác đang sử dụng Giao thức bản ghi SSL như phương
tiện vận chuyển để thỏa thuận các tham số an ninh.
Giao thức bản ghi TLS được sử dụng để phân mảnh, nén (tùy chọn), đóng gói và
mã hóa bảo vệ dữ liệu từ giao thức của lớp cao hơn, ở đây là Giao thức thiết lập TLS,

22
Nhóm:15
Bài tập tiểu luận môn ANM

giao thức này cho phép máy chủ và máy khách để xác nhận lẫn nhau và thỏa thuận một
thuật toán mã hóa và các khóa mã hóa trước khi giao thức ứng dụng truyền tải hoặc
nhận byte đầu tiên của dữ liệu.
Các cấu trúc dữ liệu tương ứng trong Giao thức bản ghi TLS là TLSPlaintext,
TLSCompressed và TLSCiphertext. Giống với SSL, mỗi cấu trúc dữ liệu TLS trên bao
gồm bốn trường thông tin:
- 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 (thường là một cấu trúc dữ liệu TLSCiphertext).
- Lớp cao hơn gọi là Lớp thiết lập (Handshake Layer) nằm trên Lớp bản ghi, bao
gồm bốn giao thức:
• Giao thức thiết lập TLS (TLS Handshake Protocol): Cung cấp kết nối bảo mật
có ba đặc tính cơ bản:
+ Đị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 (ví dụ như Rivest-Shamir-Adleman - RSA, Digital
Signature Standard - DSS…). Việc xác thực có thể tùy chọn thực hiện, nhưng thường
yêu cầu cho ít nhất một trong các điểm kết nối.
+ Quá trình thỏa thuận khóa bí mật chia sẻ được an toàn: các thỏa thuận bí mật
không để nghe trộm và trong bất kỳ kết nối xác thực nào, khóa bí mật không thể bị lấy
trộm ngay cả khi một kẻ tấn công có thể xâm nhập vào giữa kết nối.
+ Quá trình thỏa thuận đáng tin cậy: Không kẻ tấn công nào có thể thay đổi quá
trình thỏa thuận mà không bị phát hiện bởi các bên tham gia kết nối.
Tương tự như SSL, TLS cũng có các trạng thái phiên làm việc và kết nối nên
Giao thức thiết lập TLS có trách nhiệm thỏa thuận một phiên làm việc, bao gồm các
tham số sau:
+ Định danh phiên làm việc (session identifier): Là một byte bất kỳ có thứ tự
được chọn bởi máy chủ để xác định một trạng thái phiên làm việc đang hoạt động hoặc
có thể khôi phục lại trạng thái phiên làm việc hiện tại.
+ Chứng thư của thành phần tham gia (peer certificate): X509.v3, chứng thư của
thành phần tham gia, tham số này có thể bỏ trống.
+ Phương pháp nén (compression method): Thuật toán sử dụng để nén dữ liệu
trước khi mã hóa.
+ Đặc tả mã hóa (cipher spec): Xác định hàm giả ngẫu nhiên để sinh khóa, thuật
toán mã hóa dữ liệu lớn (ví dụ như AES..) và một thuật toán MAC (ví dụ

23
Nhóm:15
Bài tập tiểu luận môn ANM

HMAC_SHA1). Nó cũng định nghĩa các thuộc tính mã hóa, ví dụ kích thước băm
(mac_length).
+ Mã bí mật chính (master secret): Một thông điệp bí mật có kích thước 48 byte
được chia sẻ giữa máy khách và máy chủ.
+ Có thể khôi phục (is resumable): Một chỉ báo phiên làm việc có thể được sử
dụng để khởi tạo các kết nối mới.
2.2. Quá trình bắt tay
Đây là nơi kết nối được thiết lập một cách an toàn. Nó có vẻ phức tạp nếu bạn
chưa quen với một số khái niệm, nhưng mỗi khái niệm này sẽ được đề cập sau trong
bài viết nếu bạn cần tham khảo chúng.
Có ba loại bắt tay TLS cơ bản: bắt tay TLS cơ bản, các bắt tay TLS xác thực
khách hàng và bắt tay viết tắt. Cái bắt tay TLS cơ bản .

Hình 7: Sơ đồ hiển thị quá trình bắt tay TLS. Bắt tay đầy đủ TLS 1.2 bởi F
MeatGrinder được cấp phép theo Muff.

24
Nhóm:15
Bài tập tiểu luận môn ANM

Trong kiểu bắt tay này, chỉ có máy chủ được xác thực và không phải máy khách. Nó
bắt đầu với giai đoạn đàm phán, trong đó khách hàng gửi Xin chào khách hàng thông điệp.
Phiên bản này chứa phiên bản TLS cao nhất mà máy khách hỗ trợ, bộ mật mã có thể, cho
biết liệu nó có hỗ trợ nén, số ngẫu nhiên và một số thông tin khác không
Thông báo Hello Client được đáp ứng với một Xin chào máy chủ thông điệp.
Phản hồi này chứa ID phiên, phiên bản giao thức, bộ mật mã và nén (nếu có đang được
sử dụng) mà máy chủ đã chọn từ danh sách máy khách. Nó cũng bao gồm một số ngẫu
nhiên khác nhau.
Nó phụ thuộc vào bộ mật mã đã được chọn, nhưng máy chủ thường sẽ làm theo
điều này bằng cách gửi Chứng chỉ tin nhắn để xác thực. Điều này xác nhận danh tính
của nó và chứa khóa công khai của nó.
Nếu trao đổi khóa tạm thời Diffie-Hellman hoặc trao đổi khóa ẩn danh Diffie-
Hellman đang được sử dụng, thì điều này được theo sau bởi một Trao đổi khóa máy
chủ thông điệp. Các phương pháp trao đổi khóa khác bỏ qua phần này. Khi máy chủ
kết thúc với phần đàm phán, nó sẽ gửi một Máy chủ Xin chào thông điệp
Bây giờ, nó lại là khách hàng. Tùy thuộc vào bộ mật mã được chọn, nó sẽ gửi
Trao đổi khóa khách hàng thông điệp. Điều này có thể chứa khóa công khai hoặc bí
mật sớm hơn, được mã hóa bằng khóa công khai của máy chủ
Cả hai bên sau đó sử dụng các số ngẫu nhiên và bí mật sớm hơn để đưa ra một bí
mật chính. Các khóa được lấy từ bí mật chính, sau đó được sử dụng để xác thực và mã
hóa thông tin liên lạc.
Khách hàng sau đó gửi một Thay đổi thông số kỹ thuật thông điệp. Điều này cho
máy chủ biết rằng các thông báo sau sẽ được xác thực và mã hóa (mặc dù đôi khi mã
hóa có thể không được sử dụng).
Sau đó, khách hàng theo dõi điều này với một Đã kết thúc tin nhắn được mã hóa
và cũng chứa Mã xác thực thư (MAC) để xác thực. Máy chủ giải mã thông báo này và
xác minh MAC. Nếu bất kỳ quá trình nào trong số này không thành công, thì kết nối sẽ
bị từ chối.
Bây giờ, nó đã chuyển sang máy chủ Lần lượt gửi Thay đổi thông số kỹ thuật tin
nhắn, cũng như một Đã kết thúc tin nhắn có cùng nội dung như trên. Sau đó, khách
hàng cũng cố gắng giải mã và xác minh nội dung. Nếu điều này được hoàn thành thành
công, bắt tay kết thúc. Tại thời điểm này, giao thức ứng dụng được thiết lập. Dữ liệu
sau đó có thể được trao đổi an toàn theo cách tương tự như Đã kết thúc tin nhắn từ phía
trên, với xác thực và mã hóa tùy chọn.
2.3. Bắt tay TLS xác thực khách hàng
Cái bắt tay này rất giống với cái bắt tay TLS cơ bản, nhưng khách hàng cũng được
xác thực. Sự khác biệt chính là sau khi máy chủ gửi nó Chứng chỉ tin nhắn, nó cũng gửi

25
Nhóm:15
Bài tập tiểu luận môn ANM

một Yêu cầu chứng chỉ tin nhắn, yêu cầu chứng chỉ khách hàng. Khi máy chủ kết thúc,
máy khách sẽ gửi chứng chỉ của nó trong Chứng chỉ thông điệp.

Sau đó khách hàng gửi nó Trao đổi khóa khách hàng tin nhắn, giống như trong cái
bắt tay TLS cơ bản. Tiếp theo là Xác nhận chứng chỉ tin nhắn, bao gồm chữ ký số của
khách hàng. Vì nó được tính từ khóa riêng của máy khách, máy chủ có thể xác minh chữ
ký bằng khóa chung được gửi như một phần của chứng chỉ kỹ thuật số máy khách. Phân
con laịcủa Bắt tay TLS xác thực khách hàng theo cùng dòng với bắt tay TLS cơ bản.

Bắt tay TLS viết tắt

Khi một cái bắt tay đã diễn ra, TLS cho phép phần lớn quá trình được cắt bỏ bằng
cách sử dụng một cái bắt tay viết tắt thay thế. Những cái bắt tay này sử dụng ID phiên
để liên kết kết nối mới với các tham số trước đó.
Một cái bắt tay viết tắt cho phép cả hai bên tiếp tục kết nối an toàn với cùng một
thiết lập đã được đàm phán trước đó. Bởi vì một số mật mã thường tham gia vào việc
bắt đầu một cái bắt tay có thể khá nặng về tài nguyên tính toán, điều này giúp tiết kiệm
thời gian và giúp kết nối dễ dàng hơn.
Quá trình bắt đầu với Xin chào khách hàng thông điệp. Nó rất giống với tin nhắn
Hello Hello trước đó, nhưng nó cũng chứa ID phiên từ kết nối trước đó. Nếu máy chủ
biết ID phiên, nó bao gồm nó trong Xin chào máy chủ thông điệp. Nếu nó không nhận
ra ID phiên, nó sẽ trả về một số khác và bắt tay TLS đầy đủ sẽ phải diễn ra.
Nếu máy chủ nhận ra ID phiên, thì Chứng chỉ và Trao đổi khóa các bước có thể
được bỏ qua. Các Thay đổi thông số kỹ thuật và Đã kết thúc tin nhắn được gửi theo
cách tương tự như bắt tay TLS cơ bản được hiển thị ở trên. Khi khách hàng đã giải mã
tin nhắn và xác minh MAC, dữ liệu có thể được gửi qua kết nối TLS an toàn.
Ngoài ra còn có một tiện ích mở rộng TLS cho phép các kết nối được nối lại với
vé phiên thay vì ID phiên. Máy chủ mã hóa dữ liệu về phiên và gửi nó đến máy khách.
Khi khách hàng muốn tiếp tục kết nối này, nó sẽ gửi vé phiên tới máy chủ, giải mã nó
để tiết lộ các tham số.
Vé phiên không được sử dụng thường xuyên vì chúng yêu cầu gia hạn. Mặc dù
vậy, chúng có thể có lợi trong một số trường hợp nhất định, vì máy chủ không phải là
lưu trữ.
Chương 3: Bảo mật, ứng dụng.
Một số những biện pháp bảo mật của TLS:
 Bảo vệ chống lại việc hạ cấp giao thức xuống phiên bản trước (kém an toàn
hơn hoặc một bộ mật mã yếu hơn).

26
Nhóm:15
Bài tập tiểu luận môn ANM

 Đánh số các bản ghi ứng dụng tiếp theo bằng số thứ tự và sử dụng số thứ tự
này trong mã xác thực tin nhắn (MAC).
 Sử dụng thông báo tin nhắn được nâng cao bằng khóa vì vậy chỉ người giữ
khóa mới có thể kiểm tra MAC. Cấu trúc HMAC được hầu hết các bộ mật mã TLS sử
dụng
được chỉ định trong RFC 2104 (SSL 3.0 sử dụng MAC dựa trên băm khác).
 Thông báo kết thúc quá trình bắt tay ("Đã kết thúc") gửi một hàm băm của
tất cả các thông điệp bắt tay đã trao đổi mà cả hai bên thấy.
 Hàm pseudorandom chia dữ liệu đầu vào làm đôi và xử lý từng dữ liệu
bằng một thuật toán băm khác nhau ( MD5 và SHA-1 ), sau đó XOR chúng lại với
nhau để tạo MAC. Điều này cung cấp sự bảo vệ ngay cả khi một trong những thuật
toán này được phát hiện là dễ bị tấn công.
1. Một số cuộc tấn công chống lại TLS/SSL
Giống như hầu hết các giao thức, TLS đã có một số lỗ hổng trong quá khứ và các
cuộc tấn công lý thuyết chống lại các triển khai khác nhau của nó.
Các phiên bản trước đây, chẳng hạn như SSL 2.0 và 3.0 (và TLS 1.0, về cơ bản
giống như SSL 3.0) có nhiều lỗi bảo mật, nhưng vì chúng là các giao thức cũ và không
dùng nữa, chúng tôi đã giành được chi tiết. Thay vào đó, bạn nên sử dụng TLS 1.2 và
1.3 để bảo mật các kết nối của mình.
Các phiên bản mới hơn của TLS có nhiều nâng cấp khiến nó ít bị tổn thương hơn
SSL. Mặc dù vậy, giao thức vẫn có các vấn đề bảo mật sau:

Tấn công đàm phán lại
Một trong những tính năng của TLS là nó cho phép các cặp máy khách và máy
chủ đàm phán lại các tham số của kết nối hiện có của chúng. Vào năm 2009, người ta
đã phát hiện ra rằng điều này có thể bị những kẻ tấn công khai thác để họ có thể tiêm
lưu lượng truy cập để làm cho nó trông giống như nó đến từ máy khách. Máy chủ sẽ
chấp nhận yêu cầu là hợp pháp, điều đó có nghĩa là những kẻ tấn công có khả năng
đang thao túng các tin nhắn gửi đi.
Cuộc tấn công này không cho phép kẻ tấn công nhìn thấy phản ứng, nhưng nó
vẫn có khả năng gây sát thương. Một phần mở rộng sẽ ngăn chặn các cuộc tấn công
này hiện đang là một tiêu chuẩn được đề xuất.
BEAST
Cuộc tấn công khai thác trình duyệt chống lại SSL / TLS (BEAST) lần đầu tiên
được các nhà nghiên cứu phát hiện vào năm 2011. Nó lợi dụng lỗ hổng chuỗi khối mật
mã trong TLS, có thể được sử dụng để giải mã tin nhắn. Cuộc tấn công này chỉ ảnh
hưởng đến TLS 1.0, đây là phiên bản cũ và yếu hơn của giao thức. Mặc dù nó sẽ
không được dùng nữa cho đến năm 2020, nhưng người dùng nên sử dụng phiên bản
1.2 và 1.3 thay thế.

27
Nhóm:15
Bài tập tiểu luận môn ANM

Thời gian tấn công
Các cuộc tấn công kênh bên này phân tích thời gian để thuật toán chạy trong bao
lâu, sau đó sử dụng thông tin đó để làm việc ngược và tìm ra khóa. Vào năm 2013,
cuộc tấn công Lucky Thirteen đã được phát hiện để thúc đẩy cả cuộc tấn công thời
gian và cuộc tấn công sấm sét trong khi mã xác thực tin nhắn (MAC) đang được kiểm
tra. Cuộc tấn công này có thể được sử dụng để phá vỡ thuật toán TLS, mặc dù nó
không được coi là nguy hiểm đối với phần lớn người dùng TLS.
CRIME
Cuộc tấn công CRIME hoạt động chống lại một loạt các giao thức. Khi dữ liệu đã
được nén, nó có thể gợi ra nội dung từ cookie xác thực. Thông tin này có thể được sử
dụng để chiếm quyền điều khiển phiên. Mặc dù nó ảnh hưởng đến một số giao thức,
cuộc tấn công đặc biệt đáng lo ngại khi nén HTTP đang được sử dụng, vì không có
chiến lược giảm thiểu hiệu quả.
Vào năm 2013, việc khai thác và kiểm tra trình duyệt thông qua quá trình nén
thích ứng của siêu văn bản (BREACH) đã được tìm thấy ảnh hưởng đến việc nén
HTTP theo cách tương tự. Phiên bản tấn công này có thể khôi phục địa chỉ email và dữ
liệu có giá trị khác được mã hóa bằng TLS. Cuộc tấn công BREACH có thể được giảm
thiểu bằng cách vô hiệu hóa nén HTTP hoặc sử dụng các kỹ thuật như bảo vệ giả mạo
yêu cầu chéo trang (CSRF).

Tấn công hạ cấp
Đây là các cuộc tấn công lừa máy chủ sử dụng các phiên bản TLS trước đó và
kém an toàn hơn. Những kẻ tấn công có thể sử dụng các kỹ thuật này để đàm phán
việc sử dụng các trao đổi và mật mã khóa kém an toàn hơn. Cuộc tấn công Logjam là
một ví dụ điển hình vì nó có thể khiến các máy chủ dễ bị tổn thương sử dụng Diffie-
Hellman 512 bit, yếu. Những kẻ tấn công sau đó có thể phá vỡ cơ chế trao đổi khóa
này và trích xuất các khóa, cho phép chúng truy cập hoàn toàn vào phiên.
Heartbleed
Heartbleed là một lỗ hổng bảo mật đã vô tình được đưa vào thư viện mật mã
OpenSSL vào năm 2012, nhưng không được công khai cho đến năm 2014. Bởi vì đây
là cách triển khai TLS thường được sử dụng, nên nó đã gây ra thiệt hại đáng kể trên
toàn cầu.
Một trong những nhà phát triển cho phần mở rộng nhịp tim TLS đã thêm một lỗ
hổng đọc quá mức bộ đệm, cho phép một số dữ liệu bổ sung được phơi bày. Lỗi không
được nhận khi mã được xem xét, dẫn đến một số cuộc tấn công đáng kể.
Do thư viện OpenSSL được triển khai rộng rãi, nên chi phí quốc tế để giảm thiểu
vấn đề kết thúc khá tốn kém. Quản trị viên máy chủ phải cài đặt bản vá mới và tạo lại

28
Nhóm:15
Bài tập tiểu luận môn ANM

chứng chỉ và các cặp khóa có thể đã bị xâm phạm trong khoảng thời gian hai năm tồn
tại lỗ hổng.
PAC
Cuộc tấn công này đã được tìm thấy vào năm 2016. Nó tận dụng các điểm yếu
được tìm thấy trong Giao thức tự động phát hiện Web Proxy (WPAD). Khi người dùng
cố gắng truy cập trang web qua kết nối được mã hóa TLS, lỗ hổng có thể khiến URL
hiển thị. Do URL đôi khi được gửi cho người dùng dưới dạng xác thực, cuộc tấn công
Unholy PAC giúp kẻ tấn công có thể chiếm đoạt tài khoản của người dùng.
2. Ứng dụng
Giống như SSL, TLS được phát triển để đóng gói các giao thức ứng dụng cụ thể
như HTTP, FTP, SMTP, NNTP và XMPP; cho phép trao đổi riêng tư trên mạng
Internet, cho phép các ứng dụng khách/chủ giao tiếp an toàn, ngăn ngừa tấn công, bóc
tách dữ liệu hay phá hủy thông điệp trái phép như an toàn truyền siêu văn bản, an toàn
trao đổi thư điện tử….
Phần 3: Kết luận
Qua bài tiểu luận trên chúng ta biết được cấu trúc, đặc điểm và cách hoạt động của
các giao thức bảo mật SSL/TLS. Cả SSL và TLS đều là các giao thức phục vụ cùng một
mục đích, cung cấp bảo mật và mã hóa cho kết nối của bạn giữa TCP và các ứng dụng.
SSL phiên bản 3.0 được thiết kế đầu tiên sau đó TLS phiên bản 1.0 được thiết kế, đây
là phiên bản tiền nhiệm hoặc phiên bản mới nhất của SSL bao gồm tất cả những tính
năng của SSL nhưng ngoài ra thì cũng có một số tính năng bảo mật nâng cao.
Đầu tiên là khái niệm, các giai đoạn hoạt động của SSL từ 1.0 đến 3.0. Sau đó là
cấu trúc của SSL để thấy được chức năng và vị trí của các lớp trong cấu trúc. Các trạng
thái phiên làm việc và kết nối của SSL.Cuối cùng là vấn đề bảo mật trong các phiên bản
1.0,2.0 và 3.0 để có thể bảo mật thông tin của bản thân tốt hơn.
Tiếp theo là khái niệm và các phiên bản của giao thức TLS để thấy rõ được những
cải tiến hơn so với các phiên bản của giao thức SSL. Cấu trúc của TLS tương tự như so
với cấu trúc của giao thức SSL, nhờ đó mà ta biết được chức năng của các lớp. Chức
năng chính của TLS là cung cấp sự riêng tư và toàn vẹn dữ liệu giữa hai ứng dụng giao
tiếp trên môi trường mạng. Giống như SSL, TLS là một giao thức theo mô hình
khách/chủ (client/server). Nếu không có TLS, những thông tin nhạy cảm như thông tin
đăng nhập, chi tiết thẻ tín dụng và chi tiết cá nhân có thể dễ dàng bị người khác thu thập,
nhưng cũng có thể theo dõi thói quen duyệt web, thư điện tử, trò chuyện trực tuyến và

29
Nhóm:15
Bài tập tiểu luận môn ANM

cuộc gọi hội nghị. Bằng cách cho phép các ứng dụng máy khách và máy chủ hỗ trợ
TLS, nó đảm bảo rằng dữ liệu truyền giữa chúng được mã hóa bằng các thuật toán an
toàn và không thể xem được bởi các bên thứ ba.

30
Nhóm:15
Bài tập tiểu luận môn ANM

TÀI LIỆU THAM KHẢO

1. A.Freier;P.Karlton;P.Kocher, the secure sokets layer (SSL) Protocol Version


3.0,(2012)
2. Đỗ Văn Truyền, Nguyễn Công Long, Tìm hiểu về SSL và ứng dụng trên Web
Sever,6-18, (2012)
3. Llya Grigorik, high performance browser networking, Chapter4,(2013)
4. Polk, Tim; Mckay, Tery; Chokhani, Santosh, Guidelines for the Selection,
Configuration, and user of transport layer security (TLS) implementations (2014)
5. RFC 2246 (1999)
6. RFC 4346 (2006)
7. RFC 5246 (2008)
8. RFC 6176 (2011)
9. RFC 8446 (2018)
10. T.Dierks, E.Rescorla, The Transport Layer Security (TLS) Protocol version 1.2
(2008)
11. TLS 1.3 PROTOCOL SUPPORT, info@wolfssl.com
12. Trần Việt Cường, Tiêu chuẩn SSL – Giao thức an toàn tầng giao vận, Cục tin
khoa học.
13. Trần Việt Cường, Tiêu chuẩn TLS – Giao thức an toàn tầng giao vận, Cục tin
khoa học.
14. wikipedia Transport Layer Security

31
Nhóm:15

You might also like