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

TÌM HIỂU GIAO THỨC SSL TLS CÁCH tấn CÔNG và PHÒNG CHỐNG

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 (1.21 MB, 32 trang )

Ket-noi.com diễn đàn công nghệ, giáo dục

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐH KINH TẾ-LUẬT
----------

Báo cáo môn học: Mạng máy tính và bảo mật

TÌM HIỂU GIAO THỨC SSL/TLS
CÁCH TẤN CÔNG VÀ PHÒNG CHỐNG

Giáo viên hướng dẫn: ThS.Trương Hoài Phan
Sinh viên thực hiện:
Nguyễn Hữu Anh Hào K084061050
Nguyễn Thành Gia

K084061045

Đinh Trọng Nghĩa

K084061086

Lời nói đầu
Sercure Socket Layer (SSL) hiện nay là giao thức bảo mật rất phổ biến trên
Internet và đặc biệt là trong các hoạt động thương mại điện tử (E-Commerce). Việt


Ket-noi.com diễn đàn công nghệ, giáo dục

Nam đang trên đường hội nhập với nền công nghệ thông tin thế giới, nên nay mai,
các hoạt động giao dịch trên mạng ở Việt Nam cũng sẽ diễn ra sôi nổi, khi đó vấn


đề bảo mật trở nên quan trọng, việc triển khai SSL là điều thiết yếu.
Nhận thức được tầm quan trọng đó, nhóm 20 chúng em làm báo cáo này để trình
bày về SSL và những vấn đề liên quan. Đây là lần đầu tiên trong bốn năm học mà
ba người chúng em có dịp hợp tác với nhau nên không tránh khỏi sai sót.
Mong thầy xem và đóng góp ý kiến cho bài báo cáo cũng như những nghiên cứu
của chúng em được trọn vẹn
Trân trọng cảm ơn thầy
Nhóm 20

Báo cáo môn: Mạng máy tính và bảo mật

Page 2


Ket-noi.com diễn đàn công nghệ, giáo dục

Mục lục

Chương 1: Tìm hiểu về giao thức SSL..............................................................trang 04
1. SSL là gì..................................................................................................trang 04
2. Lịch sử phát triển....................................................................................trang 05

Chương 2: Cấu trúc và cách hoạt động.............................................................trang 06
1.
2.
3.
4.

Cấu trúc của SSL....................................................................................trang 06
Tìm hiểu về các loại mã hóa...................................................................trang 10

Handshake Protocol................................................................................trang 13
Record Protocol......................................................................................trang 17

Chương 3: Các kiểu tấn công và phòng chống.................................................trang 23
1. Các kiểu tấn công...................................................................................trang 23
2. Cách phòng chống..................................................................................trang 24

Chương 4: Cài đặt SSL trên Web Application(sử dụng Self-Signed Cert)......trang 25

Báo cáo môn: Mạng máy tính và bảo mật

Page 3


Ket-noi.com diễn đàn công nghệ, giáo dục

Chương 1: Tìm hiểu Giao thức SSL/TLS
1/SSL là gì?
Việc kết nối giữa một Web browser tới bất kỳ điểm nào trên mạng Internet đi qua rất nhiều các
hệ thống độc lập mà không có bất kỳ sự bảo vệ nào với các thông tin trên đường truyền. Không
một ai kể cả người sử dụng lẫn Web server có bất kỳ sự kiểm soát nào đối với đường đi của dữ
liệu hay có thể kiểm soát được liệu có ai đó thâm nhập vào thông tin trên đường truyền. Để bảo
vệ những thông tin mật trên mạng Internet hay bất kỳ mạng TCP/IP nào, SSL đã kết hợp những
yếu tố sau để thiết lập được một giao dịch an toàn:


Xác thực: đảm bảo tính xác thực của trang mà bạn sẽ làm việc ở đầu kia của kết nối.
Cũng như vậy, các trang Web cũng cần phải kiểm tra tính xác thực của người sử dụng.




Mã hoá: đảm bảo thông tin không thể bị truy cập bởi đối tượng thứ ba. Để loại trừ việc
nghe trộm những thông tin “ nhạy cảm” khi nó được truyền qua Internet, dữ liệu phải
được mã hoá để không thể bị đọc được bởi những người khác ngoài người gửi và người
nhận.



Toàn vẹn dữ liệu: đảm bảo thông tin không bị sai lệch và nó phải thể hiện chính xác
thông tin gốc gửi đến.

Với việc sử dụng SSL, các Web site có thể cung cấp khả năng bảo mật thông tin, xác thực và
toàn vẹn dữ liệu đến người dùng. SSL được tích hợp sẵn vào các browser và Web server, cho
phép người sử dụng làm việc với các trang Web ở chế độ an toàn. Khi Web browser sử dụng kết
nối SSL tới server, biểu tượng ổ khóa sẽ xuất hiện trên thanh trạng thái của cửa sổ browser và
dòng “http” trong hộp nhập địa chỉ URL sẽ đổi thành “https”. Một phiên giao dịch HTTPS sử
dụng cổng 443 thay vì sử dụng cổng 80 như dùng cho HTTP.
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.

Báo cáo môn: Mạng máy tính và bảo mật


Page 4


Ket-noi.com diễn đàn công nghệ, giáo dục


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.



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/Lịch sử phát triển của giao thức SSL & TLS:
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 S-HTTP 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 (trái với trình
duyệt Mo NCSA "chuẩn" có sẵn công cộng và miễn phí trên Internet).

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 với phiên bản đầu tiên của Netscape Navigator, Trái với tập đoàn CommerceNet, 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ó ba phiên bản của SSL:
1. SSL 1.0: được sử dụng nội bộ chỉ bởi Netscape Communications. Nó chứa một số khiếm
khuyết nghiêm trọng và không bao giờ được tung ra bên ngoài.
2. SSL 2.0: được kết nhập vào Netscape Communications 1.0 đến 2.x. Nó có một số điểm yếu
liên quan đến sự hiện thân cụ thể của cuộc tấn công của đối tượng trung gian. Trong một nỗ lực
nhằm dùng sự không chắc chắn của công chúng về bảo mật của SSL, Microsoft cũng đã giới
thiệu giao thức PCT (Private Communication Technology) cạnh tranh trong lần tung ra Internet
Explorer đầu tiên của nó vào năm 1996.
3. Netscape Communications đã phản ứng lại sự thách thức PCT của Microsoft bằng cách giới
thiệu SSL 3.0 vốn giải quyết các vấn đề trong SSL 2.0 và thêm một số tính năng mới. Vào thời
điểm này, Microsoft nhượng bộ và đồng ý hỗ trợ SSL trong tất cả các phiên bản phần mềm dựa
vào TCP/IP của nó (mặc dù phiên bản riêng của nó vẫn hỗ trợ PCT cho sự tương thích ngược).

