Tải bản đầy đủ (.docx) (36 trang)

Tìm hiêu giao thức SSL và thực hiện mô phỏng tấn công SSLStrip

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

Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 1


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

LỜI NÓI ĐẦU
Như chúng ta đã biết thì kể từ khi Internet ra đời. Cùng với đó 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áy
truy tìm dữ liệu (search engine), các dịch vụ thương mại và chuyển ngân, và các
dịch vụ về y tế giáo dục như là chữa bệnh từ xa hoặc tổ chức các lớp học ảo.
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 và các tài liệu khác trong WWW (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à toà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ứ 3 tác động vào hay là lộ mất mát thông tin .v.v..
Để 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 World Wide Web. Đó là giao thức SSL
(viết tắt Secure Sockets Layer)
Nhận biêt được tầm quan trọng của nó, nhóm em xin trình bày những
hiểu biết về giao thức SSL và demo 1 hình thức tấn công qua SSL.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 2


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM


CHƯƠNG 1 : TỔNG QUAN VỀ GIAO THỨC SSL
1.

Khái niệm
SSL (Secure Sockets Layer) là giao thức đa mục đích được thiết kế để tạo
ra các giao tiếp giữa hai chương trình ứng dụng trên một cổng định
trước(socket 443) nhằm mã hóa toàn bộ thông tin đi/đến, được sử dụng
trong giao dịch điện tử như truyền số liệu thẻ tín dụng, mật khẩu, số bí mật
cá nhân (PIN) trên Internet.
Để đảm bảo tính bảo mật thông tin trên Internet hay bất kì mạng TCP/IP
nào thì SSL ra đời kết hợp với những yếu tố sau để thiết lập 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ã hóa: đảm bảo thông tin không 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.
• Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể
hiện chính xác thông tin gốc gửi đến.
SSL không phải là một giao thức đơn lẻ, mà là một tập các thủ tục đã
được chuẩn hoá để thực hiện các nhiệm vụ bảo mật sau:




Xác thực server: Cho phép người sử 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ã hoá 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 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 sử dụng
muốn kết nối. Phía server cũng sử dụng các kỹ thuật mã hoá 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 (certificate authority) trong danh
sách các CA đáng tin cậy của server không. Điều này rất quan trọng
đối với các 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.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 3


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM


Mã hoá kết nối: Tất cả các thông tin trao đổi giữa client và server
được mã hoá 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ư. Ngoài ra, tất cả các dữ liệu được gửi đi trên một kết nối
SSL đã được mã hoá 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. ( đó là các thuật toán băm – hash
algorithm).

2. Tại sao sử dung SSL:

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ử.
Giao thức SSL ban đầu được phát triển bởi Netscape.Version 1.0 thì
đã không bao giờ được công bố rộng rãi.Version 2.0 được công bố vào
tháng 2/1995 nhưng chứa nhiều lỗ hổng bảo mật và sau cùng đưa đến
mô hình SSL version 3.0 được ban hành năm 1996.Bản sau cùng này
được dùng cho TLS version 1.0 và được IETF xác định như một giao
thức chuẩn trong RFC 2246 vào tháng 1/1999. 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ử.
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:




Bạn không thể luôn luôn chắc rằng bạn đ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ị 1 đối tượng
thứ 3 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.

SSL giải quyết các vấn đề trên.SSL giải quyết vấn đề đầu tiên bằng cách
cho phép 1 cách tùy chọn mỗi bên trao đổi có thể chắc chắn về định danh

của phía đối tác trong 1 quá trình gọi là uthentication (xác thực).Một khi
các bên đã được xác thực,SSL cung cấp 1 kết nối được mã hóa giữa 2 bên

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 4


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

để truyền bảo mật các message .Việc mã hóa trong quá trình trao đổi thông
tin giữa 2 bên cung cấp sự riêng tư bí mật,vì vậy mà giải quyết được vấn
đề thứ 2.Thuật toán mã hóa được sử dụng với SSL bao gồm hàm băm mã
hóa,tương tự như 1 checksum.Nó đảm bảo rằng dữ liệu không bị thay đổi
trong quá trình truyền dẫn.Hàm băm mã hóa giải quyết vấn đề thứ 3,tính
toàn vẹn dữ liệu.
Chú ý rằng,cả xác thực và mã hóa đều là tùy chọn, và phụ thuộc vào
cipher suites (các bộ mã hóa) được đàm phán giữa 2 đối tượng.
Một ví dụ rõ ràng nhất mà trong đó bạn nên sử dụng SSL là trao đổi
thông tin giao dịch qua mạng (e-commerce).Trong trao đổi ecommerce,thật dại dột khi giả định rằng bạn có thể chắc chắn về định
danh của server mà bạn đang trao đổi thông tin.Ai đó có thể dễ dàng tạo
ra 1 Website giả hứa hẹn các dịch vụ tuyệt vời ,chỉ để cho bạn nhập vào
đó số tài khoản.SSL cho phép bạn, client,xác thực về định danh của
server.Nó cũng cho phép server xác thực định danh của client,mặc dù
trong các giao tác Internet,việc này hiếm khi được làm.
Một khi client và server đã hài lòng với định danh của mỗi bên đối
tác.SSL cung cấp tính bảo mật và tính toàn vẹn thông qua các thuật toán
mã hóa mà nó sử dụng.Điều này cho phép các thông tin nhạy cảm,như số
tài khoản,được truyền đi 1 cách an toàn trên Internet.
Trong khi SSL cung cấp tính xác thực,tính bảo mật và toàn vẹn dự
liệu,nó không cung cấp non-repudiation (tính không từ chối).Nonrepudiation có nghĩa là khi 1 đối tượng gửi đi 1 message ,thì sau đó
không thể phủ nhận việc mình đã gửi message đó.Khi 1 chữ kí số

tương đương được liên kết với 1 message,việc trao đổi này sau đó có
thể được chứng minh.SSL 1 mình nó không cung cấp non-repudiation.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 5


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

3.

Lịch sử phát triển
Như chúng ta đã biết có hai giao thức bảo mật quan trọng lớp vận
chuyển(Layer Transport) có tầm quan trọng cao nhất đối với sự bảo mật của
các trình ứng dụng trên Web : đó là hai giao thức SSL và TLS
Nói chung, có một số khả năng để bảo vệ bằng mật mã lưu lượng dữ liệu
HTTP. Ví dụ, vào những năm 1990, tập đoàn CommerceNet đã đề xuất SHTTP mà về cơ bản là một cải tiến bảo mật của HTTP. Một phần thực thi
của S-HTTP đã làm cho có sẵn công cộng trong một phiên bản được chỉnh
sửa của trình duyệt Mosaic NCSA mà những người dùng phải mua.
Tuy nhiên, cùng thời điểm Netscape Communication đã giới thiệu SSL và
một giao thức tương ứng phiên bản đầu tiên của Netscape Navigator, trái
với tập đoàn CommerrceNet, Netscape Communications đã không tính phí
các khách hàng của nó về việc thực thi giao thức bảo mật của nó. Kết quả,
SSL trở thành giao thức nổi bật để cung cấp các dịch vụ bảo mật cho lưu
lượng dữ liệu HTTP 1994 và S-HTTP lặng lẽ biến mất.
Cho đến bây giờ, có 3 phiên bản của SSL:
• SSL 1.0: được sử dựng nội bộ chỉ bởi Netscape Comminications. 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.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 6



Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM




4.

5.

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 lien quan đến sự hiện than 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 dung 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(Private Communication
Technology) cạnh tranh trong lần tung ra Interner Exploer đầ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à them 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ó.
Thông số kỹ thuật mới nhất của SSL 3.0 đã được tung ra chính thức
vào tháng 3/1996. Nó được thực thi trong tất cả các trình duyệt chính
bao gồm ví dụ Microsoft Interner Explorer 3.0(và các phiên bản cao
hơn), và Open.

Các thuật toán mã hóa dùng trong SSL.
• (Data Encryption Standard): là một thuật toán mã hóa DES có chiều

dài khóa là 56 bit.
• 3-DES:là thuật toán mã hóa có độ dài khóa gấp 3 lần độ dài khóa
trong mã hóa DES.
• DSA(Digital Signature Algorithm): là một phần trong chuẩn về xác
thực số đang được chính phủ Mỹ sự dụng.
• KEA(Key Exchange Algorithm): là một thuật toán trao đổi khóa đ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ã hóa công khai dùng trong cả quá trình mã hóa
và giải mã được Rivest, Shamir và Adleman phát triển.
• RSA key exchange: là thuật toán trao đổi khóa dùng trong SSL dựa
trên thuật toán RSA.
• RC2 and RC4: là các thuật toán mã hóa được phát triển bởi Rivest
dùng 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.
Cách thức hoạt động
5.1. Đàm phán Cipher suite.
Một phiên SSL bắt đầu với việc đàm phán giữa client và server
xem cipher suite nào mà chúng sẽ sử dùng. Một cipher suite là 1 tập các

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 7


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

5.2.

5.3.


5.4.

thuật toán mã hóa và kích thước khóa mà máy tính có thể dùng để mã
hóa dữ liệu. Một cipher suite bao gồm thông tin về các thuật toán trao
đổi khóa công khai và các thuật toán thỏa thuận khóa,và các hàm băm
mã hóa. Client nói với server các cipher suite nào nó có sẵn và server lựa
chọn cipher suite tốt nhất có thể chấp nhận.
Xác thực server.
Trong SSL, bước xác thực là tùy chọn, nhưng trong ví dụ về giao
tác e-commerce trên Web, client theo thông thường sẽ muốn xác thực
server.Việc xác thực server cho phép client chắc chắn rằng chính server
này đại diện cho đối tượng mà client tin tưởng.
Để chứng minh server thuộc về tổ chức mà nó khẳng định là nó đại diện,
server phải trình chứng chỉ khóa công khai của nó cho client. Nếu chứng
chỉ này là hợp lệ , client có thể chắc chắn về định danh của server.
Thông tin trao đổi qua lại giữa client và server cho phép chúng thỏa
thuận 1 khóa bí mật chung. Ví dụ,với RSA, client dùng khóa công khai
của server, có được từ chứng chỉ khóa công khai, để mã hóa thông tin
khóa bí mật. Client gửi thông tin khóa bí mật đã được mã hóa đến server.
Chỉ có server mới có thể giải mã cái message này bởi vì quá trình giải
mã phải cần đến khóa riêng của server.
Gửi dữ liệu đã mã hóa.
Bây giờ, cả client và server có thể truy cập đến khóa bí mật chung.Với
mỗi message , chúng dùng đến hàm băm mã hóa, đã được chọn trong
bước thứ nhất của tiến trình này, và chia sẻ thông tin bí mật,để tính
toán 1 HMAC nối thêm vào message. Sau đó, chúng dùng khóa bí mật
và thuật toán khóa bí mật đã được đàm phán ở bước đầu tiên của tiến
trình này để mã hóa dữ liệu và HMAC an toàn. Client và server giờ
đây có thể trao đổi thông tin với nhau 1 cách an toàn với các dữ liệu
đã băm và mã hóa.

Tiến trình SSL.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 8


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

Các Massage SSL
Các message SSL được gửi theo thứ tự sau:
1) Client hello: client gửi đến server các thông tin bao gồm phiên bản SSL cao
nhất và 1 danh sách các cipher suite mà nó hỗ trợ. (TLS 1.0 được chỉ ra như là
SSL3.1).Thông tin cipher suite bao gồm các thuật toán mã hóa và kích thước
khóa.
2) Server hello: server chọn ra phiên bản SSL cao nhất và cipher suite tốt nhất
mà cả client và server hỗ trợ, và gửi thông tin này về cho client.
3) Certificate: server gửi cho client 1 chứng chỉ hoặc 1 chuỗi chứng chỉ.Về cơ
bản,1 chuỗi chứng chỉ bắt đầu bằng chứng chỉ khóa công khai của server và kết
thúc bằng chứng chỉ gốc của tổ chức có thẩm quyền chứng chỉ.Message này là
tùy chọn,nhưng nó được dùng bất cứ khi nào xác thực server là cần thiết.
4) Certificate request: nếu server cần xác thực client,nó gửi cho client 1 yêu cầu
xem chứng chỉ.Trong các ứng dụng internet,message này hiếm khi được gửi đi.
5) Server key exchange: server gửi cho client 1 message trao đổi khóa server
trong khi khóa công khai được gửi ở phần 3) bên trên thì không đủ cho trao đổi
khóa.
6) Server hello done: server nói với client rằng nó hoàn thành các message đàm
phán ban đầu.
7) Certificate: nếu server cần chứng chỉ từ client trong message 4, client gửi
chuỗi chứng chỉ của nó,cũng giống như server làm trong message 3.
8) Client key exchange: client sinh ra thông tin được dùng để tạo ra khóa trong
mã hóa đối xứng.Với RSA, client mã hóa thông tin khóa này bằng khóa công

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 9


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

