You are on page 1of 47

BAN CƠ YẾU CHÍNH PHỦ

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


*************

BÁO CÁO BÀI TẬP LỚN


CHỨNG THỰC ĐIỆN TỬ
ĐỀ TÀI: NGHIÊN CỨU PHƯƠNG PHÁP TẤN CÔNG CHẶN GIỮA TRONG
GIAO THỨC SSL VÀ PHƯƠNG PHÁP PHÒNG CHỐNG

Hà Nội, 2021

MỤC LỤC

DANH MỤC TỪ VIẾT TẮT..............................................................................4

DANH MỤC HÌNH ẢNH...................................................................................5

LỜI NÓI ĐẦU....................................................................................................7

Chương 1 TỔNG QUAN VỀ GIAO THỨC SSL...............................................8


1.1 Lịch sử phát triển của giao thức SSL........................................................8
1.1.1. Giao thức SSL là gì?.........................................................................8

1
1.1.2. Tầm quan trọng của giao thức SSL.................................................10
1.1.3. Các phiên bản của SSL....................................................................11
1.2 Các dịch vụ của SSL...............................................................................12
1.3 Cách thức hoạt động của giao thức SSL.................................................13
1.4 Các giao thức con của giao thức SSL......................................................15
1.4.1. Giao thức SSL Record.....................................................................16
1.4.2. Giao thức SSL Handshake..............................................................18
1.4.3. Giao thức SSL Change Cipher Spec...............................................21
1.4.4. Giao thức SSL Alert........................................................................21
1.5 Các thuật toán mã hóa sử dụng trong SSL..............................................21
1.6 Tổng kết chương 1...................................................................................22

Chương 2 TÌM HIỂU PHƯƠNG PHÁP TẤN CÔNG CHẶN GIỮA TRONG
GIAO THỨC SSL VÀ CÁCH PHÒNG CHỐNG..................................................23
2.1 Tìm hiểu tấn công chặn giữa...................................................................23
2.1.1. Khái niệm........................................................................................23
2.1.2. Cách thức hoạt động........................................................................23
2.1.3. Các kiểu tấn công chặn giữa............................................................24
2.1.4. Ví dụ về tấn công chặn giữa............................................................26
2.2 Tấn công ARP Spoofing.........................................................................27
2.2.1. Giao thức ARP................................................................................27
2.2.2. Nguyên lý tấn công ARP Spoofing.................................................27
2.3 Tìm hiểu tấn công chặn giữa chiếm quyền điều khiển SSL....................29
2.3.1. Mô tả quá trình truyền thông...........................................................29
2.3.2. Quá trình tấn công...........................................................................30
2.4 Biện pháp phòng chống...........................................................................32
2.5 Kết luận chương 2...................................................................................34

2
Chương 3 TRIỂN KHAI THỰC NGHIỆM......................................................35
3.1 Mô hình triển khai...................................................................................35
3.1.1. Kịch bản..........................................................................................35
3.1.2. Mô hình triển khai...........................................................................35
3.2 Thực nghiệm............................................................................................36
3.2.1. Cài đặt “SSLstrip”...........................................................................36
3.2.2. Tiến hành tấn công..........................................................................39
3.3 Kết luận chương 3...................................................................................43

KẾT LUẬN.......................................................................................................44

TÀI LIỆU THAM KHẢO.................................................................................45

BẢNG PHÂN CÔNG CÔNG VIỆC.................................................................46

DANH MỤC TỪ VIẾT TẮT

SSL Secure Sockets Layer


IETF Internet Engineering Task Force
TLS Transport Layer Security
HTTP Hyper Text Transport Protocol
IMAP Internet Messaging Access Protocol
FTP File Transport Protocol
IPSec IP Security Protocol
CA Certificate Authority

3
MAC Media Access Control
MITM Man-in-the-Middle
DNS Domain Name Server
DAI Dynamic ARP Inspection
IDS Intrusion Detection System 

DANH MỤC HÌNH ẢNH


Hình 1.1 Vị trí của giao thức SSL theo mô hình TCP/IP..........................................8
Hình 1.2 Các cổng được gán cho các giao thức ứng dụng chạy trên SSL..............10
Hình 1.3 Cơ chế hoạt động của SSL.......................................................................14
Hình 1.4 Các bước của SSL Record Protocol.........................................................16
Hình 1.5 Quá trình bắt tay của client và server trong giao thức Handshake...........18
Hình 2.1 Mô tả quá trình tấn công chặn giữa MITM..............................................23
Hình 2.2 Ví dụ về tấn công MITM..........................................................................26
Hình 2.3 Nguyên lý tấn công ARP Spoofing..........................................................28
Hình 2.4 Mô tả quá trình truyền thông HTTPS.......................................................29
Hình 2.5 Mô tả quá trình chiếm quyền điều khiển truyền thông HTTPS...............30
Hình 2.6 Mô tả quá trình attacker can thiệp vào chuyển hướng HTTP sang HTTPS
.........................................................................................................................31
4
Hình 3.1 Mô hình triển khai thực nghiệm...............................................................35
Hình 3.2 Giao diện trang tải bộ cài SSLstrip...........................................................36
Hình 3.3 Tải bộ cài SSLstrip về máy kali...............................................................36
Hình 3.4 Tiến hành cài đặt tool SSLstrip................................................................37
Hình 3.5 Cài đặt python-pip....................................................................................37
Hình 3.6 Cài đặt file Twisted..................................................................................38
Hình 3.7 Cài đặt server_identity..............................................................................38
Hình 3.8 Lệnh kiểm tra version SSLstrip................................................................39
Hình 3.9 Lệnh chạy SSLstrip và cho lắng nghe ở công 8080.................................39
Hình 3.10 Cấu hình các cổng lắng nghe cho SSLstrip............................................39
Hình 3.11 Giao diện Ettercap..................................................................................40
Hình 3.12 Sau quá trình scan các host trong mạng.................................................40
Hình 3.13 Quá trình add target và lựa chọn tấn công..............................................41
Hình 3.14 Thông tin của máy bị hại trước khi bị tấn công......................................42
Hình 3.15 Thông tin của máy bị hại sau khi bị tấn công.........................................42
Hình 3.16 Người dùng truy cập web DVWA..........................................................43
Hình 3.17 Ettercap ghi lại được các thông tin về user, pass của người dùng..........43

5
LỜI NÓI ĐẦU
Kể từ khi Internet ra đời, cùng theo đó lĩnh vực công nghệ tin không ngừng
phát triển, kèm theo Mạng Internet mang lại rất nhiều tiện ích hữu dụng cho người
sử dụng, một trong các tiện ích phổ thông của Internet là hệ thống thư điện tử
(Email), trò chuyện trực tuyến (Chat), mạng xã hội, các dịch vụ thương mại và
ngân hàng,… Chúng cung cấp một khối lượng thông tin và dịch vụ khổng lồ trên
Internet. Nguồn thông tin khổng lồ kèm theo các dịch vụ tương ứng chính là hệ
thống các trang Web liên kết với nhau - World Wide Web. Đó là một kênh trao đổi
thông tin rất hữu ích và nhanh chóng. Song tất cả không phải là hoàn mỹ, nghĩa là
mọi thông tin khi bạn trao đổi thông qua Internet có thể bị bên thứ ba tác động vào
hay là lộ mất mát thông tin… Để khắc phục những hạn chế đó người ta đã phát
triển nên các giao thức giúp phần nào hạn chế điều đó. Trong đó biết tới một giao
thức góp phần tối ưu công việc bảo mật thông tin trên nền WWW, đó là giao thức