Báo cáo môn: Mạng máy tính và bảo mật

Page 5


Ket-noi.com diễn đàn công nghệ, giáo dục

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 năm 1996. Nó
được thực thi trong tất cả các trình duyệt chính bao gồm ví dụ Microsoft Internet Explorer 3.0
(và các phiên bản cao hơn), Netscape Navigator 3.0 (và các phiên bản cao hơn), và Open. Như
được thảo luận ở phần sau trong chương này, SSL 3.0 đã được điều chỉnh bởi IETF TLS WG.
Thực tế, thông số kỹ thuật giao thức TLS 1.0 dẫn xuất từ SSL 3.0


Chương 2: Cấu Trúc và cách hoạt động của SSL
1/Cấu trúc của giao thức SSL:
Cấu trúc của SSL và giao thức SSL tương ứng được minh họa trong hình 1.1(Cấu trúc SSL và
giao thức SSL). Theo hình này, SSL ám chỉ một lớp (bảo mật) trung gian giữa lớp vận chuyển
(Transport Layer) và lớp ứng dụng (Application Layer). SSL được xếp lớp lên trên một dịch vụ
vận chuyển định hướng nối kết và đáng tin cậy, chẳng hạn như được cung cấp bởi TCP. Về khả
năng, nó có thể cung cấp các dịch vụ bảo mật cho các giao thức ứng dụng tùy ý dựa vào TCP
chứ không chỉ HTTP. Thực tế, một ưu điểm chính của các giao thức bảo mật lớp vận chuyển
(Transport layer) nói chung và giao thức SSL nói riêng là chúng độc lập với ứng dụng theo nghĩa
là chúng có thể được sử dụng để bảo vệ bất kỳ giao thức ứng dụng được xếp lớp lên trên TCP
một cách trong suốt. Hình 1.1 minh họa một số giao thức ứng dụng điển hình bao gồm NSIIOP,
HTTP, FTP, Telnet, IMAP, IRC, và POP3. Tất cả chúng có thể được bảo vệ bằng cách xếp lớn
chúng lên trên SSL (mẫu tự S được thêm vào trong các từ ghép giao thức tương ứng chỉ định
việc sử dụng SSL). Tuy nhiên, chú ý rằng SSL có một định hướng client-server mạnh mẽ và thật
sự không đáp ứng các yêu cầu của các giao thức ứng dụng ngang hàng.

Cấu trúc của SSL và giao thức SSL

Báo cáo môn: Mạng máy tính và bảo mật

Page 6


Ket-noi.com diễn đàn công nghệ, giáo dục

Tóm lại, giao thức SSL cung cấp sự bảo mật truyền thông vốn có ba đặc tính cơ bản:
1. Các bên giao tiếp (nghĩa là client và server) có thể xác thực nhau bằng cách sử dụng mật
mã khóa chung.
2. Sự bí mật của lưu lượng dữ liệu được bảo vệ vì nối kết được mã hóa trong suốt sau khi một

sự thiết lập quan hệ ban đầu và sự thương lượng khóa session đã xảy ra.
3. Tính xác thực và tính toàn vẹn của lưu lượng dữ liệu cũng được bảo vệ vì các thông báo
được xác thực và được kiểm tra tính toàn vẹn một cách trong suốt bằng cách sử dụng MAC.
Tuy nhiên, điều quan trọng cần lưu ý là SSL không ngăn các cuộc tấn công phân tích lưu lượng.
Ví dụ, bằng cách xem xét các địa chỉ IP nguồn và đích không được mã hóa và các sô cổng TCP,
hoặc xem xét lượng dữ liệu được truyền, một người phân tích lưu lượng vẫn có thể xác định các
bên nào đang tương tác, các loại dịch vụ đang được sử dụng, và đôi khi ngay cả dành được thông
tin về các mối quan hệ doanh nghiệp hoặc cá nhân. Hơn nữa, SSL không ngăn các cuộc tấn công
có định hướng dựa vào phần thực thi TCP, chẳng hạn như các cuộc tấn công làm tràn ngập TCP
SYN hoặc cưỡng đoạt session.
Để sử dụng sự bảo vệ SSL, cả client lẫn server phải biết rằng phía bên kia đang sử dụng SSL.
Nói chung, có ba khả năng để giải quyết vấn đề này:
1. Sử dụng các số cổng chuyên dụng được dành riêng bởi Internet Asigned Numbers
Authority (IANA). Trong trường hợp này, một số cổng riêng biệt phải được gán cho mọi giao
thức ứng dụng vốn sử dụng SSL.
2. Sử dụng số cổng chuẩn cho mọi giao thức ứng dụng và để thương lượng các tùy chọn bảo
mật như là một phần của giao thức ứng dụng (bây giờ được chỉnh sửa đôi chút).
3. Sử dụng một tùy chọn TCP để thương lượng việc sử dụng một giao thức bảo mật, chẳng
hạn như SSL trong suốt giai đoạn thiết lập nối kết TCP thông thường.
Báo cáo môn: Mạng máy tính và bảo mật

Page 7


Ket-noi.com diễn đàn công nghệ, giáo dục

Sự thương lượng dành riêng cho ứng dụng của các tùy chọn bảo mật (nghĩa là khả năng thứ
hai) có khuyết điểm là đòi hỏi mọi giao thức ứng dụng được chỉnh sửa để hiểu tiến trình thương
lượng. Ngoài ra, việc xác định một tùy chọn TCP (nghĩa là khả năng thứ ba) là một giải pháp tốt,
nhưng đó không được thảo luận nghiêm túc cho đến bây giờ. Thực tế, các số cổng riêng biệt đã