khai của server rồi gửi nó đến server.
9) Certificate verify: message này được gửi khi client trình ra chứng chỉ như
trên.Mục tiêu của nó là cho phép server hoàn thành tiến trình xác thực
client.Khi message này được dùng,client gửi thông tin với chữ kí số tạo bằng
hàm băm mã hóa.Khi server giải mã thông tin này bằng khóa công khai của
client,server có thể xác thực client.
10) Change cipher spec: client gửi message bảo server thay đổi kiểu mã hóa.
11) Finished: client nói với server rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu
an toàn.
12) Change cipher spec: server gửi message bảo client thay đổi kiểu mã hóa.
13) Finished: server nói với client rằng nó sẵn sàng để bắt đầu trao đổi dữ liệu
an toàn.Kết thúc SSL handshake.
14) Encrypted data: client và server trao đổi với nhau,sử dụng thuật toán mã
hóa đối xứng và hàm băm mã hóa đã đàm phán ở message 1 và 2 và dùng khóa
bí mật mà client gửi cho server trong message 8.
15) Close message: kết thúc 1 kết nối, mỗi bên gửi 1 massage close-notify để
thông báo đầu kia biết kết nối bị đóng.

5.5. Lựa chọn Cipher suite và xóa Entuty verification.
• Giao thức SSL định nghĩa 1 chuỗi các bước đặc biệt