6
SSL. Trong bài báo cáo này, chúng em xin phép trình bày hiểu biết về giao thức
SSL và tìm hiểu tấn công chặn giữa trong giao thức SSL và cách phòng chống.
Bài báo cáo gồm có 3 phần chính:
Chương I: Tổng quan về giao thức SSL: ở phần này chúng em sẽ trình bày
tổng quan về lịch sử ra đời của giao thức SSL bao gồm khái niệm, tầm quan trọng
và các phiên bản SSL hiện hành; cách thức hoạt động, các giao thức con và các
thuật toán mã hoá sử dụng trong SSL.
Chương II: Tìm hiểu về tấn công chặn giữa trong giao thức SSL và cách
phòng chống: trong chương này chúng em sẽ trình bày chi tiết và cụ thể về tấn
công chặn giữa chiếm quyền điều khiển SSL và cách ngăn chặn tấn công này.
Chương III: Triển khai thực nghiệm
Vì thời gian làm bài có hạn nên bài báo cáo của chúng em sẽ không tránh khỏi
những sai sót. Chúng em rất mong nhận được sự góp ý từ cô và các bạn.
Chúng em xin cảm ơn cô!

Chương 1 TỔNG QUAN VỀ GIAO THỨC SSL


1.1 Lịch sử phát triển của giao thức SSL
1.1.1. Giao thức SSL là gì?
SSL (Secure Sockets Layer) là giao thức bảo mật thông tin mạng được sử
dụng rộng rãi nhất hiện nay nhằm mã hóa và cung cấp một kênh an toàn giữa
các máy tính trên Internet hoặc mạng nội bộ. SSL thường được sử dụng khi một
trình duyệt web cần kết nối bảo mật đến một máy chủ web.
Được phát triển bởi Netscape, ngày nay giao thức Secure Socket Layer
(SSL) đã được sử dụng rộng rãi trên World Wide Web trong việc xác thực và
mã hoá thông tin giữa client và server. Tổ chức IETF (Internet Engineering Task
Force) đã chuẩn hoá SSL và đặt lại tên là TLS (Transport Layer Security). Mặc dù
là có sự thay đổi về tên nhưng TLS chỉ là một phiên bản mới của SSL. Phiên bản

7
TLS 1.0 tương đương với phiên bản SSL 3.1. Tuy nhiên SSL là thuật ngữ được sử
dụng rộng rãi hơn.
Vị trí của giao thức SSL theo mô hình TCP/IP được minh họa trên sơ đồ
sau:

Hình 1.1 Vị trí của giao thức SSL theo mô hình TCP/IP
SSL được thiết kế như là một giao thức riêng cho vấn đề bảo mật có thể hỗ
trợ cho rất nhiều ứng dụng. Giao thức SSL hoạt động bên trên TCP/IP và bên
dưới các giao thức ứng dụng tầng cao hơn như là HTTP (Hyper Text
Transport Protocol), IMAP (Internet Messaging Access Protocol) và FTP
(File Transport Protocol),... Như các sơ đồ trên cho thấy, SSL được tìm thấy
trong lớp ứng dụng của mô hình TCP/IP. Với đặc điểm này, SSL có thể được
triển khai trên hầu hết mọi hệ điều hành hỗ trợ TCP/IP mà không cần phải
sửa đổi hạt nhân hệ thống hoặc ngăn xếp TCP/IP. Điều này mang lại cho SSL
một lợi thế rất lớn so với các giao thức khác như IPSec (IP Security
8
Protocol). SSL cũng có thể dễ dàng vượt qua tường lửa và proxy, cũng như thông
qua NAT (Dịch địa chỉ mạng) mà không gặp vấn đề gì.
Để bảo vệ những thông tin mật trên mạng Internet hay bất kỳ giao thức
TCP/IP nào. SSL đã kết hợp những yếu tố sau để thiết lập được một giao dịch an
toàn:
 Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia
của kết nối. Cũng như vậy, các trang Web cũng cần phải kiểm tra tính
xác thực của người sử dụng.
 Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba.
Để loại trừ việc nghe trộm những thông tin “ nhạy cảm” khi nó được
truyền qua Internet. Dữ liệu phải được mã hoá để không thể bị đọc được
bởi những người khác ngoài người gửi và người nhận.
 Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch. Thể hiện chính
xác thông tin gốc gửi đến.
Với việc sử dụng SSL, các Website có thể cung cấp khả năng bảo mật thông
tin. Xác thực và toàn vẹn dữ liệu đến người dùng. SSL được tích hợp sẵn vào các
trình duyệt và Web Server. Cho phép người sử dụng làm việc với các trang Web ở
chế độ an toàn.
Các cổng được gán cho các giao thức ứng dụng chạy trên SSL:

9
Hình 1.2 Các cổng được gán cho các giao thức ứng dụng chạy trên SSL
1.1.2. Tầm quan trọng của giao thức SSL
Công nghệ thông tin ngày càng phát triển và thay đổi hàng ngày hàng giờ.
Cùng với sự ra đời của Internet, thì đã góp phần tăng thêm một kênh truyền tải
thông tin.
Ngày nay việc bảo mật thông tin là yếu tố quan trọng để quyết định sự sống
còn của một tổ chức, một công ty hay doanh nghiệp. Với sự phát triển nhanh chóng
của công nghệ đã mang lại nhiều tiện ích cho người dùng nhưng đồng thời cũng
đặt ra một nhu cầu hết sức cấp thiết về sự an toàn và bảo mật. Và SSL chính là giải
pháp tốt nhất hiện nay đáp ứng những nhu cầu đó và nó được coi như là “lá chắn
cuối cùng” trong bảo mật thương mại điện tử. Việc truyền các thông tin nhạy cảm
trên mạng rất không an toàn vì những vấn đề sau:

10
 Người dùng không thể chắc rằng mình đang trao đổi thông tin với đúng
đối tượng cần trao đổi.
 Dữ liệu mạng có thể bị chặn, vì vậy dữ liệu có thể bị một đối tượng thứ
ba khác đọc trộm, thường được biết đến như attacker.
 Nếu attacker có thể chặn dữ liệu, attacker có thể sửa đổi dữ liệu trước khi
gửi nó đến người nhận.
Chính vì vậy giao thức SSL được đã được phát triển nhằm giải quyết triệt để
các vấn đề trên.
1.1.3. Các phiên bản của SSL
Giao thức SSL ban đầu được phát triển bởi Netscape. Ngày nay Visa,
MasterCard, American Express cũng như nhiều công ty giải pháp tài chính hàng
đầu khác trên thế giới đã và đang ứng dụng SSL trong thương mại điện tử. Cho đến
bây giờ, có ba phiên bản của SSL:
SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications. Nó
chứa một số khiếm khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài.
SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x. Nó
có một số điểm yếu liên quan đến sự hiện thân cụ thể của cuộc tấn công của
đối tượng trung gian. Trong một nỗ lực nhằm dùng sự không chắc chắn của công
chúng về bảo mật của SSL, Microsoft cũng đã giới thiệu giao thức PCT cạnh tranh
trong lần tung ra Internet Explorer đầu tiên của nó vào năm 1996.
SSL 3.0: Netscape Communications đã phản ứng lại sự thách thức PCT của
Microsoft bằng cách giới thiệu SSL 3.0 vốn giải quyết các vấn đề trong SSL 2.0 và
thêm một số tính năng mới. Vào thời điểm này, Microsoft nhượng bộ và đồng ý hỗ
trợ SSL trong tất cả các phiên bản phần mềm dựa vào TCP/IP của nó (mặc dù
phiên bản riêng của nó vẫn hỗ trợ PCT cho sự tương thích ngược).

11
1.2 Các dịch vụ của SSL

Xác thực thực thể (1 chiều hoặc 2 chiều): cho phép xác thực client và
server.
 Xác thực server: cho phép người dùng xác thực được server muốn kết
nối. Lúc này, phía browser sử dụng các kỹ thuật mã hóa công khai để
chắc chắn rằng certificate và public ID của server là có giá trị và được
cấp phát bởi một CA (certificate authority) trong danh sách các CA đáng
tin cậy của client. Điều này rất quan trọng đối với một người dùng. Ví dụ,
như khi gửi mã số credit card qua mạng thì người dùng thực sự muốn
kiểm tra liệu server sẽ nhận thông tin này có đúng là server mà họ định
gửi đến không.
 Xác thực client: cho phép phía server xác thực được người dùng muốn