được dành riêng và được gán bởi IANA cho mọi giao thức ứng dụng vốn có thể chạy trên SSL
hoặc TLS (nghĩa là khả năng thứ nhất). Tuy nhiên, hãy chú ý việc sử dụng các số cổng riêng biệt
cũng có khuyết điểm là đòi hỏi hai nối kết TCP nếu client không biết những gì mà server hỗ trợ.
Trước tiên, client phải nối kết với cổng an toàn và sau đó với cổng không an toàn hay ngược lại.
Rất có thể các giao thức sau này sẽ hủy bỏ phương pháp này và tìm khả năng thứ hai. Ví dụ,
SALS (Simple Authentication và Security Layer) xác định một phù hợp để thêm sự hỗ trợ xác
thực vào các giao thức ứng dụng dựa vào kết nối. Theo thông số kỹ thuật SALS, việc sử dụng
các cơ chế xác thực có thể thương lượng giữa client và server của một giao thức ứng dụng đã
cho.
Các số cổng được gán bởi IANA cho các giao thức ứng dụng vốn chạy trên SSL/TLS được
tóm tắt trong bảng 1.2 và được minh họa một phần trong hình 1.1. Ngày nay, "S" chỉ định việc
sử dụng SSL được thêm (hậu tố) nhất quán vào các từ ghép của các giao thức ứng dụng tương
ứng (trong một số thuật ngữ ban đầu, S được sử dụng và được thêm tiền tố một cách không nhất
quán và một số từ ghép).
Bảng 1: Các số cổng được gán cho các giao thức ứng dụng chạy trên TLS/SSL.
Từ khóa
Cổng
Mô tả
Nsiiop
261
Dịch vụ tên IIOP trên TLS/SSL
https
443
HTTP trên TLS/SSl
Smtps
465
SMTP trên TLS/SSL
Nntps
563
NNTP trên TLS/SSL

Ldaps
636
LDAP trên TLS/SSL
Ftps-data
989
FTP (dữ liệu) trên TLS/SSL
Ftps
990
FTP (Điều khiển) trên TLS/SSL
Tenets
992
TELNET trên TLS/SSL
Imaps
994
IRC trên TLS/SSL
Pop3s
995
POP3 trên TLS/SSL
Nói chung, một session SSL có trạng thái và giao thức SSL phải khởi tạo và duy trì thông tin
trạng thái ở một trong hai phía của session. Các phần tử thông tin trạng thái session tương ứng
bao gồm một session ID, một chứng nhận ngang hàng, một phương pháp nén, một thông số mật
mã, một khóa mật chính và một cờ vốn chỉ định việc session có thể tiếp tục lại hay không, được
tóm tắt trong bảng 1.3. Một session SSL có thể được sử dụng trong một số kết nối và các thành
phần thông tin trạng thái nối kết tương ứng được tóm tắt trong bảng 1.4. Chúng bao gồm các
tham số mật mã, chẳng hạn như các chuỗi byte ngẫu nhiên server và client, các khóa mật MAC
ghi server và client, các khóa ghi server và client, một vector khởi tạo và một số chuỗi. Ở trong
hai trường hợp, điều quan trọng cần lưu ý là các phía giao tiếp phải sử dụng nhiều session SSL
đồng thời và các session có nhiều nối kết đồng thời.

Báo cáo môn: Mạng máy tính và bảo mật


Page 8


Ket-noi.com diễn đàn công nghệ, giáo dục

Bảng 2 Các thành phần thông tin trạng thái Session SSL
Thành Phần
Session ID

Mô tả
Định danh được chọn bởi server để nhận dạng
một trạng thái session hoạt động hoặc có thể
tiếp tục lại.
Peer certificate
Chứng nhân X.509 phiên bản 3 của thực thể
ngang hàng.
Compression
Thuật toán dừng để nén dữ liệu trước khi mã
method
hóa
Cipher spec
Thông số của các thuật toán mã hóa dữ liệu và
MAC
Master secret
Khóa mật 48-byte được chia sẻ giữa client và
server.
Is resumable
Cờ vốn biểu thị session có thể được sử dụng để
bắt đầu các nối kết mới hay không.

Bảng 3 Các thành phần thông tin trạng thái nối kết SSL
Thành Phần
Ngẫu nhiên
server và client
Khóa mật
MAC ghi
server
Khóa mật
MAC ghi
client
Khóa ghi
server
Khóa ghi client
Initialization
vector

Số chuỗi

Mô tả
Các chuỗi byte được chọn bởi server và client
cho mỗi nối kết.
Khóa mật được sử dụng cho các hoạt động
MAC trên dữ liệu được ghi bởi server.
Khóa mật được sử dụng cho các hoạt động
MAC trên dữ liệu được ghi bởi client.
Khóa được sử dụng cho việc mã hóa dữ liệu
bởi server và giải mã bởi client
Khóa được sử dụng để mã khóa dữ liệu bởi
client và giải mã bởi server.
Trạng thái khởi tạo cho một mật mã khối trong

chế độ CBC. Trường này được khởi tạo đầu
tiên bởi SSL Handshake Player. Sau đó, khối
text mật mã sau cùng từ mỗi bản ghi được dành
riêng để sử dụng vởi bản ghi sau đó.
Mỗi phía duy trì các số chuỗi riêng biệt cho các
thông báo được truyền và được nhận cho mỗi
nối kết.

Như được minh họa trong hình 1.1, giao thức SSL gồm hai phần chính, SSL Record Protocol
và một số giao thức con SSL được xếp lớp trên nó:

Báo cáo môn: Mạng máy tính và bảo mật

Page 9


Ket-noi.com diễn đàn công nghệ, giáo dục

- Record OK được xếp lớp trên một dịch vụ lớp vận chuyển định hướng nối kết và đáng tin cậy,
chẳng hạn như được cung cấp bởi TCP và cung cấp sự xác thực nguồn gốc thông báo, sự bí mật
dữ liệu và dữ liệu.
- Các dịch vụ toàn vẹn (bao gồm nhưng thứ như chống xem lại).
- Các giao thức con SSL được xếp lớp trên SSL Record Protocol để cung cấp sự hỗ trợ cho việc
quản lý session SSL và thiết lập nối kết.
Giao thức con SSL quan trọng nhất là SSL Handshake Protocol. Lần lượt giao thức này là
một giao thức xác thực và trao đổi khóa vốn có thể được sử dụng để thương lượng, khởi tạo và
đồng bộ hóa các tham số bảo mật và thông tin trạng thái tương ứng được đặt ở một trong hai
điểm cuối của một session hoặc nối kết SSL.
Sau khi SSL Handshake Protocol đã hoàn tất, dữ liệu ứng dụng có thể được gửi và được nhận
bằng cách sử dụng SSL Record Protocol và các tham số bảo mật được thương lượng và các