để bảo đảm 1 kết nối
“được bảo vệ”.Tuy nhiên,việc lựa chọn Cipher suite sẽ tác động trực tiếp

đến loại bảo mật mà kết nối có được.Ví dụ,nếu 1 cipher suite nặc danh
được chọn,ứng dụng không có cách nào để kiểm tra định danh của đầu
xa.Nếu 1 suite-không có mã hóa, được chọn,tính bí mật của dữ liệu
không thể được bảo vệ.Thêm vào đó,giao thức SSL/TLS không chỉ rõ
rằng những tài liệu chứng nhận nhận được phải khớp với những cái mà
đầu kia gửi.Nếu kết nối theo cách nào đó mà bị redirect đến 1 kẻ
xấu,nhưng tài liệu chứng nhận của kẻ xấu này khi trình ra thì được chấp
nhận dựa trên những tư liệu tin tưởng hiện tại,kết nối này sẽ được xét là
hợp lệ.
Khi dùng SSLSockets/SSLEngines,nên luôn luôn kiểm tra tài liệu chứng
nhận của đầu xa trước khi gửi bất kì dữ liệu nào.Các lớp SSLSockets và
SSLEngines không tự động kiểm tra hostname trong URL có khớp với
hostname trong tài liệu chứng nhận của đầu kia hay không.Một ứng dụng

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 10


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM



6.