kết nối. Phía server cũng sử dụng các kỹ thuật mã hóa công khai để kiểm
tra xem certificate và public ID của server có giá trị hay không và được
cấp phát bởi một CA đáng tin cậy của server không. Điều này rất quan
trọng đối với nhà cung cấp. Ví dụ, như khi một ngân hàng định gửi các
thông tin tài chính mang tính bảo mật tới khách hàng thì họ rất muốn
kiểm tra định danh của người nhận.

Thỏa thuận bộ tham số mật mã: Hỗ trợ client, server thỏa thuận bộ tham
số mật mã bao gồm các thuật toán mã hóa, thuật toán băm xác thực cũng như các
thuật toán nén dữ liệu,…
Trao đổi khóa phiên: Sau khi thực hiện quá trình bắt tay, client và server
thực hiện quá trình trao đổi khóa phiên được sử dụng trong quá trình mã hóa thông
điệp được trao đổi giữa hai bên.
Nén dữ liệu: Hai bên sẽ đưa ra các thuật toán nén, tiến hành lựa chọn và
thống nhất thuật toán phù hợp.

12
Bí mật dữ liệu: Tất cả các thông tin trao đổi giữa client và server được mã
hóa trên đường truyền nhằm nâng cao khả năng bảo mật. Điều này rất quan trọng
đối với cả hai bên khi có các giao dịch mang tính riêng tư.
Xác thực (và toàn vẹn dữ liệu): Ngoài việc tất cả các dữ liệu được gửi đi
trên một kết nối SSL đã được mã hóa còn được bảo vệ nhờ cơ chế tự động phát
hiện các xáo trộn, thay đổi trong dữ liệu nhờ vào các thuật toán băm – hash
algorithm) cũng như xác thực nguồn gốc dữ liệu đến từ đâu.
1.3 Cách thức hoạt động của giao thức SSL
Toàn bộ cơ chế hoạt động và hệ thống thuật toán mã hoá sử dụng trong SSL
được công khai, trừ khoá chia sẻ tạm thời (session key) được sinh ra tại thời điểm
trao đổi giữa hai ứng dụng là tạo ngẫu nhiên và bí mật đối với người quan sát trên
mạng máy tính. Ngoài ra, giao thức SSL còn đòi hỏi ứng dụng chủ phải được
chứng thực bởi một bên thứ ba (CA) thông qua chứng thực điện tử (digital
certificate) dựa trên mật mã công khai (ví dụ RSA).
Sau đây xem xét một cách khái quát cơ chế hoạt động của SSL để phân tích
cấp độ an toàn của nó và các khả năng áp dụng trong các ứng dụng nhạy cảm, đặc
biệt là các ứng dụng về thương mại và thanh toán điện tử.

13
Hình 1.3 Cơ chế hoạt động của SSL
Từng bước thiết lập một kết nối SSL mới giữa máy khách (thường là trình
duyệt Web) và máy chủ (thường là máy chủ Web SSL):
Giao thức SSL dựa trên hai nhóm giao thức con chính là giao thức “bắt tay”
(Handshake protocol) và giao thức “bản ghi” (Record protocol). Giao thức bắt tay
xác định các tham số giao dịch giữa hai đối tượng có nhu cầu trao đổi thông tin
hoặc dữ liệu, còn giao thức bản ghi xác định khuôn dạng cho tiến hành mã hoá và
truyền tin hai chiều giữa hai đối tượng đó.

14
Khi hai ứng dụng máy tính, ví dụ giữa một trình duyệt Web và Web Server,
làm việc với nhau, server và máy khách sẽ trao đổi “lời chào” (Hello) dưới dạng
các thông điệp cho nhau với xuất phát đầu tiên chủ động từ server, đồng thời xác
định các chuẩn về thuật toán mã hoá và nén số liệu có thể được áp dụng giữa hai
ứng dụng.
Ngoài ra, các ứng dụng còn trao đổi “số nhận dạng/khoá theo phiên”
(session ID, session key) duy nhất cho lần làm việc đó. Sau đó ứng dụng khách
(trình duyệt) yêu cầu có chứng thực điện tử (digital certificate) xác thực của ứng
dụng chủ (web server). Chứng thực điện tử thường được xác nhận rộng rãi bởi một
cơ quan trung gian (là CA - Certificate Authority) như RSA Data Security hay
VeriSign Inc, một dạng tổ chức độc lập, trung lập và có uy tín. Các tổ chức này
cung cấp dịch vụ “xác nhận” số nhận dạng của một công ty và phát hành chứng chỉ
duy nhất cho công ty đó như là bằng chứng nhận dạng (identity) cho các giao dịch
trên mạng, ở đây là các Web Server.
Sau khi kiểm tra chứng chỉ điện tử của server (sử dụng thuật toán mật mã
công khai, như RSA tại trình máy trạm), ứng dụng máy trạm sử dụng các thông tin
trong chứng chỉ điện tử để mã hoá thông điệp gửi lại server mà chỉ có server đó có
thể giải mã. Trên cơ sở đó, hai ứng dụng trao đổi khóa chính (master key) - khoá bí
mật hay khoá đối xứng - để làm cơ sở cho việc mã hóa luồng thông tin/dữ liệu qua
lại giữa hai ứng dụng chủ khách. Toàn bộ cấp độ bảo mật và an toàn của thông
tin/dữ liệu phụ thuộc vào một số tham số:
(i) Số nhận dạng theo phiên làm việc ngẫu nhiên
(ii) Cấp độ bảo mật của các thuật toán bảo mật áp dụng cho SSL
(iii) Độ dài của khoá chính (key length) sử dụng cho lược đồ mã hoá
thông tin.

15
1.4 Các giao thức con của giao thức SSL
Giao thức SSL gồm bốn giao thức con với các chức năng sau:
 SSL Record Protocol: thực hiện chức năng phân mảnh, nén, tính giá trị
MAC và mã hóa dữ liệu.
 SSL Handshake Protocol (giao thức bắt tay): thực hiện chức năng thỏa
thuận các thuật toán, tham số mật mã, trao đổi khóa, xác thực Server và
Client (nếu có lựa chọn).
 SSL Alert Protocol: thực hiện chức năng thông báo lỗi.
 SSL Change Cipher Spec Protocol: thực hiện chức năng thông báo xác
nhận kết thúc giai đoạn Handshake Protocol.
1.4.1. Giao thức SSL Record
SSL Record Protocol nhâ ̣n dữ liê ̣u từ các giao thức con SSL lớp cao hơn và
xử lý viê ̣c phân đoạn, nén, xác thực và mã hóa dữ liê ̣u. Chính xác hơn, giao thức
này lấy mô ̣t khối dữ liê ̣u có kích cỡ tùy ý làm dữ liê ̣u nhâ ̣p và tạo mô ̣t loạt các
đoạn dữ liê ̣u SSL làm dữ liê ̣u xuất (hoă ̣c còn được gọi là các bản ghi) nhỏ hơn
hoă ̣c bằng 16383 byte.
Các bước khác nhau của SSL Record Protocol vốn đi từ mô ̣t đoạn dữ liê ̣u
thô đến mô ̣t bản ghi SSL Plaintext (bước phân mảnh), SSL Compressed (bước nén)
và SSL Ciphertext (bước mã hóa).

Hình 1.4 Các bước của SSL Record Protocol


16
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à 214 byte (16384 byte) hoặc ít hơn.
Nén: Nén phải là không mất mát thông tin và có thể không làm tăng chiều
dài nội dung nhiều hơn 1024 byte (Dĩ nhiên, người ta mong muốn nén làm co lại
dữ liệu hơn là nới rộng dữ liệu. Tuy nhiên, với những block ngắn, có thể, do định
dạng quy ước, thuật toán nén thực sự làm cho output dài hơn input). Trong SSLv3
(cũng như phiên bản hiện tại của TLS), không có thuật toán nén nào được chỉ rõ, vì
vậy thuật toán nén mặc định là null.
Tính toán MAC (mã xác thực thông điệp) trên dữ liệu đã được nén. Để thực
hiện cần dùng đến một khóa bí mật được chia sẻ, phép tính được định nghĩa như
sau:
hash(MAC_write_secret || pad_2 || hash(MAC_write_secret || pad_1 || seq_num ||
SSLCompressed.type || SSLCompressed.length || SSLCompressed.fragment))
Trong đó:
 || : phép nối/hoặc.
 MAC_write_secret: khóa bí mật được chia sẻ.
 hash: thuật toán băm mã hóa, MD5 hoặc SHA-1.
 pad_1: byte 0x36 (0011 0110) được lặp lại 48 lần (384 bit) cho MD5 và