thành phần thông tin trạng thái. SSL Record và Handshake Protocol được trình bầy tổng quan ở
phần tiếp theo.

2/Tìm Hiểu các loại mã hóa
Mật mã hóa là quá trình chuyển đổi các thông tin thông thường (văn bản thường hay văn bản rõ)
thành dạng không đọc trực tiếp được, là văn bản mã. Giải mật mã, là quá trình ngược lại, phục
hồi lại văn bản thường từ văn bản mã. Mật mã là thuật toán để mật mã hóa và giải mật mã. Hoạt
động chính xác của mật mã thông thường được kiểm soát bởi khóa — một đoạn thông tin bí mật
nào đó cho phép tùy biến cách thức tạo ra văn bản mã. Các giao thức mật mã chỉ rõ các chi tiết
về việc mật mã (và các nền tảng mật mã hóa khác) được sử dụng như thế nào để thu được các
nhiệm vụ cụ thể. Một bộ các giao thức, thuật toán, cách thức quản lý khóa và các hành động quy
định trước bởi người sử dụng thi hành cùng nhau như một hệ thống tạo ra hệ thống mật mã
Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc. Các thuộc tính
được yêu cầu là:
1. Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông tin chứa

đựng trong dạng đã mật mã hóa của nó. Nói khác đi, nó không thể cho phép thu lượm
được bất kỳ thông tin đáng kể nào về nội dung của thông điệp.
2. Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi trong

quá trình truyền thông hay không.
3. Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó

có thực sự gửi thông tin đi hay không.

Báo cáo môn: Mạng máy tính và bảo mật

Page 10



Ket-noi.com diễn đàn công nghệ, giáo dục
4. Không từ chối: Người gửi không thể từ chối việc mình đã gửi thông tin đi.
5. Chống lặp lại: Không cho phép bên thứ ba copy lại văn bản và gửi nhiều lần đến người

nhận mà người gửi không hề hay biết.

a.Khóa Đối xứng
Thuật toán khóa đối xứng là những thuật toán hoặc là sử dụng cùng một khóa cho việc mật mã
hóa và giải mật mã hoặc là khóa (thứ hai) sử dụng để giải mật mã có thể dễ dàng tính được từ
khóa (thứ nhất) đã dùng để mật mã hóa.
Các thuật toán phổ biến


DES (Data Encryption Standard) là một thuật toán mã hoá có chiều dài khoá là 56 bit.



3-DES (Triple-DES): là thuật toán mã hoá có độ dài khoá gấp 3 lần độ dài khoá trong mã
hoá DES



AES: AES là một tiêu chuẩn mã hóa mới, nó đang được triển khai sử dụng đại trà từ
năm 2003

b.Khóa công khai
Các thuật toán Mã hóa khóa đối xứng có một số trở ngại không thuận tiện — hai người muốn
trao đổi các thông tin bí mật cần phải chia sẻ khóa bí mật. Khóa cần phải được trao đổi theo một
cách thức an toàn, mà không phải bằng các phương thức thông thường vẫn dùng để liên lạc. Điều
này thông thường là bất tiện, và mật mã hóa khóa công khai (hay khóa bất đối xứng) được đưa ra

như là một giải pháp thay thế. Trong mật mã hóa khóa công khai có hai khóa được sử dụng,
là khóa công khai (hay khóa công cộng) và khóa bí mật (hay khóa cá nhân), trong đó khóa công
khai dùng để mật mã hóa còn khóa bí mật dùng để giải mật mã (cũng có thể thực hiện ngược lại).
Rất khó để có thể thu được khóa bí mật từ khóa công khai. Điều này có nghĩa là một người nào
đó có thể tự do gửi khóa công khai của họ ra bên ngoài theo các kênh không an toàn mà vẫn chắc
chắn rằng chỉ có họ có thể giải mật mã các thông điệp được mật mã hóa bằng khóa đó.

Báo cáo môn: Mạng máy tính và bảo mật

Page 11


Ket-noi.com diễn đàn công nghệ, giáo dục

Chọn một số ngẫu nhiên lớn để sinh cặp khóa.

Dùng khoá công khai để mã hóa, nhưng dùng khoá bí mật để giải mã.

Báo cáo môn: Mạng máy tính và bảo mật

Page 12


Ket-noi.com diễn đàn công nghệ, giáo dục

Tổ hợp khoá bí mật mình với khoá bí mật của người khác tạo ra khoá dùng chung chỉ hai người
biết.
Các thuật toán phổ biến




RSA: là thuật toán mã hoá công khai dùng cho cả quá trình xác thực và mã hoá dữ liệu
được Rivest, Shamir, and Adleman phát triển.
RSA key exchange: là thuật toán trao đổi khoá dùng trong SSL dựa trên thuật toán RSA

c.Hàm Băm
Hàm băm là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là
một chuỗi kí tự, một đối tượng trong lập trình hướng đối tượng, v.v...).
Một hàm băm nhận đầu vào là một xâu ký tự dài (hay thông điệp) có độ dài tùy ý và tạo ra kết
quả là một xâu ký tự có độ dài cố định.

Báo cáo môn: Mạng máy tính và bảo mật

Page 13


Ket-noi.com diễn đàn công nghệ, giáo dục

Trong nhiều chuẩn và ứng dụng, hai hàm băm thông dụng nhất là MD5 và SHA-1. Năm 2005,
người ta đã tìm ra lỗi bảo mật của cả hai thuật toán trên.