có thể bị khai thác bằng URL spoofing nếu hostname không được kiểm
tra.
Các giao thức như HTTPS cần thiết phải kiểm tra hostname.Các ứng
dụng có thể dùng HostnameVerifier để viết chồng lên luật hostname
HTTPS mặc định .

Một số ứng dụng của SSL.

6.1. Ứng dụng công nghệ xác thực máy chủ SSL trong giao dịch thương
mại điện tử.
Một khách hàng làm quen với Website và truy nhập một địa chỉ URL
an toàn, được đảm bảo bằng mã số máy chủ. Điều này có thể là một mẫu
đơn đặt hàng trực tuyến thu thập những thông tin cá nhân từ khách hàng
như địa chỉ, số điện thoại, số thẻ tín dụng hoặc các thông tin thanh toán
khác.
Trình duyệt của khách hàng tự động truyền cho máy chủ số phiên bản
SSL của trình duyệt đó, các cài đặt mật mã, các dữ liệu được sinh ngẫu
nhiên, và những thông tin khác mà máy chủ đó cần để giao tiếp với khách
hàng sử dụng SSL.
Máy chủ trả lời, tự động truyền tới trình duyệt của người sử dụng xác
nhận số của Website cùng với số phiên bản SSL của máy chủ, các thiết
lập mật mã.
Trình duyệt của người sử dụng xem xét các thông tin chứa trong xác nhận
máy chủ đó và xác nhận rằng: Xác nhận máy chủ đó có giá trị và còn
trong thời hạn sử dụng; Cơ quan chức năng xác thực CA cho máy chủ này
có quyền được ký và là một cơ quan xác thực tin cậy, xác thực của cơ
quan này được liệt kê sẵn trong trình duyệt đang sử dụng; Khoá công
cộng của CA này được cài đặt sẵn trong trình duyệt đang sử dụng, xác
nhận tính hợp lệ của chữ ký điện tử của người cung cấp; Tên miền được
chỉ định bằng xác thực máy chủ khớp với tên miền thực của máy chủ đó.
Nếu máy chủ này không được xác thực, người sử dụng sẽ được cảnh báo
rằng một kết nối được mã hoá, được xác thực có thể không thiết lập được.
Nếu máy chủ đó được xác thực thành công, trình duyệt Web của khách
hàng này sẽ tạo ra một khoá phiên (session key) duy nhất để mã hoá tất cả
các giao tiếp với Website đó bằng việc sử dụng mã hoá không đối xứng.
Trình duyệt của người sử dụng tự mã hoá khoá phiên đó bằng khoá công
cộng của site sao cho chỉ site đó mới có thể đọc được khoá phiên đó, rồi


Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 11


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

gửi nó tới máy chủ.
Máy chủ giải mã cho khoá phiên đó bằng việc sử dụng khoá cá nhân của
chính nó.
Trình duyệt gửi một thông điệp tới máy chủ thông báo cho máy chủ biết
rằng các thông điệp tiếp sau đó từ khách hàng sẽ được mã hoá bằng khoá
phiên đó.
Máy chủ sau đó gửi một thông điệp tới khách hàng thông báo với khách
hàng rằng các thông điệp tiếp sau từ máy chủ sẽ được mã hoá bằng khóa
phiên đó.
Một phiên giao dịch an toàn SSL bây giờ đã được thiết lập. Giao thực
máy chủ SSL sau đó sử dụng mã hoá đối xứng để mã hoá và giải mã
thông điệp bên trong phiên giao dịch an toàn SSL này.
Một phiên giao dịch kết thúc, khoá phiên sẽ được vô hiệu hoá.
Tất cả quá trình trên diễn tự động trong vài giây, chính vì thế mà giao
thức xác thực máy chủ SSL giúp cho các giao dịch điện tử này được thực
hiện trực tuyến, an toàn; đồng thời nó cũng không gây ra bất cứ phiền toái
nào cho người sử dụng, tạo điệu kiện cho việc mở rộng các ứng dụng
TMĐT.
6.2.

Ứng dụng SSL trong chữ kí số.
SSL Certificates - Chứng chỉ số có vai trò rất quan trọng trong các
giao dịch trực tuyến như: đặt hàng, thanh toán, trao đổi thông tin, đặc biệt
là trong các lĩnh vực thương mại điện tử, sàn giao dịch vàng và chứng
khoán, ngân hàng điện tử, chính phủ điện tử. Khi được sử dụng, mọi dữ

liệu trao đổi giữa người dùng và website sẽ được mã hóa (ở phía người
gửi) và giải mã (ở phía người nhận) bởi cơ chế SSL mạnh mẽ nhất hiện
nay. Nếu Website không sử dụng chứng chỉ số, mọi dữ liệu sẽ được
truyền đi nguyên bản. Khi đó, nguy cơ dữ liệu bị xâm nhập trong quá
trình trao đổi dữ liệu giữa người gửi và người nhận sẽ rất cao. Một hậu
quả trước mắt là khách hàng sẽ không tin tưởng, và dẫn đến không sử
dụng dịch vụ của website đó. Hậu quả lớn hơn nữa là kẻ gian sẽ tận dụng
cơ hội này để lấy hết thông tin khách hàng, thông tin kinh doanh của
website và xa hơn, kẻ gian có thể ăn cắp thông tin trên thẻ tín dụng của
khách để sử dụng bất hợp pháp.
- VeriSign® là thương hiệu uy tín nhất trên toàn thế giới hiện nay trong
lĩnh vực cung cấp chứng chỉ số. Một website có gắn biểu tượng "VeriSign
Secured Seal" sẽ gia tăng mức độ tin cậy từ phía khách hàng lên rất nhiều

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 12


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

