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 ̣t đô ̣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 ̣t đô ̣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: Tìm hiể u về giao thức SSL
Chương 2: Cấ u trúc và cách hoa ̣t đô ̣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 ̣t đô ̣ng
Chương 3: Bảo mật/ ứng dụng
Nguyễn Chí Công B17DCVT043 Phần 1: SSL
Chương 1: Tìm hiể u về giao thức SSL
Chương 2: Cấ u trúc và cách hoa ̣t đô ̣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 ̣t đô ̣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: Tìm hiể u về giao thức SSL
Chương 2: Cấ u trúc và cách hoa ̣t đô ̣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 ̣t đô ̣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
̀ hiể u về giao thức SSL
Chương 1: Tim
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 ̣t đô ̣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ích thước Thuật toán Kích thướ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
0. 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 ̣t đô ̣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 ̣i 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