Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS
Trang 1Học Viện Kĩ Thuật Mật Mã Khoa an toàn thông tin
Trang 2Mục Lục
Chương I : HOẠT ĐỘNG CỦA GIAO THỨC HTTPS 6
1.1Tổng quan về HTTPS 6
1.1.1 Sử dụng HTTPS? 7
1.1.2 Quá trình giao tiếp giữa client và server thông qua https 8
1.2 Một số giao thức bảo mật 8
1.2.1Giao thức bảo mật ngăn cách(tách rời) 9
1.2.2 Bảo mật đặc tả ứng dụng 10
Chương II : SECURE SOCKET LAYER 11
2.1 Tổng quan về SSL 11
2.1.1 Lịch sử SSL 11
2.1.2 Cơ bản về SSL 12
2.2 Bảo mật của SSL 14
2.2.1 Các hệ mã hoá sử dụng với SSL 14
2.2.2 Bảo mật của SSL 15
2.3 Giao thức bắt tay - SSL Handshaking Protocol 17
2.4 Trạng thái phiên và giao thức Rehandshake 20
2.4.1 Trạng thái phiên 20
2.4.2 Giao thức Rehandshake 21
2.5 Ưu nhược điểm của SSL 21
2.5.1 Ưu điểm 21
2.5.2 Nhược điểm 22
Chương III : TRANSPORT LAYER SECURITY 23
3.1 Sự khác nhau giữa SSL vàTLS 23
3.2 Thông điệp giao thức cảnh báo 24
3.3 Xác thực thông điệp 26
3.4 Sinh nguyên liệu khóa 26
Kết Luận 31
Trang 3Danh 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
Trang 4Danh mục bảng và hình vẽ
Hình 0.1.2.1 Vị trí SSL trong mô hình giao thức bảo mật tách rời 9
Hình1.2.0.1: Bảo mật có thể được gắn trực tiếp vào giao thức ứng dụng 10
Hình 0.1 2.1.2Vị trí SSL trong mô hình OSI 12
Hình 0.1.2.2:Giao thức bắt tay SSL 17
Hình 3.4.0.1: TLS sử dụng HMAC để sinh ra giả ngẫu nhiên 27
Hình 3.4.0.1 Hàm giá ngẫu nhiên của TLS sử dụng cả MD5 và SHA 28
Hình 0.1.3.4.3: TLS sử dụng PRF để tạo ra master secret và nguyên liệu khoá 29
Hình 0.2 3.6: TLS sử dụng PRF cho các thông điệp Finished 30
Bảng 0.1.3.0.2 Sự khác biệt giữa SSL v3.0 và TLS1.0 23
Bảng 0.1.2 Các thay đổi trong giao thức cảnh báo 24
Bảng 0.2.3.4 Các bước sinh một đầu ra giả ngẫu nhiên 26
Trang 5Lờ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 thực tế.
Trang 6Chươ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ànghoặ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 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
Trang 7thự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ó
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
Trang 8certificate 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ầnggiao 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 giaothứ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ậnlợi và khó khăn khác nhau Như chúng ta thấy, các nhà thiết kế ra SSL đã chọnphươ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àonhâ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êncá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ảomật Trong thực tế, họ đã thêm vào một tầng trong kiến trúc giao thức củaInternet
Trang 9Hình 0.1.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 đảmrằ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ứcbả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ứcmớ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ảomậ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à FileTransfer Protocol (FTP)
1.2.2Bảo mật đặc tả ứng dụng
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 giaothứ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ậtkhá 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 đangthiế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ênmột thể hiện của HTTP được biết đến như là Secure HTTP Hình 2 minh họa
Trang 10kiến trúc giao thức này Chuẩn Secure HTTP được xuất bản bởi IETF như là mộtgiao 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 SecureHTTP bất kỳ nơi nào trên Internet.
Hình1.2.0.2: 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ônggiống như SSL, nó không thể bảo mật cho NNTP, FTP, hay các giao thức ứngdụ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 khigiao 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 giaothứ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, chophé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
Trang 11Chươ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ántrự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 (SecureSocket Layer) và TLS (Transport Layer Security-được bổ sung từ SSL phiên bản3.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 haichươ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ênInternet Giao thức SSL được hình thành và phát triển đầu tiên năm 1994 bởinhóm nghiên cứu Netscape dẫn dắt bởi Elgammal và ngày nay đã trở thànhchuẩ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 Microsofthiệ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ềuhành WindowNT Ngoài ra, một chuẩn của IETF (Internet Engineering TaskForce) có tên là TLS (Transport Layer Security) dựa trên SSL cũng được hìnhthành và xuất bản dưới khuôn khổ nghiên cứu của IETF Internet Draff được tíchhợ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 để đảmbả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ườngInternet Toàn bộ cơ chế và hệ thống thuật toán mã hoá sử dụng trong SSL đượcphổ 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ạngmáy tính Ngoài ra, giao thức SSL còn đòi hỏi ứng dụng chủ phải được chứngthự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)
Trang 12Hình 0.3 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êndướ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 MessagingAccess Protocol) Trong khi SSL có thể sử dụng để hỗ trợ các giao dịch an toàncho rất nhiều ứng dụng khác nhau trên Internet, thì hiện nay SSL được sử dụngchí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ếtlậ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:
• Chứng thực SSL 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 trình duyệt sử dụng các kỹ thuật mã hóa côngkhai để 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đá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 servernhận
• Chứng thực 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ôngkhai để kiểm tra chứng chỉ của client và publicID là đúng, được cấp phátbở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ânhà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
• 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
Trang 13quan 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 đổitrong 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ố giaothức vận tải tin cậy (ví dụ TCP), là tầng SSL Record Protocol.SSL RecordProtocol được sử dụng để đóng gói một vài giao thức ở mức cao hơn Một trongnhững giao thức được đóng gói đó là SSL Handshake Protocol, giao thức nàycho phép server và client thực hiện việc xác thực lẫn nhau, thoả thuận một thuậttoá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ợ chotấ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áctrình duyệt thông dụng
Các thuộc tính cơ bản :
• 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ã đốixứng được sử dụng cho quá trình mã hoá dữ liệu (ví dụ DES, RC4 ) Đảmbả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ảotí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ủangườ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à
Trang 14thể 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 độngchứng thực server và client, cho quá trình truyền thông chứng chỉ số và trongquá trình thành lập khoá phiên Client và server có thể có nhiều bộ mã hoá khácnhau, 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 :
• 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
Trang 15• 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ộcvà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ụngngoài Mỹ (coi như là xuất khẩu vũ khí) phải được phép của chính phủ Mỹ hayphải được cấp giấy phép của Bộ Quốc phòng Mỹ (DoD) Đây là một lợi điểmcho 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ảnphẩ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ậtthường dùng dựa trên phương pháp “tấn công vét cạn” (brute-force attack) bằngcá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ácsiê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ínhtoán giảm (theo luỹ thừa nghịch đảo) và dẫn đến khó có khả năng áp dụng trongthự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