lần. Tại thị trường Việt Nam, VeriSign Secured Seal là đơn vị cung cấp
các giải pháp bảo mật của VeriSign trong lĩnh vực cung cấp chứng chỉ số
- chứng thực số với khả năng mã hóa dữ liệu tốt nhất và độ tin cậy cao
nhất. Chứng chỉ số SSL Server sẽ cho phép bạn lập cấu hình Website của
mình theo giao thức bảo mật SSL (Secure Sockets Layer). Loại chứng chỉ
số này sẽ cung cấp cho Website của bạn một định danh duy nhất nhằm
đảm bảo với khách hàng của bạn về tính xác thực và tính hợp pháp của
Website. Chứng chỉ số SSL Server cũng cho phép trao đổi thông tin an
toàn và bảo mật giữa Website với khách hàng, nhân viên và đối tác của
bạn thông qua công nghệ SSL mà nổi bật là các tính năng:
+ Thực hiện mua bán bằng thẻ tín dụng

+ Bảo vệ những thông tin cá nhân nhạy cảm của khách hàng
+ Đảm bảo hacker không thể dò tìm được mật khẩu.
Giao thức SSL (Secured Socket Layer) và Chứng thực số là giải pháp bảo
vệ thông tin cá nhân của người dùng trong quá trình trao đổi dữ liệu trên
môi trường mạng, đồng thời đảm bảo sự tin cậy của những thông tin trên
website người dùng truy cập, từ đó xóa bỏ đi rào cản về nguy cơ lộ thông
tin cá nhân, giúp người dùng yên tâm thực hiện các giao dịch trên mạng,
giúp doanh nghiệp phát huy được hết các tiềm năng của website mình.
Giải pháp chứng thực SSLcủa Vsign
Trên cơ sở nghiên cứu nhu cầu của doanh nghiệp, của người sử dụng
mạng, VSign cung cấp dịch vụ chứng thực SSL cho các doanh nghiệp
kinh doanh thương mại điện tử.
- Khi đăng ký sử dụng dịch vụ chứng thực số SSL. VSign sẽ cấp cho
khách hàng một chứng chỉ số SSL. Mỗi chứng chỉ SSL chứa đựng thông
tin của duy nhất một khách hàng mà danh tính của họ đã được xác thực
và một cặp khóa bao gồm một khóa bí mật và một khóa công khai. Khóa
công khai dùng để mã hóa dữ liệu và khóa bí mật dùng để giải mã thông
tin.Khi Web browser truy cập đến phần dữ liệu đã được mã hóa, Client
(web browser) sẽ phát sinh ra một Session Key ngẫu nhiên và yêu cầu
Server gửi Chứng thực SSL. Sau đó Client sẽ kiểm tra tính hợp lệ của
Chứng thực SSL. Nếu Chứng thực SSL của Server hợp lệ, Client sẽ mã
hóa Session Key bằng Public Key. Client gửi Session Key đã được mã
hóa cho Server. Sau đó, Server giải mã Session Key bằng Private Key. Do
đó, các luồng thông tin được truyền giữa client và server được bảo đảm
an toàn tuyệt đối.
Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 13


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM


- Giao thức SSL được thiết kế độc lập với tầng ứng dụng để đảm bảo tính
bí mật, an toàn và chống giả mạo luồng thông tin qua internet giữa hai
ứng dụng bất kỳ. Khi khách hàng truy cập vào website sử dụng dịch vụ
chứng thực SSL của VSign thì trên thanh địa chỉ sẽ xuất hiện biểu tượng
ổ khóa SSL. Click chuột vào biểu tượng ổ khóa, các thông tin về doanh
nghiệp được VSign chứng thực sẽ hiện thị. Nếu các thông tin không phù
hợp với chứng chỉ, browser sẽ hiện thị thông báo lỗi hoặc một khuyến
cáo để người dùng cảnh giác.
- Trước khi cung cấp dịch vụ chứng thực SSL cho website, VSign sẽ tiến
hành xác thực các thông tin sau:
+ Sự tồn tại của doanh nghiệp xin cấp chứng thực về mặt pháp lý.
+ Định danh chính xác của doanh nghiệp xin cấp chứng thực và các
thông tin liên quan (bao gồm địa chỉ, số điện thoại, ).
+ Mã số đăng ký tại các cơ quan nhà nước (ví dụ số giấy phép đăng ký
kinh doanh).
+ Quyền sử dụng tên miền.
6.3.

Giải pháp máy ảo chuyên dụng SSL.
Ứng dụng mạng riêng ảo sử dụng SSL (SSL VPN)









SSL VPN có thể hiểu đơn giản là công nghệ kết nối mạng riêng ảo sử

