什么是PKI?
公钥基础设施是一个包括硬件、软件、人员、策略和规程的集合,用来实现基于公钥密码体制的密钥和证书的产生、管理、存储、分发和撤销等功能。
PKI体系是计算机软硬件、权威机构及应用系统的结合。它为实施电子商务、电子政务、办公自动化等提供了基本的安全服务,从而使那些彼此不认识或距离很远的用户能通过信任链安全地交流。
PKI系统主要部分
PKI主要部分有数字证书、公钥和私钥、证书颁发机构、证书撤销列表。授权中心向各方(例如用户)颁发数字证书,然后在与环境交换的消息中使用这些证书对自己进行身份验证。CA 的证书撤销列表(CRL)构成不再有效的证书的引用。撤销证书的原因有很多。例如,因为与证书关联的加密私有材料已被公开,证书可能会被吊销。
数字证书
数字证书是指在互联网通讯中标志通讯各方身份信息的一个数字认证,人们可以在网上用它来识别对方的身份。数字证书的基本架构是公开密钥PKI,即利用一对密钥实施加密和解密。其中密钥包括私钥和公钥,私钥主要用于签名和解密,由用户自定义,只有用户自己知道;公钥用于签名验证和加密,可被多个用户共享。
数字证书的基本工作原理主要体现在:
第一,发送方在发送信息前,需先与接收方联系,同时利用公钥加密信息,信息在进行传输的过程当中一直是处于密文状态,包括接收方接收后也是加密的,确保了信息传输的单一性,若信息被窃取或截取,也必须利用接收方的私钥才可解读数据,而无法更改数据,这也有利保障信息的完整性和安全性。
第二,数字证书的数据签名类似于加密过程,数据在实施加密后,只有接收方才可打开或更改数据信息,并加上自己的签名后再传输至发送方,而接收方的私钥具唯一性和私密性,这也保证了签名的真实性和可靠性,进而保障信息的安全性。利用公钥进行验签通过即可确认签名的身份。
数字证书有很多格式版本,主要有X.509v3(1997)、X509v4(1997)、X.509v1(1988)等。比较常用的版本是TUTrec.x.509V3,一个标准的 X.509 数字证书包含以下内容:
证书的版本信息
证书的序列号,每个证书都有一个唯一的证书序列号
证书所使用的签名算法
证书的发行机构名称,命名规则一般采用X.500格式
证书的有效期,通用的证书一般采用UTC时间格式,它的计时范围为1950-2049
证书所有人的名称 (Subject),命名规则一般采用X.500格式
证书所有人的公钥
证书发行者 (Issuer) 对证书的签名
通过 Openssl 命令行 openssl x509 -in certificate.crt -text -noout 工具可以查看证书格式。格式如下:
Certificate:Data:Version: 3 (0x2)Serial Number:52:04:3b:ed:ec:16:86:25:ba:0e:10:01:83:70:42:fdSignature Algorithm: sha256WithRSAEncryptionIssuer: C=CN, O=TrustAsia Technologies, Inc., OU=Symantec Trust Network, OU=Domain Validated SSL, CN=TrustAsia DV SSL CA - G5ValidityNot Before: Sep 28 00:00:00 2017 GMTNot After : Sep 28 23:59:59 2018 GMTSubject: CN=home.freemanke.comSubject Public Key Info:Public Key Algorithm: rsaEncryptionPublic-Key: (2048 bit)Modulus:00:bf:a8:30:1b:ea:95:b4:6a:b8:ed:b8:2b:f2:b5:85:9d:a2:0d:1f:14:d4:71:26:d0:f5:66:37:3e:1a:...d4:0f:36:5d:6c:19:e0:07:c7:bd:a5:74:28:c2:1a:7a:75Exponent: 65537 (0x10001)X509v3 extensions:X509v3 Subject Alternative Name:DNS:home.freemanke.comX509v3 Basic Constraints:CA:FALSEX509v3 Certificate Policies:Policy: 2.23.140.1.2.1CPS: https://d.symcb.com/cpsUser Notice:Explicit Text: https://d.symcb.com/rpaX509v3 Authority Key Identifier:keyid:6D:58:C7:7F:1A:E7:E1:3F:2E:A6:8C:97:35:42:BB:F4:D3:38:AC:3FX509v3 Key Usage: criticalDigital Signature, Key EnciphermentX509v3 Extended Key Usage:TLS Web Server Authentication, TLS Web Client AuthenticationAuthority Information Access:OCSP - URI:http://trustasia2-ocsp.digitalcertvalidation.comCA Issuers - URI:http://trustasia2-aia.digitalcertvalidation.com/trustasiag5.crt1.3.6.1.4.1.11129.2.4.2:...~...\. ....)6.K...c........SWw...=...x&.u.......X......gp.....^..]......F0D. s.....r.]..]x[...H.MUD...G...... ).h}......c..}d*..[d..`....?.7).Signature Algorithm: sha256WithRSAEncryptionb4:b8:9a:25:b5:a2:0f:fc:1e:84:73:b7:8d:da:5c:53:18:57:c0:54:f8:82:67:d9:23:c9:ae:f9:8b:cb:1c:af:76:e7:08:9c:...48:36:98:5f:00:92:60:78:ef:cd:49:8d:70:5e:49:12:d1:dd:86:e1:9c:be
公钥和私钥
身份认证和消息完整性是安全通信中的重要概念。身份认证要求交换消息的各方确信创建特定消息的身份。要使信息具有“完整性”,就意味着信息在传输期间不可能发生过修改。
传统的身份认证机制依赖于数字签名,顾名思义,就是允许一方对其消息进行数字签名。数字签名还为签名消息的完整性提供了保证。
从技术上讲,数字签名机制要求每一方都持有一对密钥:一个公开密钥和一个私有秘钥。公开密钥高度可获取,充当身份验证锚;私有秘钥用于在消息上生成数字签名。数字签名消息的接收方可以通过检查消息中的附加签名在预期发送方的公钥下是否有效来验证所接收消息的来源和完整性。
私钥与其对应公钥之间的独特关系是使安全通信成为可能的密码术。密钥之间独特的数学关系在于私钥可用于对消息生成签名,只有对应的公钥能够、且仅能在相同消息上与之匹配。
证书颁发机构
证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
CA 也拥有一个证书(内含公钥)和私钥。网上的公众用户通过验证 CA 的签字从而信任 CA ,任何人都可以得到 CA 的证书(含公钥),用以验证它所签发的证书。如果一个用户想鉴别另一个证书的真伪,他就用 CA 的公钥对那个证书上的签名进行验证,一旦验证通过,该证书就被认为是有效的。
根 CA,中间 CA 和信任链:
CA 有两种类型:根 CA 和中间 CA。由于根 CA(赛门铁克、Geotrust等)必须向互联网用户安全颁发数亿个证书,因此将此过程分散到所谓的中间 CA 是有意义的。中间 CA 的证书由根 CA 或其他中间机构颁发,这就为链上所有 CA 颁发的全部证书建立起一条“信任链”。追溯到根 CA 的这种能力不仅使得 CA在保证安全的同时扩展了自身功能,而且还降低了根 CA 的暴露风险。根CA一旦遭到破坏,将会危及整个信任链。而如果受到损害的是中间CA,则曝光量会小得多。
证书撤销列表
证书撤销列表(Certificate Revocation List, CRL)就是一个证书的参照列表,有了它,CA 就知道列表上的这些证书是因为这样或那样的原因被撤销了的。
当第三方想要验证另一方的身份时,它首先会检查颁发其证书的 CA 的 CRL,以确保该证书未被撤销。验证者不是必须要检查 CRL,但是如果他们不检查 ,就将冒着接受被盗身份的风险。




