PKI

PKI(公鑰基礎(chǔ)設(shè)施Public KeyInfrastructure)

是網(wǎng)絡(luò)信息安全的一項(xiàng)關(guān)鍵技術(shù)肥败,廣泛用于高強(qiáng)度趾浅、高級(jí)別的信息保護(hù)、身份鑒別馒稍、安全通訊皿哨、行為鑒定等安全領(lǐng)域。

X.500

  • 是ITU-T關(guān)于目錄服務(wù)的一系列規(guī)范纽谒、協(xié)議证膨,用于解決國際電話、電報(bào)互聯(lián)互通鼓黔、郵件發(fā)送時(shí)的人員查找央勒、身份認(rèn)證等問題。

  • 包括了多個(gè)子集:X.501澳化、X.509

    X.509是一種非常通用的證書格式崔步。所有的證書都符合ITU-T X.509國際標(biāo)準(zhǔn),因此(理論上)為一種應(yīng)用創(chuàng)建的證書可以用于任何其他符合X.509標(biāo)準(zhǔn)的應(yīng)用缎谷。

    在一份證書中井濒,必須證明公鑰及其所有者的姓名是一致的。對X.509證書來說列林,認(rèn)證者總是CA或由CA指定的人瑞你,一份X.509證書是一些標(biāo)準(zhǔn)字段的集合,這些字段包含有關(guān)用戶或設(shè)備及其相應(yīng)公鑰的信息希痴。X.509標(biāo)準(zhǔn)定義了證書中應(yīng)該包含哪些信息者甲,并描述了這些信息是如何編碼的(即數(shù)據(jù)格式)

詳細(xì)特征

所有的X.509證書包含以下數(shù)據(jù):

  • 1、X.509版本號(hào)(version):指出該證書使用了哪種版本的X.509標(biāo)準(zhǔn)砌创,版本號(hào)會(huì)影響證書中的一些特定信息虏缸。目前的版本是3。
  • 2嫩实、證書的序列號(hào)(serialNumber):由CA給予每一個(gè)證書分配的唯一的數(shù)字型編號(hào)寇钉,當(dāng)證書被取消時(shí),實(shí)際上是將此證書序列號(hào)放入由CA簽發(fā)的CRL(Certificate Revocation List證書作廢表舶赔,或證書黑名單表)中。這也是序列號(hào)唯一的原因谦秧。
  • 3竟纳、認(rèn)證機(jī)構(gòu)(Issuer Name):證書發(fā)布者撵溃,是簽發(fā)該證書的實(shí)體唯一的CA的X.500名字。使用該證書意味著信任簽發(fā)證書的實(shí)體锥累。(注意:在某些情況下缘挑,比如根或頂級(jí)CA證書,發(fā)布者自己簽發(fā)證書)
  • 4桶略、證書的有效期(validity):證書起始日期和時(shí)間以及終止日期和時(shí)間语淘;指明證書在這兩個(gè)時(shí)間內(nèi)有效。
  • 5际歼、主題信息(subject):證書持有人唯一的標(biāo)識(shí)符(或稱DN-distinguished name)這個(gè)名字在 Internet上應(yīng)該是唯一的惶翻。DN由許多部分組成,看起來象這樣:

CN=Bob Allen,//公用名稱

OU=Total Network Security Division//組織單位

O=Network Associates, Inc.//組織

C=US//國家

這些信息指出該科目的通用名鹅心、組織單位吕粗、組織和國家或者證書持有人的姓名、服務(wù)處所等信息旭愧。

  • 6颅筋、證書持有人的公鑰(subjectPublicKeyInfo):包括證書持有人的公鑰、算法(指明密鑰屬于哪種密碼系統(tǒng))的標(biāo)識(shí)符和其他相關(guān)的密鑰參數(shù)输枯。
  • 7议泵、Issuer Unique Identifier (optional):發(fā)行人唯一標(biāo)志
  • 8、Subject Unique Identifier (optional):主題唯一標(biāo)志
  • 9桃熄、簽名算法標(biāo)識(shí)符(Certificate Signature Algorithm):用來指定CA簽署證書時(shí)所使用的簽名算法先口。算法標(biāo)識(shí)符用來指定CA簽發(fā)證書時(shí)所使用的公開密鑰算法和HASH算法。
  • 10蜻拨、發(fā)布者的數(shù)字簽名(Certificate Signature):這是使用發(fā)布者私鑰生成的簽名池充,以確保這個(gè)證書在發(fā)放之后沒有被撰改過。

證書擴(kuò)展項(xiàng)

  • 授權(quán)密鑰標(biāo)識(shí)符:提供識(shí)別對使用私有密鑰在一張證書上簽名相對應(yīng)的公開密鑰的手段
  • 主題密鑰標(biāo)識(shí)符:提供識(shí)別包含特定公開密鑰的證書的的手段
  • 密鑰使用:證書密鑰的目的(加密缎讼、簽名收夸、簽名證書)
  • 私有密鑰使用周期:不建議使用
  • 證書策略:包含由對象標(biāo)識(shí)符和可選的限定語組成的一個(gè)或多個(gè)策略信息條目
    • CSP Pointer 包含指向CA發(fā)布的證書實(shí)施聲明指針,URL格式
    • User notice將展示依靠部分
  • 策略映射
  • 主體可替換名稱
  • 發(fā)行者可替換名稱
  • 基本約束:識(shí)別出證書的主體
  • 策略約束
  • 擴(kuò)大密鑰的使用領(lǐng)域
  • CRL發(fā)布點(diǎn)