dụng các giao thức kết nối bảo mật và mã hoá thông tin, đảm bảo tính
riêng biệt trên môi trường Internet chung.
Ứng dụng mạng riêng ảo sử dụng SSL cho phép người dùng truy cập
từ xa vào mạng lưới của công ty bất kỳ lúc nào, SSL hỗ trợ các trình
duyệt web chuẩn như là IE, FireFox, Đối với người dùng là những văn
phòng nhỏ hoặc những người sử dụng điện thoại để truy cập vào
những ứng dụng nội bộ và chia sẽ tập tin nội bộ. Vigor2930 cho phép
chúng ta thiết lập tối đa 30 phiên SSL.
Ứng dụng mạng riêng ảo và tường lửa (VPN & Firewall)
Cơ chế kiển soát trạng thái gói tin(SPI Firewall) có thể giúp bạn thiết
lập các chính sách cho tường lửa của bạn dễ dàng, tính năng SCM cho
phép bạn kiểm soát truy cập một cách chính xác và hiệu quả hơn với
các ứng dụng IM và P2P. Bên cạnh đó với tính năng chống tấn công từ
chối dịch vụ(DoS / DDoS) và lọc các nội dung của trang web nhằm
giảm thiểu các mối đe doạ từ bên trong và bên ngoài trang web.
Với việc hỗ trợ chipset mã hoá VPN bằng phần cứng ngay trên thiết
bị, Vigor2930VS hỗ trợ tối đa 100 VPN với các giao thức cao cấp như

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 14


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

IPSec / PPTP / L2TP / L2TP over IPSec with AES / DES / 3DES for
encryption and MD5 / SHA-1 for authentication.
6.4. Ứng dụng SSL VPN dành cho ISP.
• Giải pháp SSL VPN SA 6000 SP cho phép các ISP cung cấp những
giải pháp truy cập từ xa và truy cập extranet, dịch vụ phục hồi sau
thảm họa và dịch vụ bảo mật LAN Intranet - VoIP WLAN tới các
khách hàng doanh nghiệp trên toàn cầu. Quan trọng hơn cả, đó là

những giải pháp không đòi hỏi chi phí cao, nhưng vẫn đảm bảo công
nghệ bảo mật hàng đầu và tính chuyên dụng của sản phẩm, đáp ứng
nhu cầu của các doanh nghiệp vừa và nhỏ, vốn rất quan tâm tới chi phí
đầu tư.
• Khi ISP triển khai các dịch vụ SSL VPN này, những người dùng được
cấp phép của khách hàng sử dụng dịch vụ đều có quyền truy cập bảo
mật tới mọi tài nguyên mạng từ bất cứ một kết nối Internet và trình
duyệt Web chuẩn nào, như máy tính cá nhân, máy tính xách tay và các
thiết bị di động. Người dùng cuối không còn bị ràng buộc sử dụng các
thiết bị cụ thể, cũng như không phải làm việc ở những vị trí cố định
nào. Không như các mạng riêng ảo IPSec trước kia, khách hàng của
ISP không cần một máy khách (client) để có thể truy cập từ xa – cho
phép tăng sự linh động và gia tăng hiệu suất khai thác hệ thống.
• SSL VPN cũng sẽ là một trong những dịch vụ quan trọng giúp các ISP
đa dạng hoá sản phẩm của mình, khai thác tiềm năng rất lớn của dịch

vụ mạng bảo mật dành cho doanh nghiệp vừa và nhỏ.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 15


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

CHƯƠNG 2: CÁC GIAO THỨC BẢO MẬT SSL.
1.

Cấu trúc của giao thức SSL.
Bảo mật cho dữ liệu truyền trên Internet ngày càng trở nên cần thiết do số
lượng cũng như mức độ quan trọng của các dữ liệu này ngày càng cao. Ngày
nay, người dùng Internet trao đổi rất nhiều loại thông tin trên mạng từ trao

đổi thư điện tử thông thường đến các thông tin chi tiết trong thẻ tín dụng của
mình, do đó họ muốn những dữ liệu đó phải được bảo mật khi truyền trên
mạng công cộng. Để làm được điều này người ta đã ứng dụng giao thức SSL
để bảo vệ các dữ liệu trong quá trình trao đổi giữa tất cả các dịch vụ mạng sử
dụng TCP/IP để hỗ trợ các tác vụ truyền thông mạng giữa máy chủ và máy
khách. Giao thức SSL đầu tiên do Netscape phát triển, mục đích để bảo mật
dữ liệu gửi/nhận trên Internet của các giao thức thuộc lớp ứng dụng như
HTTP, LDAP hay POP3. SSL sử dụng giao thức TCP để cung cấp các kết
nối bền vững, bảo mật và được xác thực giữa các điểm cuối với nhau (ví dụ
như giữa client và server). Mặc dù có thể sử dụng SSL để bảo vệ dữ liệu liên
quan đến bất kỳ dịch vụ nào, nhưng SSL chủ yếu được dùng trong các ứng
dụng HTTP (server và client). Ngày nay hầu hết các HTTP server đều hỗ trợ
các phiên SSL, ở phía client các trình duyệt Internet Explorer và Netscape
Navigator đều hỗ trợ SSL.

Hình 2: SSL giữa các tầng ứng dụng và tầng TCP/IP

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 16


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

2.

Các giao thức bảo mật SSL.
2.1. Giao thức bản ghi SSL Record Protocol.
SSL Record Protocol cung cấp 2 dịch vụ cho kết nối SSL:





Confidentiality (tính bảo mật): Handshake Protocol định nghĩa 1
khóa bí mật được chia sẻ, khóa này được sử dụng cho mã hóa quy
ước các dữ liệu SSL.
Message integrity (tính toàn vẹn):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 MAC (mã xác thực message).

Hình sau 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.




Bước đầu tiên là 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 bit) hoặc ít hơn.
Tiếp theo,nén được áp dụng 1 cách tùy chọ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

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 17


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM




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.
Bước xử lí kế tiếp là 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ẻ.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 message này
SSLCompressed.type: giao thức ở lớp trên được dùng để xử lí phân
mảnh này.
SSLCompressed.length: chiều dài của phân mảnh đã được nén.
SSLCompressed.fragment: phân mảnh đã được nén (nếu nén không được
dùng, phân mảnh ở dạng plaintext).

Chú ý rằng,cái này tương tự như thuật toán HMAC.Điểm khác biệt là 2 phần
đệm (pad) được || trong SSLv3 và được XOR trong HMAC.Thuật toán MAC
trong SSLv3 được dựa trên bản phác thảo Internet ban đầu cho HMAC.Phiên
bản gần nhất của HMAC được định nghĩa trong RFC 2104,sử dụng XOR.
Kế tiếp, message đã nén cộng thêm MAC đƣợc 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.
Với mã hóa stream (luồng),message đã nén cộng thêm MAC được mã hóa.Chú
ý rằng MAC được tính toán trước khi mã hóa xảy ra và MAC được mã hóa cùng
với plaintext hoặc là plaintext đã nén.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 18


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

Với mã hóa block (khối),MAC có thể được đệm thêm trước khi mã hóa.Phần
đệm thêm (padding) có dạng gồm nhiều byte đệm được theo sau bởi 1 byte chỉ
rõ chiều dài của phần đệm.Tổng số lượng đệm vào là lượng nhỏ nhất sao cho
tổng kích thước dữ liệu được mã hóa (plaintext +MAC + padding) là 1 bội số
của chiều dài khối mã hóa.Ví dụ, plaintext (hoặc text đã nén nếu nén được
dùng) là 58 byte, với MAC là 20 byte (dùng SHA-1), được mã hóa với chiều dài
block là 8 byte (như DES..).Cùng với byte padding.length ,nó sinh ra tổng cộng

79 byte.Để tạo ra 1 số nguyên là bội của 8,1 byte đệm được thêm vào.






Buớc cuối cùng của xử lí 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. Ví
dụ, SSLv3,giá trị này là 3.
Minor Version (8 bit) : chỉ ra phiên bản tối thiểu được dùng.Ví dụ,
SSLv3 ,giá trị này là 0.
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.

Các loại nội dung được định nghĩa là change_cipher_spec,alert,handshake, và
application_data.Ba cái đầu tiên là các giao thức đặc trưng-SSL,được bàn đến
trong phần kế tiếp.Chú ý rằng không có sự khác biệt nào được tạo ra giữa các
ứng dụng (như HTTP..) có thể dùng SSL,nội dung dữ liệu được tạo ra bởi các
ứng dụng đó thì không trong suốt đối với SSL.

Hình trên minh họa định dạng SSL record.

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 19


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

2.2.

Giao thức SSL Change Cipher Spec :
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.

2.3.

Giao thức cảnh 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 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:

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 20


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM









2.4.

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ợ.
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.

Giao thức bắt tay (Handshake Protocol).

Phần “khó nuốt” nhất của SSL là giao thức Handshake.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
Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 21


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

dữ liệu của ứng dụng được truyền đi.Giao thức SSL Handshake bao gồm một
loạt những message trao đổi giữa client và server .Mỗi message có ba
trường:




Type (1 byte): chỉ ra một trong mười dạng message .
Length (3 bytes): độ dài của message theo bytes.
Content (>=0 bytes): tham số đi kèm với message này, được liệt kê
trong Hình 3.4 a.

Hình 2.4 a :Các kiểu message giao thức SSL handshake
Hình 2.4 b: thể hiện trao đổi lúc ban đầu cần được thiết lập một kết nối
logic giữa client và server.Việc trao đổi có thể xem như có bốn giai đoạn.


Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 22


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM

2.4.1.

Giai đoạn 1 – Thiết lập khả năng bảo mật :

Giai đoạn này được dung để bắt đầu một kết nối logic và thiết lập khả năng bảo
mật mà sẽ liên kết với nó.Việc trao đổi thì được khởi tạo bởi client bằng việc
gửi một client_hello message với những thông số sau đây:






Version: version SSL mới nhất mà client biết.
Random: một cấu trúc sinh ra ngẫu nhiên từ client, bao gồm một nhãn
thời gian 32 bit và 28 bytes sinh bởi một bộ sinh số ngẫu nhiên an toàn.
Những giá trị này phục vụ cho lần này và sử dụng suốt quá trình trao đổi
khóa để ngăn tấn công lập lại.
Session ID: một ID của phiên có chiều dài thay đổi được.SessionID khác
0 nghĩa là client muốn cập nhật
tham số của một kết nối đang tồn tại hay tạo một kết nối mới trên phiên
này.SessionID = 0 chỉ ra rằng client muốn thiết lập một kết nối mới trên
một phiên mới.


Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 23


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM




