Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS

31 1.5K 13
Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS

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 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS • Phiên bản TLS • Chiều dài thông điệp • Nội dung thông điệp 3.4 Sinh nguyên liệu khóa Dựa trên chuẩn H-MAC, TLS định nghĩa một thủ tục cho việc sử dụng H- MAC để tạo đầu ra giả ngẫu nhiên. Thủ tục này sử dụng một giá trị bí mật và một giá trị hạt giống ban đầu (có thể khá nhỏ), và sinh đầu ra ngẫu nhiên an toàn. Thủ tục có thể tạo ra nhiều đầu ra ngẫu nhiên nếu cần thiết. Hình 30 minh hoạ thủ tục này, và bảng 4 liệt kê các bước của nó. Như là với chuẩn H-MAC, thủ tục này không dựa trên một thuật toán băm cụ thể nào. Bất kỳ thuật toán băm nào, MD5 hay SHA đều có thể được sử dụng cho đầu ra giả ngẫu nhiên. Bảng 0..3.4 Các bước sinh một đầu ra giả ngẫu nhiên Bước Thủ tục 1 Tính H-MAC của secret và seed 2 Tính H-MAC của secret và kết quả bước 1; kết quả là phần đầu tiên của đầu ra giả ngẫu nhiên 3 Tính H-MAC của secret và kết quả bước 2; kết quả thu được là phần tiếp theo của đầu ra giả ngẫu nhiên. 4 Lặp lại bước 3 nhiều lần. Page 26 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Hình 3.4.0.: TLS sử dụng HMAC để sinh ra giả ngẫu nhiên Với một cải tiến thêm vào, TLS sử dụng thủ tục đầu ra giả ngẫu nhiên để tạo ra một hàm giả ngẫu nhiên, gọi là PRF. PRF kết hợp hai thể hiện khác nhau của thủ tục đầu ra giả ngẫu nhiên, một sử dụng thuật toán băm MD5, và một sử dụng SHA. Chuẩn TLS chỉ định một hàm sử dụng cả hai thuật toán này chỉ trong trường hợp một trong hai thuật toán không an toàn. Nó bắt đầu với một giá secret (bí mật), một giá trị seed (hạt giống), và một label (nhãn). Một hàm chia secret thành hai phần, một dùng hàm băm MD5, và một dùng SHA. Nó kết hợp nhãn và seed thành một giá trị đơn. Chú ý rằng đầu pseudora của MD5 và SHA có chiều dài khác nhau (16 và 20 byte), vì thế sinh đầu ra random giả ngẫu nhiên có thể yêu cầu số lượng các thao tác khác nhau trong bước 2 và 3. output Page 27 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Hình 3.4.0.. Hàm giá ngẫu nhiên của TLS sử dụng cả MD5 và SHA Các bước sinh đầu ra giả ngẫu nhiên TLS : • Bước 1 : Chia secret thành 2 phần bằng nhau, nếu secret bao gồm một số lẻ các byte, gộp byte giữa trong từng phần (nó sẽ là byte cuối cùng của phần đầu và byte đầu tiên của phần thứ hai). • Bước 2 : Sinh đầu ra giả ngẫu nhiên sử dụng phần đầu của secret, hàm băm MD5, kết hợp label và seed. • Bước 3 : Sinh đầu ra giả ngẫu nhiên sử dụng phần thứ hai của secret, hàm băm SHA, kết hợp label, seed. • Bước 4 : Exclusive-OR kết quả bước 2 và 3. Với những hiểu biết về PRF, bây giờ chúng ta có thể mô tả làm thế nào TLS tạo ra nguyên liệu khoá. Nguyên lý cơ bản cũng giống như với SSL. Mỗi hệ thống bắt đầu với premaster secret, tiếp theo nó tạo ra một master secret. Sau đó, nó sinh ra nguyên liệu khoá được yêu cầu từ master secret.Để sinh nguyên liệu khoá, TLS dựa trên PRF. Các giá trị đầu vào là master secret(“secret”), chuỗi ASCII “key expansion” (nhãn), và dãy các giá trị ngẫu nhiên của server và client cho seed. Bản thân 48 byte master secret cũng được tính sử dụng PRF. Trong trường hợp này, các giá trị vào là premaster secret,chuỗi ASCII “master secret” (nhãn), và dãy các giá trị ngẫu nhiên của Client và Server. Page 28 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Hình 0..3.4.3: TLS sử dụng PRF để tạo ra master secret và nguyên liệu khoá 3.5 Xác nhận chứng chỉ TLS cũng khác SSL về chi tiết hàm CertificateVerify. Trong SSL, thông tin được ký trong hàm Certificate Verify khá phức tạp, nó là sự kết hợp hàm băm hai mức các thông điệp handshake, master secret, và padding. Trong trường hợp của TLS, thông tin ký đơn giản chỉ là các thông điệp handshake trước đó được trao đổi trong suốt một phiên. 3.6 Thông điệp Finished Thông điệp Finished trong TLS có nội dung đơn giản, cỡ 12 byte, giá trị được tạo ra bằng cách áp dụng PRF với đầu vào là master secret, nhãn “client finished” (với client) hay “server finished” (với server), và dãy hàm băm MD5, SHA tất cả các thông điệp handshake. Page 29 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Hình 0.. 3.6: TLS sử dụng PRF cho các thông điệp Finished Kết Luận Qua thời gian nghiên cứu và tìm hiểu giao thức HTTPS chúng em được mở mang kiến thức, hiểu được ý nghĩa của SSL trong HTTPS. Chúng em được hiểu thêm về chức năng của khóa đối xứng và khóa bất đối xứng trong HTTPS, từ đó chúng em nhận ra được ý nghĩa của mật mã trong HTTPS. Nếu thông tin truyền trên đường truyền mà không được mã hóa thì hacker có thể lấy cắp và sử dụng nó vào mục đích xấu. Do đó mật mã là quan trọng và thiết yếu cho mỗi bản tin, thông tin của chúng ta. Nhờ có SSL và TLS chúng ta tin tưởng và không lo ngại gì về thông tin của mình khi truyền trên mạng internet. Page 30 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Tài liệu tham khảo 1) 2) 3) http://vi.wikipedia.org/wiki/HTTPS http://www.diap.gov.vn/tin-tuc/1457/tieu-chuan-ky-thuat-ve-udcntt-trongcqnn-tieu-chuan-ssl-%E2%80%93-giao-thuc-an-toan-tang-giao-van-24 https://www.academia.edu/5250828/TR_NG_D_I_H_C_NHA_TRANG_K HOA_CONG_NGH_THONG_TIN_AN_TOAN_VA_B_O_M_T_THONG _TIN Page 31 [...]... 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. .. 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ư... 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. .. nghiên cứu và tìm hiểu giao thức HTTPS chúng em được mở mang kiến thức, hiểu được ý nghĩa của SSL trong HTTPS Chúng em được hiểu thêm về chức năng của khóa đối xứng và khóa bất đối xứng trong HTTPS, từ đó chúng em nhận ra được ý nghĩa của mật mã trong HTTPS Nếu thông tin truyền trên đường truyền mà không được mã hóa thì hacker có thể lấy cắp và sử dụng nó vào mục đích xấu Do đó mật mã là quan trọng và thiết... H-MAC của secret và seed 2 Tính H-MAC của secret và kết quả bước 1; kết quả là phần đầu tiên của đầu ra giả ngẫu nhiên 3 Tính H-MAC của secret và kết quả bước 2; kết quả thu được là phần tiếp theo của đầu ra giả ngẫu nhiên 4 Lặp lại bước 3 nhiều lần Page 26 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Hình 3.4.0.: TLS sử dụng HMAC để sinh ra giả ngẫu nhiên Với một cải tiến thêm vào, TLS... đầu vào là master secret(“secret”), chuỗi ASCII “key expansion” (nhãn), và dãy các giá trị ngẫu nhiên của server và client cho seed Bản thân 48 byte master secret cũng được tính sử dụng PRF Trong trường hợp này, các giá trị vào là premaster secret,chuỗi ASCII “master secret” (nhãn), và dãy các giá trị ngẫu nhiên của Client và Server Page 28 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS. .. 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... thông tin của chúng ta Nhờ có SSL và TLS chúng ta tin tưởng và không lo ngại gì về thông tin của mình khi truyền trên mạng internet Page 30 Giao thức HTTPS và vai trò của mật mã trong giao thức HTTPS Tài liệu tham khảo 1) 2) 3) http://vi.wikipedia.org/wiki /HTTPS http://www.diap.gov.vn/tin-tuc/1457/tieu-chuan-ky-thuat-ve-udcntt-trongcqnn-tieu-chuan-ssl-%E2%80%93 -giao- thuc-an-toan-tang -giao- van-24 https: //www.academia.edu/5250828/TR_NG_D_I_H_C_NHA_TRANG_K... 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. .. 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 ... Protocol UDP :User Datagram Protocol Page Giao thức HTTPS vai trò mật mã giao thức HTTPS Danh mục bảng hình vẽ Page Giao thức HTTPS vai trò mật mã giao thức HTTPS Lời nói đầu Việc kết nối Web browser... Page Giao thức HTTPS vai trò mật mã giao thức HTTPS thực tế Chương I: HOẠT ĐỘNG CỦA GIAO THỨC HTTPS 1.1 Tổng quan HTTPS HTTPS viết tắt “Hypertext Transfer Protocol Secure”, Nó kết hợp giao thức. .. bảo mật giao dịch Web, giao thức thực tế tồn 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 định tạo giao thức ngăn cách cho bảo Page Giao thức HTTPS vai trò mật mã giao

