Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Học Viện Kĩ Thuật Mật Mã
Khoa an toàn thông tin
BÀI TẬP LỚN
Giao thức HTTPS và vai trò của mật
mã trong giao thức HTTPS
Giáo viên hướng dẫn : Ts. Nguyễn Tuấn Anh
Hà nội 2-2014
Page 1
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Mục Lục
Danh mục các ký hiệu, chữ viết tắt
HTTP : HyperText Transfer Protocol
HTTPS : Hypertext Transfer Protocol Secure
SSL : Secure Socket Layer
TLS : Transport Layer Security
RFC : Request For Comment
CA : Certificate authority
DES : Data Encrypt Standar
URL : Uniform Resource Locator
IETF : Internet Engineering Task Force
MAC:Media Access Control
TCP : Transmission Control Protocol
UDP :User Datagram Protocol
Page 2
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Danh mục bảng và hình vẽ
Page 3
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Lời nói đầu
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 (Secure Sockets
Layer) đã kết hợp những yếu tố sau để thiết lập được một giao dịch an
toàn : đó là 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.
Đề tài này đề cập đến thuộc lĩnh vực an toàn, xác thực và bảo
mật thông tin trên mạng. An toàn thông tin là một yêu cầu rất quan
trọng trong việc truyền dữ liệu trên mạng đặc biệt là với các giao dịch
thương mại điện tử, còn xác thực là một trong những mục tiêu trọng
tâm của các website học tập trực tuyến. Những hậu quả do rò ri thông
tin gây ra là rất lớn và khó có thể lường hết được. Ngày nay, dù ở Việt
Nam, các nhà quản trị mạng đã bắt đầu quan tâm tới lĩnh vực này,
nhưng thực sự vẫn chưa có nhiều nghiên cứu được tiến hành chi tiết và
việc ứng dụng còn là rất hạn chế. Với xu thế phát triển hiện nay, trên
con đường hội nhập với nền công nghệ thông tin của thế giới, chúng ta
cần có những hiểu biết sâu sắc và toàn diện về an toàn và bảo mật
thông tin.
Trong đề tài này nhóm em sẽ tìm hiểu về hoạt động của giao
thức HTTPS và ứng dụng của mật mã trong giao thức HTTPS. Chúng
em hy vọng rằng với đề tài này sẽ đem lại một cái nhìn cụ thể hơn về
HTTPS và mật mã ứng dụng trong nó, tầm quan trọng của nó trong
Page 4
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
thực tế.
Chương I: HOẠT ĐỘNG CỦA GIAO THỨC HTTPS
1.1 Tổng quan về HTTPS
HTTPS là viết tắt của “Hypertext Transfer Protocol Secure”, Nó là một sự
kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao
đổi thông tin một cách bảo mật trên Internet. Giao thức HTTPS thường được
dùng trong các giao dịch nhậy cảm cần tính bảo mật cao.
Netscape Communications tạo ra HTTPS vào năm 1994 cho trình duyệt web
Netscape Navigator . Ban đầu, HTTPS đã được sử dụng với SSL mã hóa. Phiên
bản hiện hành của HTTPS được chính thức chỉ định bởi RFC 2818 Tháng 5 năm
2000.
HTTPS đã có lịch sử phát triển khá dài, thậm chí có thể nói rằng nó sinh
cùng thời với Web. Nhưng cho đến nay, giao thức này vẫn chỉ được sử dụng chủ
yếu bởi những trang web có hoạt động chuyển tiền, trang web của các ngân hàng
hoặc các cửa hàng trực tuyến. Nếu như có những trang web khác sử dụng
HTTPS, thì họ cũng chỉ dùng nó cho một vài tác vụ nhất định mà thôi.
Giao thức HTTPS sử dụng port 443, và cung cấp các dịch vụ hay đảm bảo
tính chất sau của thông tin:
•
Confidentiality(bí mật): sử dụng phương thức mã hóa(encryption )để
đảm bảo rằng các thông điệp được trao đổi giữa client và server không bị kẻ
khác đọc được.
•
Integrity(toàn vẹn): sử dụng phương thức băm(hashing) để cả client và
server đều có thể tin tưởng rằng thông điệp mà chúng nhận được có không bị
mất mát hay chỉnh sửa.
•
Authenticity(xác thực): sử dụng chứng thư số(digital certificate) để giúp
client có thể tin tưởng rằng server/website mà họ đang truy cập thực sự là
server/website mà họ mong muốn vào, chứ không phải bị giả mạo.
1.1.1
Sử dụng HTTPS?
Trước hết, muốn áp dụng HTTPS thì trong quá trình cấu hình Webserver,
bạn có thể dễ dàng tự tạo ra một SSL certificate dành riêng cho website của
Page 5
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
mình và nó được gọi là self-signed SSL certificate.
SSL certificate tự cấp này vẫn mang lại tính bí mật và toàn vẹn cho quá trình
truyền thông giữa server và client. Nhưng rõ ràng là không đạt được tính xác
thực bởi vì không có bên thứ 3 đáng tin cậy nào (hay CA) đứng ra kiểm chứng
sự tính xác thực của certificate tự gán này. Điều này cũng giống như việc một
người tự làm chứng minh nhân dân (CMND) cho mình rồi tự họ ký tên, đóng
dấu luôn vậy.
Vì vậy, đối với các website quan trọng như E-Commerce, Online Payment, Web
Mail,… thì họ sẽ mua một SSL certificate từ một Trusted Root CA nổi tiếng
như VeriSign, Thawte, và ít tên tuổi hơn thì có GoDaddy, DynDNS… Các CA
có 2 nhiệm vụ chính sau:
Cấp phát và quản lý SSL certificate cho server/website.
•
•
Xác thực sự tồn tại và tính hiệu lực của SSL certificate mà Web client gửi
tới cho nó.
Dưới đây là một số thông tin quan trọng được chứa trong SSL certificate
mà bất cứ client nào cũng có thể xem được bằng cách click vào biểu tượng
padlock trên thanh Address của Web browser:
•
Thông tin về chủ sở hữu của certificate (như tên tổ chức, tên cá nhân hoặc
domain của website…).
•
Tên và chữ kí số của CA cấp certificate.
•
Khoảng thời gian mà chứng thư còn hiệu lực sử dụng.
•
Public key của server/website. Còn private key được lưu trữ trên chính
server (không có trong certificate) và tuyệt đối không thể để lộ cho bất cứ
client nào.
•
Một số thông tin phụ khác như: loại SSL certificate, các thuật toán dùng
để encryption và hashing, chiều dài (tính bằng bit) của key, cơ chế trao đổi
key (như RSA, DSA…).
1.1.2 Quá trình giao tiếp giữa client và server thông qua https
•
•
Client gửi request cho một secure page (có URL bắt đầu với https://)
Server gửi lại cho client certificate của nó.
Page 6
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Client gửi certificate này tới CA (mà được ghi trong certificate) để
kiểm chứng.
•
Giả sử certificate đã được xác thực và còn hạn sử dụng hoặc client vẫn cố
tình truy cập mặc dù Web browser đã cảnh báo rằng không thể tin cậy được
certificate này (do là dạng self-signed SSL certificate hoặc certificate hết hiệu
lực, thông tin trong certificate không đúng…) thì mới xảy ra bước 4 sau.
•
•
•
Client tự tạo ra ngẫu nhiên một khóa đối xứng (symmetric encryption
key), rồi sử dụng public key (trong certificate) để mã hóa symmetric key
này và gửi về cho server.
Server sử dụng private key (tương ứng với public key trong certificate ở
trên) để giải mã ra symmetric key ở trên.
Sau đó, cả server và client đều sử dụng symmetric key đó để mã hóa/giải
mã các thông điệp trong suốt phiên truyền thông.
Và tất nhiên, các symmetric key sẽ được tạo ra ngẫu nhiên và có thể khác
nhau trong mỗi phiên làm việc với server. Ngoài encryption thì cơ chế
hashing sẽ được sử dụng để đảm bảo tính Integrity cho các thông điệp
được trao đổi.
KL: HTTPS là một giao thức phổ biến trên Internet và rất cần thiết để đảm bảo
an toàn cho môi trường Web. Tuy nhiên, vẫn có những cách thức mà hacker có
thể sử dụng để qua mặt cơ chế bảo vệ của HTTPS.
1.2 Một số giao thức bảo mật
Giao thức SSL cung cấp bảo mật hiệu quả cho các phiên giao dịch Web,
nhưng nó không phải là phương pháp duy nhất. Kiến trúc mạng dựa trên các tầng
giao thức, mồi tầng dựa trên các dịch vụ bên dưới chúng. Có nhiều tầng giao
thức khác nhau có thể hỗ trợ các dịch vụ bảo mật, và mỗi cái lại có những thuận
lợi và khó khăn khác nhau. Như chúng ta thấy, các nhà thiết kế ra SSL đã chọn
phương pháp là tạo ra một tầng giao thức hoàn toàn mới cho việc bảo mật. Nó có
thể bao gồm các dịch vụ bảo mật trong giao thức ứng dụng hoặc thêm chúng vào
nhân một giao thức mạng. Một lựa chọn khác là các ứng dụng có thể dựa trên
các giao thức song song cho một vài dịch vụ bảo mật. Tất cả các tuỳ chọn này đã
được đề cập đến trong việc bảo mật các giao dịch Web, và các giao thức thực tế
tồn tại trong mỗi tuỳ chọn.
1.2.1Giao thức bảo mật ngăn cách(tách rời)
Các nhà thiết kế SSL quyết định tạo ra một giao thức ngăn cách cho bảo
Page 7
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
mật. Trong thực tế, họ đã thêm vào một tầng trong kiến trúc giao thức của
Internet.
Hình 0..2.1 Vị trí SSL trong mô hình giao thức bảo mật tách rời
Bên trái hình 1 minh hoạ các giao thức trong cho các truyền thông Web.
Bên dưới cùng là Internet Protocol (IP). Giao thức này chịu trách nhiệm hỗ trợ
định tuyến các thông điệp truyền trên mạng từ nguồn đến đích của chúng.
Transmission Control Protocol (TCP) dựa trên các dịch vụ của IP để bảo đảm
rằng truyền thông là tin tưởng được. Trên cùng là Hypertext Transfer Protocol.
Bên phải của hình 1, SSL thêm sự bảo mật bằng cách thực thi như một giao thức
bảo mật riêng biệt, thêm nó vào giữa HTTP và TCP. Làm việc như một giao thức
mới, SSL yêu cầu rất ít sự thay đổi trong các giao thức bên trẽn và bên dưới.
Giao diện ứng dụng HTTP với SSL gần giống như với TCP khi không có bảo
mật.
Bên cạnh việc yêu cầu những thay đổi rất nhỏ để có thể thi hành được,
phương pháp này còn có những tiện ích quan trọng khác: nó cho phép SSL hỗ
trợ các ứng dụng khác ngoài HTTP. Mục đích chính của việc phát triển SSL là
bảo mật Web, nhưng SSL cũng được sử dụng để thêm vào sự bảo mật cho các
ứng dụng Internet khác, bao gồm Net News Transfer Protocol (NNTP) và File
Transfer Protocol (FTP).
1.2.2Bảo mật đặc tả ứng dụng
Page 8
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Một phương pháp khác là thêm trực tiếp vào các dịch vụ bảo mật vào trong giao
thức ứng dụng. Thực tế, chuẩn HTTP có bao gồm một vài thuộc tính bảo mật khá
sơ bộ, tuy nhiên các thuộc tính bảo mật đó không cung cấp một sự bảo vệ đầy đủ
cho các giao dịch thương mại điện tử thực sự. Trong khi Netscape đang thiết kế
SSL, một nhóm các nhà thiết kế giao thức khác cũng đang làm việc trên một thể
hiện của HTTP được biết đến như là Secure HTTP. Hình 2 minh họa kiến trúc
giao thức này. Chuẩn Secure HTTP được xuất bản bởi IETF như là một giao thức
thực nghiệm, và một vài sản phẩm cũng đã hỗ trợ chúng. Tuy nhiên, nó chưa
được ưa chuộng như SSL, và hiện nay khó mà có thể tìm thấy Secure HTTP bất
kỳ nơi nào trên Internet.
Hình1.2.0.: Bảo mật có thể được gắn trực tiếp vào giao thức ứng dụng
Một trong những bất lợi của việc thẽm sự bảo mật vào trong một ứng dụng
cụ thể là các dịch vụ bảo mật sẽ chỉ có giá trị trong ứng dụng đó. Ví dụ, không
giống như SSL, nó không thể bảo mật cho NNTP, FTP, hay các giao thức ứng
dụng khác với Secure HTTP. Một trong những bất tiện của phương pháp này còn
là do nó liên kết các dịch vụ bảo mật một cách chặt chẽ với ứng dụng. Mỗi khi
giao thức ứng dụng thay đổi, các thi hành bảo mật phải được quan tâm cẩn thận,
và các chức năng bảo mật của giao thức phải được thay đổi thích hợp. Một giao
thức tách rời như SSL cách ly các dịch vụ bảo mật từ giao thức ứng dụng, cho
phép mỗi dịch vụ tập chung vào giải quyết các vấn đề của riêng nó một cách có
hiệu quả nhất.
Page 9
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Chương II : SECURE SOCKET LAYER
2.1 Tổng quan về SSL
Trong các giao dịch điện tử trên mạng và trong các giao dịch thanh toán
trực tuyến, thông tin/dữ liệu trên môi trường mạng Internet phi an toàn thường
được bảo đảm bởi cơ chế bảo mật thực hiện trên tầng vận tải có tên SSL (Secure
Socket Layer) và TLS (Transport Layer Security-được bổ sung từ SSL phiên bản
3.0) - một giải pháp kỹ thuật hiện nay được sử dụng khá phổ biến trong các hệ
điều hành mạng máy tính trên Internet.
2.1.1 Lịch sử SSL
SSL 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ã hoá toàn
bộ thông tin đi/đến, mà ngày nay được được sử dụng rộng rãi cho giao dịch điện
tử như truyền số hiệu thẻ tín dụng, mật khẩu, số bí mật cá nhân (PIN) trên
Internet. Giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởi
nhóm nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thành
chuẩn bảo mật thực hành trên mạng Internet. Phiên bản SSL hiện nay là 3.0 và
vẫn đang được hoàn thiện, bổ sung. Tương tự như SSL, một giao thức khác có
tên là PCT - Private Communication Technology được đề xướng bởi Microsoft
hiện nay cũng được sử dụng rộng rãi trong các mạng máy tính chạy trên hệ điều
hành WindowNT. Ngoài ra, một chuẩn của IETF (Internet Engineering Task
Force) có tên là TLS (Transport Layer Security) dựa trên SSL cũng được hình
thành và xuất bản dưới khuôn khổ nghiên cứu của IETF Internet Draff được tích
hợp và hỗ trợ trong sản phẩm của Netscape.
2.1.2 Cơ bản về SSL
Điểm cơ bản của SSL là được thiết kế độc lập với tầng ứng dụng để đảm
Page
10
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
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ỳ, thí dụ như Webserver và các trình duyệt khách (browsers), do đó
được sử dụng rộng rãi trong nhiều ứng dụng khác nhau trên môi trường Internet.
Toàn bộ cơ chế và hệ thống thuật toán mã hoá sử dụng trong SSL được phổ biến
công khai, trừ khoá phiên (session key) được sinh ra tại thời điểm trao đổi giữa
hai ứng dụng là ngẫu nhiên và bí mật đối với người quan sát trên mạng máy tính.
Ngoài ra, giao thức SSL còn đòi hỏi ứng dụng chủ phải được chứng thực bởi một
đối tượng lớp thứ ba (CA) thông qua giấy chứng thực điện tử (digital certificate)
dựa trên mật mã công khai (ví dụ RSA).
Hình 0.. 2.1.2Vị trí SSL trong mô hình OSI
SSL được thiết kế như là một giao thức riêng cho vấn đề bảo mật có thể hỗ
trợ cho rất nhiều ứng dụng.Giao thức SSL hoạt động bên trên TCP/IP và bên
dưới các ứng dụng tầng cao hơn như là HTTP (HyperText Transfer Protocol),
LDAP (Lightweight Directory Access Protocol) hoặc IMAP (Internet Messaging
Access Protocol). Trong khi SSL có thể sử dụng để hỗ trợ các giao dịch an toàn
cho rất nhiều ứng dụng khác nhau trên Internet, thì hiện nay SSL được sử dụng
chính cho các giao dịch trên Web.
SSL cho phép một server có hỗ trợ SSL tự xác thực với một Client cũng
hỗ trợ SSL, cho phép client tự xác thực với server, và cho phép cả hai máy thiết
lập một kết nối được mã hoá. Khả năng này đã định ra các mối quan tâm căn bản
về giao tiếp trên mạng Internet và trên các mạng sử dụng TCP/IP:
: 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 trình duyệt sử dụng các kỹ thuật mã hóa công
khai để chắc chắn rằng chứng chỉ và publicID 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
• Chứng thực SSL Server
Page
11
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
đáng tin cậy của client. Sự xác thực này có thể quan trọng nếu người sử
dụng gửi số thẻ tín dụng qua mạng và muốn kiểm tra định danh server
nhận.
SSLClient : cho phép 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á khoá công
khai để kiểm tra chứng chỉ của client và publicID là đúng, được cấp phát
bởi một CA trong danh sách các CA đáng tin cậy của Server hay 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 người nhận.
• Chứng thực
•
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.
Giao thức SSL gồm hai tầng.Tầng thấp nhất, được đặt trên một số giao
thức vận tải tin cậy (ví dụ TCP), là tầng SSL Record Protocol.SSL Record
Protocol được sử dụng để đóng gói một vài giao thức ở mức cao hơn. Một trong
những giao thức được đóng gói đó là SSL Handshake Protocol, giao thức này
cho phép server và client thực hiện việc xác thực lẫn nhau, thoả thuận một thuật
toán mã hoá và các khoá mật mã trước khi giao thức ứng dụng gửi hoặc nhận dữ
liệu.
Các phiên bản :
•
SSLv2 : đây là phiên bản đầu tiên của giao thức SSL do Netscape
Corporation thiết kế.
•
SSLv3 : đây là phiên bản SSL version 3.0 do Netscape Corporation thiết
kế, đã có trợ giúp chain certifícate (chứng chỉ nhóm) và được hỗ trợ cho
tất cả các trình duyệt phổ thông.
•
TLSvl : giao thức Transport Layer Security version 1.0 dựa trên cơ sở của
SSLv3, được thiết kế bởi IETF nhưng hiện chưa được hỗ trợ cho tất cả các
trình duyệt thông dụng.
Các thuộc tính cơ bản :
Page
12
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
•
Kết nối bí mật : quá trình mã hóa dữ liệu được áp dụng sau khi quá trình
bắt tay (handshake) đầu tiên xác định được một khoá bí mật. Mật mã đối
xứng được sử dụng cho quá trình mã hoá dữ liệu (ví dụ DES, RC4...). Đảm
bảo thông tin không thể bị truy cập bởi đối tượng thứ ba.
•
Danh tính của người bên kia có thể được xác thực bằng mật mã bất đối
xứng, hoặc khoá công khai (ví dụ RSA, DSS...). Xác thực tức là đảm bảo
tính xác thực của trang mà chúng ta 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.
•
Kết nối là tin cậy : việc vận chuyển các thông điệp bao gồm một quá trình
kiểm tra tính toàn vẹn của thông điệp sử dụng một hàm kiểm tra MAC có
khoá. Các hàm băm an toàn (ví dụ SHA, MD5...) được sử dụng cho quá
trình thực hiện hàm MAC, nhằm đảm bảo thông tin không bị sai lệch và
thể hiện chính xác thông tin gốc gửi đến.
Mục đích :
•
Khả năng an toàn mật mã : SSL được sử dụng để thiết lập một kết nối an
toàn giữa hai nhóm.
•
Khả năng tương tác giữa các phần tử : các nhà lập trình độc lập có thể phát
triển các ứng dụng sử dụng SSL 3.0 sau khi trao đổi các tham số mật mã
mà không phải biết mã chương trình của các ứng dụng khác.
•
Khả năng mở rộng : SSL cung cấp một framework mà trong đó các
phương pháp mã hoá và khóa công khai kết hợp lại chặt chẽ với nhau.
2.2Bảo mật của SSL
2.2.1 Các hệ mã hoá sử dụng với SSL
Giao thức SSL hỗ trợ rất nhiều hệ mã hoá sử dụng cho các hoạt động
chứng thực server và client, cho quá trình truyền thông chứng chỉ số và trong
quá trình thành lập khoá phiên. Client và server có thể có nhiều bộ mã hoá khác
nhau, tuỳ thuộc vào phiên bản SSL hỗ trợ, các chính sách công ty chấp nhận các
hệ mã hoá, và các hạn chế của chính phủ trong việc sử dụng các phần mềm hỗ
trợ SSL. Bộ mã hoá mô tả sau đây có liên quan tới các thuật toán :
Page
13
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
•
DES. Data Encryption Standard, thuật toán mã hoá sử dụng bởi chính phủ
Mỹ.
•
DSA (Digital Signature Algorithm) một phần của chuẩn chứng thực
sốđược sử dụng bởi chính phủ Mỹ.
•
KEA (Key Exchange Algorithm) một thuật toán trao đổi khoá cho chính
phủ Mỹ
•
MD5(Message Digest 5) thuật toán băm được phát triển bởi Rivest
•
RC2-RC4. Hệ mã hoá của Rivest được phát triển cho RSA Data Security
•
•
RSA. Hệ mã hoá khoá công khai cho cả mã hoá và xác thực, được phát
triển bởi Rivest, Shamir và Adleman.
RSA key exchange: thuật toán trao đổi khoá cho SSL dựa trên thuật toán
RSA.
•
SHA-1 : Secure Hash Algorithm, thuật toán băm sử dụng cho chính phủ
Mỹ.
•
•
SKIPJACK. Thuật toán mã hoá đối xứng cổ điển được cài đặt trong phần
cứng tương thích FORTEZZA, cũng sử dụng bởi chính phủ Mỹ.
Triple-DES.DES được cài đặt 3 vòng.
Các thuật toán trao đổi khoá như KEA và RSA key exchange được sử
dụng để hai bên client và server xác lập khoá đối xứng mà họ sẽ sử dụng trong
suốt phiên giao dịch SSL, thuật toán được sử dụng phổ biến là RSA key
exchange.
Các phiên bản SSL 2.0, 3.0 hỗ trợ cho hầu hết các bộ mã hoá. Người quản
trị có thể tuỳ chọn bộ mã hoá sẽ dùng cho cả client và server. Khi một client và
server trao đổi thông tin trong giai đoạn bắt tay (handshake), họ sẽ xác định bộ
mã hoá mạnh nhất có thể và sử dụng chúng trong phiên giao dịch SSL.
2.2.2 Bảo mật của SSL
Mức độ bảo mật của SSL phụ thuộc chính vào độ dài khoá hay phụ thuộc
Page
14
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
vào việc sử dụng phiên bản mã hoá 40bitvà 128bit. Phương pháp mã hoá 40bit
được sử dụng rộng rãi không hạn chế ngoài nước Mỹ và phiên bản mã hoá
128bit chỉ được sử dụng trong nước Mỹ và Canada. Theo luật pháp Mỹ, các mật
mã “mạnh” được phân loại vào nhóm “vũ khí” (weapon) và do đó khi sử dụng
ngoài Mỹ (coi như là xuất khẩu vũ khí) phải được phép của chính phủ Mỹ hay
phải được cấp giấy phép của Bộ Quốc phòng Mỹ (DoD). Đây là một lợi điểm
cho quá trình thực hiện các dịch vụ thương mại và thanh toán điện tử trong Mỹ
và các nước đồng minh phương Tây và là điểm bất lợi cho việc sử dụng các sản
phẩm cần có cơ chế bảo mật và an toàn trong giao dịch điện tà nói chung và
thương mại điện tà nói riêng trong các nước khác.
Các phương thức tấn công (hay bẻ khoá) của các thuật toán bảo mật
thường dùng dựa trên phương pháp “tấn công vét cạn” (brute-force attack) bằng
cách thử-sai miền không gian các giá trị có thể của khoá.số phép thử 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. Tuy nhiên độ dài khoá lớn kéo theo tốc độ tính
toán giảm (theo luỹ thừa nghịch đảo) và dẫn đến khó có khả năng áp dụng trong
thực tiễn. Một khi khoá bị phá, toàn bộ thông tin giao dịch trên mạng sẽ bị kiểm
soát toàn bộ. Tuy nhiên do độ dài khoá lớn (thí dụ 128, 256 bít), số phép thử trở
nên “không thể thực hiện” vì phải mất hàng năm hoặc thậm chí hàng nghìn năm
với công suất và năng lực tính toán của máy tính mạnh nhất hiện nay.
Ngay từ năm 1995, bản mã hoá 40bit đã bị phá bởi sử dụng thuật toán vét
cạn. Ngoài ra, một số thuật toán bảo mật (như DES 56bit, RC4, MD4,...) hiện
nay cũng bị coi là không an toàn khi áp dụng một số phương pháp và thuật toán
tấn công đặc biệt. Đã có một số đề nghị thay đổi trong luật pháp Mỹ nhằm cho
phép sử dụng rộng rãi các phần mềm mã hoá sử dụng mã hoá 56bit song hiện
nay vẫn chưa được chấp thuận.
Một trong các phương pháp kiểm tra độ độ bảo mật/an toàn của các thuật
toán bảo mật, ngoài cơ sở lý thuyết của thuật toán, là đưa ra các “thách thức”
(challenge) với số tiền thưởng tượng trưng, nhằm kiểm tra tính thực tiễn của
thuật toán. Sau đây là một số thông tin tham khảo:
■
Ngày 14 tháng 7 năm 1995, Hal Finney đặt một thách thức SSL đầu tiên
một bản ghi phiên làm việc của trình duyệt Netscape sử dụng thuật toán
RC4-128-EXPORT-20. Ngày 16 tháng 8 năm 1995, David Byers và Eric
Young cùng với Adam Back đã phá thách thức này trong vòng 2 giờ, chi
phí ước tính 10,000 USD.
Page
15
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
■
Ngày 19 tháng 8 năm 1995, Hal Finney đặt một thách thức SSL thứ hai
cho cộng đồng những người làm mật mã một “key cracking ring” và
cũng đã bị phá trong 32 giờ.
■
Ngày 17 tháng 9 năm 1995, Ian Goldberg và David Wagner đã phá được
thuật toán sinh số giả ngẫu nhiên (cơ sở cho việc sinh ra số nhận dạng
phiên SSL - session ID) của phiên bản Netscape 1.1 trong vòng vài giờ
trên một máy trạm làm việc. Điều này dẫn đến việc Netscape sau đó
phải nhanh chóng đưa ra phiên bản để sửa “lỗ hổng” của bảo mật trong
trình duyệt của mình. Hiện nay phiên bản mới nhất của Netscape có khả
năng bảo mật an toàn cao nhưng chỉ được phép dùng trong phạm vi
nước Mỹ.
2.3Giao thức bắt tay - SSL Handshaking Protocol
Trước khi tiên hành truỵên sô liệu, SSL thực hiện giao thức bắt tay để
chứng thực website và chứng thực người duyệt web, trao đôi khóa phiên và
thống nhất các thuật toán mã hóa được sử dụng. Sơ đồ bắt tay được minh họa
trong hình bên dưới.
Page
16
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
(đường nét đứt là các thông điệp không bắt buộc, chỉ sử
dụng khi cần chứng thực từ client)
Hình 0..2.2:Giao thức bắt tay SSL
Sơ đồ trên gồm có 10 loại thông điệp và chia thành 4 pha:
1) Pha 1: thỏa thuận về phương pháp mã hóa được sử dụng. Pha này bắt đầu
bằng thông điệp cIient_hello được gửi từ client đến website, thông điệp này
gồm các tham số sau:
•
Version: phiên bản SSL cao nhất mà client sử dụng
•
Random: là một cấu trúc ngẫu nhiên gồm 32 byte
•
SessionlD: nếu bằng 0 có nghĩa là client muốn thiết lập một session mới
hoàn toàn. Nếu khác 0 nghĩa là client muốn thiết lặp một kết nối mới
trong session này. Việc dùng session giúp cho client và server giảm các
bước thỏa thuận trong quá trình bắt tay.
•
CompressionMethod: phương pháp nén dữ liệu sử dụng trong quá trình
truyền dữ liệu
•
CipherSuite: Các phương pháp mã hóa khóa công khai dùng để trao đổi
khóa phiên như RSA. Fixed Diffie-Hellman. Ephemeral Diffie-Hellman.
Anonymous Diffie-Hellman. Phương pháp nào liệt kê trước thì có được
ưu tiên hơn. Ứng với mỗi phương pháp trao đổi khóa là danh sách các
loại mã hóa đối xứng được sử dụng. Gồm các tham số sau:
-
CipherAlgorithm: phương pháp mã hóa đối xứng sử dụng (là một
trong các phương pháp mã khối RC2, DES, 3DES,IDEA, AES,
Fortezza hay mã dòng RC4)
-
Hash Algorithm: MD5 hay SHA-1.
-
CipherType: mã hóa đối xứng là mã khối hay mã dòng.
-
KeyMaterial: một chuỗi byte được dùng để sinh khóa.
Page
17
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
•
IV Size: kích thước của IV dùng trong mô hình CBC của mã khối.
Sau khi nhận được client_hello server sẽ trả lời bằng thông điệp
server_hello để xác nhận các thuật toán được sử dụng.
2) Pha 2: chứng thực server và trao đổi khóa của mã hóa công khai. Sau khi đã
xác nhận thuật toán mã hóa với client, server tiếp tục thực hiện các thông
điệp sau:
-
Thông điệp certificate: server cung cấp certificate của mình cho client
(dưới dạng chứng chi X.509).
-
Thông điệp certificate_request: trong trường hợp servercần chứng
thực người sử dụng, server sẽ gửi thông điệp này để yêu cầu client
cung cấp chứng chi.
Thông điệp server_hello_done: báo hiệu server đã hoàn tấtpha 2.
-
3) Pha3: chứng thực client và trao đổi khóa của mã hóa đối xứng
-
Thông điệp certificate: nêu server yêu cẩu certificate, client cung cấp
certificate của mình cho server.
Thông điệp client_key_exchange: trong bước này client gửi các thông số
cần thiết cho server để tạo khóa bí mật. Ta chỉ đề cập đến trường hợp RSA.
Trong trường hợp này client tạo một giá trị bất kỳ gọi là “tiền khóa chủ” (premaster secret) có kích thước 48 byte, mã hóa bằng khóa công khai của
server.Sau khi có"pre-master secret”, client và server sẽ tinh giá trị “khóa chủ”
(master-secret).Master_secret cũng có chiều dài là 48 byte (384 bit).
- Thông điệp certifĩcateverify: là chữ ký của client trong trườn g hợp server
cần chứng thực client. Client phải dùng khóa riêng để ký chữ ký, do đó server có
thể đảm bảo được là không ai khác dùng certificate của client để giả mạo.
4) Pha 4: hoàn tất quá trình bắt tay. Trong pha này client và server gửi thông
điệp finished để thông báo hoàn tất quá trình bắt tay lẫn nhau. Tham số của thông
điệp này là một giá trị hash để hai bên có thể kiểm tra lẫn nhau.
Dựa trên giá trị master_secret. client và server sẽ tính các tham số cần thiết cho
mã hóa đối xứng như sau:
-
Hai khóa dành cho việc mã hóa dữ liệu, một khóa dành cho chiều
Page
18
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
server gửi client vả 1 khóa dành cho chiều client vàserver.
-
Hai giá trị IV, cũng dành cho server và client tương ứng
Hai khóa dành cho việc tính giá trị MAC, cũng tương ứng cho server và
client.
Tùy theo phương pháp mã hóa đối xứng được sử dụng mà các tham số
này có chiều dài khác nhau.
Việc dùng các giá trị ClientHello.random và ServerHello.random sẽ làm
phức tạp việc phá mã hơn.
Đến đây client và server đã hoàn tất quá trình bắt tay trao đổi khóa, sẵn
sàng để truyền số liệu theo giao thức truyền số liệu.
2.4 Trạng thái phiên và giao thức Rehandshake
Khi Client và Server “bắt tay” xong, thì một phiên làm việc mới được thiết
lập, kênh truyền bảo mật được tạo thành, tầng SSL Record protocol đi vào hoạt
động. Hãy xem kỹ thuật lưu trữ thông số phiên làm việc, và cách “bắt tay lại”
(Rehandshake) để tạo phiên làm việc mới.
2.4.1 Trạng thái phiên
Để quá trình “bắt tay” mới thực hiện nhanh chóng, ngay sau lần “bắt tay”
đầu tiên, SSL thiết lập và lưu trữ trạng thái của phiên hoạt động (Session state)
và trạng thái kết nối, để có thể dùng lại tối đa các thông số đã thiết lập.
Thông tin về trạng thái phiên làm việc:
• Session identifier: chuỗi các byte do Server tạo ra, để định danh duy nhất
phiên làm việc.
• Peer certificate: chứng chỉ số đối tác truyền tin.
• Compression method: Phương pháp nén dữ liệu trước khi mã hoá và truyền
đi.
• Cipher spec: hệ mã hoá và hàm băm quy ước dùng giữa Client và Server.
• Master secret: 48 byte thông tin mật dùng chung giữa Client và Server.
•
Is resumable: cờ trạng thái, cho thiết lập hay không phiên làm việc mới từ
phiên hiện thời.
Thông tin về trạng thái kết nối:
• Server and Client random: các chuỗi byte ngẫu nhiên trong Client_hello và
Server hello.
Page
19
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
• Server
write MAC secret: chuỗi byte bí mật dùng để tính MAC của thông
điệp gửi đi.
• Server write key: khoá để mã hoá dữ liệu trước khi truyền của Server.
• Client write key: khoá để mã hoá dữ liệu trước khi truyền của Client.
• Initialization vector: vector khởi tạo dùng trong thuật toán mã hoá khối.
•
Sequence number: mỗi bên truyền tin có một số, để đếm số thông điệp
truyền và nhận tin.
2.4.2 Giao thức Rehandshake
Khi Client và Server cần khởi tạo lại phiên làm việc trước đó, hoặc nhân
đôi phiên làm việc hiện tại (thay vì phải tạo phiên làm việc mới), giao thức
Rehandshake thực hiện như sau:
•
Client gửi thông điệp Client_hello của phiên làm việc trước đó. Server tìm
Session identifier tương ứng (trong kho lưu trữ).
•
Nếu tìm được Session identifier, thì Server gửicho Client: Server_hello với
Session identifier.
Vào thời điểm này, Client và Server phải gửi cho nhau thông điệp
Change_cipher_spec.
Trực tiếp xử lý thông điệp finished, trạng thái phiên và trạng thái liên kết
tương ứng với session identifier đó sẽ được sử dụng lại. Việc khởi tạo lại được
thực hiện xong và dữ liệu tại tầng ứng dụng có thể tiếp tục được trao đổi.
•
Nếu không tìm được Session identifier, Server tạo ra Session identifier mới.
Server và Client thực hiện lại đầy đủ việc “bắt tay” từ đầu.
Sau khi trạng thái phiên và trạng thái liên kết được thiết lập, dữ liệu được
đóng gói, nén, mã hoá và truyền đi qua SSL Record protocol. Công việc được
chia 3 giai đoạn:
•
SSL Plaintext: dữ liệu được phân thành các khối có kích thức nhỏ hơn 2 14 và
thêm các thông tin như loại dữ liệu gửi đi: change_cipher_spec, alert, handshake,
application data. Các dữ liệu điều khiển được ưu tiên gửi đi trước dữ liệu ứng
dụng(application data).
SSL Compressed: dữ liệu sẽ được nén, theo phương pháp quy ước trong
trạng thái kết nối.
•
Page
20
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
SSL Ciphertext: Tính MAC thêm vào gói tin, mã hoá toàn bộ gói tin đóng
gói, gửi đi.
•
2.5Ưu nhược điểm của SSL
2.5.1 Ưu điểm
Tính năng mạnh nhất của SSL/TLS là chúng xác định mối quan hệ với các
tầng giao thức khác như thế nào trong hệ thống kiến trúc mạng OSI. Tại mức cao
nhất là phần mềm ứng dụng hoặc các trình duyệt. Chạy phía dưới các ứng dụng
này là giao thức tầng ứng dụng bao gồm Telnet, FTP, HTTP...Bên dưới nữa là
giao thức SSL và các thuật toán mã hoá được sử dụng để kết nối. Bên dưới SSL
là tầng giao vận. Hầu hết các trường hợp đó là TCP/IP. Tuy nhiên, giao thức SSL
là duy nhất, không phụ thuộc vào giao thức mạng. Bởi vì SSL không phụ thuộc
vào các tầng giao thức cho nên SSL trở thành một nền tảng độc lập hay là một
thực thể mạng độc lập.
Một sức mạnh khác của SSL đó là ngăn chặn cách thức tấn công từ điển.
Cách thức này sử dụng từ điển để phá khoá trong hệ mã hoá. SSL khắc phục
được điều này bởi cho phép không gian khoá là rất lớn đối với hệ mã hoá được
sử dụng. SSL cung cấp hai mức độ tin cậy : 40 bit và 128 bit tuỳ thuộc khả năng
của browser. SSL 128 bit và SSL 40 bit ý nói độ dài của khoá phiên dùng để mã
hoá dữ liệu sau khi đã định danh và được thiết lập bằng giải thuật khoá công
khai (RSA hoặc Diffie-Hellman). Độ dài của khoá phiên càng lớn thì độ bảo mật
càng cao. Hiện nay SSL 128 bit có độ tin cậy lớn nhất. Theo RSA phải mất hàng
tỉ năm mới có thể giải mã được bằng các kỹ thuật hiện nay. Cách thức tấn công
từ điển có thể bị ngăn chặn bởi sử dụng phương pháp số nonce (nonce number),
số này được sinh ngẫu nhiên được server sử dụng, nonce number là một số
không thể bị phá khoá.
Giao thức SSL còn bảo vệ chính nó với đối tác thứ 3. Đó là các Client
xâm nhập bất hợp pháp dữ liệu trên đường truyền. Client xâm nhập này có thể
giả mạo Client hoặc server, SSL ngăn chặn sự giả mạo này bằng cách sử dụng
khoá riêng của server và sử dụng chứng chỉ số.
Phương thức bắt tay trong TLS cũng tương tự. Tuy nhiên, TLS tăng cường
sự bảo mật bằng cách cho phép truyền phiên bản giao thức, số hiệu phiên làm
việc, hệ mã hoá và cách thức nén được sử dụng. TLS bổ sung thêm hai thuật
toán băm không có trong SSL.
2.5.2 Nhược điểm
Page
21
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Giao thức SSL cững như bất kỳ công nghệ nào bản thân nó cũng sẽ tồn tại
những giới hạn. Và khi nó là một công cụ bảo mật thỉ việc hiểu những giới hạn
của nó là cực kỳ quan trọng. Giới hạn của SSL chủ yếu tập trung ở 3 mục chính.
•
Giới hạn về giao thức truyền tải: Mặc dù SSL được thiết kế để thích hợp
với nhiều loại ứng dụng nhưng ngay từ lúc ban đầu ý định của nhà thiết
là chủ yếu tập trung vào các giao dịch trên Web. SSL là một giao thức
đòi hỏi sự tin cậy cao vì thế giao thức truyền tải của nó cũng là TCP thay
vì UDP và bản thân nó cũng không được hỗ trợ chạy trên UDP.
•
Giới hạn về công cụ: SSL đơn giản chỉ là một giao thức liên lạc , nó hoạt
động dựa vào sự hợp thành của nhiều chức năng, bao gồm nhiều loại
thuật toán khác nhau. Những thuật toán này có nhiệm vụ là mã hóa và
giải mã. Và SSL sẽ không thực sự mạnh mẽ nếu không có các công cụ
này.Như thế có thể thấy rằng bản thân SSL không có điểm yếu mà điểm
yếu của các thuật toán mã hóa mới thực sự quan trọng.
•
Giới hạn về môi trường: Bất cứ một giao thức bảo mật mạng nào sinh ra
hầu như đều chỉ cung cấp an toàn dữ liệu khi đi trên đường truyền.
Không giao thức bảo mật mạng nào có thể bảo vệ dữ liệu trước khi và
sau khi gửi nó đến đích và SSL cũng thế
ChươngIII : TRANSPORT LAYER SECURITY
3.1 Sự khác nhau giữa SSL và TLS
Mặc dù giao thức SSL ban đầu chủ yếu được phát triển bởi Netscape, nó
đã trở thành giao thức bảo mật quyết định trên Internet mà IETF có, và vẫn tiếp
tục phát triển trong tương lai. Vì một vài lý do, bao gồm cả lý do muốn có một
sự khác biệt rõ ràng hơn giữa SSL và các công việc đang phát triển với giao thức
IPSecurity (IPSEC), IETF đặt lại tên cho giao thức SSLv3.0 với tên là Bảo mật
tầng giao vận - Transport Layer Security hay TLS.
Page
22
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
TLS có một vài sự cải tiến so với giao thức SSL. Ví dụ, có một chút khác
biệt giữa SSL v3.0 và TLS hơn là giữa SSL v2.0 và 3.0.
Bảng 0..3.0.. Sự khác biệt giữa SSL v3.0 và TLS1.0
Phiên bản giao thức trong các
thông điệp
3.0
3.1
12
23
Xác thực thông điệp
Không chuẩn
Chuẩn
Sinh nguyên liệu khoá
Không chuẩn
PRF
Phức tạp
Đơn giản
Finished
Không chuẩn
PRF
Các bộ mã cơ bản
Bao gồm cả
Fortezza
Không có
Kiểu thông điệp giao thức cảnh
báo
Certificate Verify
Sự khác biệt giữa TLS và SSL còn ở những điểm sau :
•
TLS tách rời một cách rõ ràng hơn tiến trình bắt tay từ kỹ thuật tầng record.
•
Giao thức có thể được mở rộng bằng cách thêm các phương thức xác thực
mới tới thao tác của nó.
•
Nó cải tiến các thi hành hơn SSL bằng cách sử dụng session caching. Phiên
bản hiện tại của chuẩn TLS là TLSvl.O.
3.2 Thông điệp giao thức cảnh báo
Một trong những lĩnh vực mà ở đó TLS hoàn thiện hơn SSL là trong các thủ tục
thông báo khả năng và các cảnh báo bảo mật thực sự. Cụ thể, SSL định nghĩa
gần như hai lần rất nhiều các mô tả cảnh báo. Bảng 3 cung cấp một danh sách
các cảnh báo TLS mới được thêm vào, nhấn mạnh trong thực tế mô tả cảnh báo
nào đã bị loại bỏ khỏi TLS (cảnh báo bị gạch bỏ). Đặc tả TLS bỏ qua các cảnh
báo này vì thực tế là nó khó để thi hành. Ví dụ với cảnh báo NoCertificate, nó
Page
23
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
yêu cầu một sự đồng bộ mức cao giữa cảnh báo và các giao thức Handshake,
nhưng mặt khác sự đồng bộ lại không cần thiết. Để loại bỏ yêu cầu về sự đồng
bộ này, TLS cho các client mà không có các chứng chỉ thích hợp thì trả về một
thông điệp Certificate trống (empty).
Bảng 0..2. Các thay đổi trong giao thức cảnh báo
Giá
Tên
Ý nghĩa
21
Decryption Failed
Cảnh báo thông điệp được mã hoá không có giá trị.
22
RecordOverflow
Bên gửi nhận được một thông điệp mà sau khi giải
mã hoặc giải nén lớn hơn 214+2048 byte
44
NoCertificate
48
UnknowCA
Bên gửi thể hiện rằng nó không thể định danh hay
không tin được bên cấp chứng chỉ của chứng chỉ đã
nhận được
49
AccessDenied
Bên gửi thể hiện rằng tổ chức đã được định danh
trong chứng chỉ ngang hàng không được phép truy
cập để tiến hành các thoả thuận.
50
DecodeError
51
DecryptError
60
Bên gửi luôn là client thể hiện rằng nó không có
chứng chỉ thỏa mãn với CertificateRequest của
server.
Bên gửi nhận được một thông điệp không thể giải
mã vì giá trị một trường ra ngoài khoảng cho phép
hoặc chiều dài thông điệp không có giá trị.
Bên gửi thể hiện rằng một thao tác lập mã chủ yếu
tới thoả thuận handshake bị hỏng
ExportRestriction Bên gửi phát hiện ra một tham số thoả thuận không
phù hợp với giới hạn xuất u.s
Page
24
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
70 Protocol Version
Bên gửi thể hiện rằng nó không thể hỗ trợ phiên bản
giao thức TLS yêu cầu
71 InsufficientSecurity Bên gửi (luôn là server) thể hiện yêu cầu các bộ mã
bảo mật hơn những cái được hỗ trợ bởi client
80
IntemalError
Bên gửi thể hiện một lỗi cục bộ để các thi hành của
nó và phụ thuộc vào giao thức TLS (như định vị bộ
nhớ lỗi) làm nó không thể tiếp tục.
90
UserCanceled
Bên gửi thể hiện rằng nó muốn huỷ bỏ thoả thuận bắt
tay vì một vài lý do khác hơn là một lỗi giao thức;
thông điệp này thường là một cảnh báo, được theo
sau bởi một CloseNotify
100
NoRenegotiation Bên gửi thể hiển rằng nó không thể đồng ý với yêu
cầu của bên ngang hàng để thoả thuận lại bắt tay
TLS; thông điệp này luôn là một cảnh báo.
3.3 Xác thực thông điệp
Một lĩnh vực khác mà ở đó TLS hoàn thiện hơn SSL là trong các thuật
toán xác thực thông điệp. Cách xác thực thông điệp SSL kết hợp thông tin khoá
và dữ liệu ứng dụng ít đặc biệt hơn, chỉ được tạo cho giao thức SSL. Với giao
thức TLS, dựa trên một mã xác thực thông điệp chuẩn được gọi là H-MAC
(Hashed Message Authentication Code). Thuật toán H-MAC là một chuẩn đã
được định nghĩa. Đặc tả H- MAC bao gồm một mô tả tỉ mỉ phương pháp, cũng
như mã nguồn ví dụ. Chú ý rằng H-MAC không chỉ định một thuật toán băm cụ
thể (như MD5 hay SHA), nó làm việc hiệu quả với bất kỳ thuật toán băm nào.
Mã xác thực thông điệp TLS là một ứng dụng thẳng của chuẩn H-MAC.
H- MAC secret là MAC write secret nhận được từ master secret. Sau đây là các dữ liệu
được bảo vệ bởi TLS Message Authentication Code.
•
Dãy số (sequence number)
•
Kiểu thông điệp giao thức TLS
Page
25