Sinh nguyên liệu khoá

Một phần của tài liệu NGHIÊN CỨU SỬ DỤNG CÔNG NGHỆ BẢO MẬTSSL/TLS (Trang 76)

khoá

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 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.

Hình 30. TLS sử dụng HMAC để sinh đầu 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ó cũng kết hợp nhãn và seed thành một giá trị đơn. Chú ý rằng đầu ra của MD5 và SHA có chiều dài khác nhau (16 và 20 byte), vì thế sinh đầu ra 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.

Hình 31. 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. Hình 32 minh hoạ cả hai bước

Hình 32. 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 CertificateVerify 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.

Hình 33. TLS sử dụng PRF cho các thông điệp Finished 3.7 Các bộ mã cơ sở

Về cơ bản, TLS hỗ trợ hầu hết các bộ mã có trong SSL, tuy nhiên hỗ trợ mở rộng cho các bộ mã Fortezza/DMS bị loại bỏ. Tập hợp các bộ mã TLS được định nghĩa được mở rộng khi các bộ mã mới đã được phát triển và thi hành. Vì IETF có một tiến trình hoàn toàn xác định cho việc đánh giá các đề xuất này, các cải tiến sẽ dễ dàng được thêm vào TLS hơn là SSL.

Chương 4 SỬ DỤNG GIAO THỨC SSL/TLS

1.Cài đ ặ t Certificate Services cho Windo w s 2003 Server

Trong Windows 2003 Server, mở cửa sổ Control Panel.

1. Chọn Add/Remove Programs, chọn tiếp Add/Remove Windows Components.

2. Chọn Certificate Services trong Windows Components Wizard, nhấn Next. 3. Chọn kiểu dịch vụ mà bạn muốn cài đặt : Stand-Alone root CA, nhấn Next. 4. Nhập thông tin định danh CA được yêu cầu và nhấn Next.

5. Nhấn Next tiếp để chấp nhận các thiết lập mặc định, nhấn Finish để hoàn thành quá trình cài đặt.

2 . T ạ o m ộ t yêu c ầ u Certificate :

1. Mở cửa sổ Internet Service Manager Microsoft Management Console (MMC) 2. Mở bảng Property của Web Site bạn cần cài Certificate

3. Chọn tab Directory Security

4. Nhấn vào nút Server Certificate, cửa sổ Certificate Wizard hiện ra, nhấn

Next

5. Chọn Create a new certificate, nhấn Next

6. Chọn Prepare the request now, but send it later và chọn Next

7. Gõ tên cho certificate, chọn dộ dài bit mã hoá và các thông tin cần thiết, nhấn

Next để tiếp tục.

8. Chọn đường dẫn và tên file để lưu thông tin certificate 9. Kiểm tra lại thông tin bạn nhập, nhấn Next để tạo certificate

3 . G ở i yêu c ầ u certificate :

1. Mở browser và gõ https://servername/CertSrv/

2. Chọn Request a Certificate, chọn Next

3. Chọn Advance Request, nhấn Next

4. Chọn Submit a Certificate Request using a Base64, nhấn Next

5. Mở file certificate vừa tạo 6. Chọn và copy nội dung file

---BEGIN NEW CERTIFICATE REQUEST---