Ngày đăng: 12/10/2015, 18:51

Từ khóa liên quan

Mục lục

  • Chương I: HOẠT ĐỘNG CỦA GIAO THỨC HTTPS

    • 1.1 Tổng quan về HTTPS

      • 1.1.2 Quá trình giao tiếp giữa client và server thông qua https

      • 1.2 Một số giao thức bảo mật

      • Hình 0..2.1 Vị trí SSL trong mô hình giao thức bảo mật tách rời

      • 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

      • Hình 0.. 2.1.2Vị trí SSL trong mô hình OSI

      • Hình 0..2.2:Giao thức bắt tay SSL

      • ChươngIII : TRANSPORT LAYER SECURITY

        • 3.1 Sự khác nhau giữa SSL và TLS

        • Bảng 0..3.0.. Sự khác biệt giữa SSL v3.0 và TLS1.0

        • Bảng 0..2. Các thay đổi trong giao thức cảnh báo

          • 3.3 Xác thực thông điệp

          • Bảng 0..3.4 Các bước sinh một đầu ra giả ngẫu nhiên

          • Hình 3.4.0.: TLS sử dụng HMAC để sinh ra giả ngẫu nhiên

          • Hình 3.4.0.. Hàm giá ngẫu nhiên của TLS sử dụng cả MD5 và SHA

          • Hình 0..3.4.3: TLS sử dụng PRF để tạo ra master secret và nguyên liệu khoá

          • Hình 0.. 3.6: TLS sử dụng PRF cho các thông điệp Finished

Tài liệu cùng người dùng

Tài liệu liên quan