3/SSL Handshake Protocol:
SSL Handshake Protocol là giao thức con SSL chính được xếp lớp trên SSL Record Protocol.
Kết quả, các thông báo thiết lập quan hệ SSL được cung cấp cho lớp bản ghi SSL nơi chúng
được bao bọc trong một hoặc nhiều bản ghi SSL vốn được xử lý và được chuyển như được xác
định bởi phương pháp nén và thông số mật mã của session SSL hiện hành và các khóa mật mã
của nối kết SSL tương ứng. Mục đích của SSL Handshake Protocol là yêu cầu một client và
server thiết lập và duy trì thông tin trạng thái vốn được sử dụng để bảo vệ các cuộc liên lạc. Cụ
thể hơn, giao thức phải yêu cầu client và server chấp thuận một phiên bản giao thức SSL chung,
chọn phương thức nén và thông số mật mã, tùy ý xác thực nhau và tạo một khóa mật chính mà từ

đó các khóa session khác nhau dành cho việc xác thực và mã hóa thông báo có thể được dẫn xuất
từ đó.
Tóm lại, việc thực thi SSL Handshake Protocol giữa một client C và một server S có thể được
tóm tắt như sau (các thông báo được đặt trong các dấu ngoặc vuông thì tùy ý):
1: C -> S: CLIENTHELLO
2: S -> C: SERVERHELLO
[CERTIFICATE]
[SERVERKEYEXCHANGE]
[CERTIFICATEREQUEST]
SERVERHELLODONE
3: C -> [CERTIFICATE]
CLIENTKEYEXCHANGE
[CERTIFICATEVERIFY]

Báo cáo môn: Mạng máy tính và bảo mật

Page 14


Ket-noi.com diễn đàn công nghệ, giáo dục

CHANGECIPHERSPEC
FINISHED
4: S -> C: CHANGECIPHERSPEC
FINISHED
Hình minh họa quá trình trao đổi thông tin

Khi Client C muốn kết nối với server S, nó thiết lập một nối kết TCP với cổng HTTPS (vốn
không được đưa vào phần mô tả giao thức) và gởi một thông báo CLIENTHELLO đến server ở
bước 1 của sự thực thi SSL Handshake Protocol. Client cũng có thể gởi một thông báo

CLIENTHELLO nhằm phản hồi lại một thông báo HELLOREQUEST hoặc chủ động thương
lượng lại các tham số bảo mật của một nối kết hiện có. Thông báo CLIENTHELLO bao gồm các
trường sau đây:
- Số của phiên bản SSL cao nhất được biểu hiện bởi client (thường là 3.0).
- Một cấu trúc ngẫu nhiên do client tạo ra gồm một tem thời gian 32 bit có dạng UNIX chuẩn và
một giá trị 28 byte được tạo ra bởi một bộ tạo số giả ngẫu nhiên.
- Một định danh session mà client muốn sử dụng cho nối kết này.
- Một danh sách các bộ mật mã client hỗ trợ.
- Một danh sách các phương pháp nén mà client hỗ trợ.

Báo cáo môn: Mạng máy tính và bảo mật

Page 15


Ket-noi.com diễn đàn công nghệ, giáo dục

Chú ý rằng trường session identity (định danh session) nên rỗng nếu session SSL hiện không tồn
tại hoặc nếu client muốn tạo các tham số bảo mật mới. Ở một trong hai trường hợp, một trường
session identity không rỗng là xác định một session SSL hiện có giữa client và server (nghĩa là
một session có các tham số bảo mật mà client muốn sử dụng lại.). Định danh session có thể bắt
nguồn từ một nối kết trước đó, nối kết này hoặc một nối kết đang hoạt động. Cũng chú ý rằng
danh sách các bộ mật mã được hỗ trợ, được chuyển từ client đến server trong thông báo
CLIENTHELLO, chứa các tổ hợp thuật toán mật mã được hỗ trợ bởi client theo thứ tự ưu tiêm.
Mỗi bộ mật mã xác định một thuật toán trao đổi khóa và một thông báo mật mã. Server sẽ chọn
một bộ mật mã hoặc nếu các lựa chọn có thể chấp nhận được không được trình bầy, trả về một
thông báo lỗi và đóng nối kết một cách phù hợp. Sau khi đã gởi thông báo CLIENTHELLO,
client đợi một thông báo SERVERHELLO. Bất kỳ thông báo khác được trả về bởi server ngoại
trừ một thông báo HELLOREQUEST được xem như là một lỗi vào thời điểm này.
Ở bước 2, server xử lý thông báo CLIENTHELLO và đáp ứng bằng một thông báo lỗi hoặc

thông báo SERVERHELLO. Tương tự như thông báo CLIENTHELLO, thông báo
SERVERHELLO có các trường sau đây:
- Một số phiên bản server chứa phiên bản thấp hơn của phiên bản được đề nghị bởi client trong
thông báo CLIENTHELLO và được hỗ trợ cao nhất bởi Server.
- Một cấu trúc ngẫu nhiên do server tạo ra cũng gồm một tem thời gian 32bit có dạng UNIX
chuẩn và một giá trị 28bit được tạo ra bởi một bộ tạo số ngẫu nhiên.
- Một định danh session tương ứng với nối kết này.
- Một bộ mật mã được chọn từ bởi server từ danh sách các bộ mật mã được hỗ trợ bởi client.
- Một phương pháp nén được chọn bởi server từ danh sách các thuật toán nén được hỗ trợ bởi
client.
Nếu định danh session trong thông báo CLIENTHELLO không rỗng, server tìm trong cache
session của nó nhằm tìm ra một mục tương hợp. Nếu mục tương hợp được tìm thấy và server
muốn thiết lập nối kết mới bằng cách sử dụng trạng thái session tương ứng, server đáp ứng bằng
cùng một giá trị như được cung cấp bởi client. Chỉ địn này là một session được tiếp tục lại và xác
định rằng cả hai phía phải tiến hành trực tiếp với các thông báo CHANGECIPHERSPEC và
FINISHED được trình bày thêm bên dưới. Nếu không, trường này chứa một giá trị khác nhận
biết một session mới. Server cũng có thể trả về một trường định danh session rỗng để biểu thị
rằng session sẽ không được lưu trữ và do đó không thể được tiếp tục sau đó. Cũng chú ý rằng
trong thông báo SERVERHELLO, server chọn một bộ mật mã và một phương pháp nén từ các
danh sách được cung cấp bởi client trong thông báo CLIENTHELLO. Các thuật toán trao đổi
khóa, xác thực, mã hóa và xác thực thông báo được xác định bởi bộ mã được chọn bởi server và
được làm lộ ra trong thông báo SERVERHELLO. Các bộ mật mã vốn đã được xác định trong
giao thức SSL về cơ bản giống như bộ mật mã đã xác định cho TLS (như được tóm tắt ở các bản
1.4 đến 1.7 trong những bài viết trước).
Ngoài thông báo SERVERHELLO, server cũng phải gởi các thông báo khác đến client. Ví dụ,
nếu server sử dụng sự xác thức dựa vào chứng nhân, server gởi chứng nhận site của nó đến client
trong một thông báo CERTIFICATE tương ứng. Chứng nhận phải thích hợp cho thuật toán trao
đổi khóa của bộ mật mã được chọn và thường là một chứng nhận X.509v3. Cùng loại thông báo
sẽ được sử dụng sau đó cho sự đáp ứng của client đối với thông báo sẽ được sử dụng sau đó cho