CipherSuite: đây là 1 danh sách mà chứa những bộ biên dịch của những
thuật toán mã hóa được hỗ trợ bởi client, tham khảo theo thứ tự giảm dần.
Mỗi thành phần trong danh sách (mỗi bộ mã hóa) định nghĩa cả một khóa
trao đổi và một CipherSpec, những thông số này sẽ được bàn đến sau.
Compression Method: đây là danh sách của những phương thức nén mà
client hỗ trợ.

Sau khi gửi client_hello message, client chờ nhận server_hello message mà
chứa cùng thông số với client_hello message.Với server_hello message, những
thỏa thuận kèm theo được áp dụng. Trường Version chứa version thấp hơn được
đề nghị bởi client và cao nhất được hổ trợ bởi sever.Trường Random được sinh
ra bởi server và độc lập với trường Random của client. Nếu trường SessionID
của client khác 0, thì giá trị tương tự được dùng bởi server,ngược lại thì trường
SessionID của server chứa giá trị của một phiên mới. Trường CipherSuite chứa
bộ mã hóa chọn bởi server từ những đề xuất của client. Trường Compression
chứa phương thức nén chọn bởi server từ những đề xuất của client.
Thành phần đầu tiên của thông số Cipher Suite là phương thức trao đổi khóa (ví
dụ như bằng cách nào những khóa mã hóa cho việc mã hóa thông thường và
MAC được trao đổi ). Những phương thức trao đổi khóa sau được hỗ trợ:
RSA: khóa bí mật được mã hóa với khóa công khai RSA của bên nhận. Một
public-key certificate cho khóa bên nhận phải được tạo sẵn.






RSA: khóa bí mật được mã hóa với khóa công khai RSA của bên nhận.
Một public-key certificate cho khóa bên nhận phải được tạo sẵn.
Fixed Diffie-Hellman:đây là sự trao đổi khóa Diffie-Hellman trong
certificate của server chứa các thôngsố công khai Diffie-Hellman được ký
bởi Certificate Authority (CA) .Nghĩa là certificate khóa công khaichứa
các thông số khóa công khai Diffie-Hellman. Client chứa sẵn các thông
số khóa công khai DiffieHellman đó trong certificate nếu chứng thực
client được yêu cầu hoặc trong một message trao đổiHellman đó trong
certificate nếu chứng thực client được yêu cầu hoặc trong một message
trao đổiHellman sử dụng khóa công khai cố định.
Ephemeral Diffie-Hellman: Phương pháp được sử dụng để tạo khóa
„ephemeral‟(tạm thời,1 lần)– khóa tạm thời. Trong trường hợp này, khóa
công khai Diffie-Hellman được trao đổi,được ký sử dụng khóa bí mật
RSA hoặc DSS của bên gửi.Bên nhận có thể sử dụng khóa công khai
tương ứng để xác minh chữ ký.Certificate được sử dụng để xác thực khóa

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 24


Đề tài : Tìm hiểu về giao thức SSL và demo tấn công SSLstrip MITM







công khai. Điều này như là sự bảo đảm nhất của ba lựa chọn DiffieHellman bởi vì nó là kết quả của sự tạm thời và khóa xác thực.
Anonymous Diffie-Hellman: thuật toán Diffie-Hellman cơ bản được sử
dụng, không chứng thực.Nghĩa là mỗi lần một bên gửi thông số DiffieHellman công khai của nó cho bên kia thì không xác thực.Điều này gần
như là có thể bị tấn công bởi tấn công Man-in-the-middle ,trong đó kẻ tấn
công điều khiển cả nhóm anonymous Diffie-Hellman.
Fortezza: phương pháp định nghĩa cho lược đồ Fortezza.

Định nghĩa kèm theo cho một phương pháp trao đổi khóa là CipherSpec , bao
gồm những trường sau :













CipherAlgorithm: một vài thuật toán kể đến : RC4, RC2, DES, 3DES,
DES40, IDEA, Fortezza.
MACAlgorithm: MD5 hoặc SHA-1.
CipherType: luồng hoặc khối.
IsExportable: True hoặc False.
HashSize: 0, 16 (cho MD5), hay 20 (cho SHA-1) bytes.
Key Material: thứ tự của các bytes mà chứa dữ liệu được dùng trong sinh
khóa .

IV Size: kích thước của giá trị khởi tạo cho mã hóa Cipher Block
Chaining (CBC).
2.4.2.Giai đoạn 2 – Xác thực server và trao đổi khóa :
Server bắt đầu giai đoạn này bằng cách gửi certificate của nó nếu nó cần
được xác thực; thông điệp chứa một hoặc một chuỗi certificate(chứng
thực) X.509. Thông điệp chứng thực được yêu cầu cho bất kì một phương
pháp trao đổi khóa nào được thỏa thuận, ngoại trừ anonymous DiffieHellman.Chú ý rằng nếu fixed Diffie-Hellman được dùng,thì thông điệp
chứng thực có chức năng như là thông điệp trao đổi khóa của server vì nó
chứa các tham số Diffie-Hellman công khai của server.
Sau đó một thông điệp server_key_exchange được gửi đi nếu nó được
yêu cầu.Nó không được yêu cầu trong 2 trường hợp sau:
 Server đã gửi một certificate với các tham số fixed Diffie-Hellman.
 Trao đổi khoá RSA được dùng
Thông điệp server_key_exchange cần cho các trường hợp sau:

Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 25


×