40 lần (320 bit) cho SHA-1.
 pad_2: byte 0x5c (0101 1100) được lặp lại 48 lần cho MD5 và 40 lần
cho SHA-1.
 seq_num: sequence number cho thông điệp này
 SSL Compressed.type: giao thức ở lớp trên được dùng để xử lí phân
mảnh này.
 SSL Compressed.length: chiều dài của phân mảnh đã được nén.

17
 SSL Compressed.fragment: phân mảnh đã được nén (nếu nén không
được dùng, phân mảnh ở dạng plaintext).
Mã hóa theo phương pháp mã hóa đối xứng: Mã hóa có thể 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: AES, DES, RC2, 3DES,…
1.4.2. Giao thức SSL Handshake
SSL Handshake Protocol là giao thức con chính của SSL được xếp lớp trên
SSL Record Protocol. Mục đích của SSL Handshake Protocol là yêu cầu mô ̣t client
và server thiết lâ ̣p và duy trì thông tin trạng thái vốn được sử dụng để bảo vê ̣ các
cuô ̣c liên lạc. Cụ thể hơn, giao thức phải yêu cầu client và server chấp thuâ ̣n mô ̣t
phiên bản giao thức SSL chung, chọn phương thức nén và thông số mâ ̣t mã, tùy ý
xác thực nhau và tạo mô ̣t khóa mâ ̣t chính mà từ đó các khóa session khác nhau
dành cho viê ̣c xác thực và mã hóa thông báo có thể được dẫn xuất từ đó.
Quá trình bắt tay của client và server trong giao thức Handshake:

Hình 1.5 Quá trình bắt tay của client và server trong giao thức Handshake

18
Giai đoạn 1: Thiết lập protocol version, ID phiên, thuật toán mã hóa,
phương pháp nén.
Bước 1: Client gửi một thông điệp ClientHello tới server. Các thành phần
quan trọng của một thông điệp ClientHello:
 Version: phiên bản SSL cao nhất mà client hỗ trợ.
 Session ID: định danh phiên
 CipherSuite: danh sách thuật toán mã hóa và băm mà client hỗ trợ
(SSL_RSA_WITH_AES_128_CBC_SHA)
 Compression Method: danh sách thuật toán nén dữ liệu mà client hỗ
trợ.
Bước 2: Server gửi SeverHello tới client để trả lời cho gói ClientHello, nội
dung tương tự như ClientHello, tuy nhiên có một số điểm khác biệt:
 Version: Server chọn ra phiên bản SSL cao nhất mà cả client và server
cùng hỗ trợ.
 CipherSuite: lựa chọn ciphersuite tốt nhất trong danh sách các
ciphersuite mà nó và client hỗ trợ.
 Compression Method: lựa chọn một phương pháp nén trong các
phương pháp nén mà nó nhận được từ client.
 Sau hai bước này, client và server đã thương lượng xong các thuật toán
mã, nén dữ liệu và thuật toán băm.
Giai đoạn 2: Server gửi certificate, dữ liệu trao đổi khóa và yêu cầu client
gửi lại certificate nếu được thiết lập xác thực client.
Bước 3: Server gửi chứng thư (SSL certificate) của nó cho client, và trong
certificate này có chứa public key của server. Client nhận được certificate
của server sẽ sử dụng public key của CA để kiểm tra chữ kỹ số đó. Nếu
certificate của server hợp lệ thì client chấp nhận public key của server trong
certificate đó.
19
Bước 4: Server gửi ServerHelloDone tới client để cho biết server đã gửi hết
tất cả các thông tin mà nó có cho client.
Giai đoạn 3: Client gửi certificate nếu được yêu cầu, kết quả kiểm tra chứng
chỉ server và dữ liệu trao đổi khóa.
Bước 5: ClientKeyExchange do client gửi đến server và chứa thông tin để
tạo ra masterkey
 Client sinh một Pre_master secret
 Mã hóa nó bằng public key lấy từ certificate của server
 Thuật toán mã hóa đã thương lượng (ví dụ RSA)
Server :
 Giải mã private key của mình.
 Bây giờ cả client và server sẽ sử dụng Pre_master secret cùng với hai
số ngẫu nhiên đã sinh trước đó để tạo ra master key
 Từ master key sẽ tạo ra session key dùng để mã hóa dữ liệu
Giai đoạn 4: ChangeCipherSuite và kết thúc giai đoạn HandShake
Bước 6: ChangCipherSpec: Client gửi thông báo đến server để cho biết tất
cả các gói tin trao đổi giữa client và server đều sẽ được mã hóa bằng các
thuật toán và session key đã thương lượng trước đó.
Bước 7: Finished: Do client gửi đến server để cho biết client đã hoàn tất việc
thiết lập kết nối.
Bước 8: ChangeCipherSpec: Server gửi thông báo này đến client để cho biết
tất cả các gói tin trao đổi giữa server và client đều sẽ được mã hóa bằng các
thuật toán và session key đã thương lượng trước đó
Bước 9: Finished : Do server gửi đến client để cho biết server đã hoàn tất
việc thiết lập kết nối.

20
1.4.3. Giao thức SSL Change Cipher Spec
Giao thức SSL Change Cipher Spec là giao thức đơn giản nhất trong bốn
giao thức đặc trưng của SSL. Giao thức này bao gồm một message đơn 1 byte.
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.
1.4.4. Giao thức SSL Alert
Giao thức SSL Alert được dùng để truyền cảnh báo liên kết SSL với đầu
cuối bên kia. Như với những ứng dụng khác sử dụng SSL, alert messages được nén
và mã hóa, được chỉ định bởi 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 trọng của message. Nếu mức
độ là nguy hiểm, SSL lập tức chấm 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. 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 các tham số bảo mật
được đưa ra từ những lựa chọn có sẵn.
1.5 Các thuật toán mã hóa sử dụng trong SSL
Các thuật toán mã hoá (Cryptographic algorithm hay còn gọi là cipher) là
các hàm toán học được sử dụng để mã hoá và giải mã thông tin. Giao thức SSL hỗ
trợ rất nhiều các thuật toán mã hoá, được sử dụng để thực hiện các công việc trong
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á
21
của từng phiên giao dịch (session key). Client và server có thể hỗ trợ các bộ mật
mã (cipher suite) khác nhau tùy thuộc vào nhiều yếu tố như phiên bản SSL đang
dùng,…
Các thuật toán mã hoá và xác thực của SSL được sử dụng bao gồm:
 DES (Data Encryption Standard): là một thuật toán mã hoá có chiều dài
khoá là 56 bit.
 3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ
dài khóa trong mã hoá DES.
 DSA (Digital Signature Algorithm): là một phần trong chuẩn về xác thực
số đang được được chính phủ Mỹ sử dụng.
 KEA (Key Exchange Algorithm) là một thuật toán trao đổi khoá đang
được chính phủ Mỹ sử dụng.
 MD5 (Message Digest algorithm) được phát triển bởi Rivest.
 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.
 RC2 and RC4: là các thuật toán mã hoá được phát triển bởi Rivest dung
cho RSA Data Security.
 SHA-1 (Secure Hash Algorithm): là một thuật toán băm đang được chính
phủ Mỹ sử dụng.
1.6 Tổng kết chương 1
Trong chương này, báo cáo đã giới thiệu một cách sơ lược về định nghĩa,
lịch sử hình thành và phát triển của giao thức SSL, từ đó phần nào đã hiểu được
tầm quan trọng của SSL trong việc bảo mật thông tin. Ngoài ra, nhóm chúng em
còn trình bày các dịch vụ cũng như cách thức hoạt động của SSL như thế nào,
cấu trúc giao thức SSL, các giao thức con và để bảo vệ thông tin an toàn SSL
được hỗ trợ bởi thuật toán mã hóa nào.