Báo cáo môn: Mạng máy tính và bảo mật

Page 16


Ket-noi.com diễn đàn công nghệ, giáo dục

sự đáp ứng của client đối với thông báo CERTIFICATERequest của server. Trong trường hợp
của các chứng nhận X.509v3, một chứng nhận có thể thực sự tham chiếu đến toàn bộ một chuỗi
các chứng nhận, được sắp xếp theo thứ tự với chứng nhận của đối tượng gởi trước tiên theo sau
là bất kỳ chứng nhận CA tiến hành theo trình tự hướng đến một CA gốc (vốn sẽ được chấp nhận
bởi client).
Tiếp theo, server có thể gởi một thông báo SERVERKEYEXCHANGE đến client nếu nó không
có chứng nhận, một chứng nhận vốn có thể được sử dụng chỉ để xác nhận các chữ ký kỹ thuật số
hoặc sử dụng thuật toán trao đổi khóa dựa vào token FORITEZZA (KEA). Rõ ràng, thông báo
này không được yêu cầu nếu chứng nhận site gồm một khóa chung RSA vốn có thể được sử
dụng trong việc mã hóa. Ngoài ra, một server không nặc danh có thể tùy ý yêu cầu một chứng
nhận cá nhân để xác thực client. Do đó, nó gởi một thông báo CERTIFICATERequest đến client.
Thông báo này chứa một danh sách các loại chứng nhận được yêu cầu, được phân loại theo thứ
tự ưu tiên của server cũng như một danh sách các tên được phân biệt cho các CA có thể chấp
nhận. Ở cuối bước 2, server gởi một thông báo SERVERHELLODone đến client để chỉ định sự
kết thúc SERVERHELLO và các thông báo đi kèm.
Sau khi nhận SERVERHELLO và các thông báo đi kèm, client xác nhận rằng chứng nhận site
server (nếu được cung cấp) là hợp lệ và kiểm tra nhằm bảo đảm rằng các thông số bảo mật được
cung cấp trong thông báo SERVERHELLO có thể được chấp nhận. Nếu server yêu cầu sự xác
thực client, client gởi một thông báo CERTIFICATE vốn chứa một chứng nhận cá nhân cho
khóa chung của người dùng đến server ở bước 3. Tiếp theo, client gởi một thông báo
CLIENTKEYEXCHANGE có dạng phụ thuộc vào thuật toán cho mỗi khóa được chọn bởi
server:
- Nếu RSA được sử dụng cho việc xác thực server và trao đổi khóa, client tạo một khóa mật tiền

chính 48 byte, mã hóa nó bằng khóa chung được tìm thấy trong chứng nhận site hoặc khóa RSA
tạm thời từ thông báo SERVERKEYEXCHANGE và gởi kết quả trở về server trong thông báo
CLIENTKEYEXCHANGE. Lần lượt server sử dụng khóa riêng tương ứng để giải mã khóa mật
chính.
- Nếu các token FORTEZZA được sử dụng để trao đổi khóa, client dẫn xuất một khóa mã hóa
token (TEK) bằng cách sử dụng KEA. Phép tình KEA cảu client sử dụng khóa chung từ chứng
nhận server cùng với một số tham số riêng trong token của client. Client gởi các tham số chung
cần thiết cho server để cũng tạo TEK, sử dụng các tham sô riêng của nó. Nó tạo một khóa mật
chính, bao bọc nó bằng cách sử dụng TEK và gởi kết quả cùng với một số vector khởi tạo đến
server như là một phần của thông báo CLIENTKEYEXCHANGE. Lần lượt, server có thể giải
mã khóa mật chính một cách thích hợp. Thuật toán trao đổi khóa này không được sử dụng rộng
rãi.
Nếu sự xác thực client được yêu cầu, client cũng gởi một thông báo CERTIFICATEVERIFY
đến server. Thông báo này được sử dụng để cung cấp sự xác thực rõ ràng định danh của người
dùng dựa vào chứng nhận các nhân. Nó chỉ được gởi theo sau một chứng chỉ client vốn có khả
năng tạo chữ ký (tất cả chứng nhận ngoại trừ các chứng nhận chứa các tham số DiffeHallman cố
định). Sau cùng, client hoàn tất bước 3 bằng cách gởi một thông báo CHANGECIPHERSPEC và
một thông báo FINISHED tương ứng đến server. Thông báo FINISHED luôn được gởi ngay lập
tức sau thông báo CHANGECIPERSPEC để xác nhận rằng các tiến trình trao đổi khóa và xác

Báo cáo môn: Mạng máy tính và bảo mật

Page 17


Ket-noi.com diễn đàn công nghệ, giáo dục

thực đã thành công. Thực tế, thông báo FINISHED là thông báo đầu tiên vốn được bảo vệ bằng
các thuật toán mới được thương lượng và các khóa session. Nó chỉ có thể được tạo và được xác
nhận nếu những khóa này được cài đặt một cách phù hợp ở cả hai phía. Không đòi hỏi sự báo

