Ch−¬ng tr×nh KC-01: §Ò tµi KC-01-01: Nghiªn cøu khoa häc Nghiªn cøu mét sè vÊn ®Ò b¶o mËt vµ ph¸t triÓn c«ng nghÖ th«ng tin an toµn th«ng tin cho c¸c m¹ng dïng vµ truyÒn th«ng giao thøc liªn m¹ng m¸y tÝnh IP B¸o c¸o kÕt qu¶ nghiªn cøu HÖ thèng phÇn mÒm cung cÊp chøng chØ sè QuyÓn 6A: “Mét hÖ thèng cung cÊp chøng chØ sè theo m« h×nh sinh kho¸ tËp trung” Hµ NéI-2003 B¸o c¸o kÕt qu¶ nghiªn cøu HÖ thèng phÇn mÒm cung cÊp chøng chØ sè QuyÓn 6A: “Mét hÖ thèng cung cÊp chøng chØ sè theo m« h×nh sinh kho¸ tËp trung” Chñ tr× nhãm thùc hiÖn: TS. TrÇn Duy Lai Môc lôc Ch−¬ng I. Cµi ®Æt thiÕt lËp cÊu h×nh cho M¸y CA 1 1-Giíi thiÖu mét sè vÊn ®Ò liªn quan ®Õn c¬ së h¹ tÇng khãa c«ng 1 khai 1.1-C¸c giao thøc qu¶n lý c¬ së h¹n tÇng khãa c«ng khai theo chuÈn 1 X509 1.2-Hå s¬ chøng chØ sè vµ CRL cho c¬ së h¹ tÇng khãa c«ng khai theo 2 chuÈn X509 2-Cµi ®Æt thiÕt lËp cÊu h×nh cho m¸y CA 3 2.1-Cµi ®Æt 3 2.2-ThiÕt lËp cÊu h×nh 4 2.3- M« t¶ c¸c th− môc, tÖp 5 2.3.1-Trong th− môc /MyCA 5 2.3.2-Néi dung th− môc /home/myca/ 6 2.4 C¸c chøc n¨ng trªn m¸y CA 8 3-Khëi t¹o cho CA 9 Ch−¬ng II. LDAP vµ Public Database trong hÖ 17 thèng MyCA 1- LDAP 18 1.1- Giíi thiÖu chung vÒ LDAP 18 1.2- Cµi ®Æt vµ thiÕt lËp cÊu h×nh cho LDAP server 18 1.2.1-Cµi ®Æt LDAP server 18 1.2.2-TÖp cÊu h×nh LDAP server 18 2- Cµi ®Æt vµ thiÕt lËp cÊu h×nh cho Public Database Server 19 2.1-Cµi ®Æt Public Database Server 19 2.2-ThiÕt lËp cÊu h×nh Public Database Server 20 2.2.1-ThiÕt lËp cÊu h×nh LDAP server 20 2.2.2-ThiÕt lËp cÊu h×nh trang publicdatabase trªn Apache 21 2.3-M« t¶ c¸c tÖp th− môc trªn Public Database Server 21 2.4-C¸c chøc n¨ng trªn trang publicdatabase 22 3-Sö dông c¸c chøc n¨ng cña trang giao diÖn Public Database 23 Server 3.1-T¶i c¸c chøng chØ cña CA tõ Public Database Server 24 3.2-T¶i chøng chØ cña ng−êi kh¸c tõ Public Database Server 26 3.3-CËp nhËt CRLs 27 3.3.1- CËp nhËt CRL cho tr×nh duyÖt Netscape 28 3.3.2- CËp nhËt CRL cho Apache Server 31 3.3.3-CËp nhËt CRL cho tr×nh duyÖt Internet Explorer 33 3.3.4-CËp nhËt CRL cho IIS 35 i Ch−¬ng III. Qui tr×nh ph¸t hµnh chøng chØ sè 37 1. B−íc 1: NhËp th«ng tin vÒ ng−êi ®−îc cÊp (Input User's Data) 37 2. B−íc 2: Ký yªu cÇu cÊp chøng chØ sè (Sign Certificate Requests) 40 3. B−íc 3: ChuyÓn ®æi ®Þnh d¹ng cña chøng chØ (Generate PKCS12 42 Certificate) 4. B−íc 4: CÊp chøng chØ cho ng−êi dïng 43 5- B−íc 5: CËp nhËt chøng chØ võa ph¸t hµnh lªn LDAP server 46 6- B−íc 6: In néi dung chøng chØ 47 Ch−¬ng IV. Qui tr×nh huû bá chøng chØ sè 50 1-Qui tr×nh huû bá chøng chØ 50 1.1-Huû bá mét chøng chØ 50 1.2-Ph¸t hµnh CRL vµ cËp nhËt lªn LDAP 51 2-CÊp chøng nhËn huû bá chøng chØ cho ng−êi sö dông 53 2.1-T¶i CRL tõ LDAP server vÒ m¸y CA 53 2.2-In chøng nhËn huû bá cho ng−êi sö dông 56 ii Ch−¬ng I Cµi ®Æt thiÕt lËp cÊu h×nh cho M¸y CA 1-Giíi thiÖu mét sè vÊn ®Ò liªn quan ®Õn c¬ së h¹ tÇng khãa c«ng khai 1.1-C¸c giao thøc qu¶n lý c¬ së h¹n tÇng khãa c«ng khai theo chuÈn X509 PKI ®−îc x©y dùng bao gåm rÊt nhiÒu m« h×nh riªng biÖt vµ viÖc qu¶n trÞ c¸c trong c¸c m« h×nh ®ã lµ kh¸c nhau. Management protocol ®−îc ®−a ra bëi nã cÇn thiÕt ®Ó hç trî c¸c t−¬ng t¸c on-line gi÷a c¸c thµnh phÇn PKI (gi÷a CA vµ hÖ thèng client, gi÷a c¸c CA ph¸t hµnh cross-certificates). Tr−íc khi x¸c ®Þnh râ riªng biÖt c¸c ®Þnh d¹ng message vµ c¸c thñ tôc cho phÇn mÒm PKI chóng ta ph¶i ®i x©y dùng m« h×nh PKI Management: ®Þnh nghÜa c¸c thùc thÓ trong PKI Management vµ t−¬ng t¸c cña chóng. Sau ®ã chóng ta ®i nhãm c¸c tÝnh n¨ng nµy lµm cho phï hîp c¸c kiÓu cã thÓ ®Þnh danh cña c¸c thùc thÓ ®Çu cuèi (end entity). C¸c thùc thÓ ®−îc ®−a ra trong PKI Management bao gåm end entities (vÝ dô, thùc thÓ ®−îc ®Æt tªn trong tr−êng Subject cña certificate) vµ CA (vÝ dô, thùc thÓ ®−îc ®Æt tªn trong tr−êng Issuer cña certificate). D−íi ®©y mét vµi vÝ dô vÒ c¸c ®Þnh nghÜa trong PKI Management. Subjects vµ End Entities Nh− ®· ®Ò cËp ë trªn th× thuËt ng÷ "subject" ®−îc sö dông ë ®©y ®Ó tham chiÕu tíi mét thùc thÓ ®−îc ®Æt tªn trong tr−êng Subject cña mét certificate, khi chóng ta muèn ph©n biÖt gi÷a c¸c c«ng cô hay gi÷a c¸c phÇn mÒm ®−îc sö dông bëi subject ®ã (vÝ dô, mét module qu¶n lý certificate côc bé) ®−îc gäi lµ "subject equipment". Trong tr−êng hîp tæng qu¸t chóng ta sö dông thuËt ng÷ "End Entity" (EE). TÊt c¶ c¸c EEs yªu cÇu b¶o mËt côc bé truy cËp tíi mét sè th«ng tin tèi thiÓu: tªn së h÷u vµ private key, tªn cña CA ®−îc tin cËy bëi thùc thÓ vµ public key cña CA (hoÆc fingerprint cña public key). N¬i l−u tr÷ c¸c th«ng tin nµy cã thÓ thay ®æi, sù thay ®æi nµy tuú thuéc vµo c¸ch cµi ®Æt vµ øng dông (vÝ dô, d¹ng file nh− cryptographic tokens), n¬i nµy ®−îc gäi lµ Personal Security Environment (PSE) cña EE, ®Þnh d¹ng cña PSE n»m ngoµi ph¹m vi cña RFC nµy. Certificate Authority Certificate Authority (CA) lµ mét "third party" thùc sù hoÆc còng cã thÓ kh«ng ph¶i lµ "third party" (®iÒu nµy cho phÐp chóng ta ph©n biÖt RootCA vµ Non- RootCA), CA th−êng thuéc vÒ mét tæ chøc nµo ®ã nh»m môc ®Ých hç trî c¸c EEs. Mét lÇn n÷a chóng ta sö dông thuËt ng÷ CA ®Ó chØ thùc thÓ ®−îc ®Æt tªn trong tr−êng Issuer cña certificate, khi cÇn ph©n biÖt c¸c c«ng cô phÇn cøng hoÆc phÇn mÒm sö dông bëi CA chóng ta ®−a ra thuËt ng÷ "CA equipment". CA equipment bao gåm c¶ 2 thµnh phÇn: on-line vµ off-line (private key cña CA ®−îc coi lµ thµnh phÇn off-line). 1 C¸c yªu cÇu vÒ PKI Management Bao gåm 13 yªu cÇu sau ®©y: • T−¬ng thÝch víi chuÈn ISO 9594-8 vµ c¸c phÇn certificate extensions. • T−¬ng thÝch gi÷a c¸c thµnh phÇn trong c¸c series. • §¬n gi¶n trong vÊn ®Ò cËp nhËt key pair mµ kh«ng ¶nh h−ëng ®Õn key pair kh¸c (trong hÖ thèng). • Sö dông tÝnh tin cËy trong PKI Management protocols ph¶i dÔ dµng c¸c bµi to¸n ®iÒu tiÕt. • Ph¶i t−¬ng thÝch víi c¸c thuËt to¸n m· ho¸ (chuÈn c«ng nghiÖp): RSA, DSA, SHA-1,... • Kh«ng lo¹i trõ viÖc sinh cÆp kho¸ bëi EEs, RAs, CAs. • Hç trî viÖc c«ng khai c¸c certificates (tuú thuéc vµo c¸c cµi ®Æt kh¸c nhau vµ c¸c m«i tr−êng kh¸c nhau). • Hç trî viÖc huû bá certificate cña EEs (CRLs). • Cã thÓ sö dông ®a d¹ng "transport mechanisms": mail, http, TCP/IP vµ ftp. • ChØ cã CA míi cã thÓ thay ®æi hoÆc thªm gi¸ trÞ tr−êng trong certificate, xo¸ hoÆc thay ®æi extension dùa trªn c¸c chÝnh s¸ch ho¹t ®éng cña nã. • Hç trî c«ng viÖc cËp nhËt CA key cho c¸c EEs. • C¸c chøc n¨ng cña RA phô thuéc vµo CA cña nã (c¸c c¸ch cµi ®Æt vµ c¸c m«i tr−êng kh¸c nhau). • Khi EE yªu cÇu mét certificate bao gåm cã c¶ gi¸ trÞ public key, th× ph¶i cã mét gi¸ trÞ private key t−¬ng øng (ký lªn request - Proof of Possession of Private Key). 1.2-Hå s¬ chøng chØ sè vµ CRL cho c¬ së h¹ tÇng khãa c«ng khai theo chuÈn X509 X.509 v3 certificate Nh− ®· biÕt, user cã mét public key sÏ cã mét private key ®−îc së h÷u bëi ®óng subject (ng−êi dïng hoÆc hÖ thèng) víi mét kü thuËt m· ho¸ vµ ch÷ ký sè ®−îc sö dông. TÝnh tin cËy nµy ®−îc sö dông trong c¸c chøng chØ public key (gäi lµ certificate), bÞ rµng buéc bëi ch÷ ký cña CA (trusted CA) víi mét kho¶ng thêi gian sö dông x¸c ®Þnh. Certificate cã thÓ ®−îc ph©n phèi qua c¸c truyÒn th«ng kh«ng cÇn sù tin cËy vµ c¸c hÖ thèng server kh¸c nhau vµ cã thÓ ®−îc l−u trong mét kho kh«ng b¶o mËt trªn hÖ thèng sö dông certificate. ANSI X9 ®· ph¸t triÓn ®Þnh d¹ng X.509 v3 dùa trªn viÖc më réng mét sè tr−êng dù tr÷, c¸c tr−êng nµy bao gåm: th«ng tin ®Þnh danh, th«ng tin vÒ thuéc tÝnh kho¸, th«ng tin vÒ chÝnh s¸ch (policy) hÖ thèng CA vµ c¸c b¾t buéc certification path (tr−êng basicConstraints). Certification paths and trust Mét user cña mét dÞch vô b¶o mËt cã mét public key (cã hiÖu lùc) sÏ cã mét certificate ®−îc chøng nhËn bëi mét CA (ký lªn public key), CA nµy còng cã thÓ ®−îc chøng nhËn bëi mét (hoÆc nhiÒu) CA kh¸c. Do vËy, n¶y sinh kh¸i niÖm vÒ 2 certification path. Trong RFC1422 ®· ®Þnh nghÜa mét cÊu tróc chuçi c¸c CAs mét c¸ch cøng nh¾c, cÊu tróc nµy t−¬ng thÝch víi X.509 v1, gåm cã 3 kiÓu CA lµ: IPRA (Internet Policy Registration Authority), PCAs (Policy Certification Authorities) vµ CAs (Certification Authorities). CÊu tróc nµy cã c¸c h¹n chÕ sau: c¬ chÕ top-down tøc lµ tÊt c¶ c¸c certification paths ph¶i b¾t ®Çu tõ IPRA, quy t¾c ®Æt tªn nh¸nh h¹n chÕ subject cña CA, sö dông kh¸i niÖm PCA tøc lµ yªu cÇu ph¶i biÕt tõng PCAs ®−îc thiÕt lËp trong logic kiÓm tra chuçi certificate. Víi X.509 v3, th× hÇu hÕt c¸c yªu cÇu trªn ®−îc sö dông trong certificate extension, mµ kh«ng cÇn h¹n chÕ c¸c cÊu tróc sö dông CA. Víi cÊu tróc nµy, ®−a ra kiÕn tróc hÕt søc mÒm dÎo cho hÖ thèng CA. Revocation Khi ph¸t hµnh ra mét certificate, nã ®· ®−îc ®Þnh ra mét kho¶ng thêi h¹n sö dông nhÊt ®Þnh. Tuy nhiªn, v× mét sè lý do nµo ®ã mµ ng−êi sö dông muèn huû bá certificate nµy khi ch−a hÕt h¹n sö dông. X.509 ®Þnh nghÜa mét ph−¬ng ph¸p huû bá certificate, ph−¬ng ph¸p nµy cho phÐp c¸c CAs chÊp nhËn huû bá certificate, ®−îc gäi lµ mét CRL (Certificate Revocation List). Danh s¸ch nµy liÖt kª tÊt c¶ c¸c certificate bÞ huû bá (theo sè serial). Khi mét hÖ thèng b¶o mËt sö dông certificate, th× hÖ thèng nµy kh«ng nh÷ng kiÓm tra ch÷ ký cña certificate vµ tÝnh hiÖu lùc cña nã mµ cßn kiÓm tra sù cã mÆt cña serial nµy trong CRL ®ã (tÊt nhiªn lµ CRL nµy ph¶i ®−îc cËp nhËt trªn toµn bé hÖ thèng theo mét ®Þnh kú nµo ®ã). NÕu sè serial nµy cã trong CRL th× coi nh− certificate ®ã ®· bÞ huû bá. CRL cã thÓ ®−îc ph©n phèi qua c¸c truyÒn th«ng kh«ng b¶o mËt vµ c¸c hÖ thèng server (repository). Mét h¹n chÕ cña ph−¬ng ph¸p CRL, ®ã lµ kho¶ng thêi gian ph¸t hµnh CRL lµ kh«ng liªn tôc. Cã thÓ gi¶i quyÕt h¹n chÕ nµy b»ng c¸c ph−¬ng ph¸p trùc tuyÕn (on-line method), ph−¬ng ph¸p nµy cã thÓ ¸p dông trong mét sè m«i tr−êng. Tuy nhiªn, ®Ó sö dông c¸c ph−¬ng ph¸p nµy sÏ ph¶i ®¶m nhiÖm thªm mét sè yªu cÇu míi vÒ b¶o mËt míi. 2-Cµi ®Æt thiÕt lËp cÊu h×nh cho m¸y CA HÖ thèng cung cÊp chøng chØ sè MyCA ®−îc x©y dùng trªn hÖ ®iÒu hµnh RedHat Linux, gåm hai m« h×nh: • M« h×nh cÊp ph¸t, qu¶n lý vµ huû bá chøng chØ, do ng−êi sö dông sinh kho¸ • M« h×nh cÊp ph¸t, qu¶n lý vµ huû bá chøng chØ do trung t©m sinh kho¸ (m« h×nh sinh kho¸ tËp trung) Trong tµi liÖu nµy chóng t«i tr×nh bµy viÖc cµi ®Æt thiÕt lËp,cÊu h×nh vµ khëi t¹o cho m¸y tÝnh thùc hiÖn chøng n¨ng ph¸t hµnh vµ huû bá chøng chØ sè theo m« h×nh tËp trung ®¬n tÇng (kh«ng cã c¸c CA cÊp d−íi). §Ó tiÖn trong viÖc tr×nh bµy, chóng t«i gi¶ sö r»ng m¸y Database server ®· ®−îc cµi ®Æt vµ thiÕt lËp cÊu h×nh (cô thÓ ®−îc tr×nh bµy trong ch−¬ng 2) 2.1-Cµi ®Æt §èi víi c¸c m¸y ®−îc thiÕt lËp lµm m¸y CA (Certificate Authority) tr−íc khi thùc hiÖn viÖc cµi ®Æt cÇn kiÓm tra mét sè yªu cÇu vÒ phÇn mÒm d−íi ®©y: 3 HÖ ®iÒu hµnh RedHat Linux 7.2 Perl phiªn b¶n 5.6.0 hoÆc cao h¬n Apache phiªn b¶n 1.3.12 hoÆc cao h¬n Toµn bé phÇn mÒm MyCA ®−îc l−u trªn mét ®Üa CD ROM. §Ó cµi ®Æt m¸y CA ng−êi thùc hiÖn cã thÓ tiÕn hµnh nh− sau: -Copy tÖp MayCA.tgz tõ ®Üa CD vµo m¸y cÇn thiÕt lËp lµm m¸y CA. -Gì nÐn tÖp MayCA.tgz, bëi lÖnh tar -xvzf /®−êng dÉn/MayCA.tgz ®−îc th− môc MayCA, trong ®ã cã c¸c th− môc: MyCA, vµ myca (trong th− môc nµy cã c¸c th− môc con: cgi-ca, htdocs-ca, cgi-print). -Copy th− môc myca vµo th− môc /home -Copy th− môc MyCA ra ngoµi cïng cña hÖ thèng c©y th− môc 2.2-ThiÕt lËp cÊu h×nh CÊu h×nh Apache server Giao diÖn gi÷a ng−êi qu¶n trÞ vµ ch−¬ng tr×nh trªn m¸y CA ®−îc thùc hiÖn th«ng qua tr×nh duyÖt Netscape, do vËy sau khi cµi ®Æt phÇn mÒm CA ®Ó ch−¬ng tr×nh ho¹t ®éng cÇn thiÕt lËp cÊu h×nh cho ch−¬ng tr×nh CA trªn Apache. ViÖc thiÕt lËp cÊu h×nh ®Ó CA sö dông Apache ®−îc tiÕn hµnh nh− sau: -Trong tÖp cÊu h×nh cña Apache (tÖp httpd.conf trong th− môc /etc/httpd/conf) cÇn bæ sung trang giao diÖn CA trong môc “VirtualHost” nh− sau:
DocumentRoot "/home/myca/cgi-print/" ServerName printcert Errorlog logs/print/error_log CustomLog logs/print/access_log common ScriptAlias /cgi-bin/ "/home/myca/cgi-print/" AllowOverride None Options ExecCGI Order allow,deny Allow from all DocumentRoot "/home/myca/htdocs-ca/" ServerName rootca Errorlog logs/ca/error_log CustomLog logs/ca/access_log common ScriptAlias /cgi-bin/ "/home/myca/cgi-ca/" AllowOverride None Options ExecCGI Order allow,deny Allow from all 4 Trong ®ã trang printcert ®−îc sö dông ®Ó in giÊy chøng nhËn cÊp chøng chØ sè cho ng−êi sö dông, vµ trang rootca lµ giao diÖn chÝnh ®Ó ng−êi qu¶n trÞ thùc hiÖn viÖc ph¸t hµnh huû bá chøng chØ. -Trong tÖp /etc/hosts bæ sung thªm c¸c trang trªn: 200.1.1.2 rootca printcert -CÇn t¹o c¸c th− môc: ca, print trong /etc/httpd/logs ®Ó l−u l¹i nhËt ký, th«ng b¸o lçi nÕu ch−¬ng tr×nh xuÊt hiÖn lçi. -Sau khi thùc hiÖn cÊu h×nh xong cÇn khëi ®éng l¹i Apache ®Ó c¸c tham sè míi ®−îc bæ sung cã hiÖu lùc, b»ng c¸ch thùc hiÖn lÖnh sau: /etc/init.d/httpd restart. CÊu h×nh cho MySSL vµ MyCA TÊt c¶ c¸c tham sè cÊu h×nh cho tr×nh MySSL, MyCA t−¬ng øng ®−îc ®Ó trong c¸c tÖp sau /MyCA/conf/myssl.cnf vµ /home/httpd/cgi-ca/ca.conf. HÇu hÕt c¸c tham sè trong hai tÖp nµy cã thÓ dïng chung cho toµn hÖ thèng, tuy nhiªn trong ®ã cã nh÷ng tham sè mµ ®èi víi mçi m¸y CA (c¶ root hoÆc nonroot) cÇn cã sù thay ®æi khi chóng ®−îc thiÕt lËp. Khi mét m¸y CA ®−îc thiÕt lËp, cÇn cã mét cÆp kho¸ ®−îc sinh theo sè ID ®· ®−îc hÖ thèng chÊp nhËn, khi ®ã sè ID d−íi d¹ng thËp ph©n sÏ ®−îc dïng lµm phÇn chÝnh cña tªn tÖp kho¸ còng nh− tªn tÖp chøng chØ cña CA ®ã (gi¶ sö CA ®−îc cÊp ID lµ 01 th× khi khëi t¹o cho CA ®ã tÖp kho¸ sÏ lµ 01.key, tÖp chøng chØ lµ 01.crt). Khi ®ã trong tÖp cÊu h×nh cña MySSL (myssl.cnf) vµ MyCA (ca.conf) cÇn thay ®æi c¸c tham sè sau: -Trong tÖp myssl.cnf vµo phÇn [CA-default] thay ®æi hai thuéc tÝnh chøng chØ vµ private_key thµnh: certificate = $dir/01.crt private_key=$dir/private/01.key -T−¬ng tù trong tÖp ca.conf cÇn thay ®æi hai thuéc tÝnh cacert vµ cakey vµ thuéc tÝnh chØ ®Þa chØ cña m¸y public database server: cacert “/MyCA/01.crt” cakey “/MyCA/private/01.key” ldapserver 200.1.1.1 2.3- M« t¶ c¸c th− môc, tÖp 2.3.1-Trong th− môc /MyCA Trong th− môc /MyCA chøa cÊu tróc th− môc ®Ó qu¶n lý c¸c yªu cÇu cÊp chøng chØ, chøng chØ vµ c¸c tÖp c¬ s¬ d÷ liÖu cho CA bao gåm mét sè th− môc con sau: Tªn th− môc/File M« t¶ /MyCA/certs/new Th− môc l−u c¸c chøng chØ võa ®−îc ph¸t hµnh 5 /MyCA/chain Th− môc l−u tÖp chain.crt /MyCA/conf Th− môc l−u tÖp cÊu h×nh cho tr×nh MySSL /MyCA/crl/new Th− môc l−u tÖp CRL khi CA ph¸t hµnh /MyCA/dB Th− môc l−u c¸c tÖp d÷ liÖu trong ®ã l−u tr÷ c¸c chøng chØ (CA, User). /MyCA/inbound/certs Th− môc l−u c¸c tÖp chøng chØ cÊp cho CA /MyCA/inbound/deleted Th− môc l−u c¸c yªu cÇu cña c¸c CA tÇng d−íi trong qu¸ tr×nh cÊp chøng chØ cho CA t−¬ng øng víi tÖp yªu cÇu ®ã tiÕn hµnh kh«ng thµnh c«ng. /MyCA/inbound/processed Th− môc l−u c¸c tÖp yªu cÇu t−¬ng øng víi c¸c chøng chØ ®· ®−îc cÊp cho c¸c CA cÊp d−íi. /MyCA/inbound/reqs Th− môc l−u c¸c tÖp yªu cÇu cña c¸c CA cÊp d−íi. /MyCA/private Th− môc l−u tÖp kho¸ cña CA (®· ®−îc m· ho¸) /MyCA/reqs/pending Th− môc l−u c¸c tÖp yªu cÇu /MyCA/reqs/processed Th− môc l−u c¸c chøng chØ ®· xö lý thµnh c«ng /MyCA/reqs/deleted Th− môc l−u c¸c tÖp yªu cÇu ®· ®−îc xö lý nh−ng kh«ng thµnh c«ng. /MyCA/tmp Th− môc dïng ®Ó l−u c¸c th«ng tin trung gian khi ch−¬ng tr×nh thùc hiÖn. /MyCA/stuff Th− môc l−u c¸c tÖp th«ng tin liªn quan ®Õn qu¸ tr×nh CA ph¸t hµnh chøng chØ vµ CRL, gåm nh÷ng tÖp sau: index.txt §©y lµ tÖp chøa mét sè th«ng tin tãm l−îc vÒ c¸c chøng chØ ®· ®−îc ph¸t hµnh vµ tr¹ng th¸i cña nã (NÕu chøng chØ nµo cã tr¹ng th¸i lµ V (validate) th× nã ®ang cã hiÖu lùc, ng−îc nÕu lµ R (Revocation) th× chøng chØ ®ã ®· bÞ huû bá). serial Néi dung cña tÖp nµy lµ mét sè d−íi d¹ng hexa, khi ph¸t hµnh ra mét chøng chØ sè serial cña chøng chØ ®ã sÏ lµ néi dung ®äc ra tõ tÖp serial. Th− môc /MyCA/user L−u kho¸, chøng chØ cña ng−êi sö dông (theo tõng sè ID) 2.3.2-Néi dung th− môc /home/myca/ Trong th− môc nµy l−u toµn bé c¸c tÖp ch−¬ng tr×nh vµ c¸c tiÖn Ých chÝnh thùc hiÖn c¸c chøc n¨ng cña CA. Cô thÓ d−íi ®©y lµ b¶ng liÖt kª danh s¸ch c¸c tÖp vµ chøc n¨ng cña chóng. Tªn th− môc vµ file Chøc n¨ng 1. Th− môc /home/httpd/cgi-ca ca TÖp ch−¬ng tr×nh chÝnh ®Ó thùc hiÖn c¸c chøc n¨ng ®−îc gäi tõ form chÝnh cña CA ca.conf TÖp cÊu h×nh cho CA 6 2. Th− môc /home/httpd/cgi-ca/bin make TiÖn Ých dïng ®Ó t¹o c¸c tÖp link myca-sign, myca-verify, C¸c tiÖn Ých dïng ®Ó ký mét chuçi d÷ liÖu, kÕt qu¶ ®Çu myca-sv ra lµ mét tÖp PKCS#7, kiÓm tra ch÷ ký trªn tÖp PKCS#7 myssl TiÖn Ých thùc hiÖn hÇu hÕt c¸c chøc n¨ng cña CA pvkh TiÖn Ých dïng ®Ó m· ho¸, gi¶i m· tÖp kho¸ bÝ mËt cña CA 3. Th− môc /home/httpd/cgi-ca/cmds genCADB TÖp ch−¬ng tr×nh thùc hiÖn khëi t¹o c¬ së d÷ liÖu perl cho CA. genCRL TÖp ch−¬ng tr×nh t¹o tÖp CRL initLDAP TÖp ch−¬ng tr×nh khëi t¹o entry l−u CRL vµ chøng chØ cña CA trªn LDAP server issueCerrtificate TÖp ch−¬ng tr×nh ph¸t hµnh ®¬n lÎ mét chøng chØ revokeCertificate TÖp ch−¬ng tr×nh thùc hiÖn huû bá mét chøng chØ SignCACerts TÖp ch−¬ng tr×nh ph¸t hµnh c¸c chøng chØ cho c¸c CA tÇng d−íi Signing TÖp ch−¬ng tr×nh ph¸t hµnh c¸c chøng chØ cho ng−êi sö dông. updateCRL TÖp ch−¬ng tr×nh cËp nhËt CRL sang LDAP 4. Th− môc /home/httpd/cgi-ca/Convert vµ /home/httpd/cgi-ca/Net Th− môc l−u c¸c module phôc vô cho c¸c chøc n¨ng cã liªn quan ®Õn LDAP 5. Th− môc /home/httpd/cgi-ca/MainModule Th− môc l−u c¸c module thuéc hÖ thèng MyCA 6. Th− môc /home/httpd/cgi-ca/lib Th− môc l−u c¸c th− viÖn gåm c¸c hµm ®−îc x©y dùng trªn c¬ së hai module trªn 7. Th− môc /home/httpd/sheets Th− môc l−u c¸c tÖp html thùc hiÖn viÖc hiÓn thÞ c¸c form trong ch−¬ng tr×nh 8. Th− môc /home/httpd/htdocs-ca index.html HiÓn thÞ giao diÖn chÝnh cña CA init.html Trang giao diÖn Initialzation main.html, navbar.html vµ C¸c thµnh phÇn t¹o nªn giao diÖn chÝnh (logo, menu top.html chÝnh, tiªu ®Ò) pwd.html Giao diÖn nhËn mËt khÈu sign.html Trang giao diÖn ph¸t hµnh c¸c chøng chØ IssueCRL Giao diÖn ph¸t hµnh CRL míi 9. Th− môc /home/httpd/htdocs-ca/images Th− môc l−u c¸c tÖp ¶nh. 10. Th− môc /home/httpd/htdocs-ca/scripts Th− môc l−u c¸c tÖp javascript phôc vô cho viÖc thiÕt lËp giao diÖn. 7 2.4 C¸c chøc n¨ng trªn m¸y CA Trªn m¸y CA gåm cã c¸c chøc n¨ng chÝnh sau: • Môc Initilization: Tªn môc, chøc n¨ng M« t¶ chøc n¨ng chÝnh 1.Initilize local perl Database Khëi t¹o c¬ së d÷ liÖu trªn m¸y CA ®Ó l−u c¸c chøng chØ ®· ph¸t hµnh, ®· huû bá 2.Generate Root CA Key Pair Sinh cÆp kho¸ vµ chøng chØ tù ký cho Root CA and Selft Sign Certificate 3.Export Root CA certificate T¹o CRL rçng (ch−a cã chøng chØ bÞ huû bá), and empty CRL to LDAP export CRL rçng vµ chøng chØ cña Root CA ra LDAP • Môc Process Cert Request Tªn môc,chøc n¨ng M« t¶ chøc n¨ng chÝnh Input User's Data NhËp th«ng tin vÒ ng−êi sö dông ®−îc cÊp chøng chØ Signing certificate requests gåm c¸c chøc n¨ng sau: 1.Sign nonRoot CA request files Ph¸t hµnh c¸c chøng chØ sö dông cho nonRoot CA trong hÖ thèng (trong tr−êng hîp hÖ th«ng ¸p dông Ca nhiÒu cÊp). 2.Sign user's request files Ph¸t hµnh c¸c chøng chØ cho ng−êi sö dông Create PKCS#12 Certificate ChuyÓn ®æi ®Þnh d¹ng chøng chØ vµ kho¸ cña ng−êi sö dông sang d¹ng PKCS12 Pending Requests List HiÓn thÞ danh s¸ch c¸c yªu cÇu cÊp chøng chØ cña ng−êi sö dông chua ®−îc ký. • Môc Certificates Tªn môc, chøc n¨ng M« t¶ chøc n¨ng chÝnh Issued Certificates HiÓn thÞ danh s¸ch c¸c chøng chØ ®· ®−îc ph¸t hµnh Export Certificates to LDAP CËp nhËt c¸c chøng chØ ®· ®−îc ph¸t hµnh lªn LDAP server. • Môc CRL Tªn môc, chøc n¨ng M« t¶ chøc n¨ng chÝnh Revoke a certificate by administrator Thùc hiÖn huû bá mét chøng chØ sè Issue New CRL Ph¸t hµnh CRL míi. Udate current CRL to LDAP server CËp nhËt CRL hiÖn hµnh ra LDAP server 8 3-Khëi t¹o cho CA Sau khi thùc hiÖn vµ thiÕt lËp cÊu h×nh cho m¸y CA, ®Ó kÝch ho¹t giao diÖn cña ch−¬ng tr×nh MyCA, ng−êi qu¶n trÞ ch¹y tr×nh duyÖt Netscape, më trang rootca, giao diÖn chÝnh xuÊt hiÖn nh− h×nh 1 H×nh 1 §Ó thùc hiÖn khëi t¹o cho m¸y CA chän chøc n¨ng Root CA initilization, trªn mµn h×nh Netscape xuÊt hiÖn trang MyCA RootCA Init gåm ba chøc n¨ng nh− h×nh 2. H×nh 2 9 • B−íc 1: "Initialize local perl Database" Khëi t¹o c¬ së d÷ liÖu dïng ®Ó l−u c¸c chøng chØ trªn chÝnh m¸y m¸y CA, khi chän chøc n¨ng nµy c¸c tÖp d÷ liÖu dïng ®Ó l−u tr÷ c¸c chøng chØ cña ng−êi sö dông ®−îc khëi t¹o. Qu¸ tr×nh khëi t¹o kÕt thóc khi trªn mµn h×nh xuÊt hiÖn th«ng b¸o: H×nh 3 • B−íc 2: "Generate Root CA key pair and self sign certificate" Thùc hiÖn sinh tÖp kho¸ vµ tÖp chøng chØ tù ký (self sign certificate) cho m¸y CA. Khi chän chøc n¨ng nµy trªn mµn h×nh xuÊt hiÖn hép héi tho¹i khuyÕn c¸o nh− h×nh 4. H×nh 4 Ng−êi qu¶n trÞ chän "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 5 10 H×nh 5 Ng−êi qu¶n trÞ nhËp sè ID hÖ thèng MyCA cÊp cho m¸y CA ®ang thiÕt lËp, råi nhÊn "OK", 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 qu¶n trÞ nhËp vµo ®Þa chØ Email (còng cã thÓ ®Ó trèng), nhÊn "OK", trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 7. H×nh 7 Ng−êi qu¶n trÞ nhËp tªn cña CA (còng cã thÓ ®Ó trèng), nhÊn “OK”, trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 8. H×nh 8 11 Ng−êi qu¶n trÞ nhËp tªn cña ngµnh ®ang ®−îc thiÕt lËp hÖ thèng CA (ch¼ng h¹n Root CA ®ang ®−îc thiÕt lËp cho Ban C¬ YÕu ch¼ng h¹n), tr−êng nµy còng cã thÓ bá trèng, nhÊn “OK”, trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 9. H×nh 9 Tr−êng Organization Name b¾t buéc ph¶i cã vµ gi¸ trÞ mÆc ®Þnh cña tr−êng nµy lµ MyCA Group, nÕu ng−êi qu¶n trÞ muèn thay ®æi tr−êng nµy (hoÆc tr−êng Country) th× khi thiÕt lËp tÖp cÊu h×nh cho LDAP server cÇn thay ®æi hai tr−êng nµy trong thuéc tÝnh suffix cho t−¬ng øng. Tèt nhÊt lµ ng−êi qu¶n trÞ gi÷ nguyªn gi¸ trÞ mÆc ®Þnh, nhÊn “OK”, hép héi tho¹i nhËn tr−êng country xuÊt hiÖn víi gi¸ trÞ mÆc ®Þnh cña tr−êng nµy lµ VN. H×nh 10 Còng t−¬ng tù nh− tr−êng Organization Name, tr−êng Country còng lµ tr−êng yªu cÇu ph¶i cã, víi gi¸ trÞ mÆc ®Þnh lµ “VN” ng−êi qu¶n trÞ cã thÓ nhÊn “OK”, trªn mµn h×nh xuÊt hiÖn hép héi tho¹i nh− h×nh 11. 12 H×nh 11 Ng−êi qu¶n trÞ nhËp mét chuçi cã ®é dµi tèi thiÓu lµ 8 ký tù, ®Ó lµm mÇm kho¸ khi thùc hiÖn m· ho¸ tÖp kho¸ cña CA b»ng thuËt to¸n m· dßng. Chó ý, ng−êi qu¶n trÞ cÇn nhí kü chuçi ®· nhËp vµo, v× mçi khi CA cÇn ph¸t hµnh mét chøng chØ hay mét CRL míi th× ng−êi qu¶n trÞ cÇn nhËp kho¸ nµy vµo ®Ó ch−¬ng tr×nh thùc hiÖn viÖc gi¶i m· tÖp kho¸ cña CA. Sau khi nhËp kho¸, nhÊn “OK” qu¸ tr×nh sinh tÖp kho¸ vµ tÖp chøng chØ tù ký b¾t ®Çu, qu¸ tr×nh nµy sÏ kÕt thóc khi trªn mµn h×nh hiÓn thÞ néi dung cña chøng chØ võa ®−îc sinh. H×nh 12 Sau khi thùc hiÖn qu¸ tr×nh khëi t¹o cho Root CA, sÏ xuÊt hiÖn tÖp kho¸ 01.key (trong th− môc /MyCA/private) ®· ®−îc m· ho¸ b»ng thuËt to¸n m· dßng, vµ tÖp chøng chØ 01.crt (trong th− môc /MyCA) nÕu ng−êi qu¶n trÞ hiÓn thÞ tÖp nµy trªn mµn h×nh text nã sÏ cã d¹ng d−íi ®©y (®Þnh d¹ng PEM): -----BEGIN CERTIFICATE----- MIICazCCAdSgAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMSUwIwYJKoZIhvcNAQkB FhZSb290Q0FUYW5nYmFAeWFob28uY29tMQ8wDQYDVQQDEwZSb290Q0ExDDAKBgNV 13 BAsTA0JDWTETMBEGA1UEChMKTXlDQSBHcm91cDELMAkGA1UEBhMCVk4wHhcNMDIw OTA1MDIwNzE4WhcNMDQwOTA0MDIwNzE4WjBoMSUwIwYJKoZIhvcNAQkBFhZSb290 Q0FUYW5nYmFAeWFob28uY29tMQ8wDQYDVQQDEwZSb290Q0ExDDAKBgNVBAsTA0JD WTETMBEGA1UEChMKTXlDQSBHcm91cDELMAkGA1UEBhMCVk4wgZ4wDQYJKoZIhvcN AQEBBQADgYwAMIGIAoGAQAAIAADgAAoAAGABkBmaBuw0As8qi6ToubbX58N3Zmf4 0Kf6QVylmxKkHhNx/jZ7nYAmJEAAep4ugZz3XHebDym5Pi9vjLCEfTc7fg3796WY qlgjDqTD+tmQEAhorN0jv4E4qhW9rjqBPNAf5cdzRpSjh+tfibbDCUE6RkR2SJsC AwEAAaMmMCQwDwYDVR0TAQH/BAUwAwEB/zARBglghkgBhvhCAQEEBAMCAAcwDQYJ KoZIhvcNAQEFBQADgYEAPmDw/qn2T7G9mx/w2QqCWq5ga+bJsVodcnzRCrgJ9Cq2 lja5SugyDG/t8vW5sb+zBj609ayZY+CzRb7qhddy3tdoDP1Z7pSt9aS1eSeWC6Jb WC5l57o2myromOCitcQBoGR1TrLeEGYwvoZ1BCjer2/ksLm15qyWed6d79+IqDc= -----END CERTIFICATE----- NÕu chuyÓn ®æi sang d¹ng text néi dung cña chøng chØ cã d¹ng nh− sau: Certificate: Data: Version: 3 (0x2) Serial Number: 0 (0x0) Signature Algorithm: sha1WithRSAEncryption Issuer:
[email protected], CN=RootCA, OU=BCY, O=MyCA Group, C=VN Validity Not Before: Sep 5 02:07:18 2002 GMT Not After : Sep 4 02:07:18 2004 GMT Subject:
[email protected], CN=RootCA, OU=BCY, O=MyCA Group, C=VN Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1023 bit) Modulus (1023 bit): 40:00:08:00:00:e0:00:0a:00:00:60:01:90:19:9a: 06:ec:34:02:cf:2a:8b:a4:e8:b9:b6:d7:e7:c3:77: 66:67:f8:d0:a7:fa:41:5c:a5:9b:12:a4:1e:13:71: fe:36:7b:9d:80:26:24:40:00:7a:9e:2e:81:9c:f7: 5c:77:9b:0f:29:b9:3e:2f:6f:8c:b0:84:7d:37:3b: 7e:0d:fb:f7:a5:98:aa:58:23:0e:a4:c3:fa:d9:90: 10:08:68:ac:dd:23:bf:81:38:aa:15:bd:ae:3a:81: 3c:d0:1f:e5:c7:73:46:94:a3:87:eb:5f:89:b6:c3: 09:41:3a:46:44:76:48:9b Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:TRUE Netscape Cert Type: SSL CA, S/MIME CA, Object Signing CA Signature Algorithm: sha1WithRSAEncryption 3e:60:f0:fe:a9:f6:4f:b1:bd:9b:1f:f0:d9:0a:82:5a:ae:60: 6b:e6:c9:b1:5a:1d:72:7c:d1:0a:b8:09:f4:2a:b6:96:36:b9: 4a:e8:32:0c:6f:ed:f2:f5:b9:b1:bf:b3:06:3e:b4:f5:ac:99: 63:e0:b3:45:be:ea:85:d7:72:de:d7:68:0c:fd:59:ee:94:ad: f5:a4:b5:79:27:96:0b:a2:5b:58:2e:65:e7:ba:36:9b:2a:e8: 98:e0:a2:b5:c4:01:a0:64:75:4e:b2:de:10:66:30:be:86:75: 04:28:de:af:6f:e4:b0:b9:b5:e6:ac:96:79:de:9d:ef:df:88: a8:37 Néi dung cña mét chøng chØ gåm hai phÇn nh− sau. 14 -PhÇn data gåm c¸c tr−êng chÝnh sau: • Version: phiªn b¶n chuÈn X509. • Serial Number: Sè serial cña chøng chØ, ®èi víi chøng chØ cña Root CA (silf sign certificate) tr−êng nµy bao giê còng cã gi¸ trÞ lµ 0. (§Ó chØnh l¹i ®Æc ®iÓm nµy phô thuéc vµo tr×nh myssl) • Signature Algorithm: Tªn hµm b¨m vµ thuËt to¸n ký (ë ®©y lµ SHA1 vµ RSA) • Issuer: Tr−êng nµy chøa Distinguished Name (Email, CN, OU...) cña ®èi t−îng ký chøng chØ nµy, ë ®©y ta thÊy néi dung cña Issuer hoµn toµn gièng néi dung trong tr−êng Subject lµ bëi v× chøng chØ nµy ®−îc ký bëi chÝnh nã. • Validity: Tr−êng nµy chøa kho¶ng thêi gian mµ chøng chØ nµy cã hiÖu lùc • Subject: Distinguished Name cña ®èi t−îng ®−îc cÊp chøng chØ. • X509v3 extentions: phÇn më réng theo chuÈn x509V3. -PhÇn ch÷ ký: gåm cã th«ng tin vÒ thuËt to¸n hµm b¨m vµ thuËt to¸n ký cïng néi dung cña ch÷ ký sè. • B−íc 3: "Export Root CA certificate and empty CRL to LDAP" Sau khi thùc hiÖn sinh xong chøng chØ tù ký cho CA, b−íc cuèi cïng trong qui tr×nh khëi t¹o cho CA lµ: sinh ra mét tÖp “empty” CRL, ®©y lµ tÖp CRL ®Çu tiªn khëi t¹o cho toµn bé hÖ thèng thuéc CA nµy qu¶n lý, göi “empty” CRL vµ chøng chØ tù ký cña CA lªn LDAP server. Khi sö dông chøc n¨ng “Export Root CA certificate and empty CRL to LDAP”, hép héi tho¹i xuÊt hiÖn nh− h×nh 13. H×nh 13 Chän “OK” trªn mµn h×nh xuÊt hiÖn hép héi tho¹i yªu cÇu nhËp thêi h¹n cÇn cËp nhËt CRL tiÕp theo nh− h×nh 14 15 H×nh 14 Sau khi nhËp thêi gian (®¬n vÞ lµ ngµy) nhÊn “OK”, trªn mµn h×nh xuÊt hiÖn hép héi tho¹i yªu cÇu nhËp mËt khÈu dïng lµm kho¸ gi¶i m· tÖp kho¸ cña CA xuÊt hiÖn nh− h×nh 11, ng−êi qu¶n trÞ nhËp mËt khÈu vµ nhÊn “OK”, tiÕn tr×nh thùc hiÖn sÏ kÕt thóc khi trªn mµn h×nh cã th«ng b¸o nh− h×nh 15 d−íi ®©y. H×nh 15 Qu¸ tr×nh khëi t¹o cho m¸y m¸y CA kÕt thóc. Sau khi qu¸ tr×nh khëi t¹o kÕt thóc, ngoµi tÖp kho¸ ®· ®−îc m· ho¸ vµ tÖp chøng chØ cña CA nh− chóng t«i ®· tr×nh bµy ë trªn, ch−¬ng tr×nh cßn t¹o ra c¸c tÖp chain.crt, RootCA.crt trong /MyCA/chain ®Ó phôc vô cho viÖc x©y dùng chuçi chøng chØ trong tr−êng hîp thiÕt lËp hÖ thèng gåm nhiÒu cÊp CA vµ tÖp CRL 01_cacrlpem.crl (trong th− môc /MyCA/crl/new) lµ tÖp “empty” CRL (ch−a hÒ cã mét chøng chØ nµo bÞ huû bá). 16