MIIC9DCCAl0CAQAwXzEQMA4GA1UEAxMHdGVzdGluZzEQMA4GA1UEC xMHU3lzRGVwdDEQMA4GA1UEChMHTmV0U29mdDENMAsGA1UEBxME SENNQzELMAkGA1UECBMCVEIxCzAJBgNVBAYTAlZOMIGfMA0GCSqGS Ib3DQEBAQUAA4GNADCBiQKBgQC3uElzTyLG7bwsPv0zuljVLodhZ3DvkOt yliod/iRjHlXVeG49WpDjFcp0vY2QFJClp0fvU586Bqnf6R1UbW7z8dDSLLo3g MQuyaYOAZhVHeeVVE4yv/vxuTBO+JW8wYN9NrsPsxHQiUgyyBIQgphnEya mClfeFYEimNQs9/3tnQIDAQABoIIBUzAaBgorBgEEAYI3DQIDMQwWCjUu MC4yMTk1LjIwNQYKKwYBBAGCNwIBDjEnMCUwDgYDVR0PAQH/BAQD AgTwMBMGA1UdJQQMMAoGCCsGAQUFBwMBMIH9BgorBgEEAYI3DQIC MYHuMIHrAgEBHloATQBpAGMAcgBvAHMAbwBmAHQAIABSAFMAQQA gAFMAQwBoAGEAbgBuAGUAbAAgAEMAcgB5AHAAdABvAGcAcgBhAHA AaABpAGMAIABQAHIAbwB2AGkAZABlAHIDgYkAXxNuAz6gcBaZUdef8 WQ2PAroKMW8sprcKv7QD2encz6/Wct9DZ5CkGynLGy0f+Lff7ViSDJqxYWaJ 68ddqgXyAqIilF63kivPTiC6yxLaNX65v3cnKFx4UrUrGXZtub7M7/NuxSipOW0 Vv7yCHganypxDyRzp6IhulEnL4APEH4AAAAAAAAAADANBgkqhkiG9w0BA QUFAAOBgQBmEU7t4rNg+xXg9l1YWh++Ye2x3yt3S9r+/LOblckL8jllmYsS7Y LvHBQYXj9zN5mh2RpoLllWWlct7wHKWig87G/oeBWeGIf9bJXJFvOBYO2x/e BwK+Qk0ufy1KIKUozeS7WnqaFFse+912/mqH5h7bh+McqwB0A+g/n1Cp0NkQ ==

---END NEW CERTIFICATE REQUEST---

7. Paste nó vào trong text box Base64 Encoded Certificate Request

8. Dưới Certificate Template, chọn Web Server rối nhấn Next

9. Nếu Certificate Server được cấu hình Always Issue the Certificate, bạn có thể

download certificate ngay lập tức.

10.Nếu Certificate Server được cấu hình là Set the certificate request status to pending, bạn sẽ nhận được thông điệp Certificate Pending.

4 . Phát sinh và do w nload 1 Certificate :

1. Mở Certificate Authority (CA) Microsoft Management Console (MMC) bằng cách chọn Start – Program – Administrator Tools – Certificate Authority

2. Mở Certificate Authority

3. Chọn Pending Requests. Cửa sổ bên phải sẽ xuất hiện những yêu cầu chưa xử

4. Nhấn phải chuột vào yêu cầu chưa được xử lý đó, chọn All Tasks rồi nhấn

Issue

Sau khi đã phát sinh certificate, việc tiếp theo là download certificate 1. Mở IE, gõ http://servername/CertSrv

2. Trong trang mặc định, chọn Check on a pending certificate và chọn Next

3. Trong trang download, nhấn link Download CA Certificate 5. Cài SSL cho web site :

1. Mở Internet Service Manager

2. Mở Property của Web site muốn cài SSL 3. Thiết lập cổng SSL là 443.

4. Chọn tab Directory Security, dưới Secure Communications, nhấn Server Certificate. Để mở Certificate Installation Wizard, nhấn Next

5. Chọn Select Pending request and install the certificate, chọn Next

6. Chọn file certificate 7. Nhấn Finish.

6.

C ấ u hình :

1. Trong tab Directory Security, dưới Secure Communications, nhấn Edit.

Dialog Secure Communications sẽ xuất hiện. 2. Chọn Require Secure Chanel (SSL), nhấn OK. 3. Nhấn Apply rồi OK.

Cài đặt Apache Webserver hỗ trợ SSL 1.Các pac k ages c ầ n cài đ ặ t :