nhận thông báo FINISHED; các phía có thể bắt đầu gởi dữ liệu được mã hóa ngay lập tức sau khi
đã gởi thông báo FINISHED. Việc thực thi SSL Handshake Protocol hoàn tất bằng việc cũng yêu
cầu server gởi một thông báo CHANGECIPHERSPEC và một thông báo FINISHED tương ứng
đến client ở bước 4.
Sau khi sự thiết lập SSL hoàn tất, một nối kết an toàn được thiết lập giữa client và server. Nối kết
này bây giờ có thể được sử dụng để gởi dữ liệu ứng dụng vốn được bao bọc bởi SSL Record
Protocol. Chính xác hơn, dữ liệu ứng dụng có thể được phân đoạn, được nén, hoặc được mã hóa
và đước xác thực theo SSL Record Protocol cũng như thông tin trạng thái session và nối kết vốn
bây giờ được thiết lập (tùy thuộc việc thực thi SSL Handshake Protocol).
SSL Handshake Protocol có thể được rutst ngắn nếu client và server quyết định tiếp tục lại một
session SSL được thiết lập trước đó (và vẫn được lưu trữ) hoặc lặp lại một session SSL hiện có.
Trong trường hợp này, chỉ ba dòng thông báo và tổng cộng sáu thông báo được yêu cầu. Các
dòng thông báo tương ứng có thể được tóm tắt như sau:
1: C -> S: CLIENTHELLO
2: S -> C: SERVERHELLO
CHANECIPHERSPEC
FINISHED
3: S ->C: CHANGECIPHERSPEC
FINISHED
Ở bước 1, client gởi một thông báo CLIENTHELLO đến server vốn có một định danh session
cần được tiếp tục lại. Lần lượt server kiểm tra cache session của nó để tìm một mục tương hợp.
Nếu một mục tương hợp được tìm thấy, server muốn tiếp tục lại nối kết bên dưới trạng thái
session đã xác định, nó trả về một thông báo SERVERHELLO với cùng một định danh session ở
bước 2. Vào thời điểm này, cả client lẫn server phải gởi các thông báo CHANGECIPHERSPEC
và FINISHED đến nhau ở bước 2 và 3. Một khi việc tái thiết lập session hoàn tất, client và server
có thể bắt đầu trao đổi dữ liệu ứng dung.

4/SSL Record Protocol:
SSL Record Protocol nhận dữ liệu từ các giao thức con SSL lớp cao hơn và xử lý việc phân
đoạn, nén, xác thực và mã hóa dữ liệu. Chính xác hơn, giao thức này lấy một khối dữ liệu có kích

cỡ tùy ý làm dữ liệu nhập và tọa một loạt các đoạn dữ liệu SSL làm dữ liệu xuất (hoặc còn được
gọi là các bản ghi) nhỏ hơn hoặc bằng 16,383 byte.

Báo cáo môn: Mạng máy tính và bảo mật

Page 18


Ket-noi.com diễn đàn công nghệ, giáo dục

Các bước SSL Record Protocol.

Các bước khác nhau của SSL Record Protocol vốn đi từ một đoạn dữ liệu thô đến một bản ghi
SSL Plaintext (bước phân đoạn), SSL Compressed (bước nén) và SSL Ciphertext (bước mã hóa)
được minh họa trong hình 1.5. Sau cùng, mỗi bản ghi SSL chứa các trường thông tin sau đây:
- Loại nội dung;
- Số phiên bản của giao thức;
- Chiều dài;
- Tải trọng dữ liệu (được nén và được mã hóa tùy ý);
- MAC.

Báo cáo môn: Mạng máy tính và bảo mật

Page 19


Ket-noi.com diễn đàn công nghệ, giáo dục

Như được minh họa trong hình trên, một số giao thức con SSL được xếp lớp trên SSL Record
Protocol. Mỗi giao thức con có thể tham chiếu đến các loại thông báo cụ thể vốn được gửi bằng

cách sử dụng SSL Record Protocol. Thông số kỹ thuật SSL 3.0 xác định ba giao thức SSL sau
đây:
- Alert Protocol: Protocol được sử dụng để chuyển các cảnh báo thông qua SSL Record Protocol.
Mỗi cảnh báo gồm 2 phần, một mức cảnh báo và một mô tả cảnh báo.
- Handshake Protocol: đã giới thiệu ở trên
- Change CipherSpec Protocol:được sử dụng để thay đổi giữa một thông số mật mã này và một
thông số mật mã khác. Mặc dù thông số mật mã thường được thay đổi ở cuối một sự thiết lập
quan hệ SSL, nhưng nó cũng có thể được thay đổi vào bất kỳ thời điểm sau đó
Minh họa 1 đoạn thông điêêp chứ thông tin về khóa và quy định thuâêt toán

SSL_NULL_WITH_NULL_NULL = { 0, 0 }
PUBLIC-KEY
ALGORITHM

SYMMETRC
ALGORITHM

INITIAL (NULL) CIPHER SUITE

HASH
ALGORITHM

SSL_RSA_WITH_NULL_MD5 = { 0, 1 }
SSL_RSA_WITH_NULL_SHA = { 0, 2 }
CIPHER SUITE CODES USED
SSL_RSA_EXPORT_WITH_RC4_40_MD5 = { 0,IN
3 SSL
} MESSAGES
SSL_RSA_WITH_RC4_128_MD5 = { 0, 4 }
SSL_RSA_WITH_RC4_128_SHA = { 0, 5 }

SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = { 0, 6 }
SSL_RSA_WITH_IDEA_CBC_SHA = { 0, 7 }
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA = { 0, 8 }
SSL_RSA_WITH_DES_CBC_SHA = { 0, 9 }
SSL_RSA_WITH_3DES_EDE_CBC_SHA = { 0, 10 }

Premaster secret
Tạo bởi khách hàng, sử dụng để “seed” tính toán của các thông số mã hoá
Rất đơn giản: 2 byte của phiên bản SSL + 46 byte ngẫu nhiên
Gửi mã hoá đến náy chủ bằng cách sử dụng khoá công khai của máy chủ
Master secret
Tạo ra bởi cả hai bên từ premaster secret và các giá trị ngẫu nhiên được tạo ra bởi cả máy
khách và máy chủ
Key material
Giá trị ngẫu nhiên được tạo ra từ master secret và shared random values
Encryption keys
Trích xuất từ key material

Báo cáo môn: Mạng máy tính và bảo mật

Page 20


Ket-noi.com diễn đàn công nghệ, giáo dục