22
Chương 2 TÌM HIỂU PHƯƠNG PHÁP TẤN CÔNG CHẶN GIỮA TRONG
GIAO THỨC SSL VÀ CÁCH PHÒNG CHỐNG
2.1 Tìm hiểu tấn công chặn giữa
2.1.1. Khái niệm
Tấn công chặn giữa (Man-in-the-Middle Attack) là kiểu tấn công bí mật xảy
ra khi kẻ tấn công xen giữa vào phiên giao tiếp giữa người hoặc hệ thống (Thường
là trình duyệt web và máy chủ web). Người tấn công phải có khả năng đánh chặn
tất cả các thông tin liên quan qua lại giữa hai nạn nhân và tiêm vào những thông tin
mới.

Hình 2.6 Mô tả quá trình tấn công chặn giữa MITM


Các nạn nhân không biết dữ liệu của họ đã bị giả mạo cho đến khi quá
muộn. Do đó, nếu MITM thành công, có thể gây ra những thiệt hại nặng nề.
2.1.2. Cách thức hoạt động
Một kịch bản MITM có ba đối tượng tham gia: nạn nhân, đối tượng mà nạn
nhân đang cố gắng kết nối, và kẻ tấn công ở giữa, kẻ tấn công đã chặn kết nối của
nạn nhân và nạn nhân không hề biết đến sự tồn tại của kẻ tấn công. Chi tiết hơn, kẻ
tấn công sẽ mạo danh cả hai bên và có được quyền truy cập vào thông tin mà hai

23
bên đang cố gắng gửi cho nhau. Kẻ tấn công có thể chặn, gửi và nhận dữ liệu dành
cho cả hai bên, mà không có bên nào biết đến khi quá muộn.
Ngoài các website, các cuộc tấn công này có thể chuyển mục tiêu đến liên
lạc qua email, DNS lookups và mạng wifi công cộng. Các đối tượng tiêu biểu của
MITM bao gồm: các doanh nghiệp thương mại điện tử và người dùng các ứng
dụng tài chính.
Những kẻ tấn công MITM cũng sẽ sử dụng phần mềm độc hại với hy vọng
tạo ra cỗ máy zombie hoặc xây dựng mạng lưới rộng lớn. MITM có thể được sử
dụng như một cách để thực hiện advanced persistent threat (APT).
Một cuộc tấn công MITM gồm hai giai đoạn: đánh chặn và giải mã.
 Đánh chặn: Bước đầu tiên là chặn lưu lượng truy cập của người dùng qua
mạng trước khi nó đến đích. Kẻ tấn công có thể áp dụng hai dạng đánh
chặn chủ động và thụ động.
 Giải mã: Sau khi bị chặn, mọi lưu lượng SSL hai chiều đều cần được giải
mã, quá trình này sẽ không thông báo đến người dùng hay ứng dụng. Một
số phương pháp giải mã phổ biến: HTTP spoofing, SSL hijacking, SSL
Stripping.
2.1.3. Các kiểu tấn công chặn giữa
Kẻ tấn công có thể sử dụng các cuộc tấn công MITM để giành quyền kiểm
soát các thiết bị theo nhiều cách khác nhau:
 IP spoofing – giả mạo IP: Với IP spoofing, kẻ tấn công có thể thay thế
người dùng hoặc đối tượng tương tác với người dùng và lừa rằng họ đang
liên hệ trực tiếp với bên kia, kẻ tấn công có thể truy cập vào thông tin mà
người dùng đang trao đổi.
 DNS spoofing – giả mạo DNS: Domain Name Server spoofing là một kỹ
thuật buộc người dùng vào một website giả thay vì trang mà người dùng
dự định truy cập. Mục tiêu của kẻ tấn công là tăng lượng truy cập website
24
giả mạo hoặc đánh cắp thông tin đăng nhập của người dùng. Kẻ tấn công
giả mạo DNS bằng cách thay đổi địa chỉ của website trong máy chủ
DNS, sau đó nạn nhân vô tình truy cập website giả mạo này.
 HTTPS spoofing – giả mạo HTTPS: Kẻ tấn công có thể đánh lừa trình
duyệt của nạn nhân rằng đang truy cập một website đáng tin cậy bằng
cách chuyển hướng trình duyệt của nạn nhân đến một website không an
toàn sau khi truy cập, kẻ tấn công có thể theo dõi các tương tác của nạn
nhân với website đó và có thể đánh cắp thông tin cá nhân đang chia sẻ.
 SSL hijacking – đánh cắp SSL: Kẻ tấn công sử dụng một máy tính và
máy chủ bảo mật khác và chặn tất cả thông tin truyền qua giữa máy chủ
và máy tính của người dùng.
 Email hijacking – đánh cắp email: Kẻ tấn công nhắm vào email khách
hàng của các ngân hàng và các tổ chức tài chính khác. Khi họ có quyền
truy cập, họ có thể giám sát các giao dịch giữa tổ chức và khách hàng của
mình. Những kẻ tấn công sau đó có thể giả mạo địa chỉ email của ngân
hàng và gửi email có chứa một vài hướng dẫn cho khách hàng. Chúng lừa
khách hàng làm theo hướng dẫn và có thể lấy đi thông tin đăng nhập
cũng như gây thiệt hại về mặt tài sản.
 Wifi eavesdropping – nghe lén wifi: Với MITM truyền thống, kẻ tấn
công cần có quyền truy cập vào bộ định tuyến wifi. Các loại kết nối này
thường là các kết nối công cộng hoặc cũng có thể là wifi cá nhân nếu
người dùng không bảo vệ tốt cho chúng. Khi kẻ tấn công tìm thấy bộ
định tuyến dễ bị tấn công, chúng có thể triển khai các công cụ để chặn và
đọc dữ liệu truyền của nạn nhân. Kẻ tấn công sau đó cũng có thể chèn các
công cụ của chúng vào giữa máy tính của nạn nhân và các website mà
nạn nhân truy cập để ghi lại thông tin đăng nhập và các thông tin cá nhân
khác.
25
 Stealing browser cookies – ăn cắp cookie trình duyệt: Cookie trình duyệt
là một phần thông tin nhỏ mà một website lưu trữ trên máy tính. Kẻ tấn
công có thể chiếm quyền điều khiển các cookie trình duyệt. Vì cookie lưu
trữ thông tin từ trình duyệt web của người dùng, kẻ tấn công có thể truy
cập vào mật khẩu, địa chỉ và thông tin nhạy cảm khác.
2.1.4. Ví dụ về tấn công chặn giữa
Giả sử, có một cuộc đối thoại giữa Alice và Bob. Trong khi đó, Mallory lại
muốn chặn cuộc đối thoại để nghe trộm và có thể gửi thông điệp sai cho Bob.
Trước tiên, Alice hỏi Bob về public key của Bob. Nếu Bob gửi cho Alice
public key của mình, nhưng Mallory lại có thể chặn nó, từ đó một cuộc tấn công
MITM có thể được thực hiện.

Hình 2.7 Ví dụ về tấn công MITM


Mallory sẽ gửi cho Alice một thông điệp giả mạo, mạo nhận rằng đó là của
Bob. Nhưng thật ra đó chính là public key của Mallory. Sau đó, Alice tin rằng đây
chính là public key của Bob, tiến hành mã hóa thông điệp của mình bằng key của
Mallory và gửi thông điệp được mã hóa về Bob. Một lần nữa, Mallory sẽ chặn lại,

