常用加密算法之数字证书与TLS/SSL
数字证书 互联网上任意双方之间实现通信时,证书的目的有两种, 主机证书,主要实现主机与主机之间进程间通信的。 个人证书,主要用作个人通信的,主要用作加密的数据的发送。 主机类证书所拥有的标识主要为主机名,主机证书名称一定要与互联网之上访问名称一致,否则此证书为不可信证书。 对于一个安全的通信,应该有以下特征: 完整性:消息在传输过程中未被篡改 身份验证:确认消息发送者的身份 不可否认:消息的发送者无法否认自己发送了信息 显然,数字签名和消息认证码是不符合要求的,这里就需要数字证书来解决其弊端。 数字证书(digital certificate)又称公开密钥认证 PKC(英语:Public key certificate)。是在互联网通信中,方式数字签名的秘钥被篡改,是用来证明公开密钥拥有者的身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)对这份文件的数字签名,以保证这个文件的整体内容正确无误。 数字证书认证机构 CA (Certificate Authority):是负责发放和管理数字证书的权威机构。 公钥证书的格式标准 X.509是密码学中公钥明证PKC的格式标准,所有的证书都符合ITU-T X.509国际标准。X.509证书的结构是用ASN1 (Abstract Syntax Notation One)进行描述数据结构,并使用ASN.1语法进行编码。 证书规范 X.509指的是ITU和ISO联合制定的(RFC5280)里定义的的 X.509 v3 前使用最广泛的标准为X.509的 v3版本规范 (RFC5280), 一般遵从X.509格式规范的证书,会有以下的内容: 证书组成结构 结构 说明 版本 现行通用版本是 V3, 序号 用来识别每一张证书,用来追踪和撤销证书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节;由CA来维护 主体 拥有此证书的法人或自然人身份或机器,包括: 国家(C,Country) 州/省(S,State)** 地域/城市(L,Location) 组织/单位(O,Organization) 通用名称(CN,Common Name):在TLS应用上,此字段一般是域名 发行者 以数字签名形式签署此证书的数字证书认证机构 有效期(Validity) 此证书的有效开始时间,在此前该证书并未生效;此证书的有效结束时间,在此后该证书作废。 公开密钥用途 指定证书上公钥的用途,例如数字签名、服务器验证、客户端验证等 公开密钥 公开密钥指纹 数字签名 使用信任的CA对内容进行 主体别名 例如一个网站可能会有多个域名(www.jd.com www.360buy.com..) 一个组织可能会有多个网站(*.baidu.com tieba.baidu.com),不同的网域可以一并使用同一张证书,方便实现应用及管理。 互联网上任意双方之间实现通信时,证书的目的有两种, 主机证书,主要实现主机与主机之间进程间通信的。 个人证书,主要用作个人通信的,主要用作加密的数据的发送。 主机类证书所拥有的标识主要为主机名,主机证书名称一定要与互联网之上访问名称一致,否则此证书为不可信证书。 数字证书文件格式 X....