
一、前言本文章将会重点讨论 PKI 体系中有哪些角色成员有哪些涉及证书以及多方证书之间需要做什么。。。。。起飞带派不带派老铁As we all know最难就是PNC这块了难点之一就是证书。二、PKIPublic Key Infrastructure证书链结构图如下图是标准协议中附录E的证书结构图下图表明了证书分别是由哪些角色颁发的先忽略最右边的最右边是私人环境下的证书部署的情况先不看。1、第一层的 Root CA最上层 V2G Root CA 机构、MO、OEM 等都拥有其自己的根 CA。1.1、V2G Root CA1、最顶级的公共 PKI 根证书用于车网互动Vehicle-to-Grid, V2G的所有参与方的信任基础。2、所有下级 CA 都要由它签发或与它的链条挂钩也就是说当从下往上验证到最终 V2G Root CA的时候对方是值得信任的V2G Root CA 具有绝对的权威可信3、通常情况下预装在CPO、EVSE、EV等4、V2G Root CA 对 OCSP Signer CA、CPO Sub CA、Prov Sub CA、MO Sub CA、OEM Sub CA等签名这里体现其信任基础的特性1.2、MO Root CAMobility Operator Root CA1、EV 的 MO 移动服务运营商其拥有自己的根 CA2、MO 管理充电合同、支付消费等3、MO Root CA 对次级的 MO Sub CA 签名但最终验证信任的还是 V2G Root CA的签名1.3、OEM Root CA1、EV OEM原厂制造商的根 CA用于生产和管理车辆的制造商级证书2、OEM Root CA 对次级的 OEM Sub CA 签名但最终验证信任的还是 V2G Root CA的签名1.4、PE Private Root1、本地私有环境的根 CA例如家庭私有桩。2、本地私有环境的 TLS 证书不是由 V2G Root CA 签名而是由自己的私有根PE Private Root签发只在本地信任。2、中间层 CA第二三行由最上层的根 CA 签发的 Sub-CA中间证书颁发机构用于组织内部再分发证书通常区分不同业务用途。举个例子就是说最上层的根 CA 是整个中国证书签约机构现在中国证书签约机构授权到 xxx地级市签约机构该地级市就管理该地级市内颁发的证书则该地级市就是 Sub CA 了。2.1、CPO Sub-CA 1 / CPO Sub-CA 21、CPO 充电运营商颁布的证书2、CPO Sub-CA 由 V2G Root CA 的私钥签名后面会提私钥公钥的关系3、按用途分两个 CPO Sub-CA 1 / CPO Sub-CA 2比如一个签名充电桩的 Leaf Certificate一个可能跟其他充电服务相关。2.2、Prov Sub-CA 1 / Prov Sub-CA 21、Prov Sub CA 机构颁布的证书跟 Provisioning Service 合同证书下发服务器相关2、由 V2G Root CA 的私钥签名3、按用途分两个 Prov Sub-CA 1 / Prov Sub-CA 2。2.3、MO Sub-CA 1 / MO Sub-CA 21、移动运营商的中间 CA。2、由 V2G Root CA / MO Root CA 的私钥签发3、按用途分两个 MO Sub-CA 1 / MO Sub-CA 2其中一个用来签名 Contract CA合同证书。2.4、OEM Sub-CA 1 / OEM Sub-CA 21、原厂制造商的中间 CA2、由 V2G Root CA / OEM Root CA 的私钥签发3、按用途分两个OEM Sub-CA 1 / OEM Sub-CA 2可能一个用来签名设备生产证书OEM Prov CA另一个用来签车辆用证书。3、最下层 Leaf Certificates最终证书这些是最终用于 TLS 握手的设备证书。3.1、EVSE Leaf Certificate1、安装在充电桩SECC的最终证书用于 TLS 握手时服务器身份认证。2、由 CPO Sub-CA 的私钥签发。3.2、Leaf Prov Certificate1、Provisioning Service 合同证书下发服务器的终端证书用于安全地分发 Contract CA 合同证书到车辆。2、由 Prov Sub-CA 的私钥签发。3.3、Contract Certificate1、安装在车辆EVCC上的合同证书用于双向 TLS 时让桩验证车辆身份并与 MO 的合同绑定和充电、支付消费等相关2、由 MO Sub-CA 的私钥签发。3.3、OEM Prov Certificate1、制造商生产阶段安装到车辆里的初始身份证明首次充电首次注册加入 PKI 体系时用来从Provisioning Service 获取 Contract CA后续再次充电只需用 Contract CA 证明 EV 的身份就可以了 。2、由 OEM Sub-CA 的私钥签名。3.4、PE TLS Certificate1、私有环境家用桩等的 TLS 证书私有环境不属于公共的PKI 体系内也就是 V2G Root CA 不对其签名。举例就是某个小区/某个公司内部自营的充电服务环境2、由私有环境的 PE Private Root 签名4、OCSP Signer Certificate左边虚线框1、OCSP Online Certificate Status Protocol只是查询除了 Root CA 下的Sub CA、EVSE Leaf CA 的在线有效性验证证书是否被吊销等2、通常每个 Sub CA 或 其次级的 Leaf CA 都会委托一个 OCSP Responder 服务器负责管理其证书的在线状态。3、关系如下图4、当需要验证某 Sub CA 是否有效时访问OCSP Responder 服务器服务器响应该 Sub CA 的在线状态。5、PKI 体系小结有宝子问上面那么多废话PKI 体系图还是看不懂啊1、在V2G中的证书安装更新仅是EV 的合同证书才允许通过 EVSE 传给 EV其他的证书那当然是由你的上级证书机构颁发啦。2、举例说明 V2G Root 的作用假设我买了一台中国的电车该 EV 的 MO机动车移动运营商是中国区的也就是车端是MO Root CA 往下签约现在我把车开去欧洲旅游了此时想充电人家充电桩如何信任你的 EV 是合法的呢因此如果各国组建一个受信任联盟/机构假设叫V2G Root 机构当 EVSE 端的 CPO Sub CA 和 MO Sub CA 都加入该 V2G Root 机构了也就是其都由 V2G Root CA 签名过了那无论在哪个国家就都能合法充了只要后续验签到 V2G Root CA。三、私钥公钥私钥公钥是一对非对称加密私钥是藏起来的不公开的公钥是公开的。公钥加密的东西只有私钥才能解反过来私钥加密的东西只有公钥才能解。但证书里面并不是这么用哈1、最上级V2G Root CA 的私钥对次级CACPO Sub CA、Prov Sub CA、MO Sub CA、OEM Sub CA签名。同理次级CA的私钥又对其次级的CA进行签名。如 CPO Sub CA 的私钥对 EVSE Leaf CA 签名MO Sub CA 的私钥对 Contract CA 签名其他同理。2、注意MO Root CA、OEM Root CA 的私钥也可以对其对应的次级CA签名如证书链图所示3、私钥是不公开的各自私钥自己藏起来。V2G Root CA 的私钥V2G Root 独有CPO Sub CA的私钥CPO独有其他同理。4、在一开始V2G Root CA 就已经预先装到 EV 或 EVSE 中了预装的V2G Root CA 只有其公钥因为公钥是公开的因此从证书链结构图来看总结就一句话上级用私钥对其下级证书签名也就代表其可信任性四、Annex F 的证书内容ISO15118-2 中附录 F 有提到证书究竟涵盖了什么信息Just follow me。1、V2G Root CA (V2G Root Certificate)1、红色框选左边为X.509 证书结构的参数项2、黄色框选表示该证书用的签名算法3、绿色框选表示验其次级CA的签名时使用的公钥4、蓝色框选tbsCertificateto be signed Certificate证书签名部分内容可以理解为这是用来签名时做哈希运算的2、CPO CA (Charge Point Operator Certificate)有宝子问怎么看这个表格那就是竖着看如图框选的内容就表示 CPO Sub CA1 证书应该包含哪些信息了。抬头属于 CPO 这个集群暂时可以理解为由 CPO 持有或颁布吧反正验其证书时CPO 给你发。后面的证书也类似这样看3、Certificate Installation Service Certificates (Provisioning)4、Mobility Operator Certificates (MO CA)5、OEM Provisioning Certificates (OEM Prov CA)6、Certificates for a Private Environment五、证书的签名验签OCSP目前我们已经知道证书在一开始就已经有层层机构签好名了在充电过程中识别对方身份的时候需要做证书验签和证书 OCSP才算一个完整验证对方身份合法性的过程。那签名验签OCSP究竟是一个什么原理以下用CPO Sub CA1来举例说明1、证书签名对CPO Sub CA1 的 tbsCertificate如下图框选的内容进行ecdsa-with-SHA256的哈希运算得到哈希值哈希值和私钥使用签名算法得到得到最后一项签名值。2、证书验签同样的对CPO Sub CA1 的 tbsCertificate进行ecdsa-with-SHA256的哈希运算得到哈希值使用V2G Root CA 的公钥、哈希值、签名值三者验证其数学匹配关系3、OCSP当验证了某个证书确实来自上级 CA 机构签名后通常还需要在线验证其证书的在线状态查询是否被上级 CA 机构吊销与否即证书 OCSP。例如可以看到 CPO Sub CA1 下的 OCSP该 OCSP 就是 CPO Sub CA1 委托的OCSP Responder 服务器了访问它就可以查询证书状态了六、私有环境的框架下面是私有环境下的框图私有环境下在原标准里有具体描述如下图七、证书供应和管理原文出处1、证书与密钥管理2、证书供应结合PKI体系图以及上述得知1、MO车辆运营商管控合同证书MO root CA --MO sub CA1 --MO sub CA2 --Contract CA应该会把“MO sub CA1 -- MO sub CA2 -- Contract CA”打包成一个 合同证书链MO 把该合同证书链转发给 CPS 保管2、当 SECC 需要给 EVCC 安装或更新合同证书时SECC 访问 CPS证书供应服务来获取合同证书链哪 SECC 怎么知道访问哪个 CPS 呢一句话总结SECC 根据 EVCC 报文中的 eMAID 解析出 ProviderID再通过后台预配置的路由表或 Hubject / Gireve 等互操作平台找到对应 CPS然后通过非 ISO 15118-2 的后台接口去下载或更新合同证书链最后封装成 ISO 15118-2 响应发给 EVCC。