26
giải mã thông điệp bằng private key của mình (có thể thay đổi thông điệp nếu
muốn), rồi mã hóa lại bằng public key mà Bob đã gửi cho Alice. Khi Bob nhận
được thông điệp mới được mã hóa, Bob sẽ nghĩ rằng thông điệp đó đến từ Alice.
2.2 Tấn công ARP Spoofing
2.2.1. Giao thức ARP
Mỗi thiết bị trong hệ thống mạng của có ít nhất hai địa chỉ. Một địa chỉ là
Media Access Control (MAC) và một địa chỉ Internet Protocol (IP). Địa chỉ MAC
là địa chỉ của card mạng gắn vào bên trong thiết bị, nó là duy nhất và không hề
thay đổi. Địa chỉ IP có thể thay đổi theo người sử dụng tùy vào môi trường mạng.
ARP là một trong những giao thức của IP, chức năng của nó dùng để định vị một
host trong một segment mạng bằng cách phân giải địa chỉ IP ra địa chỉ MAC. ARP
thực hiện điều đó thông qua một tiến trình broadcast gói tin đến tất cả các host
trong mạng, gói tin đó chứa địa chỉ IP của host cần giao tiếp. Các host trong mạng
đều nhận được gói tin đó và chỉ duy nhất host nào có địa chỉ IP trùng với địa chỉ IP
trong gói tin mới trả lời lại, còn lại sẽ tự động drop gói tin.
ARP là một giao thức hết sức đơn giản, nó đơn thuần có 4 loại message cơ
bản sau:
 ARP Request: máy tính A sẽ hỏi toàn mạng : " ai có địa chỉ IP này? ".
 ARP Reply: máy tính B trả lời máy tính A: "tôi có IP đó, địa chỉ MAC
của tôi là...".
 Reverse ARP Request: máy tính A sẽ hỏi toàn mạng: " ai có địa chỉ MAC
này? ".
 Reverse ARP Reply: máy tính B trả lời máy tính A: " tôi có MAC đó, địa
chỉ IP của tôi là...".
2.2.2. Nguyên lý tấn công ARP Spoofing
Giao thức ARP là rất cần thiết và quan trọng trong hệ thống mạng, tuy nhiên
nó lại không đề cập đến vấn đề xác thực nào cả. Khi một host nhận được gói tin
27
ARP Reply, nó hoàn toàn tin tưởng và mặc nhiên sử dụng thông tin đó để sử dụng
sau này mà không cần biết thông tin đó có phải trả lời từ một host mà người dùng
mong muốn hay không. ARP không có cơ chế nào để kiểm tra việc đó cả và trên
thực tế một host có thể chấp nhận gói ARP Reply mà trước đó không cần phải gửi
gói tin ARP Request. Lợi dụng điều này, hacker có thể triển khai các phương thức
tấn công Man In The Middle.

Hình 2.8 Nguyên lý tấn công ARP Spoofing


Giả sử hacker muốn theo dõi host A gửi thông tin gì cho host B. Đầu tiên,
hacker sẽ gửi gói ARP Reply đến host A với nội dung là địa chỉ MAC của hacker
và địa chỉ IP của host B. Tiếp theo, hacker sẽ gửi gói ARP Reply tới host B với nội
dung là MAC của máy hacker và IP của host A. Như vậy, cả hai host A và host B
đều tiếp nhận gói ARP Reply đó và lưu vào trong ARP table của mình. Đến lúc
này, khi host A muốn gửi thông tin đến host B, nó liền tra vào ARP table thấy đã
có sẵn thông tin về địa chỉ MAC của host B nên sẽ lấy thông tin đó ra sử dụng,
nhưng thực chất địa chỉ MAC đó là của hacker. Đồng thời máy tính của hacker sẽ
mở chức năng gọi là IP Forwarding giúp chuyển tải nội dung mà host A gửi qua
host B. Host A và host B giao tiếp bình thường và không có cảm giác bị qua máy
trung gian là máy của hacker. Trong trường hợp khác, hacker sẽ nghe lén thông tin

28
từ máy bạn đến Gateway. Như vậy mọi hành động ra Internet của bạn đều bị
hacker ghi lại hết, dẫn đến việc mất mát các thông tin nhạy cảm.
2.3 Tìm hiểu tấn công chặn giữa chiếm quyền điều khiển SSL
2.3.1. Mô tả quá trình truyền thông
SSL là giao thức được thiết kế để cung cấp bảo mật cho truyền thông mạng
bằng phương pháp mã hóa. Giao thức này dễ được kết hợp với các giao thức khác
nhất để cung cấp một cơ chế thực thi an toàn cho dịch vụ mà giao thức cung cấp.
Trường hợp được sử dụng phổ biến nhất của SSL khi hết hợp vs HTTP là
HTTPS. HTTPS để bảo đảm truyền thông giữa trình duyệt web và các máy chủ
được mã hóa an toàn.
Quá trình được sử dụng bởi HTTPS để bảo đảm an toàn dữ liệu là xiết chặt
các trung tâm có liên quan đến việc phân phối các chứng chỉ giữa máy chủ, máy
khách, và bên thứ ba được tin cậy. Quá trình này được thực hiện qua các bước như
hình bên dưới:

Hình 2.9 Mô tả quá trình truyền thông HTTPS

29
Bước 1: Trình duyệt máy khách kết nối đến web server trên cổng 80 bằng
cách sử dụng HTTP.
Bước 2: Máy chủ redirect phiên bản HTTPS máy khách của site này bằng
cách sử dụng HTTP code 302.
Bước 3: Máy khách kết nối đến web server trên cổng 443.
Bước 4: Máy chủ sẽ cung cấp một chứng chỉ cho máy khách gồm có chữ ký
của nó. Chứng chỉ này được sử dụng để thẩm định sự nhận dạng của site.
Bước 5: Máy khách sử dụng chứng chỉ này và thẩm định chứng chỉ này với
danh sách các nhà thẩm định chứng chỉ tin cây.
Bước 6: Truyền thông mã hóa sẽ xảy ra sau đó.
Nếu quá trình hợp lệ hóa chứng chỉ thất bại thì điều đó có nghĩa rằng các
website đã thất bại trong việc thẩm định sự nhận dạng.
2.3.2. Quá trình tấn công
Quá trình phá hủy HTTPS là quá trình phá hủy “cầu nối” giữa truyền thông
không mã hóa và mã hóa. Nó có thể chiếm quyền điều khiển thành công quá trình
truyền thông.
Ý tưởng khi tấn công một phiên giao dịch từ một kết nối không an toàn đến
một kết nối an toàn, trong trường hợp này là từ HTTP vào HTTPS, tiến hành tấn
công cầu nối, “Man-in-the-middle” kết nối SSL trước khi nó xuất hiện. Để thực
hiện hiệu quả, sử dụng công cụ SSL strip qua các bước được mô tả như hình bên
dưới:

Hình 2.10 Mô tả quá trình chiếm quyền điều khiển truyền thông HTTPS

30
Bước 1: Đầu tiên, lưu lượng giữa máy khách và máy chủ sẽ bị chặn.
Bước 2: Khi bắt gặp một HTTPS URL, SSL strip sẽ thay thế nó bằng một
liên kết HTTP và sẽ ánh xạ những thay đổi của nó.
Bước 3: Máy tấn công sẽ cung cấp các chứng chỉ cho máy chủ web và giả
mạo máy khách
Bước 4: Lưu lượng được nhận trở lại từ website an toàn và được cung cấp
trở lại cho máy khách.
SSL Strip được tạo ra bởi Moxie Marlinspike, một chuyên gia nghiên cứu
bảo mật hàng đầu. Ông cho rằng trong hầu hết các trường hợp, SSL chưa bao giờ
bị trực tiếp tấn công. Hầu hết thời gian một kết nối SSL được khởi tạo thông qua
HTTPS nên nguyên nhân có thể có kẻ tấn công đã redirect một HTTPS thông qua
một mã phản hồi HTTP 302.

Hình 2.11 Mô tả quá trình attacker can thiệp vào chuyển hướng HTTP sang
HTTPS
Để có thể thực hiện tấn công, kẻ tấn công sẽ can thiệp vào việc chuyển
hướng HTTP sang giao thức HTTPS an toàn và chặn yêu cầu từ người dùng đến

