Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail

Tựa đề: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail Tác giả: Lê, Mỹ Tú Từ khóa: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail Ngày phát hành: 2007 Tóm tắt: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail

pdf62 trang | Chia sẻ: banmai | Lượt xem: 1776 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP - Phần mềm có sử dụng chứng chỉ số - Dùng chứng chỉ số với các dịch vụ web và mail, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ch−¬ng tr×nh KC-01: Nghiªn cøu khoa häc ph¸t triÓn c«ng nghÖ th«ng tin vµ truyÒn th«ng §Ò tµi KC-01-01: Nghiªn cøu mét sè vÊn ®Ò b¶o mËt vµ an toµn th«ng tin cho c¸c m¹ng dïng giao thøc liªn m¹ng m¸y tÝnh IP B¸o c¸o kÕt qu¶ nghiªn cøu PhÇn mÒm cã sö dông chøng chØ sè QuyÓn 8A: “Dïng chøng chØ sè víi c¸c dÞch vô Web vµ Mail” Hµ NéI-2004 B¸o c¸o kÕt qu¶ nghiªn cøu PhÇn mÒm cã sö dông chøng chØ sè QuyÓn 7A: “Dïng chøng chØ sè víi c¸c dÞch vô Web vµ 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 1 1. Giíi thiÖu 1 2-Giao thøc SSLv3 1 2.1-TÇng giao thøc SSLv3 Record 2 2.2-SSLv3 Handshake protocol 5 2.3-Change cipher spec vµ Alert protocol 9 Ch−¬ng II. Sö dông chøng chØ sè víi dÞch vô Web 12 1-Cµi ®Æt chøng chØ ®−îc cÊp cho tr×nh duyÖt 12 1.1-Cµi ®Æt chøng chØ cho tr×nh duyÖt Internet Explorer 12 1.1.1-B−íc 1: Cµi ®Æt tiÖn Ých trî gióp 12 1.1.2-B−íc 2: Cµi ®Æt chøng chØ cho Internet Explorer 13 1.2-Cµi ®Æt chøng chØ cho tr×nh duyÖt Netscape 21 2-CËp nhËt CTL vµ CRL tõ Public Database Server 28 3-Cµi ®Æt thiÕt lËp cÊu h×nh phÇn mÒm E-shop cã sö dông chøng chØ ®−îc cÊp trªn Apache server 29 3.1-Cµi ®Æt phÇn mÒm E-shop 29 3.2- ThiÕt lËp cÊu h×nh E-shop cã sö dông chøng chØ trªn Apache server 30 4-Sö dông https truy nhËp tíi E-shop 30 4.1- Sö dông tr×nh duyÖt Internet Explorer truy nhËp tíi E-Shop 30 4.1.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá 31 4.1.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá 33 4.2- Sö dông tr×nh duyÖt Netscape truy nhËp tíi E-Shop 33 4.2.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá 33 4.2.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá 36 Ch−¬ng III. Sö chøng chØ sè víi dÞch vô Mail 38 1. Giíi thiÖu 38 2. §−a chøng chØ sè vµo Outlook 38 3. Sö dông chøng chØ sè ®Ó x¸c thùc vµ m· ho¸ th− ®iÖn tö trªn Outlook 48 4. CËp nhËt danh s¸ch c¸c chøng chØ ®· huû bá 57 Ch−¬ng I Giao thøc Secure Socket Layer 1. Giíi thiÖu Secure Sockets Layer (SSL) lµ mét giao thøc cã thÓ ®−îc ®Æt ë gi÷a giao thøc tÇng m¹ng kÕt nèi ®Þnh h−íng tin t−ëng (TCP/IP) vµ 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 gi÷a client vµ server b»ng viÖc cho phÐp client vµ server x¸c thùc lÉn nhau sö dông ch÷ ký sè vµ b¶o mËt th«ng tin trao ®æi qua l¹i b»ng c¸ch m· hãa c¸c th«ng tin ®ã. Giao thøc nµy ®−îc thiÕt kÕ ®Ó cã thÓ trî gióp mét lo¹t c¸c thuËt to¸n sö dông cho viÖc m· hãa, hµm b¨m vµ ch÷ ký sè. Giao thøc SSL cã ba 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Õ, ch−a cã trî gióp chain certificate. -SSLv3: ®©y lµ phiªn b¶n SSL version 3.0 do Netscape Corporation thiÕt kÕ, ®· cã trî gióp chain certificate vµ ®−îc suport cho tÊt c¶ c¸c tr×nh duyÖt phæ th«ng. -TLSv1: ®©y lµ 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 (Internet Engineering Task Force) nh−ng hiÖn nã ch−a ®−îc support cho tÊt c¶ c¸c tr×nh duyÖt th«ng dông (ch¼ng h¹n Netscape lµ kh«ng cã giao thøc nµy). Chó ý: -Mét ®Æc ®iÓm quan träng cña SSLv3 vµ TLSv1 lµ cã trî gióp viÖc n¹p chuçi c¸c certificate (certificate chain). Víi ®Æc ®iÓm ®−îc bæ sung nµy sÏ cho phÐp server vµ client cã thÓ thùc hiÖn viÖc x¸c thùc lÉn nhau mµ cã thÓ ®èi t−îng thùc hiÖn x¸c thùc kh«ng cÇn ph¶i cµi c¸c intermediate issuers. -TLSv1 dùa trªn nÒn t¶ng lµ SSLv3 trong ®ã 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 vµ bæ sung thªm c¸c th«ng b¸o trong phiªn liªn l¹c. -C¸c phiªn b¶n trªn còng nh− c¸c thuËt to¸n m· ho¸, thuËt to¸n trao ®æi kho¸, hµm b¨m hoµn toµn cã thÓ ®−îc chØ ra cô thÓ khi thiÕt lËp cÊu h×nh sö dông SSL cho Web server (Apache server), vµ mét sè tr×nh duyÖt (trong c¸c tr×nh duyÖt phæ th«ng IE kh«ng cã thuéc tÝnh nµy). Víi nhu cÇu thùc tÕ hiÖn nay SSLv2 Ýt ®−îc sö dông. Bªn c¹nh ®ã do cã sù t−¬ng øng gi÷a SSLv3 vµ TLSv1, h¬n n÷a hiÖn t¹i trong thùc tÕ TLSv1 ch−a ®−îc tÝch hîp cho mét sè tr×nh duyÖt phæ th«ng (Netscape ch¼ng h¹n) nªn trong phÇn nµy chóng t«i chØ tr×nh chi tiÕt vÒ 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 vµ Record protocol. SSLv3 Record protocol cung cÊp c¬ chÕ b¶o mËt víi c¸c thuËt 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 trong qu¸ tr×nh trao ®æi d÷ liÖu. Cßn SSLv3 Handshake protocol thùc hiÖn viÖc x¸c thùc ®èi t¸c, trao ®æi c¸c gi¸ trÞ secure sö dông cho SSLv3 Record 1 protocol. Toµn bé giao thøc SSLv3 vµ mèi liªn hÖ cña nã víi tÇng øng dông vµ tÇng TCP cã thÓ m« t¶ nh− s¬ ®å d−íi ®©y: H×nh 1. D−íi ®©y chóng t«i sÏ tr×nh bµy tuÇn tù chi tiÕt c¸c tiÕn tr×nh ®−îc thùc hiÖn khi 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 mçi tÇng giao thøc nãi chung, mét gãi d÷ liÖu sÏ bao gåm c¸c tr−êng ®é dµi, m« t¶ vµ néi dung d÷ liÖu. SSLv3 Record nhËn d÷ liÖu cÇn göi tõ tÇng trªn ph©n nhá thµnh tõng block, nÐn d÷ liÖu, bæ sung d÷ liÖu kiÓm tra, m· ho¸ vµ göi. Khi nhËn d÷ liÖu vÒ tiÕn tr×nh ®−îc thùc hiÖn ng−îc l¹i: gi¶i m·, kiÓm tra, gì nÐn vµ s¾p xÕp l¹i råi göi lªn tÇng trªn. Cô thÓ cã thÓ diÔn gi¶i c¸c giai ®o¹n trong giao thøc nµy nh− sau: TCP Frame Frame Frame Frame Application Data Ph©n m¶nh d÷ liÖu NÐn d÷ liÖu M· ho¸ vµ MAC ChuyÓn xuèng tÇng TCP H×nh 2. Trong ®ã Application data cã thÓ lµ d÷ liÖu cña SSL handshake protocol, SSL change Cipher Spec, SSL Alert protocol hoÆc d÷ liÖu cña c¸c øng dông kh¸c nh− HTTP, Telnet, ... §Ó ph©n biÖt ®−îc tõng lo¹i d÷ liÖu ®ã trong mçi frame d÷ liÖu 2 cña SSL record ®Òu cã phÇn header ®Ó ph©n biÖt. Cô thÓ mçi frame d÷ 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 chÝnh lµ phÇn header chØ ra lo¹i d÷ liÖu g×. version phiªn b¶n SSL. length ®é dµi d÷ liÖu thËt theo byte (lín nhÊt lµ 214-1). fragment d÷ liÖu. • NÐn vµ gì nÐn d÷ liÖu: Sau khi nhËn ®−îc d÷ liÖu tõ tÇng trªn, giao thøc SSL record sÏ thiÕt lËp nªn c¸c frame d÷ liÖu cã cÊu tróc lµ c¸c SSLPlaintext. C¸c frame nµy sÏ ®−îc thùc hiÖn nÐn b»ng thuËt to¸n nÐn ®−îc thiÕt lËp bëi handshake protocol t¹o thµnh c¸c frame d÷ liÖu t−¬ng øng ®−îc goi lµ SSLCompressed cã cÊu tróc nh− sau: struct{ ContentType type; ProtocolVersion version; uint16 length; opaque fragment[SSLCmpressed.length]; } SSLCompressed; Trong ®ã type vµ version gi÷ nguyªn tõ SSLPlaintext. length ®é dµi SSLCompressed.fragment theo byte, kh«ng qu¸ 214-1 +1024 (tøc lµ thuËt to¸n nÐn kh«ng ®−îc lµm t¨ng thªm ®é dµi cña d÷ liÖu thËt qu¸ 1024 byte). fragment d÷ liÖu nÐn. T−¬ng øng khi gì nÐn d÷ liÖu nÕu ®é dµi d÷ liÖu nhËn ®−îc l¬n h¬n 214-1 bytes th× sÏ xuÊt hiÖn th«ng b¸o lçi. • Thùc hiÖn m· ho¸ vµ MAC §Ó b¶o vÖ d÷ liÖu trªn ®−êng truyÒn giao thøc SSL sö dông thuËt to¸n m· ho¸ vµ MAC ®−îc ®Þnh nghi· trong CipherSpec hiÖn t¹i. §èi víi mçi phiªn liªn l¹c sau khi thùc hiÖn xong giai ®o¹n handshake hai bªn sÏ thiÕt lËp ®−îc thuËt to¸n m· ho¸ chung, vµ tÝnh ®−îc c¸c thuéc tÝnh cho hµm MAC. ThuËt to¸n m· ho¸ vµ hµm MAC sÏ thùc hiÖn biÕn ®æi cÊu tróc SSLCompressed thµnh SSLCiphertext. Khi nhËn ®−îc SSLCiphertext qu¸ tr×nh gi¶i m· sÏ thùc hiÖn thao t¸c ng−îc l¹i. SSLCiphertext cã cÊu tróc nh− sau: struct{ ContentType type; 3 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 cña SSLCiphertext.fragment (kh«ng qu¸ 214+2048). fragment d÷ liÖu sau khi m· ho¸ SSLCompressed.fragment, bao gåm c¶ MAC. -Tr−êng hîp kh«ng m· ho¸ hoÆc 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ù cña frame ®ang xö lý. hast tªn thñ tôc thùc hiÖn hµm hash ®−îc ®Þnh nghÜa trong CihperSpec. Chó ý: Hµm hash ®−îc thùc hiÖn tr−íc khi m· ho¸ tøc lµ khi thñ tôc m· ho¸ thùc hiÖn d÷ liÖu ®Çu vµo cã c¶ kÕt qu¶ cña 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 cña plaintext chia hÕt cho ®é dµi cña block m· khèi ®−îc dïng. 4 padding_length ®é dµi cña padding. Chó ý: -Còng nh− ®èi víi tr−êng hîp dïng m· dßng, ®èi víi tr−êng hîp dïng m· khèi d÷ liÖu ®Çu vµo khi m· mét frame bao gåm c¶ kÕt qu¶ hµm MAC. -Gi¸ trÞ khëi ®Çu cña IV dïng cho frame d÷ liÖu ®Çu tiªn ®−îc t¹o trong qu¸ tr×nh thiÕt lËp phiªn liªn l¹c (Handshake), cßn khi thùc hiÖn m· ho¸ c¸c frame tiÕp theo, IV sÏ lµ block cuèi cïng cña ciphertext cña frame tr−íc nã. §èi víi c¸c lo¹i d÷ liÖu cña c¸c øng dông sö dông SSL nh− HTTP, Telnet, ... chung ta kh«ng quan t©m. D−íi ®©y chóng t«i sÏ tr×nh bµy chi tiÕt ®Þnh d¹ng cña c¸c lo¹i d÷ liÖu trong 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 mét phiªn liªn l¹c ®−îc thùc hiÖn th«ng qua SSLv3 Handshake Protocol, nã n»m ngay bªn trªn SSL Record Layer. Khi SSL client vµ SSL server b¾t ®Çu mét phiªn liªn l¹c chóng cÇn thèng nhÊt vÒ phiªn b¶n cña giao thøc sÏ ®−îc dïng, lùa chän thuËt to¸n m· ho¸ cho phiªn liªn l¹c, cã thÓ cã hoÆc kh«ng viÖc x¸c thùc lÉn nhau, vµ 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« pháng giai ®o¹n thùc hiÖn thiÕt lËp phiªn liªn l¹c bëi s¬ ®å d−íi ®©y: ServerClient Change CipherSuit vµ kÕt thóc giai ®o¹n Handshake Client göi certificate nÕu ®−îc yªu cÇu Server göi certificate vµ yªu cÇu Client göi l¹i certificate nÕu ®−îc thiÕt lËp x¸c thùc client 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 Finished ChangeCipherSpec Finished ChangeCipherSpec Certificate Verify Certificate ServerHelloDone Certificate Request Certificate ServerHello ClientHello TÊt c¶ c¸c messages trao ®æi qua l¹i gi÷a server vµ client ph¶i ®−îc biÓu diÔn theo mét cÊu tróc ®Þnh tr−íc. §Þnh d¹ng cña cÊu tróc d÷ liÖu trong giai ®o¹n handshake nh− sau: 5 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Ó qu¸ tr×nh thùc hiÖn SSLv3 Handshake qua c¸c b−íc trao ®æi d÷ liÖu gi÷a client/server nh− sau: • Hello Messages. -Khi mét client cã nhu cÇu kÕt nèi tíi server, server sÏ göi mét message gäi lµ Hellorequest tíi client ®ã. D−íi ®©y lµ ®Þnh d¹ng cña gãi Hellorequest: struct { } Hello; -NhËn ®−îc helllorequest, Client göi clienthello gåm: protocol version, mét gi¸ trÞ random, Session ID, danh s¸ch c¸c thuËt to¸n m· ho¸, danh s¸ch c¸c mode nÐn d÷ 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. 6 gmt_unix_time: thêi gian hiÖn hµnh. client_version: phiªn b¶n SSL clietn dïng. session_id: sè ID cña phiªn liªn l¹c cipher_suites: danh s¸ch c¸c thuËt to¸n m· ho¸ client cã. compression_methods: danh s¸ch c¸c thuËt to¸n nÐn client cã. -Sau khi nhËn ®−îc clienthello, server sÏ göi tr¶ lêi b»ng gãi d÷ liÖu gäi lµ 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¸ trong danh s¸ch clienthello mµ nã cã vµ c¸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 thuËt to¸n m· ho¸ ®−îc chän tõ danh s¸ch c¸c thuËt to¸n cña client göi sang. compression_methods: mét thuËt to¸n nÐn ®−îc chän trong c¸c thuËt to¸n client göi sang. • Server Certificate Server göi tiÕp server certificate (cã c¶ danh s¸ch c¸c chain certificate, còng cã thÓ lµ null trong tr−êng hîp server kh«ng cã certificate). §Þnh d¹ng cña gãi Certificate: opaque ASN.1Cert struct { ASN1.Cert certificate_list; }Certificate; • Server Key Exchange message Trong tr−êng hîp kh«ng cã certificate, hoÆc cã certificate nh−ng chØ sö dông ®Ó ký (DSS certificate, signing-only RSA certificate) hoÆc 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; }; 7 }ServerKeyExchange; Chó ý: -BiÕn params lµ mét kiÓu cÊu tróc trong ®ã l−u c¸c tham sè thùc hiÖn thùc hiÖn mét thuËt to¸n trao ®æi kho¸ c«ng khai nµo ®ã. Ch¼ng h¹n víi Diffie-Hellman params gåm p, g, vµ tham sè kho¸ c«ng khai cña server g^x mod p. -Signature ë ®©y chØ lµ mét cÊu tróc chØ ra thuËt to¸n b¨m vµ kÕt qu¶ sö dông hµm b¨m c¸c gi¸ trÞ random cña client, server vµ params cña server. Ch¼ng h¹n víi dsa: Signature lµ SHA(ClientHello.random + ServerHello.random + ServerParams). • Certificate Request Sau ®ã Server sÏ göi tiÕp CertificateRequest víi ®Þnh d¹ng nh− sau: struct { ClientCertificateType certificate_types ; DistinguishedName certificate_authorities ; } CertificateRequest; Trong ®ã ClientCertificateType liÖt kª c¸c kiÓu certificate (rsa_sign, dss_sign, ...) mµ server cã thÓ chÊp nhËn. DistinguishedName lµ danh s¸ch c¸c DN cña c¸c certificate ®−îc server chÊp nhËn lµ certificate authority (CA certificate). • Server hello done §©y lµ message th«ng b¸o hÕt giai ®o¹n göi serverhello, ®Þnh d¹ng cña goi nµy nh− sau: struct{ } ServerHelloDone; • Client certificate Client chØ ®−îc phÐp göi gãi d÷ liÖu nµy sau khi ®· nhËn ®−îc gãi ServerHelloDone vµ nã còng chØ ®−îc göi nÕu server cã yªu cÇu certificate. NÕu kh«ng cã mét certificate nµo t−¬ng øng víi mét trong c¸c kiÓu certificate, vµ do mét CA nµo ®ã trong CertificateRequest server göi cho th× client sÏ göi th«ng b¸o no_certificate, khi ®ã tuú thuéc vµo viÖc cã yªu cÇu hay kh«ng yªu cÇu x¸c thùc client mµ server ®−a ra khuyÕn c¸o hoÆc b¸o lçi trong qu¸ tr×nh handshake. Tr−êng hîp nÕu client cã certificate nã sÏ ®−îc göi trong gãi cã ®Þnh d¹ng certificate chóng t«i ®· nªu ë trªn. • Client key exchange message Gãi nµy ®−îc göi tõ client víi ®Þnh d¹ng nh− sau: struct { select (KeyExchangeAlgorithm) { case rsa: EncryptedPreMasterSecret; case difie_hellman: ClientDiffieHellmanPublic; case fortezza_kea: FortezzaKeys; } }ClientKeyExchange; Trong ®ã: 8 - NÕu rsa ®−îc chän EncryptedPreMasterSecret sÏ lµ kÕt qu¶ m· ho¸ kho¸ c«ng khai RSA (víi c¸c tham sè kho¸ cña server) cña ®Çu vµo lµ 48 byte (46 byte random sinh bëi client, 2 byte chØ version cao nhÊt cña giao thøc mµ client ®−îc support) - NÕu DH ®−îc chän, ClientDiffieHellmanPublic lµ thµnh phÇn c«ng khai cña client (g^y mod p). - NÕu fortezza_kea ®−îc chän, FortezzaKey lµ mét cÊu tróc chØ ra ®Çy ®ñ c¸c thµnh cÇn cho cho viÖc thiÕt lËp kho¸ riªng cña phiªn liªn l¹c ®ã. • Certificate verify §©y lµ gãi d÷ liÖu th«ng b¸o qu¸ tr×nh x¸c thùc lÉn nhau gi÷a client vµ server. • Finished KÕt thóc giai ®o¹n Handshake (gãi d÷ liÖu nµy chØ ®−îc trao ®æi ngay sau khi qu¸ tr×nh thèng nhÊt thuËt to¸n m· ho¸ kÕt thóc). 2.3-Change cipher spec vµ Alert protocol • Change cipher spec protocol Giao thøc nµy chØ bao gåm mét message trong ®ã thùc hiÖn chøc n¨ng th«ng b¸o viÖc thiÕt lËp c¸c thuéc tÝnh mËt m· cho phiªn liªn l¹c ®· hoµn thµnh. Message nµy chØ cã mét byte duy nhÊt víi gi¸ trÞ lµ 1. struct{ enum{change_cipher_Spec(1),(255)} type; }ChangeCipherSpec; Change cipher spec message ®−îc göi tõ c¶ m¸y client lÉn m¸y server ®Ó th«ng b¸o cho bªn nhËn biÕt b¾t ®Çu tõ c¸c frame d÷ liÖu tiÕp theo sÏ ®−îc m· ho¸ bëi CipherSpec vµ kho¸ võa thiÕt lËp ®−îc. Client göi message ngay sau khi göi xong KeyExchange message, cßn server göi ngay sau khi nhËn vµ xö lý xong KeyExchange tõ client. • Alert protocol Mét trong nh÷ng kiÓu d÷ liÖu ®−îc suport bëi SSL record layer lµ kiÓu alert (message th«ng b¸o). C¸c alert message truyÒn t¶i c¸c th«ng b¸o lçi trong qu¸ tr×nh thiÕt lËp còng nh− trao ®æi d÷ liÖu cña mét phiªn liªn l¹c. Còng nh− c¸c lo¹i message kh¸c, alert message còng ®−îc m· ho¸ vµ nÐn. CÊu tróc cña alert message nh− sau: enum {warning(1),fatal(2),(255)} AlertLevel; enum { close_notify(0), unexpected_message(10), bad_record_mac(20), decompression_failure(30), handshake_failure(40), no_certificate (41), bad_certificate(42), unsuported_certificate(43), certificate_revoked(44), 9 certificate_expired(45), certificate_unknow(46), illegal_parameter(47), (255) } AlertDescription; struct { AlertLevel level; AlertDescription description; } Alert; Qu¸ tr×nh tÝnh kho¸ cho phiªn liªn l¹c: NÕu mäi b−íc trong qu¸ tr×nh handshake ®Òu tr«i ch¶y, server/client sÏ thùc hiÖn xong b−íc x¸c thùc lÉn nhau vµ hai bªn thiÕt lËp ®−îc thuËt to¸n m· ho¸, thuËt to¸n MAC vµ gi¸ trÞ "mÇm kho¸" chung sö dông cho phiªn liªn l¹c ®ã. C¸c thuéc tÝnh mËt m· sau khi thiÕt lËp gi÷a hai m¸y sÏ ®−îc l−u vµo CipherSpec dïng trong suèt phiªn liªn l¹c ®ã. CÊu tróc cña CipherSpec nh− sau: enum {stream,block} CipherType; enum {true, false} IsExportable; enum {nul, rc4, rc2, des, 3des, des40, fortezza} BulkCipherAlgorithm; enum {null, md5, sha1} MACAlgorithm; struct { BulkCipherAlgorithm bulk_cipher_algorithm; MACAlgorithm mac_algorithm; CipherType cipher_type; IsExportable is_exportable; uint8 hash_size; uint8 key_masterial; uint8 IV_size; } CipherSpec; Gi¸ trÞ mÇm kho¸ ®−îc ®Æt vµo biÕn pre_master_secret (tr−êng hîp thuËt to¸n trao ®æi kho¸ RSA ®−îc dïng, gi¸ trÞ mÇm kho¸ ®−îc server gi¶i m· tõ biÕn EncryptPreMasterSecret, nÕu thuËt to¸n DH ®−îc chän gi¸ trÞ mÇm kho¸ sÏ lµ g^x.y mod p, ...), tõ gi¸ trÞ kho¸ ban ®Çu nµy qu¸ tr×nh tÝnh kho¸ cho phiªn liªn l¹c ®−îc thùc hiÖn trªn mçi m¸y nh− sau: -ChuyÓn pre_master_key thµnh master_secret b»ng c¸ch: master_secret=MD5(pre_master_secret + SHA('A' +pre_master_secret + ClientHello.random + ServerHello.random)) + MD5(pre_master_secret + SHA('BB' +pre_master_secret + ClientHello.random + ServerHello.random)) + MD5(pre_master_secret + SHA('CCC' +pre_master_secret + ClientHello.random + ServerHello.random)) ; -ChuyÓn ®æi tõ master_secret thµnh keys vµ MAC secrets: tõ master_secret sÏ ®−îc b¨m thµnh c¸c gi¸ trÞ kho¸, IV vµ MAC secret sö dông cho c¸c thuéc tÝnh ®−îc chØ ra trong CipherSpec hiÖn t¹i. key_block= MD5(master_secret + SHA('A' +pre_master_secret + ClientHello.random + ServerHello.random)) + 10 MD5(master_secret + SHA('BB' +pre_master_secret + ClientHello.random + ServerHello.random)) + MD5(master_secret + SHA('CCC' +pre_master_secret + ClientHello.random + ServerHello.random)) + ....; cho ®Õn khi key_block ®ñ cho nh÷ng thuéc tÝnh ®−îc chØ trong CipherSpec, tøc lµ ®ñ ®Ó lÊp ®Çy c¸c biÕn: client_write_MAC_secret[CipherSpec.hash_size] server_write_MAC_secret[CipherSpec.hash_size] client_write_key[CipherSpec.key_masterial] server_write_key[CipherSpec.key_masterial] client_write_IV[CipherSpec.IV_size] server_write_IV[CipherSpec.IV_size] NÕu ®èi víi c¸c thuËt to¸n m· ho¸ none-export, th× qu¸ tr×nh tÝnh kho¸, IV vµ MAC secret ®Õn ®©y lµ kÕt thóc. Cßn ®èi víi c¸c thuËt to¸n m· ho¸ exportable th× qu¸ tr×nh tÝnh kho¸ cÇn thªm mét b−íc n÷a: filnal_client_write_key=MD5(client_write_key + ClientHello.random + ServerHello.random)); filnal_server_write_key=MD5(server_write_key + ClientHello.random + ServerHello.random)); vµ IV th× ®−îc tÝnh nh−: client_write_IV=MD5(ClientHello.random + ServerHello.random); server_write_IV=MD5(ClientHello.random + ServerHello.random); 11 Ch−¬ng II Sö dông chøng chØ sè víi dÞch vô Web Sau khi ®−îc cÊp chøng chØ ng−êi sö dông cã thÓ dïng nã cho nhiÒu môc ®Ých kh¸c nhau. Trong ch−¬ng nµy chóng t«i tr×nh bµy viÖc sö dông chøng chØ ®−îc cÊp trªn øng dông Web. Cô thÓ lµ viÖc sö dông mét chøng chØ thiÕt lËp mét øng dông th−¬ng m¹i ®iÖn tö ë møc ®Ò m« (E-shop) trªn Apache server ®Ó mäi ng−êi sö dông chØ cã thÓ truy cËp ®Õn nã qua https, vµ cµi ®Æt mét chøng chØ vµo tr×nh duyÖt Internet Explorer trªn m«i tr−êng Windows, mét chøng chØ cho Netscape trªn Linux, ®Ó ng−êi sö dông cã thÓ dïng mét trong hai tr×nh duyÖt trªn truy cËp ®Õn E- Shop b»ng c¸ch sö dông https. 1-Cµi ®Æt chøng chØ ®−îc cÊp cho tr×nh duyÖt 1.1-Cµi ®Æt chøng chØ cho tr×nh duyÖt Internet Explorer 1.1.1-B−íc 1: Cµi ®Æt tiÖn Ých trî gióp C¸c chøng chØ hÖ thèng MyCA cÊp cho ng−êi dïng hiÖn t¹i ®Òu sö dông thuËt to¸n ch÷ ký sè RSA víi sè modulo 1024 bÝt (®©y còng chÝnh lµ ®é dµi kho¸ c«ng khai cña ng−êi dïng), tuy nhiªn ®èi víi øng dông Internet Explorer 5.0 (hoÆc phiªn b¶n thÊp h¬n) chØ cho phÐp cµi ®Æt c¸c chøng chØ víi ®é dµi kho¸ c«ng khai kh«ng qu¸ 512 bÝt. V× vËy ®Ó cã thÓ cµi ®Æt ®−îc chøng chØ ®· ®−îc cÊp cho tr×nh duyÖt IE, ng−êi sö dông cÇn cµi ®Æt phÇn mÒm hç trî tr−íc. TiÖn Ých thùc hiÖn viÖc cµi ®Æt phÇn mÒm hç trî lµ tÖp ie5dom.exe ®−îc cung cÊp cïng ch−¬ng tr×nh sinh kho¸ (trong ®Üa mÒm thø nhÊt). §Ó cµi ®Æt ng−êi sö dông chØ cÇn nh¾p ®óp chuét vµo tÖn tÖp ie5dom.exe, khi ®ã trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 1. H×nh 1 Ng−êi sö dông chän nót lÖnh "Yes", qu¸ tr×nh n©ng cÊp ®−îc tiÕn hµnh vµ kÕt thóc khi trªn mµn h×nh xuÊt hiÖn th«ng b¸o nh− h×nh 2. H×nh 2 12 Ng−êi sö dông chän nót lÖnh "Yes" ®Ó kÕt thóc qu¸ tr×nh cµi ®Æt, m¸y tÝnh sÏ ®−îc khëi ®éng l¹i ®Ó tiÖn Ých ®· cµi cã hiÖu lùc. 1.1.2-B−íc2: Cµi ®Æt chøng chØ cho Internet Explorer Gi¶ sö ng−êi sö dông ®−îc cÊp chøng chØ ®−íi ®Þnh d¹ng PKCS12 lµ tÖp 2000001.p12. §Ó cµi ®Æt chøng chØ cho Internet Explorer, ng−êi sö dông chän vµo tÖp nµy, råi nhÊn chuét ph¶i. H×nh 3 Chän chøc n¨ng "Install PFX", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 4. 13 H×nh 4 Ng−êi sö dông chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 5. H×nh 5 14 Ng−êi sö dông chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 6. H×nh 6 Ng−êi sö dông nhËp mËt khÈu (lµ mËt khÈu do trung t©p cung cÊp khi trung t©m CA thùc hiÖn viÖc chuyÓn ®æi ®Þnh d¹ng cña chøng chØ tr−íc khi cÊp cho ng−êi sö dông). Chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 7. 15 H×nh 7 Ng−êi sö dông chän "Next", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 8. H×nh 8 16 Ng−êi sö dông chän "Finish", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 9 (cã thÓ ph¶i ®îi trong Ýt gi©y, tïy thuéc vµo tèc ®é m¸y tÝnh). H×nh 9 Ng−êi sö dông chän "Yes", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i th«ng b¸o qu¸ tr×nh cµi ®Æt chøng chØ ®· kÕt thóc. H×nh 10 Sau khi cµi ®Æt nÕu ng−êi sö dông më tr×nh duyÖt IE, chän menu /Tools/Internet Options, chän tab "contents" råi chän nót lÖnh "Certificate" sÏ thÊy xuÊt hiÖn chøng chØ võa ®−îc cµi ®Æt trong môc 17 H×nh 11 Muèn xem l¹i th«ng tin vÒ chøng chØ cña m×nh ng−êi sö dông chän nót lÖnh "View", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 12. 18 H×nh 12 Cïng víi viÖc cµi ®Æt chøng chØ cña ng−êi sö dông, c¸c chøng chØ cña CA (khi sö dông m« h×nh chain CA) còng ®ång thêi ®−îc cµi ®Æt, nÕu chän tab "Trust Root Certificate Authorities" sÏ thÊy xuÊt hiÖn RootCA ph¸t hµnh ra chøng chØ cña ng−êi sö dông nh− h×nh 13 (ë ®©y chøng chØ cña ng−êi sö dông ®−îc RootCA ký nªn trong danh s¸ch chØ cã mét CA ®−îc cµi ®Æt ®ã lµ Root CA). 19 H×nh 13 Néi dung chøng chØ cña Root CA sÏ ®−îc l−u vµo Registry (trong môc /system/certificates/Root/Certificate). Sau khi cµi ®Æt xong c¸c chøng chØ, ng−êi sö dông cÇn thiÕt lËp cÊu h×nh cho IE: Chän menu Tools/Internet Options/Advanced, hép héi tho¹i xuÊt hiÖn nh− h×nh 14. 20 H×nh 14 Trong môc "Settings" chän "Use SSL 3.0" (hoÆc "Use TLS 1.0"), råi nhÊn "OK". 1.2-Cµi ®Æt chøng chØ cho tr×nh duyÖt Netscape Qu¸ tr×nh cµi ®Æt chøng chØ cho Netscape theo c¸c b−íc sau: -Trªn menu cña tr×nh duyÖt Netscape chän chøc n¨ng "Security", hép héi tho¹i xuÊt hiÖn nh− h×nh 15 21 H×nh 15 -Chän "Yours" trong môc "Yours Certificates", råi chän "Import a Certificate", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 26 H×nh 26 -Ng−êi sö dông nhËp mËt khÈu ®Ó truy nhËp tíi c¬ së d÷ liÖu l−u chøng chØ cña Netscape (mËt khÈu nµy ng−êi sö dông thiÕt lËp b»ng c¸ch sö dông môc Passwords trong hép héi tho¹i 15), chän "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 17. 22 H×nh 21 -Ng−êi sö dông chän tÖp chøng chØ cÇn cµi ®Æt (ë ®©y lµ tÖp 2000002.p12), råi nhÊn "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 18. H×nh 18 -Ng−êi sö dông gâ mËt khÈu (lµ mËt khÈu do trung t©m cung cÊp khi thùc hiÖn cÊp chøng chØ cho ng−êi sö dông), nhÊn "OK" trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 19 23 H×nh 19 -Ng−êi sö dông nhËp tªn chøng chØ (tªn nµy chØ cã ý nghÜa khi hiÓn thÞ trong danh môc c¸c chøng chØ ®−îc cµi ®Æt), nhÊn "OK" hép héi tho¹i xuÊt hiÖn nh− h×nh 20 th«ng b¸o viÖc cµi ®Æt chøng chØ ®· thµnh c«ng. H×nh 20 -Sau khi cµi ®Æt xong chøng chØ, ta thÊy chøng chØ võa ®−îc cµi ®Æt xuÊt hiÖn trong danh s¸ch c¸c chøng chØ ®· ®−îc cµi ®Æt nh− h×nh 21. 24 H×nh 21 -Ng−êi sö dông nót lÖnh "view" trªn mµn h×nh sÏ xuÊt hiÖn hép héi tho¹i hiÓn thÞ th«ng tin vÒ chøng chØ võa ®−îc cµi ®Æt. H×nh 22 25 -NÕu dõng ë ®©y khi chän nót lÖnh "Verify" trong h×nh 21 sÏ xuÊt hiÖn th«ng b¸o: H×nh 23 -§Ó chøng chØ cã hiÖu lùc, ng−êi sö dông cÇn thiÕt lËp thuéc tÝnh cho Netscape chÊp nhËn Root CA võa cµi lµ Certificate Authority, b»ng c¸ch: trong h×nh 21 chän môc "Signers", khi ®ã hép héi tho¹i h×nh 21 cã d¹ng nh− h×nh 24. 26 H×nh 24 -Trong danh s¸ch c¸c chøng chØ cña CA chän Root CA-MyCA Group, råi chän nót lÖnh "Edit" trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 25 H×nh 25 27 -Ng−êi sö dông check vµo c¸c lùa chän trong môc "This Certificate belong to a Certifying Authority" råi nhÊn "OK". -§Õn ®©y nÕu chän nót lÖnh "Verify" trªn h×nh 23 sÏ cã th«ng b¸o nh− h×nh 26. H×nh 26 2-CËp nhËt CTL vµ CRL tõ Public Database Server §Ó cËp nhËt CRL, t¶i c¸c CTL cña ng−êi kh¸c (sö dông cho môc ®Ých b¶o mËt Mail ch¼ng h¹n), hoÆc t¶i chuçi c¸c chøng chØ cña c¸c CA tÇng trªn, ng−êi sö dông cã thÓ dïng trang publicdatabase. §Ó truy cËp ®−îc tíi publicdatabase ng−êi sö dông cÇn thiÕt lËp cÊu h×nh trªn m¸y cña m×nh nh− sau: -§èi víi tr−êng hîp ng−êi sö dông dïng m«i tr−êng Linux cÇn bæ sung thªm dßng: 200.1.1.1 publicdatabase vµo tÖp /etc/hosts -§èi víi ng−êi sö dông dïng m«i tr−êng Windows cÇn bæ sung dßng : 200.1.1.1 publicdatabase vµo tÖp c:\Windows\hosts Trong ®ã 200.1.1.1 lµ ®Þa chØ IP cña m¸y Public Database Server. Khi truy cËp tíi trang giao diÖn chÝnh cña trang publicdatabase xuÊt hiÖn nh− h×nh 27 28 H×nh 27 Qui tr×nh sö dông c¸c chøc n¨ng trªn trang Publicdatabase chóng t«i ®· tr×nh bµy kü trong ch−¬ng 4 tµi liÖu vÒ hÖ thèng ph¸t hµnh vµ qu¶n lý chøng chØ sè theo m« h×nh tËp trung. 3-Cµi ®Æt thiÕt lËp cÊu h×nh phÇn mÒm E-shop cã sö dông chøng chØ ®−îc cÊp trªn Apache server. E-shop lµ mét bé ch−¬ng tr×nh nguån mang tÝnh m« pháng viÖc thùc hiÖn mua b¸n hµng hãa th«ng qua mét trang Web (th−¬ng m¹i ®iÖn tö) trªn m«i tr−êng Linux, toµn bé phÇn mÒm l−u trªn mét tÖp eshopcom.zip. Sau khi gì nÐn tÖp eshopcom.zip ta ®−îc th− môc eshop.com trong ®ã cã toµn bé c¸c tÖp ch−¬ng tr×nh m« pháng qu¸ tr×nh mua b¸n trªn web, vµ giao diÖn ®Ó thùc hiÖn qu¸ tr×nh ®ã. Qu¸ tr×nh cµi ®Æt vµ thiÕt lËp E-shop ®−îc tiÕn hµnh th«ng qua c¸c b−íc sau: 3.1-Cµi ®Æt phÇn mÒm E-shop Mét sè yªu cÇu vÒ phÇn mÒm khi thiÕt lËp E-shop: -ViÖc trao ®æi vµ l−u tr÷ d÷ liÖu khi ch−¬ng tr×nh thùc hiÖn ®−îc t¸c gi¶ cña phÇn mÒm sö dông hÖ qu¶n trÞ c¬ së d÷ liÖu MySQL, do ®ã ®Ó ch−¬ng tr×nh cã thÓ ch¹y ®−îc cÇn cµi ®Æt MySQL. -B¶n chÊt cña bé ch−¬ng tr×nh lµ t¹o nªn mét trang Web trªn Web server, do ®ã cÇn cµi ®Æt Apache server. §Ó khëi t¹o E-shop cÇn thùc hiÖn: -Gì nÐn tÖp eshopcom.zip ®−îc th− môc eshop.com -T¹o c¬ së d÷ liÖu trªn MySQL b»ng c¸ch chuyÓn th− môc hiÖn hµnh thµnh ..../eshop.com/db vµ ch¹y lÖnh: mysqladmin create eshop -Khëi t¹o c¬ së d÷ liÖu eshop b»ng c¸ch thùc hiÖn lÖnh: mysql eshop < eshop.sql 29 Qu¸ tr×nh cµi ®Æt ch−¬ng tr×nh E-shop kÕt thóc, ®Ó sö dông ch−¬ng tr×nh cÇn thiÕt lËp cÊu h×nh trªn Apache server. 3.2- ThiÕt lËp cÊu h×nh E-shop cã sö dông chøng chØ trªn Apache server Sau khi cµi ®Æt phÇn mÒm E-shop, ®Ó thiÕt lËp c¬ chÕ chØ cho phÐp c¸c browser truy nhËp ®Õn th«ng qua kªnh b¶o mËt https, gi¶ sö ng−êi muèn thiÕt lËp eshop ®· ®¨ng ký vµ ®−îc cÊp chøng chØ dïng cho Web server víi ID lµ 2000003. Khi ®ã cÇn thùc hiÖn c¸c b−íc thiÕt lËp nh− sau: -Thùc hiÖn viÖc kÕt nèi tíi Public Database Server cña hÖ thèng ®Ó dowload c¸c CRL do c¸c CA cña hÖ thèng ph¸t hµnh (nÕu muèn kiÓm so¸t ®−îc tÝnh hîp lÖ cña tÊt c¶ c¸c chøng chØ cña ng−êi dïng trong toµn bé hÖ thèng th× cÇn t¶i tÊt c¶ c¸c CRL cña c¸c CA vÒ). ViÖc t¶i CRL th«ng qua Public Database Server chóng t«i ®· tr×nh bµy trong môc 7.2. Sau khi cã tÖp CRL, chuyÓn c¸c tÖp nµy vµo th− môc: /etc/httpd/conf/ssl.crl/RootCA.crl (ë ®©y chóng t«i chØ tr×nh bµy viÖc sö dông mét tÖp CRL do Root CA ph¸t hµnh) -ChuyÓn tÖp l−u kho¸ riªng (®−îc sinh bëi phÇn mÒm sinh kho¸ vµ sinh tÖp yªu cÇu) vµo th− môc: /etc/httpd/conf/ssl.key/2000003.key -ChuyÓn chøng chØ ®−îc hÖ thèng MyCA cÊp, RootCA.crt, chain.crt (nÕu lµ nonroot CA cÊp chøng chØ) vµo th− môc: /etc/httpd/conf/ssl.crt/2000003.crt /etc/httpd/conf/ssl.crt/RootCA.crt /etc/httpd/conf/ssl.crt/chain.crt -Thùc hiÖn viÖc thiÕt lËp E-shop trªn Apache nh− sau: DocumentRoot /homme/Thuchv/eshop.com/ ServerName eshop.com ErrorLog logs/eshop /error.log CustomLog logs/eshop/access.log common SSLEngine on SSLProtocol +SSLv3 +TLSv1 SSLCertificateFile /etc/httpd/conf/ssl.crt/2000003.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/2000003.key SSLCertificateChainFile /etc/httpd/conf/ssl.crt/chain.crt SSLCACertificateFile /etc/httpd/conf/ssl.crt/RootCA.crt SSLCACertificatePath /etc/httpd/conf/ssl.crt/ SSLCARevocationFile /etc/httpd/conf/ssl.crl/RootCA.crl SSLVerifyClient require SSLVerifyDepth 10 -Khëi ®éng l¹i Apache b»ng c¸ch thùc hiÖn lÖnh: /etc/rc.d/init.d/httpd restart 4-Sö dông https truy nhËp tíi E-shop 4.1- Sö dông tr×nh duyÖt Internet Explorer truy nhËp tíi E-Shop 30 4.1.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá §Ó kÕt nèi ®−îc E-shop, trong tÖp c:\windows\hosts cÇn ®−îc bæ sung dßng sau: 200.1.1.1 eshop.com Sau khi thùc hiÖn viÖc cµi ®Æt c¸c chøng chØ vµ thiÕt lËp cÊu h×nh cho IE, ®Ó kÕt nèi tíi E-Shop trªn Apache Server sö dông https, trªn mµn h×nh Internet Explorer xuÊt hiÖn khuyÕn c¸o nh− hép héi tho¹i 28. H×nh 28 Chän "Ok", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 29 H×nh 29 Ng−êi sö dông chän chøng chØ cña m×nh ®Ó Server x¸c thùc (nÕu kh«ng muèn x¸c thùc client th× cÇn bá môc SSLVerifyClient trong tÖp cÊu h×nh cña Apache Server, khi ®ã hép héi tho¹i trªn sÏ kh«ng xuÊt hiÖn), råi nhÊn "OK", trªn mµn h×nh xuÊt 31 hiÖn hép héi tho¹i nh− h×nh 30. Th«ng b¸o vÒ qu¸ tr×nh x¸c thùc chøng chØ gi÷a Server vµ browser. H×nh 30 Chän "Yes", trong qu¸ tr×nh lµm viÖc, mçi khi cã sù thay ®æi trang truy nhËp trªn Server sÏ cã hép héi tho¹i khuyÕn c¸o xuÊt hiÖn nh− h×nh 31, muèn cho hép héi tho¹i nµy kh«ng xuÊt hiÖn check vµo môc: " In the future, do not show this warning". H×nh 31 Cuèi cïng trang https://eshop.com sÏ hiÓn thÞ trªn mµn h×nh IE nh− h×nh 32. 32 H×nh 32 4.1.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá -Tr−êng hîp chøng chØ cña client ®· bÞ huû bá, qu¸ tr×nh kÕt nèi tíi server sÏ kh«ng thùc hiÖn ®−îc, trªn mµn h×nh IE xuÊt hiÖn th«ng b¸o "The page cannot be displayed" (chó ý r»ng th«ng b¸o nµy chØ xuÊt hiÖn khi thuéc tÝnh SSLVerifyClient ®−îc thiÕt lËp lµ require). -Tr−êng hîp ng−îc l¹i, nÕu chøng chØ cña server ®· bÞ huû bá vµ tÖp CRL cã th«ng tin vÒ viÖc chøng chØ cña server ®· ®−îc huû bá cµi ®Æt cho client th× qu¸ tr×nh lµm viÖc gi÷a client vµ Server vÉn thùc hiÖn ®−îc tuy nhiªn trong qu¸ tr×nh kÕt nèi sÏ kh«ng thùc hiÖn x¸c thùc server. 4.2- Sö dông tr×nh duyÖt Netscape truy nhËp tíi E-Shop 4.2.1-Tr−êng hîp chøng chØ cña client vµ server ch−a bÞ huû bá Sau khi thùc hiÖn viÖc cµi ®Æt chøng chØ, ®Ó kÕt nèi tíi E-Shop trªn Apache Server sö dông https, ng−êi sö dông ch¹y tr×nh duyÖt Netscape, më trang https://eshop.com. 33 H×nh 33 Trªn mµn h×nh Netscape xuÊt hiÖn hép héi tho¹i nh− h×nh 34, th«ng b¸o vÒ chøng chØ trªn server. H×nh 34 NÕu ng−êi sö dông muèn xem th«ng tin vÒ chøng chØ cña server th× chän vµo môc "More Info", hép héi tho¹i nh− h×nh 35 xuÊt hiÖn 34 H×nh 35 Tõ hép héi tho¹i 34 chän "Continue", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 36, ®Ó ng−êi sö dông chän chøng chØ lµm viÖc víi server. H×nh 36 35 Chän "Continue", trªn mµn h×nh xuÊt hiÖn hép héi ®Ó ng−êi sö dông nhËp mËt khÈu ®Ó truy nhËp c¬ së d÷ liÖu cña Netscape H×nh 37 Ng−êi sö dông nhËp mËt khÈu råi chän "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i th«ng b¸o qu¸ tr×nh x¸c thùc ®· kÕt thóc: H×nh 38 Khi chuyÓn tõ trang web sö dông chÕ ®é b¶o mËt sang trang web kh«ng sö dông chÕ ®é b¶o mËt trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 39 H×nh 39 4.2.2-Tr−êng hîp mét trong hai chøng chØ bÞ huû bá NÕu chøng chØ cña client bÞ huû bá, khi thùc hiÖn kÕt nèi tíi server qu¸ tr×nh ®−îc thùc hiÖn tõ hép héi tho¹i 34 ®Õn hép héi tho¹i 37. Tuy nhiªn qu¸ tr×nh kÕt nèi ®Õn server cã sö dông chÕ ®é b¶o mËt sÏ kh«ng thµnh c«ng víi hép héi tho¹i th«ng b¸o: 36 H×nh 40 NÕu chøng chØ cña server bÞ huû bá, khi mét client (®· cËp nhËt CRL trong ®ã chøng chØ cña server ®· bÞ huû bá) kÕt nèi ®Õn server cã sö dông chÕ ®é b¶o mËt sÏ kh«ng thµnh c«ng, trªn mµn h×nh xuÊt hiÖn th«ng b¸o: H×nh 41 37 Ch−¬ng III Sö dông chøng chØ sè víi dÞch vô Mail 1. Giíi thiÖu Mét trong nh÷ng øng dông quan träng cña chøng chØ sè ®ã lµ m· ho¸ vµ x¸c thùc th− ®iÖn tö. Ng−êi sö dông cã thÓ cµi chøng chØ sè (cña m×nh) ®· ®−îc ph¸t hµnh tõ mét Trung t©m cÊp chøng chØ sè vµo mét hÖ mail nµo ®ã ®Ó thùc hiÖn trao ®æi th− ®iÖn tö cã b¶o mËt víi mét ng−êi dïng kh¸c mµ cïng chung hÖ thèng CA. Trong ch−¬ng nµy chóng t«i nh»m giíi thiÖu c¸ch sö dông chøng chØ sè ®−îc cÊp bëi hÖ thèng MyCA trªn Outlook Express. Gi¶ thiÕt r»ng b¹n ®· cã mét tµi kho¶n ng−êi dïng ®−îc cÊp trªn m¸y Server, vµ b¹n ®· ®−îc cÊp mét chøng chØ sè t−¬ng øng víi tµi kho¶n ®ã (nhÊt thiÕt ®Þa chØ email ®¨ng ký trong chøng chØ sè ph¶i trïng víi ®Þa chØ email cña tµi kho¶n trªn m¸y Server). ThiÕt lËp hÖ thèng cña chóng t«i nh− sau: • Mét m¸y cµi Windows 2000 Advanced Server vµ Exchange Server 2000. • 2 m¸y Windows 98. Trªn m¸y Server t¹o 2 tµi kho¶n ng−êi dïng lµ user1 vµ user2 cã ®Þa chØ email lµ user1@myca.org vµ user2@myca.org. Trªn 2 m¸y windows 98 lÇn l−ît tõng m¸y t¹o ®Þa chØ email t−¬ng øng víi ®Þa chØ email ®−îc cÊp trªn Server. Nh− vËy, 2 ng−êi dïng trªn 2 m¸y cã thÓ göi th− cho nhau b×nh th−êng (kh«ng x¸c thùc vµ m· ho¸). §Ó cã thÓ göi th− b¶o mËt gi÷a 2 ng−êi sö dông nµy th× hä cÇn ph¶i cã chøng chØ sè mµ ®−îc cÊp cïng mét hÖ thèng CA nµo ®ã. Sö dông hÖ thèng cÊp chøng chØ MyCA ®Ó ph¸t hµnh 2 chøng chØ sè cho 2 ng−êi sö dông cã ®Þa chØ email lÇn l−ît lµ user1@myca.org vµ user2@myca.org. 2 ng−êi dïng nµy ®em chøng chØ cña m×nh cµi vµo Outlook. §Õn ®©y hä cã thÓ göi th− cã m· ho¸ vµ x¸c thùc cho nhau. D−íi ®©y chóng t«i sÏ tr×nh bµy chi tiÕt nh÷ng viÖc lµm nµy. 2. §−a chøng chØ sè vµo Outlook Ch¹y Outlook, giao diÖn ch−¬ng tr×nh nh− H×nh 1. 38 H×nh 1 §Ó cµi chøng chØ sè cña b¹n vµo Outlook (chó ý lµ b¹n ph¶i chuyÓn ®æi chøng chØ theo ®Þnh d¹ng PKCS#12 nÕu chøng chØ sè ®−îc cÊp tõ hÖ thèng CA do ng−êi dïng sinh kho¸), ë giao diÖn chÝnh cña Outlook chän Tools => Options => Security, khi ®ã xuÊt hiÖn hép tho¹i nh− H×nh 2. 39 H×nh 2 Víi hép tho¹i nµy b¹n chän Digital IDs..., xuÊt hiÖn hép tho¹i nh− H×nh 3. 40 H×nh 3 Trong môc Personal cña hép tho¹i Certificate Manager ë trªn ch−a cã chøng chØ nµo ®−îc cµi vµo Outlook. Chän Import... xuÊt hiÖn hép tho¹i nh− H×nh 4. 41 H×nh 4 Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 5. H×nh 5 42 Hép tho¹i yªu cÇu chän tÖp chøng chØ cña b¹n. Chän Browse... ®Ó chØ ra tÖp chøng chØ, nh−ng chó ý r»ng tÖp chøng chØ nµy víi ®Þnh d¹ng PKCS#12. Trong vÝ dô cña chóng t«i th× ng−êi dïng cã tÖp chøng chØ lµ 2000017.p12 ®Æt trong th− môc d:\tiendq\test\user1\genkey, ®−îc thÓ hiÖn trong H×nh 6 vµ H×nh 7. H×nh 6 H×nh 7 Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 8. 43 H×nh 8 Hép tho¹i yªu cÇu b¹n vµo mËt khÈu gi¶i m· tÖp chøng chØ (vµo ®óng mËt khÈu khi b¹n chuyÓn ®æi ®Þnh d¹ng PKCS#12). Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 9. 44 H×nh 9 Hép tho¹i yªu cÇu lùa chän n¬i l−u tr÷ chøng chØ cña b¹n, ë ®©y chän môc Automatically select the certificate store based on the type of certificate. Chän Next> ®Ó tiÕp tôc, xuÊt hiÖn hép tho¹i nh− H×nh 10. 45 H×nh 10 Chän Finish ®Ó kÕt thóc, nÕu thµnh c«ng sÏ xuÊt hiÖn hép tho¹i nh− H×nh 11. H×nh 11 Chän OK, nh− vËy b¹n ®· hoµn thµnh c«ng viÖc cµi chøng chØ sè vµo Outlook. §Ó kiÓm tra l¹i ®iÒu nµy, b¹n vµo Tools => Options =>Security => Digital IDs... xuÊt hiÖn hép tho¹i Certificate Manager trong môc Personal xuÊt hiÖn dßng m« t¶ chøng chØ cña b¹n. VÝ dô, chóng t«i cµi chøng chØ cña user1 nh− H×nh 12. 46 H×nh 12 §Ó hiÓn thÞ chi tiÕt néi dung chøng chØ b¹n chän View, khi ®ã xuÊt hiÖn hép tho¹i cã d¹ng nh− H×nh 13. 47 H×nh 13 §Õn ®©y b¹n cã thÓ thùc hiÖn göi th− ®iÖn tö cã x¸c thùc vµ m· ho¸ víi mét ng−êi sö dông kh¸c còng ®· cµi chøng chØ sè cña hä trªn Outlook. Chó ý r»ng chøng chØ sè cña b¹n vµ ng−êi sö dông kia ph¶i ®−îc cÊp cïng mét hÖ thèng CA, ë ®©y chóng t«i ®ang sö dông hÖ thèng MyCA ®Ó cÊp chøng chØ sè, CA ph¸t hµnh chøng chØ cã tªn lµ RootCA1411. 3. Sö dông chøng chØ sè ®Ó x¸c thùc vµ m· ho¸ th− ®iÖn tö trªn Outlook Trong môc nµy chóng t«i sÏ tr×nh bµy øng dông chøng chØ sè ®Ó x¸c thùc vµ m· ho¸ th− ®iÖn tö trªn Outlook, víi ®iÒu kiÖn lµ b¹n ®· thùc hiÖn cµi ®Æt thµnh c«ng chøng chØ sè cña m×nh vµo Outlook (®· tr×nh bµy ë trªn). VÊn ®Ò ®Æt ra lµ b¹n ch−a cã kho¸ c«ng khai cña ®èi t¸c ®Ó m· ho¸, ng−îc l¹i ®èi t¸c cña b¹n còng ch−a cã kho¸ c«ng khai cña b¹n ®Ó thùc hiÖn viÖc kiÓm tra ch÷ ký. §Ó gi¶i quyÕt vÊn ®Ò nµy, lÇn ®Çu tiªn b¹n göi th− ®iÖn tö cho ®èi t¸c chØ thùc hiÖn ký lªn néi dung ®ã vµ chó ý r»ng néi dung th− kh«ng yªu cÇu b¶o mËt, ®ång thêi trong Outlook ph¶i ®Æt tuú chän göi chøng chØ cña b¹n kÌm theo. Khi nhËn ®−îc th− cña b¹n, ®èi t¸c sÏ cã chøng chØ sè cña b¹n, vµ sau ®ã ®èi t¸c göi chøng chØ sè cña hä b»ng c¸ch t−¬ng tù nh− b¹n ®· lµm. §Õn ®©y b¹n vµ ®èi t¸c cã thÓ thùc hiÖn göi th− cã x¸c thùc vµ m· ho¸ cho nhau. C«ng viÖc nµy sÏ ®−îc tr×nh bµy chi tiÕt d−íi ®©y. 48 H×nh 14 Trong H×nh 14, môc Other People trong hép tho¹i Certificate Manager kh«ng cã chøng chØ cña ®èi t¸c mµ b¹n cÇn trao ®æi th− ®iÖn tö mËt. LÇn ®Çu tiªn b¹n göi chøng chØ cña m×nh cho ®èi t¸c b»ng c¸ch ký lªn bøc th− (chän Sign), vµ sau ®ã chän Send ®Ó göi. Chó ý trªn Outlook c¶ bªn göi vµ bªn nhËn ph¶i ®−îc ®Æt 2 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 cßn cho phÐp thiÕt lËp thuËt to¸n m· ho¸ (ë ®©y chóng t«i ®Æt lµ DES). 49 H×nh 15 Trong vÝ dô cña chóng t«i, ®èi t¸c cÇn göi cã ®Þa chØ email lµ user2@myca.org nh− H×nh 16. 50 H×nh 16 Chän Send vµ sau ®ã chän Send/Recv. Khi ®ã ®èi t¸c më Outlook, nhËn ®−îc mét th− trong Inbox nh− H×nh 17. 51 H×nh 17 Më th− nhËn ®−îc tõ user1, xuÊt hiÖn hép tho¹i nh− H×nh 18. H×nh 18 52 Ngoµi nh÷ng th«ng tin vÒ ng−êi göi vµ nhËn th× cã thªm môc Security: Digitally signed and verified, tøc lµ bøc th− nµy ®· ®−îc ký tõ ng−êi göi vµ ®−îc kiÓm tra lµ ®óng. Muèn 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 ®· tõng lµm ë trªn. §Ó kiÓm tra r»ng chøng chØ cña ®èi t¸c ®· cã trong Outlook hay ch−a b¹n chän môc Other People cña hép tho¹i Certificate Manager, môc nµy chøa chøng chØ cña c¸c ®èi t¸c cña b¹n. VÝ dô nh− H×nh 20. 53 H×nh 20 §Õn ®©y c¶ 2 bªn ®Òu cã chøng chØ cña nhau, vµ cã thÓ thùc hiÖn göi th− cã x¸c thùc vµ b¶o mËt cho nhau. VÝ dô b¹n cã thÓ so¹n mét th− ®iÖn tö nh− H×nh 21. 54 H×nh 21 Chó ý, ®Ó göi th− cã x¸c thùc vµ m· ho¸ b¹n chän c¶ 2 tuú chän Sign vµ Encrypt. Chän Send vµ Send/Recv, ®Ó göi tíi ®èi t¸c cña 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·), khi ®ã xuÊt hiÖn néi dung th− cã d¹ng nh− H×nh 23. 56 H×nh 23 §©y lµ bøc th− göi cã x¸c thùc vµ m· ho¸ (trong môc Security: Digital signed and verified; Encrypted). 4. CËp nhËt danh s¸ch c¸c chøng chØ ®· huû bá Mét ng−êi dïng cã thÓ huû bá chøng chØ cña m×nh (víi rÊt nhiÒu lý do), ®Ó huû bá mét chøng chØ b¹n cã thÓ tham kh¶o ch−¬ng 6. Do vËy, th«ng th−êng mçi phiªn lµm viÖc b¹n nªn cËp nhËt l¹i danh s¸ch c¸c chøng chØ ®· bÞ huû bá do CA cña b¹n ph¸t hµnh, ®iÒu nµy gióp b¹n cã thÓ biÕt ®−îc tr¹ng th¸i chøng chØ cña ®èi t¸c (chøng chØ ®· bÞ huû bá hay ch−a?), b¹n tham kh¶o ch−¬ng 7. Khi ®· lÊy ®−îc danh s¸ch c¸c chøng chØ huû bá (gi¶ sö tÖp chain.crl) th× c¸c b−íc thùc hiÖn cËp nhËt vµo Outlook t−¬ng tù nh− ®èi víi viÖc cµi mét chøng chØ vµo Outlook, chóng t«i sÏ kh«ng tr×nh bµy l¹i ë ®©y. Trong môc nµy chóng t«i gi¶ sö r»ng ng−êi sö dông cã tªn user1 víi ®Þa chØ email lµ user1@myca.org ®· huû bá chøng chØ. Tr−íc khi lµm viÖc, ng−êi sö dông user2 tiÕn hµnh cËp nhËt danh s¸ch c¸c chøng chØ bÞ huû bá do hÖ thèng CA cña m×nh ph¸t hµnh. Ng−êi sö dông user2 sö dông Outlook so¹n th− vµ göi th− cã x¸c thùc vµ m· ho¸ cho user1, sau chän Send ®Ó göi cho user1 th× sÏ xuÊt hiÖn th«ng b¸o nh− H×nh 24. 57 H×nh 24 Outlook th«ng b¸o lµ chøng chØ cña user1 ®· bÞ huû bá, user2 sÏ kh«ng thÓ thùc hiÖn göi th− cã x¸c thùc vµ b¶o mËt cho user1 ®−îc n÷a. 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 ch−a bÞ huû bá nªn user1 vÉn cã thÓ kiÓm tra ch÷ ký cña user2. Ng−îc l¹i, khi user1 göi th− cã x¸c thùc vµ m· ho¸ cho user2 th× ®iÒu g× sÏ x¶y ra khi mµ chøng chØ cña user1 ®· bÞ huû bá?. Khi nhËn ®−îc th− cña user1, user2 hiÓn thÞ néi dung sÏ 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− nµy ®· ®−îc ký bëi mét chøng chØ ®· huû bá. Chó ý r»ng, nÕu user1 göi th− chØ chän Encrypt (mµ kh«ng ký lªn th− ®ã) th× user2 vÉn ®äc ®−îc b×nh th−êng (tøc lµ gi¶i m· ®−îc), bëi chøng chØ cña user2 ch−a bÞ huû bá. 59

Các file đính kèm theo tài liệu này:

  • pdf543316.pdf