Networks Business Online Việt Nam & International VH2

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

Đăng ngày 09 November, 2022 bởi admin

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

CHƯƠNG 1 : TỔNG QUAN VỀ GIAO THỨC SSL1. Khái niệmSSL ( Secure Sockets Layer ) là giao thức đa mục tiêu được phong cách thiết kế để tạora những tiếp xúc giữa hai chương trình ứng dụng trên một cổng địnhtrước ( socket 443 ) nhằm mục đích mã hóa hàng loạt thông tin đi / đến, được sử dụngtrong thanh toán giao dịch điện tử như truyền số liệu thẻ tín dụng, mật khẩu, số bí mậtcá nhân ( PIN ) trên Internet. Để bảo vệ tính bảo mật thông tin thông tin trên Internet hay bất kỳ mạng TCP / IPnào thì SSL sinh ra tích hợp với những yếu tố sau để thiết lập thanh toán giao dịch antoàn : • Xác thực : bảo vệ tính xác thức của trang mà bạn sẽ thao tác ở đầukia của liên kết. Cũng như vậy, những trang Web cũng cần phải kiểm tratính xác nhận của người sử dụng. • Mã hóa : bảo vệ thông tin không bị truy vấn bởi đối tượng người tiêu dùng thứ ba. Để loại trừ việc nghe trộm những thông tin “ nhạy cảm ” khi nó đượctruyền qua Internet. • Toàn vẹn tài liệu : bảo vệ thông tin không bị xô lệch và nó phải thểhiện đúng mự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 những thủ tục đãđược chuẩn hóa để thực thi những trách nhiệm bảo mật thông tin sau : Xác thực server : Cho phép người sử dụng xác nhận được server muốnkết nối. Lúc này, phía browser sử dụng những kỹ thuật mã hóa công khaiđể chắc như đinh rằng certificate và public ID của server là có giá trị vàđược cấp phép bởi một CA ( certificate authority ) trong list cácCA đáng đáng tin cậy của client. Điều này rất quan trọng so với ngườidùng. Ví dụ như khi gửi mã số credit card qua mạng thì người dùngthự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 nhận được người sử dụngmuốn liên kết. Phía server cũng sử dụng những kỹ thuật mã hóa công khaiđể kiểm tra xem certificate và public ID của server có giá trị haykhông và được cấp phép bởi một CA ( certificate authority ) trong danhsách những CA đáng an toàn và đáng tin cậy của server không. Điều này rất quan trọngđối với những nhà sản xuất. Ví dụ như khi một ngân hàng nhà nước định gửi cácthông tin kinh tế tài chính mang tính bảo mật thông tin tới người mua thì họ rất muốnkiể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 tiến công SSLstrip MITMMã hóa liên kết : Tất cả những thông tin trao đổi giữa client và serverđược mã hóa trên đường truyền nhằm mục đích nâng cao năng lực bảo mật thông tin. Điều này rất quan trọng so với cả hai bên khi có những thanh toán giao dịch mangtính riêng tư. Ngoài ra, tổng thể những tài liệu được gửi đi trên một kết nốiSSL đã được mã hóa còn được bảo vệ nhờ chính sách tự động hóa phát hiệncác trộn lẫn, biến hóa trong tài liệu. ( đó là những thuật toán băm – hashalgorithm ). 2. Tại sao sử dung SSL : Ngày nay việc bảo mật thông tin thông tin là yếu tố quan trọng để quyết định hành động sựsống còn của một tổ chức triển khai, một công ty hay doanh nghiệp. Với sự phát triểnnhanh chóng của công nghệ tiên tiến đã mang lại nhiều tiện ích cho người dùngnhưng đồng thời cũng đặt ra một nhu yếu rất là cấp thiết về sự bảo đảm 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 yếu đó và nó được coi như là “ lá chắn sau cuối ” trong bảo mật thông tin thương mại điện tử. Giao thức SSL bắt đầu được tăng trưởng bởi Netscape. Version 1.0 thìđã không khi nào được công bố thoáng rộng. Version 2.0 được công bố vàotháng 2/1995 nhưng chứa nhiều lỗ hổng bảo mật thông tin và sau cuối đưa đếnmô hình SSL version 3.0 được phát hành năm 1996. Bản ở đầu cuối nàyđược dùng cho TLS version 1.0 và được IETF xác lập như một giaothứ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àichính số 1 khác trên quốc tế đã và đang ứng dụng SSL trongthương mại điện tử. Việc truyền những thông tin nhạy cảm trên mạng rất không bảo đảm an toàn vì nhữngvấn đề sau : Bạn không hề luôn luôn chắc rằng bạn đang trao đổi thông tin vớiđúng đối tượng người tiêu dùng cần trao đổi. Dữ liệu mạng hoàn toàn có thể bị chặn, vì thế tài liệu hoàn toàn có thể bị 1 đối tượngthứ 3 khác đọc trộm, thường được biết đến như attacker. Nếu attacker hoàn toàn có thể chặn tài liệu, attacker hoàn toàn có thể sửa đổi dữ liệutrước khi gửi nó đến người nhận. SSL xử lý những yếu tố trên. SSL xử lý yếu tố tiên phong bằng cáchcho phép 1 cách tùy chọn mỗi bên trao đổi hoàn toàn có thể chắc như đinh về định danhcủa phía đối tác chiến lược trong 1 quy trình gọi là uthentication ( xác nhận ). Một khicác bên đã được xác nhận, SSL cung ứng 1 liên kết được mã hóa giữa 2 bênHọ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 tiến công SSLstrip MITMđể truyền bảo mật những message. Việc mã hóa trong quy trình trao đổi thôngtin giữa 2 bên phân phối sự riêng tư bí hiểm, vì thế mà xử lý được vấnđề thứ 2. Thuật toán mã hóa được sử dụng với SSL gồm có hàm băm mãhóa, tựa như như 1 checksum. Nó bảo vệ rằng tài liệu không bị thay đổitrong quy trình truyền dẫn. Hàm băm mã hóa xử lý yếu tố thứ 3, tínhtoàn vẹn tài liệu. Chú ý rằng, cả xác nhận và mã hóa đều là tùy chọn, và nhờ vào vàocipher suites ( những bộ mã hóa ) được đàm phán giữa 2 đối tượng người dùng. Một ví dụ rõ ràng nhất mà trong đó bạn nên sử dụng SSL là trao đổithông tin thanh toán giao dịch qua mạng ( e-commerce ). Trong trao đổi ecommerce, thật dại khờ khi giả định rằng bạn hoàn toàn có thể chắc như đinh về địnhdanh của server mà bạn đang trao đổi thông tin. Ai đó hoàn toàn có thể thuận tiện tạora 1 Website giả hứa hẹn những dịch vụ tuyệt vời, chỉ để cho bạn nhập vàođó số thông tin tài khoản. SSL được cho phép bạn, client, xác nhận về định danh củaserver. Nó cũng được cho phép server xác thực định danh của client, mặc dùtrong những 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 đốitác. SSL cung cấp tính bảo mật thông tin và tính toàn vẹn trải qua những thuật toánmã hóa mà nó sử dụng. Điều này được cho phép những thông tin nhạy cảm, như sốtài khoản, được truyền đi 1 cách bảo đảm an toàn trên Internet. Trong khi SSL cung cấp tính xác nhận, tính bảo mật thông tin và toàn vẹn dựliệu, nó không cung ứng non-repudiation ( tính không khước từ ). Nonrepudiation có nghĩa là khi 1 đối tượng người tiêu dù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 link với 1 message, việc trao đổi này sau đó cóthể được chứng tỏ. SSL 1 mình nó không phân phối 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 tiến công SSLstrip MITM3. Lịch sử phát triểnNhư tất cả chúng ta đã biết có hai giao thức bảo mật thông tin quan trọng lớp vậnchuyển ( Layer Transport ) có tầm quan trọng cao nhất so với sự bảo mật thông tin củacác trình ứng dụng trên Web : đó là hai giao thức SSL và TLSNói chung, có một số ít năng lực để bảo vệ bằng mật mã lưu lượng dữ liệuHTTP. Ví dụ, vào những năm 1990, tập đoàn lớn CommerceNet đã yêu cầu SHTTP mà về cơ bản là một nâng cấp cải tiến bảo mật thông tin của HTTP. Một phần thực thicủa S-HTTP đã làm cho có sẵn công cộng trong một phiên bản được chỉnhsử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 gian Netscape Communication đã trình làng SSL vàmột giao thức tương ứng phiên bản tiên phong của Netscape Navigator, tráivới tập đoàn lớn CommerrceNet, Netscape Communications đã không tính phícác người mua của nó về việc thực thi giao thức bảo mật thông tin của nó. Kết quả, SSL trở thành giao thức điển hình nổi bật để cung ứng những dịch vụ bảo mật thông tin cho lưulượng tài liệu HTTP 1994 và S-HTTP lặng lẽ biến mất. Cho đến giờ đây, 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ố ít khiếm khuyết nghiêm trọng và không khi nào được tungra 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 tiến công SSLstrip MITM4. 5. SSL 2.0 : được kết nhập vào Netscape Communications 1.0 đến 2. x. Nó có một số ít điểm yếu lien quan đến sự hiện than đơn cử của cuộctấn công của đối tượng người tiêu dùng trung gian. Trong một nỗ lực nhằm mục đích dung sựkhông chắc như đinh của công chúng và bảo mật thông tin của SSL, Microsoftcũng đã giới thiệu giao thức PCT ( Private CommunicationTechnology ) cạnh tranh đối đầu trong lần tung ra Interner Exploer đầu tiêncủa nó vào năm 1996. SSL 3.0 : Netscape Communications đã phản ứng lại sự thách thứcPCT của Microsoft bằng cách ra mắt SSL 3.0 vốn xử lý cácvấn đề trong SSL 2.0 và them một số ít tính năng mới. Vào thời điểmnày, Microsoft nhượng bộ và đồng ý chấp thuận tương hỗ SSL trong toàn bộ cácphiên bản ứng dụng 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ứcvào tháng 3/1996. Nó được thực thi trong toàn bộ những trình duyệt chínhbao gồm ví dụ Microsoft Interner Explorer 3.0 ( và những phiên bản caohơ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ềudà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óatrong mã hóa DES. • DSA ( Digital Signature Algorithm ) : là một phần trong chuẩn về xácthực số đang được cơ quan 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ủ nước nhà Mỹ sử dụng. • MD5 ( Message Digest Algorithm ) : được tăng trưởng bởi Rivest. • RSA : là thuật toán mã hóa công khai minh bạch dùng trong cả quy trình mã hóavà giải thuật được Rivest, Shamir và Adleman tăng trưởng. • RSA key exchange : là thuật toán trao đổi khóa dùng trong SSL dựatrên thuật toán RSA. • RC2 and RC4 : là những thuật toán mã hóa được tăng trưởng bởi Rivestdùng cho RSA Data Security. • SHA-1 ( Secure Hash Algorithm ) : là một thuật toán băm đang đượcchính phủ Mỹ sử dụng. Cách thức hoạt động5. 1. Đàm phán Cipher suite. Một phiên SSL khởi đầu với việc đàm phán giữa client và serverxem cipher suite nào mà chúng sẽ sử dùng. Một cipher suite là 1 tập cácHọ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 tiến công SSLstrip MITM5. 2.5.3. 5.4. thuật toán mã hóa và kích cỡ khóa mà máy tính hoàn toàn có thể dùng để mãhóa tài liệu. Một cipher suite gồm có thông tin về những thuật toán traođổi khóa công khai minh bạch và những thuật toán thỏa thuận hợp tác khóa, và những hàm bămmã hóa. Client nói với server những cipher suite nào nó có sẵn và server lựachọn cipher suite tốt nhất hoàn toàn có thể đồng ý. Xác thực server. Trong SSL, bước xác nhận là tùy chọn, nhưng trong ví dụ về giaotác e-commerce trên Web, client theo thường thì sẽ muốn xác thựcserver. Việc xác nhận server được cho phép client chắc như đinh rằng chính servernày đại diện thay mặt cho đối tượng người tiêu dùng mà client tin yêu. Để chứng tỏ server thuộc về tổ chức triển khai mà nó khẳng định chắc chắn là nó đại diện thay mặt, server phải trình chứng từ khóa công khai minh bạch của nó cho client. Nếu chứngchỉ này là hợp lệ, client hoàn toàn có thể chắc như đinh về định danh của server. Thông tin trao đổi qua lại giữa client và server được cho phép chúng thỏathuận 1 khóa bí hiểm chung. Ví dụ, với RSA, client dùng khóa công khaicủa server, có được từ chứng từ khóa công khai minh bạch, để mã hóa thông tinkhóa bí hiểm. Client gửi thông tin khóa bí hiểm đã được mã hóa đến server. Chỉ có server mới hoàn toàn có thể giải thuật cái message này do tại quy trình giảimã phải cần đến khóa riêng của server. Gửi tài liệu đã mã hóa. Bây giờ, cả client và server hoàn toàn có thể truy vấn đến khóa bí hiểm chung. Vớimỗi message, chúng dùng đến hàm băm mã hóa, đã được chọn trongbước thứ nhất của tiến trình này, và san sẻ thông tin bí hiểm, để tínhtoán 1 HMAC nối thêm vào message. Sau đó, chúng dùng khóa bí mậtvà thuật toán khóa bí hiểm đã được đàm phán ở bước tiên phong của tiếntrình này để mã hóa dữ liệu và HMAC bảo đảm an toàn. Client và server giờđây hoàn toàn có thể trao đổi thông tin với nhau 1 cách bảo đảm an toàn với những 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 tiến công SSLstrip MITMCác Massage SSLCác message SSL được gửi theo thứ tự sau : 1 ) Client hello : client gửi đến server những thông tin gồm có phiên bản SSL caonhất và 1 list những cipher suite mà nó tương hỗ. ( TLS 1.0 được chỉ ra như làSSL3. 1 ). Thông tin cipher suite gồm có những thuật toán mã hóa và kích thướckhóa. 2 ) Server hello : server chọn ra phiên bản SSL cao nhất và cipher suite tốt nhấtmà cả client và server tương hỗ, và gửi thông tin này về cho client. 3 ) Certificate : server gửi cho client 1 chứng từ hoặc 1 chuỗi chứng từ. Về cơbản, 1 chuỗi chứng từ mở màn bằng chứng chỉ khóa công khai minh bạch của server và kếtthúc bằng chứng chỉ gốc của tổ chức triển khai có thẩm quyền chứng từ. Message này làtùy chọn, nhưng nó được dùng bất kể khi nào xác nhận server là thiết yếu. 4 ) Certificate request : nếu server cần xác nhận client, nó gửi cho client 1 yêu cầuxem chứng từ. Trong những ứ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 servertrong khi khóa công khai minh bạch được gửi ở phần 3 ) bên trên thì không đủ cho trao đổikhóa. 6 ) Server hello done : server nói với client rằng nó hoàn thành xong những message đàmphán khởi đầu. 7 ) Certificate : nếu server cần chứng từ từ client trong message 4, client gửichuỗi chứng từ 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 trongmã hóa đối xứng. Với RSA, client mã hóa thông tin khóa này bằng khóa côngHọ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 tiến công SSLstrip MITMkhai 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 từ nhưtrên. Mục tiêu của nó là được cho phép server hoàn thành xong tiến trình xác thựcclient. Khi message này được dùng, client gửi thông tin với chữ kí số tạo bằnghàm băm mã hóa. Khi server giải thuật thông tin này bằng khóa công khai minh bạch củaclient, server hoàn toàn có thể xác nhận client. 10 ) Change cipher spec : client gửi message bảo server biến hóa kiểu mã hóa. 11 ) Finished : client nói với server rằng nó chuẩn bị sẵn sàng để khởi đầu trao đổi dữ liệuan toàn. 12 ) Change cipher spec : server gửi message bảo client đổi khác kiểu mã hóa. 13 ) Finished : server nói với client rằng nó chuẩn bị sẵn sàng để khởi đầu trao đổi dữ liệuan 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óabí mật mà client gửi cho server trong message 8.15 ) Close message : kết thúc 1 liên kết, mỗi bên gửi 1 massage close-notify đểthông báo đầu kia biết liên kết 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 những bước đặc biệtđể bảo vệ 1 liên kết “ được bảo vệ ”. Tuy nhiên, việc lựa chọn Cipher suite sẽ tác động ảnh hưởng trực tiếpđến loại bảo mật thông tin mà liên kết 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 đầuxa. Nếu 1 suite-không có mã hóa, được chọn, tính bí hiểm của dữ liệukhô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 ghi nhận nhận được phải khớp với những cái màđầu kia gửi. Nếu liên kết theo cách nào đó mà bị redirect đến 1 kẻxấu, nhưng tài liệu ghi nhận của kẻ xấu này khi trình ra thì được chấpnhận dựa trên những tư liệu tin cậy hiện tại, liên kết 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ứngnhận của đầu xa trước khi gửi bất kể tài liệu nào. Các lớp SSLSockets vàSSLEngines không tự động hóa kiểm tra hostname trong URL có khớp vớihostname trong tài liệu ghi nhận của đầu kia hay không. Một ứng dụngHọ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 tiến công SSLstrip MITM6. hoàn toàn có thể bị khai thác bằng URL spoofing nếu hostname không được kiểmtra. Các giao thức như HTTPS thiết yếu phải kiểm tra hostname. Các ứngdụng hoàn toàn có thể dùng HostnameVerifier để viết chồng lên luật hostnameHTTPS mặc định. Một số ứng dụng của SSL. 6.1. Ứng dụng công nghệ tiên tiến xác nhận sever SSL trong thanh toán giao dịch thươngmại điện tử. Một người mua làm quen với Website và truy nhập một địa chỉ URLan toàn, được bảo vệ bằng mã số sever. Điều này hoàn toàn có thể là một mẫuđơn đặt hàng trực tuyến tích lũy những thông tin cá thể từ khách hàngnhư địa chỉ, số điện thoại thông minh, số thẻ tín dụng thanh toán hoặc những thông tin thanh toánkhác. Trình duyệt của người mua tự động hóa truyền cho sever số phiên bảnSSL của trình duyệt đó, những thiết lập mật mã, những tài liệu được sinh ngẫunhiên, và những thông tin khác mà sever đó cần để tiếp xúc với kháchhàng sử dụng SSL.Máy chủ vấn đáp, tự động hóa truyền tới trình duyệt của người sử dụng xácnhận số của Website cùng với số phiên bản SSL của sever, những thiếtlập mật mã. Trình duyệt của người sử dụng xem xét những thông tin chứa trong xác nhậnmáy chủ đó và xác nhận rằng : Xác nhận sever đó có giá trị và còntrong thời hạn sử dụng ; Cơ quan chức năng xác nhận CA cho sever nàycó quyền được ký và là một cơ quan xác nhận an toàn và đáng tin cậy, xác nhận của cơquan này được liệt kê sẵn trong trình duyệt đang sử dụng ; Khóa côngcộng của CA này được setup sẵn trong trình duyệt đang sử dụng, xácnhận tính hợp lệ của chữ ký điện tử của người cung ứng ; Tên miền đượcchỉ định bằng xác nhận sever khớp với tên miền thực của sever đó. Nếu sever này không được xác nhận, người sử dụng sẽ được cảnh báorằng một liên kết được mã hóa, được xác nhận hoàn toàn có thể không thiết lập được. Nếu sever đó được xác nhận thành công xuất sắc, trình duyệt Web của kháchhàng này sẽ tạo ra một khóa phiên ( session key ) duy nhất để mã hóa tất cảcác tiếp xúc với Website đó bằng việc sử dụng mã hóa không đối xứng. Trình duyệt của người sử dụng tự mã hóa khóa phiên đó bằng khóa côngcộng của site sao cho chỉ site đó mới hoàn toàn có thể đọc được khóa phiên đó, rồiHọ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 tiến công SSLstrip MITMgửi nó tới sever. Máy chủ giải thuật cho khóa phiên đó bằng việc sử dụng khóa cá thể củachính nó. Trình duyệt gửi một thông điệp tới sever thông tin cho sever biếtrằng những thông điệp tiếp sau đó từ người mua sẽ được mã hóa bằng khoáphiên đó. Máy chủ sau đó gửi một thông điệp tới người mua thông tin với kháchhàng rằng những thông điệp tiếp sau từ sever sẽ được mã hóa bằng khóaphiên đó. Một phiên thanh toán giao dịch bảo đảm an toàn SSL giờ đây đã được thiết lập. Giao thựcmáy chủ SSL sau đó sử dụng mã hóa đối xứng để mã hóa và giải mãthông điệp bên trong phiên thanh toán giao dịch bảo đảm an toàn SSL này. Một phiên thanh toán giao dịch kết thúc, khóa phiên sẽ được vô hiệu. Tất cả quy trình trên diễn tự động hóa trong vài giây, chính vì vậy mà giaothức xác nhận sever SSL giúp cho những thanh toán giao dịch điện tử này được thựchiện trực tuyến, bảo đảm an toàn ; đồng thời nó cũng không gây ra bất kể phiền toáinào cho người sử dụng, tạo điệu kiện cho việc lan rộng ra những ứng dụngTMĐ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ácgiao dịch trực tuyến như : đặt hàng, thanh toán giao dịch, trao đổi thông tin, đặc biệtlà trong những nghành nghề dịch vụ thương mại điện tử, sàn thanh toán giao dịch vàng và chứngkhoán, ngân hàng nhà nước điện tử, chính phủ nước nhà đ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ườigửi ) và giải thuật ( ở phía người nhận ) bởi chính sách SSL can đảm và mạnh mẽ nhất hiệnnay. Nếu Website không sử dụng chứng chỉ số, mọi tài liệu sẽ đượctruyền đi nguyên bản. Khi đó, rủi ro tiềm ẩn tài liệu bị xâm nhập trong quátrình trao đổi tài liệu giữa người gửi và người nhận sẽ rất cao. Một hậuquả trước mắt là người mua sẽ không tin cậy, 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ẻ tà đạo sẽ tận dụngcơ hội này để lấy hết thông tin người mua, thông tin kinh doanh thương mại củawebsite và xa hơn, kẻ tà đạo hoàn toàn có thể đánh cắp thông tin trên thẻ tín dụng thanh toán củakhách để sử dụng phạm pháp. – VeriSign ® là tên thương hiệu uy tín nhất trên toàn quốc tế lúc bấy giờ tronglĩnh vực cung ứng chứng chỉ số. Một website có gắn hình tượng ” VeriSignSecured Seal ” sẽ ngày càng tăng mức độ an toàn và đáng tin cậy từ phía người mua lên rất nhiềuHọ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 tiến công SSLstrip MITMlần. Tại thị trường Nước Ta, VeriSign Secured Seal là đơn vị chức năng cung cấpcác giải pháp bảo mật thông tin của VeriSign trong nghành nghề dịch vụ phân phối chứng chỉ số – xác nhận số với năng lực mã hóa dữ liệu tốt nhất và độ đáng tin cậy caonhất. Chứng chỉ số SSL Server sẽ được cho phép bạn lập thông số kỹ thuật Website củamình theo giao thức bảo mật thông tin SSL ( Secure Sockets Layer ). Loại chứng chỉsố này sẽ phân phối cho Website của bạn một định danh duy nhất nhằmđảm bảo với người mua của bạn về tính xác nhận và tính hợp pháp củaWebsite. Chứng chỉ số SSL Server cũng được cho phép trao đổi thông tin antoàn và bảo mật thông tin giữa Website với người mua, nhân viên cấp dưới và đối tác chiến lược củabạn trải qua công nghệ SSL mà điển hình nổi bật là những tính năng : + Thực hiện mua và bán bằng thẻ tín dụng thanh toán + Bảo vệ những thông tin cá thể nhạy cảm của người mua + Đảm bảo hacker không hề 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ảovệ thông tin cá thể của người dùng trong quy trình trao đổi tài liệu trênmôi trường mạng, đồng thời bảo vệ sự an toàn và đáng tin cậy của những thông tin trênwebsite người dùng truy vấn, từ đó xóa bỏ đi rào cản về rủi ro tiềm ẩn lộ thôngtin cá thể, giúp người dùng yên tâm thực thi những thanh toán giao dịch trên mạng, giúp doanh nghiệp phát huy được hết những tiềm năng của website mình. Giải pháp xác nhận SSLcủa VsignTrên cơ sở nghiên cứu và điều tra nhu yếu của doanh nghiệp, của người sử dụngmạng, VSign phân phối dịch vụ chứng thực SSL cho những doanh nghiệpkinh doanh thương mại điện tử. – Khi ĐK sử dụng dịch vụ xác nhận số SSL. VSign sẽ cấp chokhách hàng một chứng chỉ số SSL. Mỗi chứng từ SSL tiềm ẩn thôngtin của duy nhất một người mua mà danh tính của họ đã được xác thựcvà một cặp khóa gồm có một khóa bí hiểm và một khóa công khai minh bạch. Khóacông khai dùng để mã hóa dữ liệu và khóa bí hiểm dùng để giải thuật thôngtin. Khi Web browser truy vấn đến phần tài 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ầuServer gửi Chứng thực SSL. Sau đó Client sẽ kiểm tra tính hợp lệ củaChứ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 thuật Session Key bằng Private Key. Dođó, những luồng thông tin được truyền giữa client và server được bảo đảman 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 tiến công SSLstrip MITM – Giao thức SSL được phong cách thiết kế độc lập với tầng ứng dụng để bảo vệ tínhbí mật, bảo đảm an toàn và chống trá hình luồng thông tin qua internet giữa haiứng dụng bất kể. Khi người mua truy vấn vào website sử dụng dịch vụchứng thực SSL của VSign thì trên thanh địa chỉ sẽ Open biểu tượngổ khóa SSL. Click chuột vào hình tượng ổ khóa, những thông tin về doanhnghiệp được VSign xác nhận sẽ hiện thị. Nếu những thông tin không phùhợp với chứng từ, browser sẽ hiện thị thông tin lỗi hoặc một khuyếncáo để người dùng cẩn trọng. – Trước khi phân phối dịch vụ xác nhận SSL cho website, VSign sẽ tiếnhành xác nhận những thông tin sau : + Sự sống sót của doanh nghiệp xin cấp xác nhận về mặt pháp lý. + Định danh đúng chuẩn của doanh nghiệp xin cấp xác nhận và cácthông tin tương quan ( gồm có địa chỉ, số điện thoại cảm ứng, ). + Mã số ĐK tại những 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 được dùng SSL.Ứng dụng mạng riêng ảo sử dụng SSL ( SSL VPN ) SSL VPN hoàn toàn có thể hiểu đơn thuần là công nghệ tiên tiến liên kết mạng riêng ảo sửdụng những giao thức liên kết bảo mật thông tin và mã hóa thông tin, bảo vệ tínhriêng biệt trên môi trường tự nhiên Internet chung. Ứng dụng mạng riêng ảo sử dụng SSL được cho phép người dùng truy cậptừ xa vào mạng lưới của công ty bất kể khi nào, SSL tương hỗ những trìnhduyệt web chuẩn như thể IE, FireFox, Đối với người dùng là những vănphòng nhỏ hoặc những người sử dụng điện thoại cảm ứng để truy vấn vàonhững ứng dụng nội bộ và chia sẽ tập tin nội bộ. Vigor2930 cho phépchú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 và Firewall ) Cơ chế kiển soát trạng thái gói tin ( SPI Firewall ) hoàn toàn có thể giúp bạn thiếtlập những chủ trương cho tường lửa của bạn thuận tiện, tính năng SCM chophép bạn trấn áp truy vấn một cách đúng chuẩn và hiệu suất cao hơn vớicác ứng dụng IM và P2P. Bên cạnh đó với tính năng chống tiến công từchối dịch vụ ( DoS / DDoS ) và lọc những nội dung của website nhằmgiảm thiểu những mối rình rập đe dọa từ bên trong và bên ngoài website. Với việc tương hỗ chipset mã hóa VPN bằng phần cứng ngay trên thiếtbị, Vigor2930VS tương hỗ tối đa 100 VPN với những giao thức hạng sang 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 tiến công SSLstrip MITMIPSec / PPTP / L2TP / L2TP over IPSec with AES / DES / 3DES forencryption 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 được cho phép những ISP phân phối nhữnggiải pháp truy vấn từ xa và truy vấn extranet, dịch vụ phục sinh sauthảm họa và dịch vụ bảo mật thông tin LAN Intranet – VoIP WLAN tới cáckhách hàng doanh nghiệp trên toàn thế giới. Quan trọng hơn cả, đó lànhững giải pháp không yên cầu ngân sách cao, nhưng vẫn bảo vệ côngnghệ bảo mật thông tin số 1 và tính chuyên được dùng của mẫu sản phẩm, đáp ứngnhu cầu của những doanh nghiệp vừa và nhỏ, vốn rất chăm sóc tới chi phíđầu tư. • Khi ISP tiến hành những dịch vụ SSL VPN này, những người dùng đượccấp phép của người mua sử dụng dịch vụ đều có quyền truy vấn bảomật tới mọi tài nguyên mạng từ bất kỳ một liên kết Internet và trìnhduyệt Web chuẩn nào, như máy tính cá thể, máy tính xách tay và cácthiết bị di động. Người dùng cuối không còn bị ràng buộc sử dụng cácthiết bị đơn cử, cũng như không phải thao tác ở những vị trí cố địnhnào. Không như những mạng riêng ảo IPSec trước kia, người mua củaISP không cần một máy khách ( client ) để hoàn toàn có thể truy vấn từ xa – chophép tăng sự linh động và ngày càng tăng hiệu suất khai thác mạng lưới hệ thống. • SSL VPN cũng sẽ là một trong những dịch vụ quan trọng giúp những ISPđa dạng hóa loại sản phẩm của mình, khai thác tiềm năng rất lớn của dịchvụ mạng bảo mật thông tin 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 tiến công SSLstrip MITMCHƯƠ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 tài liệu truyền trên Internet ngày càng trở nên thiết yếu do sốlượng cũng như mức độ quan trọng của những tài liệu này ngày càng cao. Ngàynay, 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ì đến những thông tin cụ thể trong thẻ tín dụng thanh toán củamình, do đó họ muốn những tài liệu đó phải được bảo mật thông tin khi truyền trênmạ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ệ những tài liệu trong quy trình trao đổi giữa toàn bộ những dịch vụ mạng sửdụng TCP / IP để tương hỗ những tác vụ tiếp thị quảng cáo mạng giữa sever và máykhách. Giao thức SSL tiên phong do Netscape tăng trưởng, mục tiêu để bảo mậtdữ liệu gửi / nhận trên Internet của những giao thức thuộc lớp ứng dụng nhưHTTP, LDAP hay POP3. SSL sử dụng giao thức TCP để cung ứng những kếtnối vững chắc, bảo mật thông tin và được xác nhận giữa những điểm cuối với nhau ( ví dụnhư giữa client và server ). Mặc dù hoàn toàn có thể sử dụng SSL để bảo vệ tài liệu liênquan đến bất kể dịch vụ nào, nhưng SSL hầu hết được dùng trong những ứngdụng HTTP ( server và client ). Ngày nay hầu hết những HTTP server đều hỗ trợcác phiên SSL, ở phía client những trình duyệt Internet Explorer và NetscapeNavigator đều tương hỗ SSL.Hình 2 : SSL giữa những tầng ứng dụng và tầng TCP / IPHọ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 tiến công SSLstrip MITM2. Các giao thức bảo mật thông tin SSL. 2.1. Giao thức bản ghi SSL Record Protocol. SSL Record Protocol cung ứng 2 dịch vụ cho liên kết SSL : Confidentiality ( tính bảo mật thông tin ) : Handshake Protocol định nghĩa 1 khóa bí hiểm được san sẻ, khóa này được sử dụng cho mã hóa quyước những tài liệu SSL.Message integrity ( tính toàn vẹn ) : Handshake Protocol cũng địnhnghĩa 1 khóa bí hiểm được san sẻ, khóa này được sử dụng để hìnhthành MAC ( mã xác nhận message ). Hình sau chỉ ra hàng loạt hoạt động giải trí của SSL Record Protocol. SSL RecordProtocol nhận 1 message ứng dụng sắp được truyền đi, phân mảnh tài liệu thànhnhiều block, nén tài liệu 1 cách tùy chọn, vận dụng vào 1 MAC, mã hóa, thêm vàoheader, và truyền khối tác dụng thu được trong 1 segment TCP.Dữ liệu nhận đượcđược giải thuật, 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 tiên phong là phân mảnh. Mỗi message của lớp bên trên được phânmảnh thành những block, mỗi block là 214 byte ( 16384 bit ) hoặc ít hơn. Tiếp theo, nén được vận dụng 1 cách tùy chọn. Nén phải là không mấtmát thông tin và hoàn toàn có thể không làm tăng chiều dài nội dung nhiều hơn1024 byte ( Dĩ nhiên, người ta mong ước nén làm co lại tài liệu hơn lànới rộng tài liệu. Tuy nhiên, với những block ngắn, hoàn toàn có thể, do định dạngHọ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 tiến công SSLstrip MITMquy ước, thuật toán nén thực sự làm cho output dài hơn input ). TrongSSLv3 ( cũng như phiên bản hiện tại của TLS ), không có thuật toán nénnào được chỉ rõ, vì thế thuật toán nén mặc định là null. Bước xử lí sau đó là thống kê giám sát MAC ( mã xác nhận message ) trên dữ liệuđã được nén. Để triển khai cần dùng đến 1 khóa bí hiểm được san sẻ. Phéptí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í hiểm được san 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 0x5 c ( 0101 1100 ) được lặp lại 48 lần cho MD5 và 40 lần choSHA-1. seq_num : sequence number cho message nàySSLCompressed. type : giao thức ở lớp trên được dùng để xử lí phânmả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 đượcdùng, phân mảnh ở dạng plaintext ). Chú ý rằng, cái này tựa như như thuật toán HMAC.Điểm độc lạ là 2 phầnđệm ( pad ) được | | trong SSLv3 và được XOR trong HMAC.Thuật toán MACtrong SSLv3 được dựa trên bản phác thảo Internet khởi đầu cho HMAC.Phiênbả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 hoàn toàn có thể không làm tăng chiều dài nội dung hơn 1024 byte, vì thế chiều dài tổng số 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 đo lường và thống kê trước khi mã hóa xảy ra và MAC được mã hóa cùngvớ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 tiến công SSLstrip MITMVới mã hóa block ( khối ), MAC hoàn toàn 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 chotổng size tài 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 đượcdùng ) là 58 byte, với MAC là 20 byte ( dùng SHA-1 ), được mã hóa với chiều dàiblock là 8 byte ( như DES.. ). Cùng với byte padding.length, nó sinh ra tổng cộng79 byte. Để tạo ra 1 số nguyên là bội của 8,1 byte đệm được thêm vào. Bước sau cuối của xử lí SSL Record Protocol là gắn thêm vào1header, gồm có những mục sau : Content Type ( 8 bit ) : giao thức lớptrê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ảnhplaintext ( hoặc chiều dài theo byte của phân mảnh đã nén nếu nénđược dùng ). Giá 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 tiên phong là những giao thức đặc trưng-SSL, được bàn đếntrong phần sau đó. Chú ý rằng không có sự độc lạ nào được tạo ra giữa cácứng dụng ( như HTTP.. ) hoàn toàn có thể dùng SSL, nội dung tài liệu được tạo ra bởi cácứng dụng đó thì không trong suốt so 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 tiến công SSLstrip MITM2. 2. Giao thức SSL Change Cipher Spec : Giao thức SSL Change Cipher Spec là giao thức đơn thuần nhấttrong ba giao thức đặc trưng của SSL mà sử dụng giao thức SSL Record. Giao thức này gồm có một message đơn 1 byte giá trị là 1. Mục đíchchính của message này là sinh ra trạng thái tiếp theo để gán vào trạngthái hiện tại, và trạng thái hiện tại update lại bộ mã hóa để sử dụng trênkết nối này. 2.3. Giao thức cảnh SSL AlertGiao thức SSL Alert được dùng để truyền cảnh báo nhắc nhở link SSL với đầucuố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 tiên phong giữ giá trịcảnh báo ( 1 ) hoặc nguy hại ( 2 ) để thông tin độ khắt khe củamessage. Nếu mức độ là nguy khốn, SSL lập tức chấp dứt liên kết. Nhữngkết nối cùng phiên khác vẫn hoàn toàn có thể liên tục nhưng sẽ không liên kết nàokhác trên phiên này được khởi tạo thêm. Byte thứ hai chứa một mã chỉ racảnh báo đặc trưng. Đầu tiên, tất cả chúng ta liệt kê những cảnh báo nhắc nhở đó màluôn ở mức nguy khốn ( được định nghĩa từ những thông số kỹ thuật SSL ) : • unexpected_message : message không thích hợp. • bad_record_mac : MAC không đúng chuẩn. • decompression_failure : việc giải nén nhận input không thích hợp ( ví dụ như không hề giải nén hoặc giải nén lớn hơn độ dài tối đacho phép ). • handshake_failure : bên gửi không hề thương lượng một bộ chấpnhận được của những thông số kỹ thuật bảo mật thông tin được đưa ra từ những lựachọ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 nhắc nhở 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 tiến công SSLstrip MITM2. 4. close_notify : thông tin cho bên nhận rằng bên gửi sẽ không gửi thêmmessage nào nữa trong liên kết này. Mỗi nhóm thì được nhu yếu gửi mộtclose_notify cảnh báo nhắc nhở trước khi kết thúc phần ghi của một liên kết. no_certificate : hoàn toàn có thể được gửi để vấn đáp cho một nhu yếu certificate nếukhô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ứamột chữ ký không xác định ). unsupported_certificate : dạng certificate nhận được thì không tương hỗ. certificate_revoked : certificate đã bị tịch thu bởi nhà phân phối. certificate_expired : certificate đã hết hạn ĐK. certificate_unknown : một số ít phát sinh không nói rõ Open trong quátrình xử ký certificate làm cho nó không hề gật đầu. 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 chophép server và client xác nhận với nhau và thương lượng chính sách mã hóa, thuật toán MAC và khóa mật mã được sử dụng để bảo vệ tài liệu được gửitrong SSL record. Giao thức SSL Handshake thường được sử dụng trước khiHọ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 tiến công SSLstrip MITMdữ liệu của ứng dụng được truyền đi. Giao thức SSL Handshake gồm có mộtloạt những message trao đổi giữa client và server. Mỗi message có batrườ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 handshakeHình 2.4 b : bộc lộ trao đổi lúc bắt đầu cần được thiết lập một kết nốilogic giữa client và server. Việc trao đổi hoàn toàn có thể xem như có bốn tiến trình. 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 tiến công SSLstrip MITM2. 4.1. Giai đoạn 1 – Thiết lập năng lực bảo mật thông tin : Giai đoạn này được dung để mở màn một liên kết logic và thiết lập năng lực bảomật mà sẽ link với nó. Việc trao đổi thì được khởi tạo bởi client bằng việcgửi một client_hello message với những thông số kỹ thuật 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, gồm có một nhãnthời gian 32 bit và 28 bytes sinh bởi một bộ sinh số ngẫu nhiên bảo đảm an toàn. Những giá trị này Giao hàng cho lần này và sử dụng suốt quy trình trao đổikhó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 đổi khác được. SessionID khác0 nghĩa là client muốn cập nhậttham số của một liên kết đang sống sót hay tạo một liên kết mới trên phiênnày. SessionID = 0 chỉ ra rằng client muốn thiết lập một liên kết mới trênmộ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 tiến công SSLstrip MITMCipherSuite : đây là 1 list mà chứa những bộ biên dịch của nhữngthuật toán mã hóa được tương hỗ bởi client, tìm hiểu thêm theo thứ tự giảm dần. Mỗi thành phần trong list ( mỗi bộ mã hóa ) định nghĩa cả một khóatrao đổi và một CipherSpec, những thông số kỹ thuật này sẽ được bàn đến sau. Compression Method : đây là list của những phương pháp nén màclient tương hỗ. Sau khi gửi client_hello message, client chờ nhận server_hello message màchứa cùng thông số kỹ thuật với client_hello message. Với server_hello message, nhữngthỏa thuận kèm theo được vận 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 sinhra bởi server và độc lập với trường Random của client. Nếu trường SessionIDcủa client khác 0, thì giá trị tương tự như được dùng bởi server, ngược lại thì trườngSessionID của server chứa giá trị của một phiên mới. Trường CipherSuite chứabộ mã hóa chọn bởi server từ những đề xuất kiến nghị của client. Trường Compressionchứa phương pháp nén chọn bởi server từ những yêu cầu của client. Thành phần tiên phong của thông số kỹ thuật Cipher Suite là phương pháp 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ì vàMAC được trao đổi ). Những phương pháp trao đổi khóa sau được tương hỗ : RSA : khóa bí hiểm được mã hóa với khóa công khai minh bạch RSA của bên nhận. Mộtpublic-key certificate cho khóa bên nhận phải được tạo sẵn. RSA : khóa bí hiểm được mã hóa với khóa công khai minh bạch 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 trongcertificate của server chứa những thôngsố công khai minh bạch Diffie-Hellman được kýbởi Certificate Authority ( CA ). Nghĩa là certificate khóa công khaichứacác thông số kỹ thuật khóa công khai minh bạch Diffie-Hellman. Client chứa sẵn những thôngsố khóa công khai minh bạch DiffieHellman đó trong certificate nếu chứng thựcclient được nhu yếu hoặc trong một message trao đổiHellman đó trongcertificate nếu xác nhận client được nhu yếu hoặc trong một messagetrao đổiHellman sử dụng khóa công khai minh bạch cố định và thắt chặt. Ephemeral Diffie-Hellman : Phương pháp được sử dụng để tạo khóa „ ephemeral ‟ ( trong thời điểm tạm thời, 1 lần ) – khóa trong thời điểm tạm thời. Trong trường hợp này, khóacông khai Diffie-Hellman được trao đổi, được ký sử dụng khóa bí mậtRSA hoặc DSS của bên gửi. Bên nhận hoàn toàn có thể sử dụng khóa công khaitương ứng để xác định chữ ký. Certificate được sử dụng để xác nhận khóaHọ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 tiến công SSLstrip MITMcông khai. Điều này như thể sự bảo vệ nhất của ba lựa chọn DiffieHellman chính bới nó là hiệu quả của sự trong thời điểm tạm thời và khóa xác nhận. Anonymous Diffie-Hellman : thuật toán Diffie-Hellman cơ bản được sửdụng, không xác nhận. Nghĩa là mỗi lần một bên gửi thông số kỹ thuật DiffieHellman công khai minh bạch của nó cho bên kia thì không xác nhận. Điều này gầnnhư là hoàn toàn có thể bị tiến công bởi tiến công Man-in-the-middle, trong đó kẻ tấncông điều khiển và tinh chỉnh 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 chiêu thức trao đổi khóa là CipherSpec, baogồ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 những bytes mà chứa tài liệu được dùng trong sinhkhóa. IV Size : kích cỡ của giá trị khởi tạo cho mã hóa Cipher BlockChaining ( CBC ). 2.4.2. Giai đoạn 2 – Xác thực server và trao đổi khóa : Server mở màn quy trình tiến độ này bằng cách gửi certificate của nó nếu nó cầnđược xác nhận ; thông điệp chứa một hoặc một chuỗi certificate ( chứngthực ) X. 509. Thông điệp xác nhận được nhu yếu cho bất kể một phươngpháp trao đổi khóa nào được thỏa thuận hợp tác, ngoại trừ anonymous DiffieHellman. Chú ý rằng nếu fixed Diffie-Hellman được dùng, thì thông điệpchứng thực có công dụng như thể thông điệp trao đổi khóa của server vì nóchứa những tham số Diffie-Hellman công khai minh bạch của server. Sau đó một thông điệp server_key_exchange được gửi đi nếu nó đượcyêu cầu. Nó không được nhu yếu trong 2 trường hợp sau :  Server đã gửi một certificate với những tham số fixed Diffie-Hellman.  Trao đổi khóa RSA được dùngThông điệp server_key_exchange cần cho những trường hợp sau : Học Viện Kỹ Thuật Mật Mã – Lớp AT8APage 25

Source: https://vh2.com.vn
Category : Tin Học