31
máy chủ. Sau đó, kẻ tấn công sẽ tiếp tục thiết lập kết nối HTTPS giữa chính mình
và máy chủ kết nối và kết nối HTTP với người dùng hoạt động như một cầu nối
giữa chúng. SSL Strip tận dụng lợi thế của cách hầu hết người dùng truy cập vào
các trang web SSL. Phần lớn người dùng truy cập kết nối với trang web đều
chuyển hướng qua 302 hoặc đến trang SSL thông qua liên kết từ trang không có
SSL. Ví dụ nếu nạn nhân muốn mua sản phẩm và nhập URL www.buyme.com vào
thanh địa chỉ, trình duyệt sẽ kết nối với máy chủ của kẻ tấn công và chờ phản hồi
từ máy chủ. Trong SSL Strip, kẻ tấn công sẽ chuyển tiếp yêu cầu của nạn nhân đến
máy chủ của cửa hàng trực tuyến và nhận được trang thanh toán HTTPS an toàn
như https://www.buyme.com. Tại thời điểm này, kẻ tấn công có toàn quyền kiểm
soát trang thanh toán an toàn, chuyển hướng HTTPS sang HTTP và gửi nó lại trình
duyệt của nạn nhân. Trình duyệt hiện chuyển hướng đến http://www.buyme.com
và từ lúc này tất cả dữ liệu nạn nhân sẽ được chuyển sang định dạng văn bản thuần
túy và kẻ tấn công có thể dễ dàng chặn bắt được. Trong khi đó, máy chủ của trang
web sẽ nghĩ rằng đã thiết lập thành công kết nối an toàn với máy của nạn nhân.
Quá trình làm việc khá tốt, máy chủ có liên quan vẫn nhận lưu lượng SSL
mà không hề hay biết có sự thay đổi. Chỉ có một sự khác biệt rõ ràng trong trải
nghiệm của người dùng là lưu lượng sẽ không được cắm cờ HTTPS trong trình
duyệt.
Sau khi thực hiện thành công tấn công SSL strip, thông tin của nạn nhân
được chuyển ở dạng văn bản thuần túy và có thể dễ dàng bị chặn bởi bất kỳ kẻ tấn
công nào. Điều này dễ đến vi phạm tính toàn vẹn và bí mật của thông tin nhận
dạng cá nhân như thông tin đăng nhập, tài khoản ngân hàng, dữ liệu kinh doanh
nhạy cảm.
2.4 Biện pháp phòng chống
Nhận thấy các thông tin quan trọng và những tập tin riêng tư có thể bị đánh
cắp khá dễ dàng. Để phòng ngừa các trường hợp như vậy, không nên tiến hành các
32
hình thức chứng thực username và password dưới dạng văn bản đơn thuần (không
mã hóa) mà nên mã hóa chúng bằng IPSec hay SSL. Tuy nhiên, không phải lúc
nào cũng có thể thực hiện được các giải pháp này và cũng không phải lúc nào các
giải pháp đó cũng mang lại hiệu quả tốt nhất (vẫn có thể bị các chương trình như
Dsniff hay Ettercap bẻ khoá). Do đó, trong vai trò quản trị mạng, cách tốt nhất là
thường xuyên giám sát các hành động bất thường trong hệ thống của người dùng
để đưa ra hành động thích hợp.
Hệ thống bị tấn công do cơ chế giả danh ARP (hay còn gọi bằng thuật ngữ
“ARP Spoofing”) - một giao thức dùng để phân giải địa chỉ vật lý MAC của máy
tính. Có thể dùng ARP watch giám sát các thông tin ARP trong hệ thống để phát
hiện khi bị tấn công bằng các phương pháp ARP Spoofing hay Sniffer. Hoặc bạn
tiến hành cài đặt các hệ thống IDS như Snort, GFI để phát hiện các hành động bất
thường trên mạng.
Ettercap có hai plug-in rất hữu ích, một dùng để tìm kiếm các máy tính chạy
chương trình Ettercap khác trên mạng và plug-in còn lại dùng để phát hiện các
chương trình Sniffer khả nghi khác. Ví dụ, nếu nghi ngờ có ai đó đang “nghe lén”
trên mạng, khởi động Ettercap và nhấn phím P sau đó chọn plug-in đầu tiên sẽ tìm
ra các máy đang chạy Ettercap. Còn khi đối phương sử dụng các chương trình khác
như Dsniff, có thể dò tìm thông qua plug-in thứ 15 là arpcop, lúc đó một cửa sổ
mới sẽ hiển thị những máy tính đang chạy các chương trình ARP Spoofing trên
mạng. Khi xác nhận được đối tượng, có thể tiến hành cô lập máy tính này khỏi
mạng ngay lập tức bằng cách chọn P và chọn plug-in thứ 23 tên là leech và sau đó
chọn Yes, nhấn Enter. Một số người quản trị hệ thống còn dùng Ettercap để phát
hiện các máy bị nhiễm virus đang phát tán trên mạng rồi cô lập chúng bằng leech
sau đó diệt bằng các chương trình chống virus rất hiệu quả.

33
DAI (Dynamic ARP Inspection) là một tính năng bảo mật loại bỏ gói ARP độc hại,
nó ngăn chặn các cuộc tấn công ARP Spoofing bằng việc chặn, loại bỏ các gói tin
có ràng buộc IP - MAC không hợp lệ, cách thức hoạt động của DAI như sau:
 Ngăn chặn tất cả các ARP request và ARP responses từ các cổng không
đáng tin cậy.
 Xác minh rằng mỗi gói tin bị chặn này có liên kết địa chỉ IP - MAC hợp
lệ trước khi cập nhật bộ nhớ cache ARP cục bộ hoặc trước khi chuyển
gói tin đến đích thích hợp.
 Loại bỏ các gói tin ARP không hợp lệ
Sử dụng Mạng riêng ảo (Virtual Private Network – VPN) cho phép các thiết
bị kết nối với Internet thông qua một tunnel được mã hóa. Điều này làm cho tất cả
thông tin liên lạc được mã hóa và vô giá trị đối với kẻ tấn công ARP spoofing.
Sử dụng ARP tĩnh – giao thức ARP cho phép xác định mục nhập ARP tĩnh
cho địa chỉ IP và ngăn thiết bị nghe phản hồi ARP cho địa chỉ đó. Ví dụ: nếu một
máy tính luôn kết nối với cùng một bộ định tuyến, bạn có thể xác định một mục
ARP tĩnh cho bộ định tuyến đó, điều này giúp ngăn chặn một cuộc tấn công.
Sử dụng packet filtering – các packet filtering có thể xác định các gói ARP
bị nhiễm độc bằng cách phát hiện chúng chứa thông tin nguồn xung đột và ngăn
chúng lại trước khi chúng đến được các thiết bị trên mạng của bạn.
Thực hiện một cuộc tấn công ARP spoofing – kiểm tra xem các hệ thống
bảo mật hiện tại của bạn có đang hoạt động hay không bằng cách thực hiện một
cuộc tấn công ARP spoofing với sự phối hợp của các nhóm Công nghệ thông tin
và bảo mật. Nếu cuộc tấn công thành công, hãy xác định điểm yếu trong các biện
pháp bảo mật của bạn và khắc phục chúng.
2.5 Kết luận chương 2
Trong chương này, báo cáo trình bày khái niệm một cuộc tấn công chặn giữa
cũng như cách thức hoạt động của tấn công này, ví dụ các kiểu tấn công. Ngoài ra,
34
báo cáo tập trung trình bày hai kiểu tấn công ARP spoofing và chiếm quyền điều
khiển SSL. Từ việc hiểu rõ cách thức tấn công, đưa ra các biện pháp phòng chống
phù hợp nhất.

Chương 3 TRIỂN KHAI THỰC NGHIỆM


3.1 Mô hình triển khai
3.1.1. Kịch bản
Kịch bản tấn công máy Kali đóng vai trò là kẻ tấn công chặn giữa (Man-in-
the-middle) vào quá trình truyền thông giữa máy Windows 7 và một server bất kỳ
chạy giao thức HTTPS nhằm chặn bắt và phá vỡ mối liên kết bảo mật thông tin mã
hóa trong quá trình truyền thông bằng bộ giao thức SSL/TLS.
Cụ thể máy Kali sẽ sử dụng công cụ “SSLstrip” và công cụ “Ettercap” để
tiến hành cuộc tấn công này trong đó “SSLstrip” đóng vai trò lắng nghe và thu thập
các log liên quan tới giao thức SSL trên đường truyền của máy bị tấn công, công
cụ “Ettercap” hỗ trợ các dạng tấn công trong đó có tấn công ARP Spoofing mục
đích giả mạo địa chỉ Mac của máy gây nhầm lẫn trong quá trình truyền thông từ
server đến máy người bị hại.
3.1.2. Mô hình triển khai
Yêu cầu máy ảo:
 Chuẩn bị các máy ảo chạy hệ điều hành Kali Linux và Windows 7
 Các máy ảo có thể kết nối Internet
 Các máy ảo cùng dải mạng với nhau
 Một website để thử nghiệm

