Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 62 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
62
Dung lượng
0,97 MB
Nội dung
Chơng trình KC-01: Nghiên cứu khoa học phát triển công nghệ thông tin truyền thông Đề tài KC-01-01: Nghiên cứu số vấn đề bảo mật an toàn thông tin cho mạng dùng giao thức liên mạng máy tính IP Báo cáo kết nghiên cứu Phần mỊm cã sư dơng chøng chØ sè Qun 8A: “Dïng chứng số với dịch vụ Web Mail Hà NộI-2004 Báo cáo kết nghiên cứu Phần mềm cã sư dơng chøng chØ sè Qun 7A: “Dïng chøng số với dịch vụ Web Mail Chủ trì nhóm thực hiện: PGS TS Lê Mỹ Tú Mục lơc Ch¬ng I Giao thøc Secure Socket Layer Giíi thiƯu 2-Giao thøc SSLv3 2.1-TÇng giao thøc SSLv3 Record 2.2-SSLv3 Handshake protocol 2.3-Change cipher spec Alert protocol Chơng II Sử dụng chứng số với dịch vụ Web 1-Cài đặt chứng đợc cấp cho trình duyệt 1.1-Cài đặt chứng cho trình duyệt Internet Explorer 1.1.1-Bớc 1: Cài đặt tiện ích trợ giúp 1.1.2-Bớc 2: Cài đặt chứng cho Internet Explorer 1.2-Cài đặt chứng cho trình dut Netscape 2-CËp nhËt CTL vµ CRL tõ Public Database Server 3-Cài đặt thiết lập cấu hình phần mềm E-shop có sử dụng chứng đợc cấp Apache server 3.1-Cài đặt phần mềm E-shop 3.2- Thiết lập cấu hình E-shop cã sư dơng chøng chØ trªn Apache server 4-Sư dơng https truy nhËp tíi E-shop 4.1- Sư dơng tr×nh dut Internet Explorer truy nhËp tíi E-Shop 4.1.1-Trêng hỵp chøng client server cha bị huỷ bỏ 4.1.2-Trờng hợp hai chứng bị huỷ bỏ 4.2- Sư dơng tr×nh dut Netscape truy nhËp tíi E-Shop 4.2.1-Trêng hợp chứng client server cha bị huỷ bỏ 4.2.2-Trờng hợp hai chứng bị huỷ bỏ Chơng III Sử chứng số với dịch vụ Mail Giới thiệu Đa chứng số vào Outlook Sử dụng chứng số để xác thực mà hoá th điện tử Outlook Cập nhật danh sách chứng đà huỷ bỏ 1 12 12 12 12 13 21 28 29 29 30 30 30 31 33 33 33 36 38 38 38 48 57 Ch¬ng I Giao thøc Secure Socket Layer Giíi thiƯu Secure Sockets Layer (SSL) giao thức đợc đặt giao thức tầng mạng kết nối định hớng tin tởng (TCP/IP) tầng giao thức ứng dụng (FTP, HTTP, telnet ) SSL cung cấp dịch vụ truyền thông có bảo mật client server việc cho phép client server xác thực lẫn sử dụng chữ ký số bảo mật thông tin trao đổi qua lại cách mà hóa thông tin Giao thức đợc thiết kế để trợ giúp loạt thuật toán sử dụng cho việc mà hóa, hàm băm chữ ký số Giao thức SSL có ba phiên bản: -SSLv2: phiên đầu tiªn cđa giao thøc SSL Netscape Corporation thiÕt kÕ, cha có trợ giúp chain certificate -SSLv3: phiên SSL version 3.0 Netscape Corporation thiết kế, đà có trợ giúp chain certificate đợc suport cho tất trình duyệt phổ thông -TLSv1: giao thức Transport Layer Security version 1.0, dựa sở SSLv3, đợc thiết kế IETF (Internet Engineering Task Force) nhng cha đợc support cho tất trình duyệt thông dụng (chẳng hạn Netscape giao thức này) Chú ý: -Một đặc điểm quan trọng SSLv3 TLSv1 có trợ giúp việc nạp chuỗi certificate (certificate chain) Với đặc điểm đợc bỉ sung nµy sÏ cho phÐp server vµ client cã thể thực việc xác thực lẫn mà đối tợng thực xác thực không cần phải cài intermediate issuers -TLSv1 dựa tảng SSLv3 có bổ sung phần block padding cho c¸c thuËt to¸n m· khèi, chuÈn ho¸ thø tù c¸c message bổ sung thêm thông báo phiên liên lạc -Các phiên nh thuật toán mà hoá, thuật toán trao đổi khoá, hàm băm hoàn toàn đợc cụ thể thiÕt lËp cÊu h×nh sư dơng SSL cho Web server (Apache server), số trình duyệt (trong trình duyệt phổ thông IE thuộc tính này) Với nhu cầu thực tế SSLv2 đợc sử dụng Bên cạnh có tơng ứng SSLv3 TLSv1, thực tế TLSv1 cha đợc tích hợp cho số trình duyệt phổ thông (Netscape chẳng hạn) nên phần trình chi tiết giao thức SSLv3 (đối với TLSv1 hoàn toàn tơng tự) 2-Giao thức SSLv3 Giao thức SSLv3 gồm hai thành phần Handshake protocol Record protocol SSLv3 Record protocol cung cấp chế bảo mật víi c¸c tht to¸n m· ho¸ nh DES, RC4, vµ lµ giao thøc kÕt nèi tin tëng víi viƯc sử dụng hàm kiểm tra MAC trình trao đổi liệu Còn SSLv3 Handshake protocol thực việc xác thực đối tác, trao đổi giá trị secure sư dơng cho SSLv3 Record protocol Toµn bé giao thức SSLv3 mối liên hệ với tầng ứng dụng tầng TCP mô tả nh sơ đồ dới đây: Hình Dới trình bày chi tiết tiến trình đợc thực sử dụng giao thức SSLv3 2.1-Tầng giao thøc SSLv3 Record Giao thøc SSLV3 Record lµ mét tầng giao thức Đối với tầng giao thức nói chung, gói liệu bao gồm trờng độ dài, mô tả nội dung liệu SSLv3 Record nhận liệu cần gửi từ tầng phân nhỏ thành block, nén liệu, bổ sung liệu kiểm tra, mà hoá gửi Khi nhận liệu tiến trình đợc thực ngợc lại: giải mÃ, kiểm tra, gỡ nén xếp lại gửi lên tầng Cụ thể diễn giải giai đoạn giao thức nh sau: Application Data Phân mảnh liệu Frame Frame Frame Nén liệu Mà hoá MAC Chuyển xuống tầng TCP TCP Frame Hình Trong Application data d÷ liƯu cđa SSL handshake protocol, SSL change Cipher Spec, SSL Alert protocol liệu ứng dụng khác nh HTTP, Telnet, Để phân biệt đợc loại liệu frame liệu SSL record có phần header để phân biệt Cụ thể frame liêu có cấu truc nh sau: enum { change_cipher_spec(20), alert(21), handshake(22), application_data(23), (255) }ContentType; struct{ ContentType type; ProtocolVersion version; uint16 length; opaque fragment[SSLPlaintext.length]; } SSLPlaintext; Trong đó: type phần header loại liệu version phiên SSL length độ dài liệu thật theo byte (lớn 214-1) fragment liệu ã Nén gỡ nén liệu: Sau nhận đợc liệu từ tầng trên, giao thức SSL record thiết lập nên frame liệu có cấu trúc SSLPlaintext Các frame đợc thực nén thuật toán nén đợc thiết lập handshake protocol tạo thành frame liệu tơng ứng đợc goi SSLCompressed có cấu trúc nh sau: struct{ ContentType type; ProtocolVersion version; uint16 length; opaque fragment[SSLCmpressed.length]; } SSLCompressed; Trong type version giữ nguyên từ SSLPlaintext length độ dài SSLCompressed.fragment theo byte, không 214-1 +1024 (tức thuật toán nén không đợc làm tăng thêm độ dài liệu thật 1024 byte) fragment liệu nén Tơng ứng gỡ nén liệu độ dài liệu nhận đợc lơn 214-1 bytes xuất thông báo lỗi ã Thực mà hoá MAC Để bảo vệ liệu đờng truyền giao thức SSL sử dụng thuật toán mà hoá MAC đợc định nghià CipherSpec Đối với phiên liên lạc sau thực xong giai đoạn handshake hai bên thiết lập đợc thuật toán mà hoá chung, tính đợc thuộc tính cho hàm MAC Thuật toán mà hoá hàm MAC thực biến đổi cấu trúc SSLCompressed thành SSLCiphertext Khi nhận đợc SSLCiphertext trình giải mà thực thao tác ngợc lại SSLCiphertext có cÊu tróc nh sau: struct{ ContentType type; ProtocolVersion version; uint16 length; select (CipherSpec.cipher_type){ case stream: GenericStreamCipher; case block: GenericBlockCipher; }fragment; }SSLCiphertext; Trong đó: type, version giữ nguyên từ SSLCompressed length độ dài theo byte SSLCiphertext.fragment (không 14 +2048) fragment liệu sau mà hoá SSLCompressed.fragment, bao gồm MAC -Trờng hợp không mà hoá dùng thuật toán mà dòng: stream-cipher struct{ opaque content[SSLCompressed.length]; opaque MAC[CipherSpec.hash_size]; }GenericStreamCipher; stream_cipher: tên thuật toán mà hoá Với MAC đợc sinh nh sau: hash(MAC_write_secret+pad_2+ hash(MAC_write_secret+pad_1+seq_num+ SSLCompressed.type+SSLCompressed.length+ SSLCompressed.fragment)) pad_1 giá trị 0x36 đợc lặp lại 48 lần với MD5, 40 lần với SHA pad_2 giá trị 0x5c đợc lặp lại 48 lÇn víi MD5, 40 lÇn víi SHA seq_num sè thứ tự frame xử lý hast tên thủ tục thực hàm hash đợc định nghĩa CihperSpec Chú ý: Hàm hash đợc thực trớc mà hoá tức thủ tục mà hoá thực liệu đầu vào có kết hàm hash -Trêng hỵp m· khèi: Víi trêng hỵp m· khèi cÊu tróc cđa GenericBlockCipher nh sau: block_cipher struct{ opaque content[SSLCompressed.length]; opaque MAC[CipherSpec.hash_size]; uint8 padding[GenericBlockCipher.padding_length]; uint8 padding_length; } GenericBlockCipher; padding bæ sung để độ dài plaintext chia hết cho độ dài block mà khối đợc dùng padding_length độ dài padding Chú ý: -Cũng nh trờng hợp dùng mà dòng, trờng hợp dùng mà khối liệu đầu vào mà frame bao gồm kết hàm MAC -Giá trị khởi đầu IV dùng cho frame liệu đợc tạo trình thiết lập phiên liên lạc (Handshake), thực mà hoá frame tiếp theo, IV sÏ lµ block ci cïng cđa ciphertext cđa frame trớc Đối với loại liệu øng dơng sư dơng SSL nh HTTP, Telnet, chung ta không quan tâm Dới trình bày chi tiết định dạng loại liệu giai đoạn thiết lập phiên liên lạc (Handshake, change Cipher Spec, Alert protocols) 2.2-SSLv3 Handshake protocol C¸c tham sè mật mà liên quan đến phiên liên lạc đợc thùc hiƯn th«ng qua SSLv3 Handshake Protocol, nã n»m bên SSL Record Layer Khi SSL client SSL server bắt đầu phiên liên lạc chúng cần thống phiên giao thức đợc dùng, lựa chọn thuật toán mà hoá cho phiên liên lạc, có không việc xác thực lẫn nhau, sử dụng thuật toán mà hoá khoá công khai để sinh khoá chung cho phiên liên lạc Có thể mô giai đoạn thực thiết lập phiên liên lạc sơ đồ dới đây: ClientHello Thiết lập protocol version, ID phiên, thuật toán mà hoá, phơng pháp nén, trao đổi giá trị random ServerHello Certificate Certificate Request ServerHelloDone Server gửi certificate yêu cầu Client gửi lại certificate đợc thiết lập xác thực client Certificate Certificate Verify Client gửi certificate đợc yêu cầu ChangeCipherSpec Finished ChangeCipherSpec Change CipherSuit kết thúc giai đoạn Handshake Finished Client Server Tất messages trao đổi qua lại server client phải đợc biểu diễn theo cấu trúc định trớc Định dạng cấu trúc liệu giai đoạn handshake nh sau: enum { hello_request(0),client_hello(1),server_hello(2),certificate(11), server_key_exchange(12),certificate_request(13), server_hello_done(14),certificate_verify(15), client_key_exchange(16),finished(20),(255) } struct { HandshakeType mstype; uint24 length; select (HandshakeType) { case hello_request: HelloRequest; case client_hello: ClientHello; case server_hello: ServerHello; case certificate: Certificate; case server_key_exchange: ServerKeyExchange; case certificate_request: CertificateRequest; case server_hello_done: ServerHelloDone; case certificate_verify: CertificateVerify; case client_key_exchange: ClientKeyExchange; case finished: Finished; } Cụ thể trình thực SSLv3 Handshake qua bớc trao đổi liệu client/server nh sau: ã Hello Messages -Khi client cã nhu cÇu kÕt nèi tíi server, server sÏ gưi message gọi Hellorequest tới client Dới định dạng gói Hellorequest: struct { } Hello; -Nhận đợc helllorequest, Client gửi clienthello gồm: protocol version, giá trị random, Session ID, danh sách thuật toán mà hoá, danh sách mode nén liệu định d¹ng cđa gãi clienthello: struct { uint32 gmt_unix_time; opaque random_bytes[28]; } opaque SesionID; uint8 CipherSuite[2]; enum {null(0),(255)} CompressionMethod; struct { ProtocolVersion client_version; Random random; SessionID session_id; CipherSuite cipher_suites; CompressionMethod compression_methods; } ClientHello; Trong ®ã: random_bytes: 28 byte sinh tõ bé sinh random gmt_unix_time: thêi gian hiÖn hành client_version: phiên SSL clietn dùng session_id: số ID phiên liên lạc cipher_suites: danh sách thuật toán m· ho¸ client cã compression_methods: danh s¸ch c¸c thuËt to¸n nén client có -Sau nhận đợc clienthello, server gửi trả lời gói liệu gọi serverhello gồm protocol version, giá trị sinh ngẫu nhiên, Session ID, danh s¸ch c¸c thuËt to¸n m· ho¸ danh s¸ch clienthello mà có chế độ nén Định d¹ng cđa gãi ServerHello: struct { ProtocolVersion server_version; Random random; SesionID sesion_id; CipherSuite cipher_suite; CompressionMethod compression_method; }ServerHello Trong ®ã mét sè tham sè cÇn chó ý sau: cipher_suites: mét tht toán mà hoá đợc chọn từ danh sách thuật to¸n cđa client gưi sang compression_methods: mét tht to¸n nÐn đợc chọn thuật toán client gửi sang ã Server Certificate Server gưi tiÕp server certificate (cã c¶ danh sách chain certificate, null trờng hợp server certificate) Định dạng gói Certificate: opaque ASN.1Cert struct { ASN1.Cert certificate_list; }Certificate; ã Server Key Exchange message Trong trờng hợp certificate, có certificate nhng sử dụng để ký (DSS certificate, signing-only RSA certificate) hc FORTEZZA KEA key exchange ®ỵc dïng, server sÏ gưi ServerKeyExchange: struct{ select(KeyExchangeAlgorithm){ case diffie_hellman: ServerDHParams params; Signature signature_params; case rsa: ServerRSAParams params; Signature signature_params; case fortezza_kea: ServerFortezzaParams params; }; Hình Hộp thoại yêu cầu lựa chọn nơi lu trữ chứng bạn, chọn mục Automatically select the certificate store based on the type of certificate Chän Next> ®Ĩ tiÕp tục, xuất hộp thoại nh Hình 10 45 Hình 10 Chọn Finish để kết thúc, thành công xuất hộp thoại nh Hình 11 Hình 11 Chọn OK, nh bạn đà hoàn thành công việc cài chứng số vào Outlook Để kiểm tra lại điều này, bạn vào Tools => Options =>Security => Digital IDs xt hiƯn hép tho¹i Certificate Manager mơc Personal xuất dòng mô tả chứng bạn Ví dụ, cài chứng user1 nh Hình 12 46 Hình 12 Để hiển thị chi tiết nội dung chứng bạn chọn View, xuất hộp thoại có dạng nh Hình 13 47 Hình 13 Đến bạn thực gửi th điện tử có xác thực mà hoá với ngời sử dụng khác đà cài chứng số hä trªn Outlook Chó ý r»ng chøng chØ sè cđa bạn ngời sử dụng phải đợc cấp hệ thống CA, sử dơng hƯ thèng MyCA ®Ĩ cÊp chøng chØ sè, CA phát hành chứng có tên RootCA1411 Sử dụng chứng số để xác thực mà hoá th điện tử Outlook Trong mục trình bày ứng dụng chứng số để xác thực mà hoá th điện tử Outlook, với điều kiện bạn đà thực cài đặt thành công chứng số vào Outlook (đà trình bày trên) Vấn đề đặt bạn cha có khoá công khai đối tác để mà hoá, ngợc lại đối tác bạn cha có khoá công khai bạn để thực việc kiểm tra chữ ký Để giải vấn đề này, lần bạn gửi th điện tử cho đối tác thực ký lên nội dung ý nội dung th không yêu cầu bảo mật, đồng thời Outlook phải đặt tuỳ chọn gửi chứng bạn kèm theo Khi nhận đợc th bạn, đối tác có chứng số bạn, sau đối tác gửi chứng số họ cách tơng tự nh bạn đà làm Đến bạn đối tác thực gửi th có xác thực mà hoá cho Công việc đợc trình bày chi tiết dới 48 H×nh 14 Trong H×nh 14, mơc Other People hép thoại Certificate Manager chứng đối tác mà bạn cần trao đổi th điện tử mật Lần bạn gửi chứng cho đối tác cách ký lên th (chọn Sign), sau chọn Send để gửi Chú ý Outlook bên gửi bên nhận phải đợc đặt tuú chän: Include my digital ID when sending signed messages vµ Add the senders' certificates to my address book nh Hình 15 Hộp thoại cho phép thiết lập thuật toán mà hoá (ở đặt DES) 49 Hình 15 Trong ví dụ chúng tôi, đối tác cần gửi có địa email user2@myca.org nh Hình 16 50 Hình 16 Chọn Send sau chọn Send/Recv Khi đối tác mở Outlook, nhận đợc mét th Inbox nh H×nh 17 51 H×nh 17 Mở th nhận đợc từ user1, xuất hộp thoại nh Hình 18 Hình 18 52 Ngoài thông tin ngời gửi nhận có thêm mục Security: Digitally signed and verified, tức th đà đợc ký từ ngời gửi đợc kiểm tra ®óng Mn xem néi dung th, chän Continue, sÏ hiĨn thị nội dung th nh Hình 19 Hình 19 Sau ®ã ®èi t¸c sÏ gưi chøng chØ cđa hä cho bạn nh bạn đà làm Để kiểm tra chứng đối tác đà có Outlook hay cha b¹n chän mơc Other People cđa hép thoại Certificate Manager, mục chứa chứng đối tác bạn Ví dụ nh Hình 20 53 Hình 20 Đến bên có chứng chØ cđa nhau, vµ cã thĨ thùc hiƯn gưi th có xác thực bảo mật cho Ví dụ bạn soạn th điện tử nh Hình 21 54 Hình 21 Chú ý, để gửi th có xác thực mà hoá bạn chọn tuỳ chọn Sign Encrypt Chọn Send Send/Recv, để gửi tới đối tác bạn Bên nhận nhận đợc th, hiển thị nội dung có dạng nh Hình 22 55 Hình 22 Để xem nội dung th, chọn Continue (giải mÃ), xuất nội dung th có dạng nh Hình 23 56 Hình 23 Đây th gửi có xác thực mà hoá (trong mục Security: Digital signed and verified; Encrypted) CËp nhËt danh s¸ch chứng đà huỷ bỏ Một ngời dùng có thĨ hủ bá chøng chØ cđa m×nh (víi rÊt nhiỊu lý do), để huỷ bỏ chứng bạn tham khảo chơng Do vậy, thông thờng phiên làm việc bạn nên cập nhật lại danh sách chứng đà bị huỷ bỏ CA bạn phát hành, điều giúp bạn biết đợc trạng thái chứng đối tác (chứng đà bị huỷ bỏ hay cha?), bạn tham khảo chơng Khi đà lấy đợc danh sách chứng huỷ bỏ (giả sử tệp chain.crl) bớc thực cập nhật vào Outlook tơng tự nh việc cài chứng vào Outlook, không trình bày lại Trong mục giả sử ngời sử dụng có tên user1 với địa email user1@myca.org đà huỷ bỏ chứng chØ Tríc lµm viƯc, ngêi sư dơng user2 tiÕn hành cập nhật danh sách chứng bị huỷ bỏ hệ thống CA phát hành Ngời sử dụng user2 sử dụng Outlook soạn th gửi th có xác thực mà hoá cho user1, sau chọn Send để gửi cho user1 xuất thông báo nh Hình 24 57 Hình 24 Outlook thông báo chứng user1 đà bị huỷ bỏ, user2 thực gửi th có xác thực bảo mật cho user1 đợc Chú ý r»ng, user2 vÉn cã thĨ gưi th kÌm theo ch÷ ký cho user1 bëi chøng chØ cđa user2 cha bÞ huỷ bỏ nên user1 kiểm tra chữ ký user2 Ngợc lại, user1 gửi th có xác thực mà hoá cho user2 điều xảy mà chứng user1 đà bị huỷ bỏ? Khi nhận đợc th user1, user2 hiển thị nội dung có dạng nh Hình 25 58 Hình 25 Trong mục Security: có thông báo Digitally signed - signing digital ID is revoked, tøc lµ bøc th đà đợc ký chứng đà hủ bá Chó ý r»ng, nÕu user1 gưi th chØ chọn Encrypt (mà không ký lên th đó) user2 đọc đợc bình thờng (tức giải mà đợc), bëi chøng chØ cđa user2 cha bÞ hủ bá 59 ... ngời sử dụng họ cần phải có chứng số mà đợc cấp hệ thống CA Sử dụng hệ thống cấp chứng MyCA để phát hành chứng số cho ngời sử dụng có địa email lần lợt user1@myca.org user2@myca.org ngời dùng. .. nối đến server có sử dụng chế độ bảo mật không thành công, hình xuất thông báo: Hình 41 37 Chơng III Sử dụng chứng số với dịch vơ Mail Giíi thiƯu Mét nh÷ng øng dơng quan trọng chứng số mà hoá xác... hệ thống CA, sử dụng hệ thống MyCA để cấp chứng số, CA phát hành chứng có tên RootCA1411 Sử dụng chứng số để xác thực mà hoá th điện tử Outlook Trong mục trình bày ứng dụng chứng số để xác thực