擴(kuò)展文件

.cer, .crt - 通常被用于二進(jìn)制的DER文件格式(同于.der), 不過也被用于Base64編碼的文件 (例如 .pem).

.P7B - 同于 .p7c

.P7C - PKCS#7證書格式血崭,僅僅包含證書和CRL列表信息卧惜,沒有私鑰。

.PFX - 同于 .p12

.P12 -PKCS#12文件, 包含證書(公鑰)和私鑰(受密碼保護(hù))夹纫,已經(jīng)完整的證書鏈信咽瓷。

PKCS#7 是一種將數(shù)據(jù)加密和簽名(正式名稱是“enveloping”)的技術(shù)標(biāo)準(zhǔn)。 它描述數(shù)字證書的語法和其他加密消息——尤其是舰讹,數(shù)據(jù)加密和數(shù)字簽名的方法茅姜,也包含了算法。但PKCS#7不包含私鑰信息月匣。

PKCS#12 定義了一個(gè)用于保存私鑰和對應(yīng)公鑰證書的文件格式钻洒,并由對稱密鑰加密保護(hù)奋姿。PKCS#12通常采用PFX,P12作為文件擴(kuò)展名。 PKCS#12文件可以存放多個(gè)證書素标,并由密碼保護(hù)称诗,通常用于WINDOWS IIS,也能夠被當(dāng)作Java Keysotre文件使用头遭,用于Tomcat寓免,Resign,Weblogic计维,Jboss等袜香,不能被用于Apache.

編碼 (也用于擴(kuò)展名)

  • .DER = 擴(kuò)展名DER用于二進(jìn)制DER編碼的證書。這些證書也可以用CER或者CRT作為擴(kuò)展名享潜。比較合適的說法是“我有一個(gè)DER編碼的證書”困鸥,而不是“我有一個(gè)DER證書”。
  • .PEM = 擴(kuò)展名PEM用于ASCII(Base64)編碼的各種X.509 v3 證書剑按。文件開始由一行"—– BEGIN …“開始疾就。

常用的擴(kuò)展名

  • .CRT = 擴(kuò)展名CRT用于證書。證書可以是DER編碼艺蝴,也可以是PEM編碼猬腰。擴(kuò)展名CER和CRT幾乎是同義詞。這種情況在各種unix/linux系統(tǒng)中很常見猜敢。
  • CER = CRT證書的微軟型式姑荷。可以用微軟的工具把CRT文件轉(zhuǎn)換為CER文件(CRT和CER必須是相同編碼的缩擂,DER或者PEM)鼠冕。擴(kuò)展名為CER的文件可以被IE識(shí)別并作為命令調(diào)用微軟的cryptoAPI(具體點(diǎn)就是rudll32.exe cryptext.dll, CyrptExtOpenCER),進(jìn)而彈出一個(gè)對話框來導(dǎo)入并/或查看證書內(nèi)容胯盯。
  • .KEY = 擴(kuò)展名KEY用于PCSK#8的公鑰和私鑰懈费。這些公鑰和私鑰可以是DER編碼或者PEM編碼。

CRT文件和CER文件只有在使用相同編碼的時(shí)候才可以安全地相互替代博脑。

總結(jié)

  • ITU-T制定X.509 V1規(guī)范

  • IETF 制定PKI的大部分協(xié)議

  • RSA公司制定PKCS系列標(biāo)準(zhǔn)

  • OSCCA制定國密相關(guān)標(biāo)準(zhǔn)

  • CERTICOM憎乙、SECG定制ECC相關(guān)標(biāo)準(zhǔn)。

X.500系列

  • X.500是關(guān)于目錄服務(wù)一系列標(biāo)準(zhǔn)
  • X.501是關(guān)于目錄服務(wù)數(shù)據(jù)模型的定義
  • X.509是關(guān)于目錄服務(wù)認(rèn)證框架的定義
  • X.520是數(shù)據(jù)模型中屬性定義
  • X.521是數(shù)據(jù)模型中對象定義
  • ASN.1是協(xié)議定義語言
  • BER叉趣、DER泞边、CER是編碼格式
  • X.509是證書協(xié)議
  • BASD64、PEM是另一層次的編碼格式

PKCS系列

  • PKCS#1定義了RSA公私鑰格式及RSA運(yùn)算過程疗杉、填充格式阵谚。
  • PKCS#5定義了基于口令的私鑰保護(hù)方式
  • PKCS#7定義了數(shù)字封裝格式,可以用于證書鏈、簽名梢什、數(shù)字信封闻牡。
  • PKCS#8定義了更通用的私鑰保護(hù)格式
  • PKCS#10定義了證書請求格式
  • PKCS#11定義了加密介質(zhì)接口。
  • PKCS#12定義了帶私鑰的證書格式绳矩。