35
Hình 3.12 Mô hình triển khai thực nghiệm
3.2 Thực nghiệm
3.2.1. Cài đặt “SSLstrip”
Truy cập trang : https://github.com/moxie0/sslstrip, để tải các bộ cài về trên
máy Kali, copy đường link như phần đóng khung màu đỏ trong hình:

Hình 3.13 Giao diện trang tải bộ cài SSLstrip


Sau khi copy được link ta tiến hành tải bộ cài về trên máy Kali bằng dòng
lệnh như trong hình “ git clone + link”:

36
Hình 3.14 Tải bộ cài SSLstrip về máy kali

Khi hoàn tất quá trình tải file cài đặt về thành công ta tiến hành vào thư mục
vừa tải bằng lệnh “cd sslstrip/” để tiến hành cài đặt, khi vào được thư mục sử dụng
lệnh “ls” giao diện hệ thống sẽ hiển thị các file cấu hình để tiến hành cài đặt dùng
lệnh “sudo python setup.py install”.

Hình 3.15 Tiến hành cài đặt tool SSLstrip


Đợi hệ thống chạy cài một chút sau đó tiếp tục chạy file python-pip trên máy
Kali bằng lệnh “sudo apt install python-pip”:

37
Hình 3.16 Cài đặt python-pip

Sau khi cài đặt python-pip xong tiến hành cài đặt các gói dữ liệu cuối cùng
cho tool để có thể chạy. Sử dụng lệnh “sudo pip install Twisted pyopenssl”:

38
Hình 3.17 Cài đặt file Twisted

Hình 3.18 Cài đặt server_identity

Khi đã hoàn thành hết các bước tiến hành kiểm tra thông tin version và chạy
thử tool:

39
Hình 3.19 Lệnh kiểm tra version SSLstrip

Hình 3.20 Lệnh chạy SSLstrip và cho lắng nghe ở công 8080
3.2.2. Tiến hành tấn công
Trước khi tiến hành tấn công có thể cấu hình các cổng lắng nghe cho
SSLstrip để có thể thu thập được các log trong quá trình tấn công:

Hình 3.21 Cấu hình các cổng lắng nghe cho SSLstrip

40
Tiếp theo đến việc sử dụng Ettercap để tiến hành đầu độc ARP, mở Ettercap
trong Kali ta chỉ cần vào phần ứng dụng gõ Ettercap là giao diện ứng dụng sẽ hiển
thị, như trong ảnh card mạng tấn công là eth0:

Hình 3.22 Giao diện Ettercap


Sau khi bật được Ettercap tiến hành scan các host có trong mạng để tìm đến
địa chỉ IP của người bị hại sau trong ảnh có thể thấy rằng địa chỉ:
 192.168.140.2 : là địa chỉ default gateway của mạng
 192.168.140.134: là địa chỉ của máy bị tấn công

Hình 3.23 Sau quá trình scan các host trong mạng

41
Tiếp đến tiến hành add địa chỉ tấn công và target và lựa chọn hình thức tấn
công là ARP spoofing.

Hình 3.24 Quá trình add target và lựa chọn tấn công
Trong lúc này tại máy bị tấn công có thể kiểm tra địa chỉ IP và các thông số
về địa chỉ MAC để nhận thấy được sự thay đổi sau khi mà tấn công bằng các lệnh
“ipconfig” dùng kiểm tra IP và lệnh “arp -a” để kiểm tra các thông tin về địa chỉ
MAC của máy. Sau khi dùng arp-a có thể thấy MAC của địa chỉ 192.168.140.133
(máy tấn công) và MAC của gateway đang là khác nhau nhưng sau khi tấn công
hai địa chỉ này sẽ là một.

42
Hình 3.25 Thông tin của máy bị hại trước khi bị tấn công

Hình 3.26 Thông tin của máy bị hại sau khi bị tấn công

43
Bây giờ khi máy bị tấn công tiến hành đăng nhập vào các web thì các bộ
công cụ sẽ tiến hành ghi lại log và thu thập các thông tin nhạy cảm và quan trọng
của người dùng như tài khoản hoặc mật khẩu, đồng thời quá trình này sẽ khiến cho
các phản hồi về đối với máy người dùng sẽ bị chậm hơn so với bình thường.

Hình 3.27 Người dùng truy cập web DVWA

Hình 3.28 Ettercap ghi lại được các thông tin về user, pass của người dùng
3.3 Kết luận chương 3
Trong chương này, tiến hành thực nghiệm tấn công ARP Spoofing sử dụng
công SSLstrip và Ettercap giả mạo quá trình truyền thông từ server đến máy người
bị hại sau đó tiến hành thu thập log và các thông tin nhạy cảm.

44
KẾT LUẬN

Kết quả đạt được:


Trong thời gian tìm hiểu, báo cáo đã đạt được những mục tiêu đề ra, cụ thể:
Chương 1: Tìm hiểu tổng quan về giao thức SSL
Chương 2: Tìm hiểu phương pháp tấn công chặn giữa: khái niệm, cách thức
hoạt động cũng như các kiểu tấn công chặn giữa. Từ đó, tìm hiểu chi tiết hai kiểu
tấn công ARP Spoofing và chiếm quyền điều khiển lên giao thức SSL và đưa ra
biện pháp phòng chống.
Chương 3: Tiến hành thực nghiệm tấn công chặn giữa sẽ sử dụng công cụ
“SSLstrip” và công cụ “Ettercap” để tiến hành cuộc tấn công này trong đó
“SSLstrip” đóng vai trò lắng nghe và thu thập các log liên quan tới giao thức SSL
trên đường truyền của máy bị tấn công, công cụ “Ettercap” hỗ trợ các dạng tấn
công trong đó có tấn công ARP Spoofing
Qua báo cáo, chúng em có cái nhìn tổng quan về một cuộc tấn công chặn
giữa trong giao thức SSL. Tuy nhiên, do thời gian eo hẹp cũng như phần kiến thức
còn hạn chế nên nhóm chúng em sẽ không thể tránh khỏi những sai sót, vì vậy
nhóm chúng em rất mong nhận được sự góp ý từ cô và các bạn để chúng em có thể
hoàn thiện báo cáo một cách tốt nhất.

45
TÀI LIỆU THAM KHẢO
[1]. http://www.luanvan.co/luan-van/tim-hieu-giao-thuc-ssltls-cach-tan-cong-va-
phong-chong
[2]. https://comodosslstore.com/blog/what-is-ssl-stripping-beginners-guide-to-ssl-
strip-attacks.html
[3]. https://quantrimang.com/tim-hieu-ve-tan-cong-man-in-the-middle-gia-mao-
arp-cache-66482?fbclid=IwAR3oX8dMM9TkMrqz2L5BbEjGA7Maa-
VJaFm98knRn-oETmh8T9DtrFbZmmk
[4]. https://tailieu.vn/doc/tim-hieu-ve-tan-cong-man-in-the-middle-chiem-quyen-
dieu-khien-ssl-1239686.html?
fbclid=IwAR3iDX3NTrIYZh3UtG58jVBBdyqc98vl87MabD25-
5GnSaD1CrSUvh_6o90
[5]. https://vietnix.vn/arp-spoofing-la-gi/

46
BẢNG PHÂN CÔNG CÔNG VIỆC

Vũ Thị Dịu Làm word


Nguyễn Thị Lan Làm word
Nguyễn Cảnh Toàn Làm slide và demo
Trần Thúy Hường Làm slide

47

You might also like