Minh họa quá trình tạo Master Secret

SENT BY SERVER
IN ServerHello


CLIENT SENDS PREMASTER
SECRET IN ClientKeyExchange

SENT BY CLIENT
IN ClientHello

MASTER SECRET IS 3 MD5
HASHES CONCATENATED
TOGETHER = 384 BITS

Báo cáo môn: Mạng máy tính và bảo mật

Page 21


Ket-noi.com diễn đàn công nghệ, giáo dục
Minh họa quá trình tạo Key Materials

JUST LIKE FORMING
THE MASTER SECRET
EXCEPT THE MASTER
SECRET IS USED HERE
INSTEAD OF THE
PREMASTER SECRET

Báo cáo môn: Mạng máy tính và bảo mật

Page 22



Ket-noi.com diễn đàn công nghệ, giáo dục

Minh họa quá trình tổng hợp Key Meterials để ghép thành thông điêêp

SYMMETRIC KEYS

INITIALIZATION VECTORS
FOR DES CBC ENCRYPTION

SECRET VALUES
INCLUDED IN MESSAGE
AUTHENTICATION CODES

Báo cáo môn: Mạng máy tính và bảo mật

Page 23


Ket-noi.com diễn đàn công nghệ, giáo dục

Chương 3: Các kiểu tấn công và phòng chống
1/Các kiểu tấn công SSL/TLS
Mặc dù giao thức SSL/TLS về mặt lý thuyết thì có mức an toàn cao, nhưng trong thực tế nó có
thể nó có thể bị tấn công bằng một vài cách sau. Có nhiều phương hướng tấn công, trong đó có
hai cách đáng quan tâm nhất:

a.Kiểu Man in the middle (MITM)
Trong kiểu tấn công này, kẻ phá hoại ngăn chặn lưu lượng trao đổi qua lại giữa client và server,
chẳng hạn như giả mạo DNS trả lời hay như đổi hướng của ARP, sau đó đóng vai client đối với
server và ngược lại. Trong suốt cuộc tấn công này web browser của người dùng không kết nối

trực tiếp với server đích. Nhưng thay vì phá hoại host,nó đóng vai web browser và hành động về
cơ bản giống như là một proxy.

Có hai tin dành cho nhà quản trị muốn bảo vệ hệ thống chống lại các cuộc tấn công: Tin tốt là
web browser cảnh báo người dùng khi nhận dạng của web server không thể được kiểm chứng, và
có thể chỉ ra cuộc tấn công man-in-middle bằng cách hiện một hộp tin nhắn cảnh báo. Tin xấu là,
trong thực tế, người dùng thường bỏ qua các tin nhắn. Do đó nếu web browser của người dùng
chấp nhận kết nối tới các website SSL mà nhân dạng không thể kiểm tra được, chúng ta chỉ có
thể tin tưởng vào ý thức của người dùng, và tin rằng họ sẽ nhấn nút “proceed” nếu cảnh báo hiện
ra.

Báo cáo môn: Mạng máy tính và bảo mật

Page 24


Ket-noi.com diễn đàn công nghệ, giáo dục

b.Tấn công Brute-force trên các khoá session:
Bằng cách thử-sai miền không gian các giá trị có thể của khoá. Nhưng số phép thử-sai tǎng lên
khi độ dài khoá tǎng và dẫn đến vượt quá khả nǎng và công suất tính toán, kể cả các siêu máy
tính hiện đại nhất. Thí dụ, với độ dài khoá là 40bit, thì số phép thử sẽ là 240=1,099,511,627,776
tổ hợp.
Kiểu tấn công này được dùng khi kẻ phá hoại biết hoặc nắm được một phần đoạn văn bản gửi
trong session SSL/TLS, chẳng hạn như “GET/HTTP/1.0”. Và kẻ tấn công có thể nghe lén cuộc
nói chuyện trong phiên này (như dùng tcpdump, Ethereal hoặc các chức năng khác). Sau đó hắn
giải mã đoạn bắt được bằng việc dùng các khoá có thể, cố gắng tìm các biến thể của nó trong dữ
liệu đã được mã hoá của SSL/TLS. Nếu như khoá được tìm ra, đoạn tin nhắn đó có thể được
dùng để giải mã toàn bộ phần văn bản trong phiên giao dịch đó.
Tin tốt là số lượng khoá lớn nhất phải được kiểm tra là 2^128 khi mã hoá đối xứng 128-bit được

dùng. Ngày nay, chúng ta tin tưởng nó đủ sức bảo vệ các session nhiều lần trong năm. Tuy
nhiên, từ khi CPUs ngày càng tăng kích thước chúng ta không thể dự đoán được các khoá đồng
bộ 12-bit có thể xem như là an toàn được hay không nữa. Cụ thể các hacker có thể truy cập vào
một số lượng lớn các siêu máy tính.
Trong trường hợp bộ mã hoá theo lớp xuất khẩu (40 bit, và một số bộ mở rộng là 56 bits) chẳng
hạn như tấn công brute force có thể thành công trong một lượng thời gian, đôi khi thậm chí là vài
ngày, phụ thuộc vào con số của CPU. Nếu có thể dùng bộ mã hoá mạnh thì bạn nên dùng một
cách dứt khoát thay.

2/Biện pháp phòng chống
Theo dõi kết nối an toàn HTTPS
 Khi bạn thực hiện tấn công MITM nó sẽ lấy đi khía cạnh an toàn của kết nối, thứ
có thể xác định được trong trình duyệt.
 Điều này có nghĩa rằng nếu bạn đăng nhập vào tài khoản ngân hàng trực tuyến và
thấy rằng nó chỉ là một kết nối HTTP chuẩn thì chắc chắn có thứ gì đó sai ở đây.
 Bất cứ khi nào trình duyệt mà bạn chọn sử dụng cũng cần bảo đảm rằng bạn biết
cách phân biệt các kết nối an toàn với những kết nối không an toàn
Lưu tài khoản ngân hàng trực tuyến ở nhà
 Cơ hội cho ai đó có thể chặn lưu lượng của bạn trên mạng gia đình sẽ ít hơn nhiều
so với mạng ở nơi làm việc của bạn.

Báo cáo môn: Mạng máy tính và bảo mật

Page 25


×