Calvin's Tech Space

          成于堅忍,毀于浮躁

             :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理

          PKCS

          PKCS 全稱是 Public-Key Cryptography Standards ,是由 RSA 實(shí)驗(yàn)室與其它安全系統(tǒng)開發(fā)商為促進(jìn)公鑰密碼的發(fā)展而制訂的一系列標(biāo)準(zhǔn)。

          What is PKCS? http://www.rsa.com/rsalabs/node.asp?id=2308

          PKCS 目前共發(fā)布過 15 個標(biāo)準(zhǔn):
          (1)PKCS#1:RSA加密標(biāo)準(zhǔn)。PKCS#1定義了RSA公鑰函數(shù)的基本格式標(biāo)準(zhǔn),特別是數(shù)字簽名。它定義了數(shù)字簽名如何計算,包括待簽名數(shù)據(jù)和簽名本身的格式;它也定義了PSA公/私鑰的語法。

          (2)PKCS#2:涉及了RSA的消息摘要加密,這已被并入PKCS#1中。

          (3)PKCS#3:Diffie-Hellman密鑰協(xié)議標(biāo)準(zhǔn)。PKCS#3描述了一種實(shí)現(xiàn)Diffie- Hellman密鑰協(xié)議的方法。

          (4)PKCS#4:最初是規(guī)定RSA密鑰語法的,現(xiàn)已經(jīng)被包含進(jìn)PKCS#1中。

          (5)PKCS#5:基于口令的加密標(biāo)準(zhǔn)。PKCS#5描述了使用由口令生成的密鑰來加密8位位組串并產(chǎn)生一個加密的8位位組串的方法。PKCS#5可以用于加密私鑰,以便于密鑰的安全傳輸(這在PKCS#8中描述)。

          (6)PKCS#6:擴(kuò)展證書語法標(biāo)準(zhǔn)。PKCS#6定義了提供附加實(shí)體信息的X.509證書屬性擴(kuò)展的語法(當(dāng)PKCS#6第一次發(fā)布時,X.509還不支持?jǐn)U展。這些擴(kuò)展因此被包括在X.509中)。

          (7)PKCS#7:密碼消息語法標(biāo)準(zhǔn)。PKCS#7為使用密碼算法的數(shù)據(jù)規(guī)定了通用語法,比如數(shù)字簽名和數(shù)字信封。PKCS#7提供了許多格式選項(xiàng),包括未加密或簽名的格式化消息、已封裝(加密)消息、已簽名消息和既經(jīng)過簽名又經(jīng)過加密的消息。

          (8)PKCS#8:私鑰信息語法標(biāo)準(zhǔn)。PKCS#8定義了私鑰信息語法和加密私鑰語法,其中私鑰加密使用了PKCS#5標(biāo)準(zhǔn)。

          (9)PKCS#9:可選屬性類型。PKCS#9定義了PKCS#6擴(kuò)展證書、PKCS#7數(shù)字簽名消息、PKCS#8私鑰信息和PKCS#10證書簽名請求中要用到的可選屬性類型。已定義的證書屬性包括E-mail地址、無格式姓名、內(nèi)容類型、消息摘要、簽名時間、簽名副本(counter signature)、質(zhì)詢口令字和擴(kuò)展證書屬性。

          (10)PKCS#10:證書請求語法標(biāo)準(zhǔn)。PKCS#10定義了證書請求的語法。證書請求包含了一個唯一識別名、公鑰和可選的一組屬性,它們一起被請求證書的實(shí)體簽名(證書管理協(xié)議中的PKIX證書請求消息就是一個PKCS#10)。

          (11)PKCS#11:密碼令牌接口標(biāo)準(zhǔn)。PKCS#11或“Cryptoki”為擁有密碼信息(如加密密鑰和證書)和執(zhí)行密碼學(xué)函數(shù)的單用戶設(shè)備定義了一個應(yīng)用程序接口(API)。智能卡就是實(shí)現(xiàn)Cryptoki的典型設(shè)備。注意:Cryptoki定義了密碼函數(shù)接口,但并未指明設(shè)備具體如何實(shí)現(xiàn)這些函數(shù)。而且Cryptoki只說明了密碼接口,并未定義對設(shè)備來說可能有用的其他接口,如訪問設(shè)備的文件系統(tǒng)接口。

          (12)PKCS#12:個人信息交換語法標(biāo)準(zhǔn)。PKCS#12定義了個人身份信息(包括私鑰、證書、各種秘密和擴(kuò)展字段)的格式。PKCS#12有助于傳輸證書及對應(yīng)的私鑰,于是用戶可以在不同設(shè)備間移動他們的個人身份信息。

          (13)PDCS#13:橢圓曲線密碼標(biāo)準(zhǔn)。PKCS#13標(biāo)準(zhǔn)當(dāng)前正在完善之中。它包括橢圓曲線參數(shù)的生成和驗(yàn)證、密鑰生成和驗(yàn)證、數(shù)字簽名和公鑰加密,還有密鑰協(xié)定,以及參數(shù)、密鑰和方案標(biāo)識的ASN.1語法。

          (14)PKCS#14:偽隨機(jī)數(shù)產(chǎn)生標(biāo)準(zhǔn)。PKCS#14標(biāo)準(zhǔn)當(dāng)前正在完善之中。為什么隨機(jī)數(shù)生成也需要建立自己的標(biāo)準(zhǔn)呢?PKI中用到的許多基本的密碼學(xué)函數(shù),如密鑰生成和Diffie-Hellman共享密鑰協(xié)商,都需要使用隨機(jī)數(shù)。然而,如果“隨機(jī)數(shù)”不是隨機(jī)的,而是取自一個可預(yù)測的取值集合,那么密碼學(xué)函數(shù)就不再是絕對安全了,因?yàn)樗娜≈当幌抻谝粋€縮小了的值域中。因此,安全偽隨機(jī)數(shù)的生成對于PKI的安全極為關(guān)鍵。

          (15)PKCS#15:密碼令牌信息語法標(biāo)準(zhǔn)。PKCS#15通過定義令牌上存儲的密碼對象的通用格式來增進(jìn)密碼令牌的互操作性。在實(shí)現(xiàn)PKCS#15的設(shè)備上存儲的數(shù)據(jù)對于使用該設(shè)備的所有應(yīng)用程序來說都是一樣的,盡管實(shí)際上在內(nèi)部實(shí)現(xiàn)時可能所用的格式不同。PKCS#15的實(shí)現(xiàn)扮演了翻譯家的角色,它在卡的內(nèi)部格式與應(yīng)用程序支持的數(shù)據(jù)格式間進(jìn)行轉(zhuǎn)換。

          X509

          X.509是常見通用的證書格式。所有的證書都符合為Public Key Infrastructure (PKI) 制定的 ITU-T X509 國際標(biāo)準(zhǔn)。X.509是國際電信聯(lián)盟-電信(ITU-T)部分標(biāo)準(zhǔn)和國際標(biāo)準(zhǔn)化組織(ISO)的證書格式標(biāo)準(zhǔn)。作為ITU-ISO目錄服務(wù)系列標(biāo)準(zhǔn)的一部分,X.509是定義了公鑰證書結(jié)構(gòu)的基本標(biāo)準(zhǔn)。1988年首次發(fā)布,1993年和1996年兩次修訂。當(dāng)前使用的版本是X.509 V3,它加入了擴(kuò)展字段支持,這極大地增進(jìn)了證書的靈活性。X.509 V3證書包括一組按預(yù)定義順序排列的強(qiáng)制字段,還有可選擴(kuò)展字段,即使在強(qiáng)制字段中,X.509證書也允許很大的靈活性,因?yàn)樗鼮榇蠖鄶?shù)字段提供了多種編碼方案.

          PKCS#7 常用的后綴是: .P7B .P7C .SPC
          PKCS#12 常用的后綴有: .P12 .PFX
          X.509 DER 編碼(ASCII)的后綴是: .DER .CER .CRT
          X.509 PAM 編碼(Base64)的后綴是: .PEM .CER .CRT
          .cer/.crt是用于存放證書,它是2進(jìn)制形式存放的,不含私鑰。
          .pem跟crt/cer的區(qū)別是它以Ascii來表示。
          pfx/p12用于存放個人證書/私鑰,他通常包含保護(hù)密碼,2進(jìn)制方式
          p10是證書請求
          p7r是CA對證書請求的回復(fù),只用于導(dǎo)入
          p7b以樹狀展示證書鏈(certificate chain),同時也支持單個證書,不含私鑰。

          一 用openssl創(chuàng)建CA證書的RSA密鑰(PEM格式):
          openssl genrsa -des3 -out ca.key 1024

          二用openssl創(chuàng)建CA證書(PEM格式,假如有效期為一年):
          openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf
          openssl是可以生成DER格式的CA證書的,最好用IE將PEM格式的CA證書轉(zhuǎn)換成DER格式的CA證書。

          三 x509到pfx
          pkcs12 -export –in keys/client1.crt -inkey keys/client1.key -out keys/client1.pfx

          四 PEM格式的ca.key轉(zhuǎn)換為Microsoft可以識別的pvk格式。
          ? pvk -in ca.key -out ca.pvk -nocrypt -topvk
          五 PKCS#12 到 PEM 的轉(zhuǎn)換
          openssl pkcs12 -nocerts -nodes -in cert.p12 -out private.pem
          驗(yàn)證 openssl pkcs12 -clcerts -nokeys -in cert.p12 -out cert.pem
          六 從 PFX 格式文件中提取私鑰格式文件 (.key)
          openssl pkcs12 -in mycert.pfx -nocerts -nodes -out mycert.key
          七 轉(zhuǎn)換 pem 到到 spc
          openssl crl2pkcs7 -nocrl -certfile venus.pem? -outform DER -out venus.spc
          用 -outform -inform 指定 DER 還是 PAM 格式。例如:
          openssl x509 -in Cert.pem -inform PEM -out cert.der -outform DER
          八 PEM 到 PKCS#12 的轉(zhuǎn)換,
          openssl pkcs12 -export -in Cert.pem -out Cert.p12 -inkey key.pem

          密鑰庫文件格式【Keystore】

          ?格式???? :? JKS
          ?擴(kuò)展名? : .jks/.ks
          ?描述???? : 【Java Keystore】密鑰庫的Java實(shí)現(xiàn)版本,provider為SUN
          ?特點(diǎn)???? :? 密鑰庫和私鑰用不同的密碼進(jìn)行保護(hù)
          ?
          ?格式???? :? JCEKS
          ?擴(kuò)展名? :? .jce
          ?描述???? :?【JCE Keystore】密鑰庫的JCE實(shí)現(xiàn)版本,provider為SUN JCE
          ?特點(diǎn)???? :? 相對于JKS安全級別更高,保護(hù)Keystore私鑰時采用TripleDES
          ?
          ?格式???? :? PKCS12
          ?擴(kuò)展名? :? .p12/.pfx
          ?描述???? :?【PKCS #12】個人信息交換語法標(biāo)準(zhǔn)
          ?特點(diǎn)???? :? 1、包含私鑰、公鑰及其證書
          ???????????????2、密鑰庫和私鑰用相同密碼進(jìn)行保護(hù)
          ?
          ?格式???? :? BKS
          ?擴(kuò)展名? : .bks
          ?描述???? :? Bouncycastle Keystore】密鑰庫的BC實(shí)現(xiàn)版本,provider為BC
          ?特點(diǎn)???? :? 基于JCE實(shí)現(xiàn)
          ?
          ?格式???? : UBER
          ?擴(kuò)展名? : .ubr
          ?描述???? : 【Bouncycastle UBER Keystore】密鑰庫的BC更安全實(shí)現(xiàn)版本,provider為BC


          證書文件格式【Certificate】
          格式??????????:? DER
          擴(kuò)展名???????:? .cer/.crt/.rsa

          描述??????????: 【ASN .1 DER】用于存放證書
          特點(diǎn)??????????:? 不含私鑰、二進(jìn)制

          格式??????????:? PKCS7
          擴(kuò)展名???????: .p7b/.p7r
          描述??????????: 【PKCS #7】加密信息語法標(biāo)準(zhǔn)

          特點(diǎn)??????????: 1、p7b以樹狀展示證書鏈,不含私鑰
          ????????????????? 2、p7r為CA對證書請求簽名的回復(fù),只能用于導(dǎo)入

          格式??????????:? CMS
          擴(kuò)展名???????:? .p7c/.p7m/.p7s
          描述??????????: 【Cryptographic Message Syntax】
          特點(diǎn)??????????: 1、p7c只保存證書
          ??????????????????2、p7m:signature with enveloped data
          ????????????????? 3、p7s:時間戳簽名文件
          ?
          格式??????????:? PEM
          擴(kuò)展名???????: .pem
          描述??????????: 【Printable Encoded Message】
          特點(diǎn)????????? : 1、該編碼格式在RFC1421中定義,其實(shí)PEM是【Privacy-Enhanced Mail】的簡寫,但他也同樣廣泛運(yùn)用于密鑰管理
          ??????????????????2、ASCII文件
          ??????????????????3、一般基于base 64編碼

          格式?????????: ?PKCS10
          擴(kuò)展名??????:?.p10/.csr
          描述???????? : 【PKCS #10】公鑰加密標(biāo)準(zhǔn)【Certificate Signing Request】
          特點(diǎn)???????? :? 1、證書簽名請求文件
          ????????????????? 2、ASCII文件
          ????????????????? 3、CA簽名后以p7r文件回復(fù)

          格式???????? :? SPC
          擴(kuò)展名????? :?.pvk/.spc
          描述???????? : 【Software Publishing Certificate】
          特點(diǎn)???????? :? 微軟公司特有的雙證書文件格式,經(jīng)常用于代碼簽名,其中
          ????????????????? 1、pvk用于保存私鑰
          ????????????????? 2、spc用于保存公鑰

          轉(zhuǎn)自http://blog.csdn.net/hansel/article/details/4447631

          X509和PKCS的關(guān)系討論:http://topic.csdn.net/u/20071015/18/37a2bffb-2354-493e-b5a9-b96ab28063ae.html

          posted on 2011-08-18 10:07 calvin 閱讀(8328) 評論(1)  編輯  收藏 所屬分類: 安全

          Feedback

          # re: PKI常見證書格式和轉(zhuǎn)換[未登錄] 2015-11-22 09:43 aaaaa
          hao   回復(fù)  更多評論
            

          主站蜘蛛池模板: 丰宁| 阿瓦提县| 托克逊县| 凤城市| 五大连池市| 肥乡县| 闸北区| 昆山市| 兴文县| 沅陵县| 洪江市| 鄂州市| 铜山县| 通辽市| 井冈山市| 宁陵县| 扶余县| 连平县| 运城市| 梅州市| 南投县| 遂川县| 萨嘎县| 土默特左旗| 墨江| 柏乡县| 芮城县| 嫩江县| 芜湖县| 清新县| 惠来县| 钦州市| 开平市| 九龙县| 长顺县| 赤壁市| 普陀区| 沙湾县| 松滋市| 新巴尔虎右旗| 车险|