À´Ô´_Öǰ²ÆÎñ ·¢²¼ÈÕÆÚ:2024Äê01ÔÂ13ÈÕ
ÒѾÈëÕ˵ķ¢Æ±ÊǼÙƱӦÈçºÎ´¦Àí
¡¾ÕªÒª¡¿ÔÚÍøÂçµÄ·¢Õ¹ÖÐ,ÍøÂ簲ȫÎÊÌâÔ½À´Ô½Í»³ö,ÔÚÖî¶àÍøÂ簲ȫ¼¼ÊõÖÐ,ÈÏÖ¤»ú¹¹Äܹ»ÓÐЧµØ½â¾öÍøÂçÐÅÏ¢µÄ°²È«ÎÊÌâ¡£±¾ÎÄ̽ÌÖÁËÈÏÖ¤»ú¹¹ÏµÍ³µÄÌåϵ½á¹¹ÒÔ¼°ÔÚʵ¼ÊÔËÐÐʱµÄ¾ßÌåÁ÷³Ì,ÀûÓÃJavaÉè¼ÆÁËÈÏÖ¤»ú¹¹ÏµÍ³ÔÚʵ¼ÊÓ¦ÓÃʱËùÐèÒªµÄÀà±ð¼°ÊµÊ©·½°¸¡£ 1 ÒýÑÔ µç×ÓÉÌÎñ¸øÈËÃǵÄÉú»îºÍ¹¤×÷´øÀ´Á˾޴óµÄ¸Ä±ä,µ«ÔÚµç×ÓÉÌÎñ¸øÈËÃÇ´øÀ´ºÃ´¦µÄͬʱ,Æ䰲ȫÎÊÌâÒ²Öð½¥±©Â¶³öÀ´,¶øÇÒÔ½À´Ô½Êܵ½ÈËÃǵĹØ×¢,ÓÚÊÇÐí¶à¹ØÓÚÍøÂ簲ȫµÄм¼ÊõÓ¦Ô˶øÉú,ÆäÖÐÈÏÖ¤»ú¹¹CA×÷Ϊ½â¾öÍøÂçÐÅÏ¢°²È«ÎÊÌâµÄ¿ª·¢ÐÔм¼Êõ,¼º¾µÃµ½Á˹㷺ӦÓ᣹ØÓÚÈÏÖ¤»ú¹¹µÄÁ˽âÒ²ÊÇÔÚÎÒ½Ìѧ¹ý³ÌÖеÄÒ»¸öÖصãÈÃѧÉúȥѧϰµÄ֪ʶµã¡£ 2 ÈÏÖ¤»ú¹¹CAºÍÊý×ÖÖ¤Êé 2.1 ÈÏÖ¤»ú¹¹CA ÔÚÏÖÔÚµÄÍøÉϽ»Ò×¹ý³ÌÖÐ,ÎÞÂÛÊÇB2B,»¹ÊÇB2C,¶¼ÃæÁÙ×ÅÒ»¸öÎÊÌâ,¾ÍÊÇÈçºÎ½â¾ö½»Ò×Ë«·½µÄÉí·ÝÓÐЧÐÔ,½»Ò×¹ý³ÌµÄºÏ·¨ÐÔ¡£ÈÏÖ¤»ú¹¹CAÈÏÖ¤»ú¹¹(certificate Authority)ÊÇÕû¸öÍøÉϵç×Ó½»Ò×°²È«µÄ¹Ø¼ü»·½Ú,ËüÖ÷Òª¸ºÔð²úÉú¡¢·ÖÅä²¢¹ÜÀíËùÓвÎÓëÍøÉϽ»Ò×µÄÐèÒªÉí·ÝÈÏÖ¤µÄʵÌåµÄÊý×ÖÖ¤Êé,Ϊ½â¾öÓû§ÐÅÈÎÎÊÌâ,½»Ò×Ë«·½ÔÚ½»Ò׵ĸ÷¸ö»·½ÚÖж¼ÐèÒª¼ìÑé¶Ô·½Êý×ÖÖ¤ÊéµÄÓÐЧÐÔ,ËùÒÔ,ÈÏÖ¤»ú¹¹·¢·ÅµÄÖ¤ÊéÒ»¶¨Òª¾ßÓÐȨÍþÐÔ¡¢¹«Ö¤ÐԺͿÉÐÅÀµÐÔ¡£CAÊÇÒ»¸öʵÌå,ÊÇÖ¤ÊéµÄÇ©·¢»ú¹Ø,Êǹ«Ô¿»ù´¡ÉèÊ©µÄºËÐÄ,Ϊ¿Í»§Ìṩǩ·¢¹«Ô¿Ö¤Êé¡¢ÈÏÖ¤Ö¤Êé¡¢·ÖÅäÖ¤ÊéºÍ¹ÜÀíÖ¤ÊéµÄ·þÎñ¡£CA½«¿Í»§µÄ¹«Ô¿Óë¿Í»§µÄÃû³Æ¼°ÆäËüÊôÐÔ¹ØÁªÆðÀ´,²¢Öƶ¨Õþ²ßºÍ¾ßÌå²½ÖèÀ´ÑéÖ¤¡¢Ê¶±ðÓû§Éí·Ý,ÔÙ¶ÔÓû§Ö¤Êé½øÐÐÇ©Ãû,È·±£Ö¤Êé³ÖÓÐÕßµÄÉí·ÝºÍ¹«Ô¿µÄÓµÓÐȨ¡£ 2.2Êý×ÖÖ¤Êé Êý×ÖÖ¤ÊéÊÇÍøÂçͨѶ¸÷·½Éí·ÝÐÅÏ¢µÄһϵÁÐÊý¾Ý,ÊÇͨ¹ýÌض¨µÄ¼ÓÃÜËã·¨À´ÊµÏÖµÄ.ËüÌṩÁËÒ»ÖÖÔÚÍøÉÏÑéÖ¤Éí·ÝµÄ·½Ê½,ÔÚÍøÉϽ»Ò×ʱ¿ÉÒÔÓÃÀ´ÑéÖ¤¶Ô·½µÄÉí·Ý¡£Êý×ÖÖ¤ÊéÊÇÒ»¸öÓÉÈÏÖ¤»ú¹¹È·ÈÏÁËÏàӦ˽Կ³ÖÓÐÕß(ÈË¡¢É豸»òÆäËûʵÌå)µÄÉí·Ý»òÆäËüÊôÐÔºóÓÃÊý×Ö·½Ê½Ç©ÃûµÄ°üº¬¹«¿ªÃÜÔ¿³ÖÓÐÕßÐÅÏ¢ÒÔ¼°¹«¿ªÃÜÔ¿µÄÎļþ¡£Ö¤ÊéÖ÷Òª°üÀ¨Ò»¸ö¹«¿ªÃÜÔ¿¡¢Ö¤ÊéÃû³Æ¼°ÈÏÖ¤»ú¹¹µÄÊý×ÖÇ©Ãû¡£Ò»°ãÇé¿öÏÂ,Êý×ÖÖ¤Ê黹°üÀ¨ÃÜÔ¿µÄÓÐЧʱ¼ä¡¢·¢·ÅÖ¤Êé»ú¹ØµÄÃû³Æ¡¢¸ÃÊý×ÖÖ¤ÊéµÄÐòÁкŵÈÐÅÏ¢¡£ 3 CAϵͳ Ò»¸öµäÐ͵ÄCAϵͳ°üÀ¨°²È«·þÎñÆ÷¡¢CA·þÎñÆ÷¡¢×¢²á»ú¹¹RA ( Registration Authority)¡¢LDAP(Lightweight Directory Access Protocol)Ŀ¼·þÎñÆ÷ºÍÊý¾Ý¿â·þÎñÆ÷¡£ÆäÖа²È«·þÎñÆ÷ÃæÏòÆÕͨÓû§,ÓÃÓÚÌṩ֤ÊéÉêÇë¡¢ä¯ÀÀ¡¢Ö¤Êé³·ÏúÁбíÒÔ¼°Ö¤ÊéÏÂÔصȰ²È«·þÎñ¡£CA·þÎñÆ÷¸ºÔðÖ¤ÊéµÄ°ä·¢¡£LDAP·þÎñÆ÷ÌṩĿ¼ä¯ÀÀ·þÎñ,¸ºÔð½«RA·þÎñÆ÷´«Êä¹ýÀ´µÄÓû§ÐÅÏ¢¼°Êý×ÖÖ¤Êé¼ÓÈëµ½·þÎñÆ÷ÉÏ¡£Êý¾Ý¿â·þÎñÆ÷ÓÃÓÚCAÊý¾Ý¡¢ÈÕÖ¾ºÍͳ¼ÆÐÅÏ¢µÄ´æ´¢ºÍ¹ÜÀí¡£Ä¿Ç°,CAϵͳ¼º¾Í¶ÈëʹÓõ½ºÜ¶àÁìÓò,ÒýÈëCAϵͳµÄ±ØÒªÐÔÖ÷Òª±íÏÖÔÚ:ÐÅÏ¢µÄ¼ÓÃÜ¡¢ÍøÉϽ»Ò׵IJ»¿É·ñÈÏÐÔ¡¢ÌṩInternetÉϵĸ÷·½ÐÅÈÎÒÔ¼°±£Ö¤½»Ò×ÐÅÏ¢µÄÍêÕûÐԵȷ½Ãæ¡£ 4 ¿ª·¢CAϵͳ ´ý¿ª·¢µÄCAϵͳÖ÷Òª°üÀ¨ÒÔϼ¸¸öÔËÐÐʵÌå:¸ùCA¡¢ÒµÎñCA¡¢Óû§ºÍÍøÕ¾¡£¸ùCA¸ºÔðΪҵÎñCA°ä·¢Ö¤Êé,ÒµÎñCAÊǸùCAµÄÓû§,ͬʱÓÖÊǸöÈËÓû§µÄÖ±½ÓCA,¸ºÔðΪÓû§°ä·¢Ö¤Êé,Óû§Í¨¹ýÏòÒµÎñCAÉêÇëÖ¤Êé¶ø»ñµÃ·ÃÎÊÍøÕ¾µÄȨÀû,ÍøÕ¾¸ºÔðÏòÓû§ÌṩÐèÒª°²È«ÈÏÖ¤µÄweb·þÎñ¡£ ´ËCAϵͳµÄÔËÐÐÁ÷³ÌÈçÏ¡£ ( 1)´´½¨Á½¸öÈ«¾Ö¶ÔÏó:¸ùCAÈ«¾Ö¶ÔÏóºÍÒµÎñCAÈ«¾Ö¶ÔÏó; ( 2)µ÷ÓøùCAµÄ¹¹Ô캯Êý,¶Ô¸ùCA½øÐгõʼ»¯; ( 3)µ÷ÓÃÒµÎñCAµÄ¹¹Ô캯Êý,¶ÔÒµÎñÒÔ½øÐгõʼ»¯,Èç¹ûÒµÎñCA³õʼ»¯Ê§°Ü,ÔòÏÈÏò¸ùCAÉêÇëÖ¤Êé,È»ºó´Ó¸ùCAÉÏÏÂÔØÖ¤ÊéºÍ˽Կ; ( 4)ÒµÎñCAΪÓû§°ä·¢Ö¤Êé; ( 5)Óû§´ÓÒµÎñCAÉÏÏÂÔØÖ¤ÊéºÍ˽Կ¡£ ÔÚ¸ùCAÖÐ,´æ·ÅÃÜÔ¿ºÍÖ¤ÊéµÄµØ·½¾ùΪע²á±í,²éÕÒÃÜÔ¿¿âºÍÖ¤Êé¿âÊÇͨ¹ýÔÚ×¢²á±íÖвéÕÒÏàÓ¦ÏîÀ´µÃµ½µÄ,´´½¨ÃÜÔ¿¿âºÍÖ¤Êé¿âÒ²ÊÇÔÚ×¢²á±íÖÐʵÏÖ¡£×÷Ϊ¸ùCA,Ê×ÏÈÐèÒª¸ø×Ô¼º°ä·¢Ò»¸öÖ¤Êé,¸ÃÖ¤ÊéÓɸùCA±¾Éí½øÐÐÇ©Ãû,È»ºóÀûÓøÃÖ¤Êé¸øÆäËüÒµÎñCA°ä·¢Ö¤Ê鲢ǩÃû¡£ÔÚ¸ùCA¸ø×Ô¼º°ä·¢Ö¤ÊéÖ®ºó,¾Í¿ÉÒÔ¸ø¸÷ÒµÎñCA°ä·¢Ö¤Êé¡£ÔÚ¸ùCAʵ¼Ê°ä·¢Ö¤Êéʱ,Ê×ÏÈÔÚÖ¤Êé¿âºÍ˽Կ¿âÖÐÉú³ÉÒµÎñCAµÄÖ¤ÊéºÍ˽Կ,¾ßÌåʵÏÖʱ,¿ÉÒÔдÈëµ½×¢²á±íÖÐ,Ò²¿ÉÒÔдµ½Êý¾Ý¿âÖÐ,»òÕßдµ½LDAP·þÎñÆ÷µÄÏàÓ¦ÏîÖÐ,È»ºó½«Éú³ÉµÄÖ¤ÊéºÍÃÜԿдÈëµ½ÒµÎñCAµÄÏàÓ¦Ó²¼þÖС£ ÔÚÍøÕ¾·½Ãæ,Ó¦¸ÃÅäÖÃÒ»¸öPKIserver·þÎñÆ÷ÓÃÀ´½øÐмÓÃÜ¡¢½âÃÜ¡¢Ç©ÃûºÍÑéÇ©µÈ¸÷ÖÖ¹¦ÄÜ¡£Êµ¼ÊÔËÐÐʱ,¿ÉÒÔ½«ÍøÕ¾ºÍPKIserver·þÎñÆ÷²¿ÊðÔÚͬһ̨·þÎñÆ÷ÉÏ¡£ÔÚÓû§ÓëÍøÕ¾µÄ½»»¥¹ý³ÌÖÐ,ÍøÕ¾ÏÈ·µ»ØÒ»¸öËæ»úÊý¸øÓû§,Óû§Äõ½¸ÃËæ»úÊýºó,±íʾÍøÕ¾½«Òª·¢Ë͵ÄÐÅÏ¢ÒÔ´ËËæ»úÊý×÷Ϊ¶Ô³ÆÃÜÔ¿½øÐмÓÃÜ,Óû§Ó¦¸ÃÏȶԴËËæ»úÊý½øÐÐÇ©ÃûÈ·ÈÏ,±íʾÕýÈ·ÊÕµ½¸ÃËæ»úÊý,Èç¹û¸ÃËæ»úÊýÔÚ´«Êä¹ý³ÌÖгö´í,ÔòºóÃæ½øÐÐÑéǩʱ²»»áͨ¹ý¡£ÍøÕ¾ÔÚÊÕµ½Óû§µÄÈ·ÈÏÐÅÏ¢Ö®ºó,¾Í¿ÉÒÔʹÓÃÓû§µÄ¼ÓÃÜÖ¤Êé¶ÔÃÜÔ¿½øÐмÓÃÜ,²¢ÓÃ×Ô¼ºµÄÇ©ÃûÖ¤Êé¶Ô·¢ËÍÐÅÏ¢½øÐÐÇ©Ãû,Óû§ÊÕµ½ÐÅÏ¢ºó,Ê×ÏÈʹÓÃÍøÕ¾Ö¤ÊéµÄ¹«Ô¿½øÐÐÑé֤ǩÃû,È·ÈÏÐÅÏ¢ÕýÈ·ºó,ÓÃ˽Կ½â¿ª¶Ô³ÆÃÜÔ¿,È»ºóÓøöԳÆÃÜÔ¿½âÃÜÐÅÏ¢,µÃµ½ËùÐèµÄÃ÷ÎÄÐÅÏ¢¡£Èç¹ûÖ»ÊÇÓû§Ö®¼ä½øÐа²È«ÐÅÏ¢µÄ½»»¥,ÔòÖ»Ð轫ÍøÕ¾ÉϵÄÖ¤ÊéÌ滻ΪÏàÓ¦µÄÓû§Ö¤Êé¼´¿É¡£ ¸ù¾ÝÒÔÉÏÁ÷³Ì,¿ÉÒÔΪϵͳÉè¼ÆÈçϼ¸¸öÀà: class CABase { void init(){ } void downloadCert(){ } void issueCert(){ } Boolean isEmpty(){ } void exportCert(){ } void importCert(){ } voidgenerateKey(){ } } ÆäÖк¯Êýinit()ÓÃÀ´³õʼ»¯Àà¶ÔÏó,º¯ÊýdownloadCert ()ÓÃÀ´ÊµÏÖÏÂÔØÖ¤ÊéµÄ¹¦ÄÜ,º¯ÊýissueCert ()ÓÃÀ´ÊµÏÖ°ä·¢Ö¤ÊéµÄ¹¦ÄÜ,º¯ÊýisEmpty()ÓÃÀ´Åжϵ±Ç°¶ÔÏóÊÇ·ñ¼º¾³õʼ»¯,º¯ÊýexPortCert ()ÓÃÀ´ÊµÏÖÊä³öÖ¤ÊéµÄ¹¦ÄÜ,º¯ÊýimPortCert()ÓÃÀ´ÊµÏÖµ¼ÈëÖ¤ÊéµÄ¹¦ÄÜ,º¯ÊýgenerateKey ()ÓÃÀ´ÊµÏÖÉú³ÉÃÜÔ¿µÄ¹¦ÄÜ¡£½Ó×ÅÉè¼ÆÀàRootCAºÍBuslCA,ÕâÁ½¸öÀ඼¼Ì³ÐÀàCABase,²¢ÇÒÖØÔØÁËÀàCABaseÀïinit()¡¢downloadCert()¡¢issueCert()Èý¸öº¯Êý,·Ö±ðÀ´ÊµÏÖ×Ô¼ºÒµÎñµÄ²Ù×÷¡£ ×îºóÉè¼ÆÀàKey,ÆäÖ÷Òª¹¦ÄÜÊÇ´ÓÓ²¼þÉ豸»òÈí¼þÖжÁÈ¡Ö¤ÊéºÍÃÜÔ¿ÒÔ¼°ÏòÓ²¼þÉ豸дÈëÖ¤ÊéºÍÃÜÔ¿ÐÅÏ¢¡£ class Key { void readCert() {} void writeCert() {} void readKey(){} void writeKey() {} void generateSignKey(){ } void exportSignKey() { } ÆäÖк¯ÊýreadCert()ÓÃÀ´ÊµÏÖ¶ÁÈ¡Ö¤ÊéµÄ¹¦ÄÜ,¶øº¯ÊýwriteCert()ÓÃÀ´ÊµÏÖд֤ÊéµÄ¹¦ÄÜ,º¯ÊýreadKey()ÓÃÀ´ÊµÏÖ¶ÁÈ¡ÃÜÔ¿µÄ¹¦ÄÜ,¶øº¯ÊýwriteKey()ÓÃÀ´ÊµÏÖдÃÜÔ¿µÄ¹¦ÄÜ,º¯ÊýgenerateSignKey()ÓÃÀ´ÊµÏÖÉú³ÉÇ©ÃûÃÜÔ¿µÄ¹¦ÄÜ,¶øº¯ÊýexportSignKey()ÓÃÀ´ÊµÏÖµ¼³öÇ©ÃûÃÜÔ¿µÄ¹¦ÄÜ¡£ ²Î¿¼ÎÄÏ×: [1]ÁÖ·ã.µç×ÓÉÌÎñ°²È«¼¼Êõ¼°Ó¦ÓÃ[J].±±¾©:±±¾©º½¿Õº½Ìì´óѧ³ö°æÉç,2001. [2]Willialm stallingsÖø,ÑîÃ÷,лϣÈʵÈÒë.ÃÜÂë±àÂëѧÓëÍøÂ簲ȫ¡¢ÔÀíÓëʵ¼ù(µÚ¶þ°æ)[M].±±¾©:µç×Ó¹¤Òµ³ö°æÉç,2001. [3]¹ØÕñʤ.¹«Ô¿»ù´¡ÉèÊ©PKIÓëÈÏÖ¤»ú¹¹CA[ M].±±¾©:µç×Ó¹¤Òµ³ö°æÉç,2002 . ¡¾¡¿ ÔðÈα༣ºlcl £³£Çµç×ÓÉÌÎñ·¢Õ¹²ßÂÔÑо¿
º£¹Ø×ÜÊ𹫸æ2023ÄêµÚ103ºÅ£¨¹ØÓÚÈ«ÃæÔÝÍ£½ø¿ÚÈÕ±¾Ë®²úÆ·µÄ¹«¸æ£©¹«¸æ¡²2023¡³103ºÅΪȫÃæ·À·¶ÈÕ±¾¸£µººËÎÛȾˮÅź£¶ÔʳƷ°²È«Ôì³ÉµÄ·ÅÉäÐÔÎÛȾ·çÏÕ£¬±£»¤ÖйúÏû·ÑÕß½¡¿µ£¬È·±£½ø¿ÚʳƷ°²È«£¬ÒÀ¾Ý¡¶ÖлªÈËÃñ¹²ºÍ¹úʳƷ°²È«·¨¡·¼°ÆäʵʩÌõÀý¡¢¡¶ÖлªÈËÃñ¹²ºÍ¹ú½ø³ö¿ÚʳƷ°²È«¹ÜÀí°ì·¨¡·Óйع涨£¬ÒÔ¼°ÊÀ½çóÒ××éÖ¯¡¶ÊµÊ©ÎÀÉúÓëÖ²ÎïÎÀÉú´ëʩж¨¡·Óйع涨£¬º£¹Ø×ÜÊð¾ö¶¨×Ô2023Äê8ÔÂ24ÈÕ£¨º¬£©ÆðÈ«ÃæÔÝÍ£½ø¿ÚÔ²úµØΪÈÕ±¾µÄË®²úÆ·£¨º¬Ê³ÓÃË®Éú¶¯Î¡£Ìش˹«¸æ¡£º£¹Ø×ÜÊð2023Äê8ÔÂ24ÈÕ¸ü¶àÍƼö£º ¡¶ÖлªÈËÃñ¹²ºÍ¹ú·¢Æ±¹ÜÀí°ì·¨¡·Ð޸ĶԱȱí