• mod-ssl-2.8.8-1.3.33.tar.gz (http://www.modssl.or g )

• openssl-0.9.7g.tar.gz (http://www.openssl.or g )

• apache-1.3.33.tar.gz (http://www.apache.or g )

• perl 5

Module openssl là thư viện thực hiện các giải thuật mã hoá DES, MD5, RSA,....

Module mod-ssl dùng để “plug-in” openssl vào apache webserver. Chép các packages này vào cùng một thư mục và giải nén.

2 . Biên d ị ch :

1. Trước tiên cài package perl trước. 2. Cài package OpenSSL

$ cd openssl-0.9.7g

$ perl Configure VC-WIN32 --prefix=c:/openssl $ ms\do_ms

3. Cài package modssl.

$ cd../mod-ssl-2.8.8-1.3.33 $ configure –with-apache=../apache-1.3.24 --with –ssl=../openssl-0.9.6.b --prefix=/usr/local/apache 4. Cài đặt Apache --enable-shared=ssl $ cd../apache-1.3.24 $ make $ make certificate $ make install

3 . Start Apache webserver with ssl :

#apachectl startssl

4 . C ấ u hình httpd.conf :

Giả sử ta muốn website aaa.bbb.ccc.ddd hỗ trợ giao thức https.

<VirtualHost aaa.bbb.ccc.ddd:443> SSLEngine on ServerName www.your-domain.netsoft DocumentRoot /www/docs/secure SSLCertificateFile /www/conf/ssl.crt/certificate-filename.crt SSLCertificateKeyFile /www/conf/ssl.key/filename.key </VirtualHost>

Ngoài ra, chúng ta có thể sử dụng dịch vụ xác nhận chữ ký trực tuyến để phát sinh một certificate cho server theo cách sau :

1. Tạo một yêu cầu chứng thực server :

a. Chạy MMC, vào Key Manager, chọn Create New Key

b. Chọn Put the request in a file that you will send to an authority, gán một tên file yêu cầu chứng chỉ, nhấn Next.

c. Gán tên và mật khẩu (mã hoá khoá bí mật và cần khi cài đặt chứng chỉ) cho cặp khoá, nhấn Next.

d. Cung cấp thông tin về tổ chức của bạn, nhấn Commit Change Now để Save khoá mới.

Kết quả được một cặp khoá mới (bí mật và công khai), một file yêu cầu chứng thực Server.

2. Chỉ WebBrowser đến trang http://digitalid.versign.com

3. Chọn WebServer bên dưới Organizations trên trang đăng ký của VeriSign 4. Chọn I want a Digital ID for Testing purpose only (miễn phí và chỉ có giá trị

trong một thời gian nhất định)

6. Cut và paste yêu cầu chứng thực vào một nơi đặc biệt và cung cấp toàn bộ các thông tin được yêu cầu.

7. Chọn Accept để chấp nhận yêu cầu, nếu yêu cầu được chấp nhận -> một email chứa chứng chỉ Server do VeriSign cung cấp sẽ được gửi trở lại.

8. Phần chứng chỉ được bắt đầu từ dòng BEGIN CERTIFICATE đến END CERTIFICATE trong email.

Tham khảo thêm về modssl và openssl tại địa chỉ : http://www.modssl.org và

http://www.openssl.or g , về các dịch vụ chứng thực điện tử tại :

Kết luận

Khoá luận nghiên cứu sử dụng công nghệ bảo mật SSL/TLS trên mạng Internet. Những kết quả mà khoá luận đã đạt được là :

Tiến hành nghiên cứu các công nghệ bảo mật mạng, từ đó chỉ ra mô hình giao thức mạng tách rời SSL/TLS được thêm vào trong mô hình OSI là có khả năng triển khai rộng khắp, tương thích với nhiều ứng dụng.

Tiếp theo là những phân tích chi tiết hoạt động của SSL, với các giao thức con như Record Protocol, Handshake Protocol, Alert Protocol, ChangeCipherSpec Protocol. Giao thức Record Protocol xác định các định dạng dùng để truyền dữ liệu, mã hoá thông tin tầng trên gửi xuống, thêm vào các tham số dùng cho việc xác thực và đảm bảo tính toàn vẹn thông điệp. Handshake Protocol sẽ sử dụng Record Protocol để trao đổi một số thông tin giữa client và server trong lần đầu thiết lập kết nối SSL như quyết định bộ mã sẽ sử dụng, trao đổi khoá phiên...Là một giao thức bảo mật sử dụng kỹ thuật mã hoá khóa công khai để mã hoá tất cả liên lạc giữa client và server, SSL cũng có một số hạn chế nhất định, như các hệ mã hoá, độ dài khoá, môi trường ứng dụng, hạn chế giao thức...và còn do các chính sách công ty và chính phủ.

Hiện nay, SSL đã có hai phiên bản là SSLv2.0 và SSLv3.0, ngoài ra còn có một biến thể khác của SSL được gọi là TLSv1.0 (Transport Layer Security). Về cơ bản TLSv1.0 hoạt động giống SSLv3.0 chỉ có những khác biệt về hệ mã hoá sử dụng, các thông báo lỗi chi tiết hơn, thông điệp kết thúc (Finished), cách xác thực thông điệp và sinh nguyên liệu khoá.

Sử dụng SSL là rất cần thiết cho các giao dịch thương mại điện tử trên mạng, tuy nhiên khi đó tốc độ truy cập website lại bị giảm đi đáng kể do phải thực hiện quá trình xác thực và mã hoá, điều này dễ gây khó chịu cho người dùng. Để tăng hiệu năng của website, chúng ta có thể sử dụng công nghệ tăng tốc SSL. Đây là một thiết bị có thể tăng tốc độ truy cập website sử dụng SSL lên đến 50 lần và trong tương lai sẽ còn nhiều cải tiến đáng kể.

Hiện nay SSL còn được nghiên cứu triển khai với các website học tập trực tuyến hay bỏ phiếu từ xa thông qua mạng Internet, phục vụ cho việc xác thực người dùng. Ví dụ, một học sinh tham gia làm bài thi phải được xác thực (quá trình xác thực client). Sau đó, khi đã làm xong và gửi lại, người đó cũng phải tiến hành ký trên bài Kết luận

làm của mình để đảm bảo thông tin không bị giả mạo hay mất mát. Người quản trị có thể dựa vào đó để xác thực định danh người dùng, kiểm tra nội dung thông tin.

Trong quá trình triển khai SSL, ngoài các thiết lập môi trường chúng ta còn cần có chứng chỉ cho server. Để tạo một chứng chỉ cho server, chúng ta phải liên lạc với một CA nào đó, dĩ nhiên là phải tốn một khoản tiền. Ngoài ra do ràng buộc của chính phủ Mỹ (cấm truyền bá các công nghệ mã hoá cấp cao ra các nước ngoài khu vực Bắc Mỹ), có thể chúng ta sẽ chỉ nhận được một chứng thực “khoá yếu”.

Tuy nhiên, chúng ta vẫn có thể có được một bộ khoá có độ dài tuỳ ý mà chẳng phải mất 1 xu nào, lại hoàn toàn không vi phạm bản quyền. Đó là sử dụng các công cụ của cộng đồng mã nguồn mở (OpenSource). OpenSSL cung cấp công nghệ mã hoá miễn phí cho bất kỳ tổ chức, cá nhân nào cho các mục đích thương mại hoặc phi thương mại. OpenSSL Project phổ biến các công cụ mã nguồn mở nhằm triển khai giao thức SSL và TLS cũng như cung cấp một thư viện lập trình mã hoá đầy đủ chức năng.

Do đó hướng phát triển nghiên cứu tiếp theo của chúng tôi sẽ là : nghiên cứu về bộ công cụ mã nguồn mở OpenSSL, thư viện lập trình mã hoá của nó và khả năng triển khai áp dụng thực tế ở Việt Nam.

Mặc dù đã có nhiều cạnh tranh về mặt công nghệ, SSL vẫn đã trở thành một phương pháp được lựa chọn trong bảo mật thương mại điện tử trên Web. Từ khi SSL trở thành một chuẩn mở, có tương lai, các bảo mật và thi hành sẽ được cải tiến và SSL sẽ tiếp tục trở thành giao thức bảo mật được sử dụng nhiều nhất được sử dụng cho các giao dịch Web.

Tài liệu tham khảo

Tài liệu tiếng Việt

[1] GS.TS Phan Đình Diệu. Lý thuyết mật mã và an toàn thông tin

[2] Đàm Mạnh Hùng. Các hệ mã hoá và ứng dụng trong thương mạI điện tử. Khoá luận tốt nghiệp. Hà Nội, 2004.

[3] PGS.TS Trịnh Nhật Tiến. Giáo trình an toàn dữ liệu Tài liệu tiếng Anh

[4] Man Young Rhee. Internet Security. Cryptographic Principles, Algorithms and Protocols. John Wiley, 2003

[5] Mitch Tulloch. Microsoft Encyclopedia of Security. Microsoft Press, 2003 [6] Network Security with OpenSSL. O’Reilly & Associates, Inc, 2002.

[7] Stephen Thomas. SSL & TLS Essentials. Securing the Web. 2000 [8] Mission Critical Internet Security. Syngress Publishing, Inc, 2001 [9] Hack Proofing Your Web Applications. Syngress Publishing, Inc, 2001.

Một phần của tài liệu NGHIÊN CỨU SỬ DỤNG CÔNG NGHỆ BẢO MẬTSSL/TLS (Trang 76)

Tải bản đầy đủ (DOCX)

(89 trang)
w