編碼格式

  • BER: Basic Encoding Rules
    • 基本編碼格式。
    • 對相同的數(shù)據(jù)玖翅,可以有多種編碼方式翼馆,比如長字節(jié)型、短字節(jié)型金度、不定長型等应媚。
  • DER: Distinguished Encoding Rules
    • 是BER的一個(gè)子集,為更嚴(yán)格的一個(gè)變種版本猜极。
    • 和BER相比中姜,DER的編碼格式只有固定一種。比如BER的Boolean變量編碼值是可以1~255的任意值跟伏,而DER只能是1丢胚。
    • DER使用在有數(shù)據(jù)簽名的場合,以保證數(shù)據(jù)原文編碼后可以保持一致受扳。
    • X.509證書都是DER編碼携龟。
  • CER: Canonical Encoding Rules
    • CER和DER一樣,都是BER的限定編碼規(guī)則的子集勘高。
    • CER和DER不同在于它是不定長編碼峡蟋,可以用于大數(shù)據(jù)塊的封裝。
    • PKCS#7數(shù)字信封可以用DER編碼华望,也可以用CER編碼蕊蝗。

證書結(jié)構(gòu)

 Certificate  ::=  SEQUENCE  {
        tbsCertificate       TBSCertificate, //證書內(nèi)容
        signatureAlgorithm   AlgorithmIdentifier,// 簽名算法
        signatureValue       BIT STRING//簽名值  對tbsCer進(jìn)行DER編碼
        } 
 TBSCertificate  ::=  SEQUENCE  {
        version         [0]  EXPLICIT Version DEFAULT v1,
        serialNumber         CertificateSerialNumber,
        signature            AlgorithmIdentifier,
        issuer               Name,//發(fā)行者
        validity             Validity,//有效期
        subject              Name,
        subjectPublicKeyInfo SubjectPublicKeyInfo,
        issuerUniqueID  [1]  IMPLICIT UniqueIdentifier OPTIONAL,
                             -- If present, version MUST be v2 or v3
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赖舟,隨后出現(xiàn)的幾起案子蓬戚,更是在濱河造成了極大的恐慌,老刑警劉巖建蹄,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碌更,死亡現(xiàn)場離奇詭異,居然都是意外死亡洞慎,警方通過查閱死者的電腦和手機(jī)痛单,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劲腿,“玉大人旭绒,你說我怎么就攤上這事。” “怎么了挥吵?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵重父,是天一觀的道長。 經(jīng)常有香客問我忽匈,道長房午,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任丹允,我火速辦了婚禮郭厌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雕蔽。我一直安慰自己折柠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布批狐。 她就那樣靜靜地躺著扇售,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嚣艇。 梳的紋絲不亂的頭發(fā)上承冰,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機(jī)與錄音髓废,去河邊找鬼巷懈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛慌洪,可吹牛的內(nèi)容都是我干的顶燕。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼冈爹,長吁一口氣:“原來是場噩夢啊……” “哼涌攻!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起频伤,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤恳谎,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后憋肖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體因痛,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年岸更,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了鸵膏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡怎炊,死狀恐怖谭企,靈堂內(nèi)的尸體忽然破棺而出廓译,到底是詐尸還是另有隱情,我是刑警寧澤债查,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布非区,位于F島的核電站,受9級(jí)特大地震影響盹廷,放射性物質(zhì)發(fā)生泄漏征绸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一俄占、第九天 我趴在偏房一處隱蔽的房頂上張望歹垫。 院中可真熱鬧,春花似錦颠放、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鹿驼,卻和暖如春欲低,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畜晰。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工砾莱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凄鼻。 一個(gè)月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓腊瑟,卻偏偏與公主長得像,于是被迫代替她去往敵國和親块蚌。 傳聞我的和親對象是個(gè)殘疾皇子闰非,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1 基礎(chǔ) 1.1 對稱算法 描述:對稱加密是指加密過程和解密過程使用相同的密碼。主要分:分組加密峭范、序列加密财松。 原理...
    御淺永夜閱讀 2,391評論 1 4
  • 一大早我就和哥哥,大伯在環(huán)球中心的門口等待著纱控。到了10點(diǎn)辆毡,我們一起沖進(jìn)去,買了票甜害,換了裝舶掖,走進(jìn)大游泳池,真爽唾那! ...
    淘越閱讀 1,525評論 0 0
  • 明天就是大年三十兒了访锻,今天一直在考慮過年的意義褪尝,如何才能讓這個(gè)年過得有價(jià)值,有意義期犬。從兒時(shí)的過年到現(xiàn)在的年河哑,一些印...
    萬康閱讀 292評論 0 0
  • 文/美文獵場 以前的自己,安靜而內(nèi)斂龟虎,在初中時(shí)代璃谨,努力讀書,每天按部就班鲤妥,班主任評價(jià)成績還不錯(cuò)佳吞,就是人太安靜了,都...
    美文獵場閱讀 828評論 0 5