---
date created: 2025-04-02 11:38
date updated: 2025-04-02 11:39
tags:
  - ocpp201
link: "false"
share: "true"
---

# A安全

## OCPP安全

本功能块描述了OCPP协议的安全要求。安全部分的开发是为了加强和成熟OCPP的未来发展和标准化。它是基于==端到端==安全设计的[LaQuSo](https://www.elaad.nl/smart-charging-end2end-security-design/)。安全需求包含充电站和CSMS之间的保安措施，以支持使用OCPP。

### 安全目标

OCPP安全性的设计是为了满足以下安全目标:

1. 允许在CSMS和充电站之间建立一个安全的**通信通道**。该通道上消息的完整性和机密性应该用强大的加密措施加以保护。
2. 提供充电站与CSMS之间的==相互认证==。双方都应该能够确定他们正在与谁通信。
3. 通过允许充电站检查固件的来源和完整性，以及允许不可抵赖的固件，提供**安全的固件更新**过程。
4. 允许记录安全事件，方便监控智能收费系统的安全性。附录中列出了与安全相关的事件及其“关键性”。

### 设计要素

安全功能模块的设计是为了适应OCPP中采用的方法。只要有可能，就使用**标准的web技术**，以便使用可用的web库和软件实现成本效益。不包含应用层安全措施。基于这些考虑，**OCPP安全性基于TLS和使用X.509证书的公钥加密**。由于csms通常充当服务器，因此在本标准中_没有实现对充电站的不同用户或基于角色的访问控制_。为了缓解这种情况，建议在csms上实现访问控制。为了确保已实施的机制无法被绕过，不应由在充电站本地进行维护的合格人员使用OCPP，因为其他协议可能用于本地维护目的。

### 安全配置文件

本节定义不同的OCPP安全配置文件及其需求。OCPP 2.0.1支持三种安全配置文件:

下表显示了哪个配置文件使用了哪些安全措施。

| Profile                                          | Charging Station Authentication      | CSMS Authentication                  | Communication Security         |
| ------------------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------ |
| 1. Unsecured Transport with Basic Authentication | HTTP Basic Authentication            | -                                    | -                              |
| 2. TLS with Basic Authentication                 | HTTP Basic Authentication            | TLS authentication using certificate | Transport Layer Security (TLS) |
| 3. TLS with Client Side Certificates             | TLS authentication using certificate | TLS authentication using certificate | Transport Layer Security (TLS) |

• 未加密传输与基本认证配置文件不包括对CSMS的身份验证，也没有建立安全通信通道的措施。因此，它只应在受信任的网络中使用，例如在CSMS和充电站之间存在VPN的网络中。对于现场操作，强烈建议使用带有TLS的安全配置文件。
• 在某些情况下（例如实验室安装、测试设置等），可能会选择在不实施安全性的情况下使用OCPP 2.0.1。虽然这是可能的，但它并不被视为有效的OCPP 2.0.1实施。
• 当充电站的日期和时间设置不正确时，它无法验证服务器证书。解决这个问题的方法可能是要么使用网络时间协议（NTP）或移动网络来自动设置时间，要么在第一次连接之前使用安装工具设置时间。

#### 通用安全配置文件要求

| ID         | Precondition                       | Requirement definition                                                                                                        |
| ---------- | ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| A00.FR.001 |                                    | 充电站和csms一次只能使用一个安全配置文件                                                                                                        |
| A00.FR.002 | 如果充电站使用与csms正在使用的不同的配置文件试图连接到csms  | csms将终止连接                                                                                                                     |
| A00.FR.003 | 如果csms使用与充电站正在使用的不同的配置文件试图连接到充电站   | 充电站将终止连接                                                                                                                      |
| A00.FR.004 |                                    | 在OCPP通信成为可能之前，必须配置安全配置文件                                                                                                      |
| A00.FR.005 |                                    | 将使用的安全配置文件降低到较不安全的配置文件是出于安全原因，不属于OCPP规范的一部分，必须通过其他方法进行，而不是通过OCPP。不得使用OCPP消息来实现此操作（例如SetVariablesRequest或DataTransferRequest）。 |
| A00.FR.006 | 当CSMS与具有不同安全配置文件或不同版本的OCPP的充电站通信时。 | CSMS可以通过CSMS的不同地址或端口来操作充电站。例如，CSMS服务器可以使用一个TCP端口进行带有基本认证的TLS通信，另一个端口用于带有客户端证书的TLS通信。在这种情况下，每个CSMS端口只使用一个安全配置文件，这是允许的。         |

#### 具有基本身份验证的不安全传输配置文件1

| No. | Type                            | Description                                                |
| --- | ------------------------------- | ---------------------------------------------------------- |
| 1   | Name                            | 具有基本身份验证的不安全传输                                             |
| 2   | Profile No.                     | 1                                                          |
| 3   | Description                     | 未加密传输与基本认证配置文件提供了较低水平的安全性。充电站认证通过用户名和密码完成，没有包括任何措施来保护通信通道。 |
| 4   | Charging Station Authentication | 充电站认证使用HTTP基本认证。                                           |
| 5   | CSMS Authentication             | 在这个配置文件中，CSMS不会对充电站进行身份验证。充电站必须相信它连接到的服务器确实是CSMS。          |
| 6   | Communication Security          | 该配置文件中未包括任何通信安全措施。                                         |
| 7   | Remark(s)                       | 请注意，OCPP 2.0.1（A00.FR.205）中基本认证密码的编码方式与OCPP 1.6不同。         |

![](../../../图片/HTTP Basic Authentication sequence diagram.png)

##### 具有基本身份验证的不安全传输配置文件-要求

| ID         | Precondition | Requirement definition                                                                                                                                          |
| ---------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A00.FR.201 |              | 未加密传输与基本认证配置文件应该只在受信任的网络中使用。                                                                                                                                    |
| A00.FR.202 |              | 充电站应使用HTTP基本认证[18]对CSMS进行身份验证。                                                                                                                                  |
| A00.FR.203 | A00.FR.202   | 客户端，即充电站，应在每次连接请求中提供用户名和密码。                                                                                                                                     |
| A00.FR.204 | A00.FR.203   | ==用户名应与充电站身份相同==，充电站身份是充电站在OCPP-J连接URL中使用的标识字符串。==在使用基本认证时，充电站身份不得包含字符“:”==。否则，CSMS可能无法区分用户名和密码。                                                                |
| A00.FR.205 |              | 密码应存储在`BasicAuthPassword`配置变量中。它**必须是一个随机选择的密码字符串**，具有足够高的熵，由==最少16个字符和最多40个字符==组成（包括字母数字字符和passwordString允许的特殊字符）。==密码应作为UTF-8编码的字符串发送（不应编码为八位字节字符串或base64）==。 |
| A00.FR.206 | A00.FR.203   | 使用HTTP基本认证时，用户名和密码以明文形式传输，仅编码为base64。因此，建议仅在已通过其他手段（如VPN）进行了安全保护的连接上使用此机制。                                                                                      |
| A00.FR.207 | A00.FR.202   | CSMS应验证充电站身份与连接请求的授权标头中的用户名和密码匹配。                                                                                                                               |

#### TLS与基本身份验证配置文件2

| No. | Type                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| --- | ------------------------------- |   |
| 1   | Name                            | 支持基本身份验证的TLS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| 2   | Profile No.                     | 2                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| 3   | Description                     | 在TLS与基本认证配置文件中，通信通道使用传输层安全性（TLS）进行安全保护。CSMS使用TLS服务器证书进行身份验证。充电站使用HTTP基本认证进行身份验证。                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 4   | Charging Station Authentication | 用于充电站身份验证的方法是HTTP基本认证。由于在此配置文件中使用了TLS，密码将被加密发送，降低了使用此身份验证方法的风险。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| 5   | CSMS Authentication             | ==充电站通过TLS服务器证书对CSMS进行身份验证==。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| 6   | Communication Security          | 充电站和CSMS之间的通信是使用TLS进行安全保护的。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 7   | Remark(s)                       | TLS允许多种配置，**但并非所有配置都提供足够的安全性**。<br />以下要求描述了OCPP允许的配置。在请求将HTTP连接升级为RFC 6455中描述的websocket连接时，充电站应包含与Basic Auth RFC 2617中使用的相同的头。服务器在升级连接之前首先需要验证授权标头。<br />示例：<br />GET /ws HTTP/1.1<br />Remote-Addr: 127.0.0.1<br />UPGRADE: websocket<br />CONNECTION: Upgrade<br />HOST: 127.0.0.1:9999<br />ORIGIN: <http://127.0.0.1:9999><br />SEC-WEBSOCKET-KEY: Pb4obWo2214EfaPQuazMjA==<br />SEC-WEBSOCKET-VERSION: 13<br />AUTHORIZATION: Basic <Base64编码(<ChargePointId>:<AuthorizationKey>)><br />请注意，OCPP 2.0.1（A00.FR.304）中基本认证密码的编码方式与OCPP 1.6不同。 |

![](../../../图片/TLS with Basic Authentication sequence diagram.png)

##### TLS与基本身份验证配置文件-要求

| ID                                                                       | Precondition                                                   | Requirement definition                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ------------------------------------------------------------------------ | -------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A00.FR.301                                                               |                                                                | 充电站应该使用HTTP基本认证对CSMS进行身份验证。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| A00.FR.302                                                               | A00.FR.301                                                     | 客户端，即充电站，在每次连接请求中必须提供用户名和密码。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.303                                                               | A00.FR.302                                                     | ==用户名必须等于充电站的身份==，即充电站在OCPP-J连接URL中使用的标识字符串。在使用基本认证时，==充电站的身份不能包含字符“:”，否则CSMS可能无法将用户名与密码分开。==                                                                                                                                                                                                                                                                                                                                                                     |
| A00.FR.304                                                               | A00.FR.302                                                     | 密码应存储在`BasicAuthPassword`配置变量中。它必须是一个随机选择的密码字符串，具有足够高的熵，由==最少16个字符和最多40个字符==组成（包括密码字符串允许的字母数字字符和特殊字符）。==密码应作为UTF-8编码的字符串发送，不应编码为八位字节字符串或base64。==                                                                                                                                                                                                                                                                                                                 |
| A00.FR.306                                                               |                                                                | csms将作为TLS服务器。(305呢？)                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| A00.FR.307                                                               |                                                                | CSMS应使用CSMS证书作为服务器端证书对自身进行身份验证。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| A00.FR.308                                                               |                                                                | 充电站应根据第6节中建立的路径验证规则验证CSMS证书的认证路径。                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| A00.FR.309                                                               |                                                                | 充电站应验证通用名称（commonName）是否包含CSMS的完全限定域名（FQDN）。(啥意思？)                                                                                                                                                                                                                                                                                                                                                                                                                |
| A00.FR.310                                                               | 如果csms没有有效的证书，或者证书路径无效                                         | 充电站应触发`invalidcsmcertificate`安全事件(参见附录第2部分的完整安全事件列表)。                                                                                                                                                                                                                                                                                                                                                                                                             |
| A00.FR.311                                                               | A00.FR.310                                                     | 充电站应当终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.312                                                               |                                                                | 通信通道应使用传输层进行安全保护(TLS)                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| A00.FR.313                                                               |                                                                | 充电站及CSMS只可使用**TLSv1.2或以上**版本                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.314                                                               |                                                                | 这两个端点都应该检查所使用的TLS版本。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| A00.FR.315                                                               | A00.FR.314<br />==和==<br />CSMS检测到充电站仅允许使用较旧版本的TLS或仅允许SSL进行连接。 | csms将终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.316                                                               | A00.FR.314<br />==和==<br />充电站检测到CSMS仅允许使用较旧版本的TLS或仅允许SSL进行连接。 | 充电站应触发一个`InvalidTLSVersion`安全事件，并终止连接（详见第2部分附录以获取完整的安全事件列表）。                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.317                                                               |                                                                | TLS应按rfc5264或其后续标准执行，不作任何修改。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.318                                                               |                                                                | csms应==至少支持以下四种密码套件==:<br />TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256<br/>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384<br/>TLS_RSA_WITH_AES_128_GCM_SHA256<br/>TLS_RSA_WITH_AES_256_GCM_SHA384<br />注意：CSMS将需要提供两个不同的证书以支持两个密码套件。而且，在使用安全配置文件3时，CSMS应该能够为两个密码套件生成客户端证书。                                                                                                                                                                                                  |
| A00.FR.319                                                               |                                                                | 充电站应==至少支持以下密码组==:<br />TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256<br/>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384<br/>TLS_RSA_WITH_AES_128_GCM_SHA256<br/>TLS_RSA_WITH_AES_256_GCM_SHA384<br />注意1：==TLS_RSA不支持前向保密性，因此建议使用TLS_ECDHE==。此外，如果充电站检测到使用的算法不安全，它应该触发一个`InvalidTLSCipherSuite`安全事件（详见第2部分附录以获取完整的安全事件列表）。<br />注意2：请注意，ISO15118-2规定了在电动车和充电站之间通信时要实施以下密码套件：<br />TLS_ECDH_ECDSA_WITH_AES_128_==CBC==_SHA256,<br/>TLS_ECDHE_ECDSA_WITH_AES_128_==CBC==_SHA256 |
| A00.FR.320                                                               |                                                                | 充电站和CSMS不得使用在[[1|1]](<https://www.enisa.europa.eu/publications/algorithms-key-size-and-parameters-report->                                                                                                                                                                                                                                                                                                                                                          |
| 2014)中标记为不适合传统用途的密码原语的密码套件。这意味着当本规范中描述的某个（或多个）密码套件被标记为不适合传统用途时，就不得再使用它们。 |                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| A00.FR.321                                                               |                                                                | TLS服务器和客户端不得使用TLS压缩方法，以避免压缩侧信道攻击，并确保与[[10|10]](<https://www.ietf.org/rfc/rfc3749.txt)第6节中描述的互操作性。>                                                                                                                                                                                                                                                                                                                                                                   |
| A00.FR.322                                                               | A00.FR.320<br />==和==<br />CSMS检测到充电站仅允许使用其中一种密码套件进行连接。        | csms将终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.323                                                               | A00.FR.320<br />和<br />充电站检测到CSMS仅允许使用其中一种密码套件进行连接。            | 充电站应触发一个`InvalidTLSCipherSuite`安全事件，并终止连接（详见第2部分附录以获取完整的安全事件列表）。                                                                                                                                                                                                                                                                                                                                                                                                  |
| A00.FR.324                                                               | A00.FR.302                                                     | CSMS应验证充电站的身份与连接请求的授权标头中的用户名和密码匹配。                                                                                                                                                                                                                                                                                                                                                                                                                                |

#### TLS与客户端证书配置文件3

| No. | Type                            | Description                                                         |
| --- | ------------------------------- | ------------------------------------------------------------------- |
| 1   | Name                            | TLS与客户端证书                                                           |
| 2   | Profile No.                     | 3                                                                   |
| 3   | Description                     | 在TLS与客户端证书配置文件中，通信通道使用传输层安全性（TLS）进行安全保护。充电站和CSMS==都==使用证书对自己进行身份验证。 |
| 4   | Charging Station Authentication | CSMS通过TLS客户端证书对充电站进行身份验证。                                           |
| 5   | CSMS Authentication             | 充电站通过TLS服务器证书对CSMS进行身份验证。                                           |
| 6   | Communication Security          | 充电站和CSMS之间的通信是通过TLS进行安全保护的。                                         |
| 7   | Remark(s)                       | 无                                                                   |

![](../../../图片/TLS with Client Side Certificates.png)

##### TLS与客户端证书配置文件-要求

| ID                                                                      | Precondition                                                      | Requirement definition                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| ----------------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A00.FR.401                                                              |                                                                   | 充电站应使用充电站证书对CSMS进行身份验证。                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| A00.FR.402                                                              |                                                                   | 充电站证书应作为TLS客户端证书使用。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| A00.FR.403                                                              |                                                                   | CSMS应根据[[3|3]](<http://www.ietf.org/rfc/rfc5280.txt)第6节中建立的路径验证规则验证充电站证书的认证路径。>                                                                                                                                                                                                                                                                                                                                                                                     |
| A00.FR.404                                                              |                                                                   | CSMS应通过检查证书的主题字段中的O（organizationName）RDN，==确保证书由CSO（或CSO信任的组织）拥有，即O字段中包含CSO名称==。                                                                                                                                                                                                                                                                                                                                                                                  |
| A00.FR.405                                                              |                                                                   | CSMS应通过检查证书的主题字段中的CN（commonName）RDN，确保证书属于该充电站，即==CN字段中包含充电站的唯一序列号==（参见证书属性）。                                                                                                                                                                                                                                                                                                                                                                                     |
| A00.FR.406                                                              | 如果充电站证书不属于CSO，例如在安装后立即出现这种情况，那么...                                | 强烈建议在与充电站继续通信之前更新证书（也请参阅安装）。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.407                                                              | ==NOT== A00.FR.429 ==AND==<br />如果充电站没有拥有有效的证书，或者证书的认证路径无效，那么...  | CSMS将终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.408                                                              | A00.FR.407 ==OR== A00.FR.429                                      | 建议在CSMS中记录一个名为`InvalidChargingStationCertificate`的安全事件。                                                                                                                                                                                                                                                                                                                                                                                                           |
| A00.FR.409                                                              |                                                                   | CSMS将作为TLS服务器                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| A00.FR.410                                                              |                                                                   | CSMS应使用CSMS证书作为服务器端证书进行身份验证。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.411                                                              |                                                                   | 充电站应根据[[3|3]](<http://www.ietf.org/rfc/rfc5280.txt)第6节中建立的路径验证规则验证CSMS证书的认证路径。>                                                                                                                                                                                                                                                                                                                                                                                     |
| A00.FR.412                                                              |                                                                   | 充电站应验证通用名称（commonName）是否与CSMS的完全限定域名（FQDN）匹配。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| A00.FR.413                                                              | 如果CSMS没有有效的证书，或者证书路径无效                                            | 充电站应触发一个`InvalidCsmsCertificate`安全事件（详见第2部分附录以获取完整的安全事件列表）。                                                                                                                                                                                                                                                                                                                                                                                                       |
| A00.FR.414                                                              | A00.FR.413                                                        | 充电站应当终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.415                                                              |                                                                   | 通信通道应使用传输层进行安全保护(transport layer Security, TLS)                                                                                                                                                                                                                                                                                                                                                                                                                   |
| A00.FR.416                                                              |                                                                   | 充电站及CSMS只可使用**TLSv1.2或以上**版本                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.417                                                              |                                                                   | 这两个端点都应该检查所使用的TLS版本。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| A00.FR.418                                                              | A00.FR.417 <br />==AND==<br />CSMS检测到充电站仅允许使用较旧版本的TLS或仅允许SSL进行连接。 | CSMS将终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.419                                                              | A00.FR.417<br/>==AND==<br />充电站检测到CSMS仅允许使用较旧版本的TLS或仅允许SSL进行连接。   | 充电站应触发一个`InvalidTLSVersion`安全事件，并终止连接（详见第2部分附录以获取完整的安全事件列表）。                                                                                                                                                                                                                                                                                                                                                                                                      |
| A00.FR.420                                                              |                                                                   | TLS必须按照[[4|4]](rfc5264)或其后续标准的规定实施，不得进行任何修改。                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.421                                                              |                                                                   | CSMS必须==至少支持以下四种密码套件==：<br />TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384<br />请注意，CSMS将需要提供两个不同的证书以支持这四种密码套件。而且，在使用安全配置文件3时，CSMS应该能够生成适用于这四种密码套件的客户端证书。                                                                                                                                                                                                       |
| A00.FR.422                                                              |                                                                   | 充电站应==至少支持以下密码组==:<br />TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256<br/>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384<br/>TLS_RSA_WITH_AES_128_GCM_SHA256<br/>TLS_RSA_WITH_AES_256_GCM_SHA384<br />注意1：==TLS_RSA不支持前向保密性，因此建议使用TLS_ECDHE==。此外，如果充电站检测到使用的算法不安全，它应该触发一个`InvalidTLSCipherSuite`安全事件（详见第2部分附录以获取完整的安全事件列表）。<br />注意2：请注意，ISO15118-2规定了在电动车和充电站之间通信时要实施以下密码套件：<br />TLS_ECDH_ECDSA_WITH_AES_128_==CBC==_SHA256,<br/>TLS_ECDHE_ECDSA_WITH_AES_128_==CBC==_SHA256 |
| A00.FR.423                                                              |                                                                   | 充电站和CSMS不得使用在[[1|1]](<https://www.enisa.europa.eu/publications/algorithms-key-size-and-parameters-report->                                                                                                                                                                                                                                                                                                                                                          |
| 2014)中标记为不适合传统用途的密码原语的密码套件。这意味着当本规范中描述的某个（或多个）密码套件被标记为不适合传统用途时，不得再使用它们。 |                                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| A00.FR.424                                                              |                                                                   | TLS服务器和客户端不得使用TLS压缩方法，==以避免压缩侧信道攻击==并确保互操作性，如[[10|10]](<https://www.ietf.org/rfc/rfc3749.txt)第6节中所述。>                                                                                                                                                                                                                                                                                                                                                                |
| A00.FR.425                                                              | A00.FR.424<br />==AND==<br />如果CSMS检测到充电站仅允许使用其中一种密码套件进行连接，那么...  | CSMS将终止连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.426                                                              | A00.FR.320<br />==AND==<br />充电站检测到CSMS仅允许使用其中一种密码套件进行连接。         | 充电站应触发一个`InvalidTLSCipherSuite`安全事件，并终止连接（详见第2部分附录以获取完整的安全事件列表）。                                                                                                                                                                                                                                                                                                                                                                                                  |
| A00.FR.427                                                              |                                                                   | ==每个充电站都应使用唯一的充电站证书。==(这里的充电站的概念包含单个充电桩吗？)                                                                                                                                                                                                                                                                                                                                                                                                                        |
| A00.FR.428                                                              |                                                                   | ==充电站证书可以是ISO15118-2中用于建立充电站和电动车之间TLS连接的SECC证书。==                                                                                                                                                                                                                                                                                                                                                                                                                 |
| A00.FR.429                                                              | 如果充电站证书已过期==AND==<br />CSMS已经显式配置为接受由该特定充电站使用已过期证书的连接。            | CSMS可以在BootNotification - Pending状态下接受此充电站（用例B02），之后它必须立即执行A02 - Update Charging Station Certificate，以便根据CSMS的请求更新证书。                                                                                                                                                                                                                                                                                                                                             |

### 在OCPP中使用的证书

OCPP使用一些公共私钥对来实现其安全性，如下表所示。为了管理充电站上的密钥，已经在OCPP中添加了消息。更新CSMS或制造商上的密钥不在OCPP的范围内。如果使用TLS与客户端证书，==充电站==需要一个"充电站证书"来对CSMS进行身份验证。

| Certificate                  | Private Key Stored At | Description                        |
| ---------------------------- | --------------------- | ---------------------------------- |
| CSMS Certificate             | CSMS                  | 认证CSMS时使用的证书。                      |
| Charging Station Certificate | Charging Station      | 认证充电站时使用的证书。                       |
| Firmware Signing Certificate | 制造商                   | 校验固件签名时使用的证书。                      |
| SECC Certificate             | Charging Station      | ISO15118-2用于在充电站和电动汽车之间建立TLS连接的证书。 |

#### 证书属性

| ID                                                                 | Precondition Requirement            | definition                                                                                                                                                                                                                                                                                                                              |
| ------------------------------------------------------------------ | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A00.FR.501                                                         |                                     | 所有证书必须使用提供==至少112位==的对称密钥等效安全性的私钥，根据[[17|17]](<https://csrc.nist.gov/publications/detail/sp/800-57-part-1/rev-4/final)第5.6.1节规定。这是NIST在2011-2030年期间推荐的密钥大小。>                                                                                                                                                                               |
| A00.FR.502                                                         | A00.FR.501<br />AND<br />RSA or DSA | 这意味着==密钥的长度必须至少为2048位==。                                                                                                                                                                                                                                                                                                                |
| A00.FR.503                                                         | A00.FR.501<br />AND<br />ECC        | 这意味着==密钥的长度必须至少为224位==。                                                                                                                                                                                                                                                                                                                 |
| A00.FR.504                                                         |                                     | 所有加密操作必须仅使用BSI在[[12|12]](<https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Zertifizierung/>                                                                                                                                                                                                                                             |
| Interpretationen/AIS_20_pdf.html)中推荐的适用于未来系统的算法。此限制包括在证书层次结构中签署证书。 |                                     |                                                                                                                                                                                                                                                                                                                                         |
| A00.FR.505                                                         |                                     | 用于证书颁发机构签署的应优先使用==RSA-PSS==或==ECDSA==。                                                                                                                                                                                                                                                                                                  |
| A00.FR.506                                                         |                                     | 用于计算哈希值的算法应优先使用==SHA256==。                                                                                                                                                                                                                                                                                                              |
| A00.FR.507                                                         |                                     | ==证书必须以X.509格式存储和传输，编码为Privacy-Enhanced Mail (PEM)格式。==                                                                                                                                                                                                                                                                                 |
| A00.FR.508                                                         |                                     | ==所有证书必须包含一个序列号==。(什么意思？)                                                                                                                                                                                                                                                                                                               |
| A00.FR.509                                                         |                                     | 证书的主题字段必须包含证书所有者的组织名称，该名称位于O（organizationName）RDN中。                                                                                                                                                                                                                                                                                     |
| A00.FR.510                                                         |                                     | 对于CSMS证书，主题字段必须包含服务器端点的完全限定域名（FQDN），该FQDN位于CN（commonName）RDN中。                                                                                                                                                                                                                                                                          |
| A00.FR.511                                                         |                                     | 对于==充电站证书，主题字段必须包含CN==（commonName）RDN，该RDN==由充电站的唯一序列号组成==。==此序列号不应采用URL或IP地址格式==，以便将充电站证书与CSMS证书区分开。<br/><br/>注意：根据RFC 2818，如果存在类型为dnsName的subjectAltName扩展，那么必须使用它作为标识。这与OCPP和ISO 15118不符。因此，在充电站和CSMS证书中不应使用它。<br/><br/>允许在CSMS证书中使用类型为dnsName的subjectAltName扩展，当CSMS具有多个网络路径可到达时（例如，通过私有APN + VPN使用VPN中的IP地址和通过公共Internet使用命名的URL）。 |
| A00.FR.512                                                         |                                     | 对于所有证书，应该使用X.509 Key Usage扩展[[19|19]](<http://www.openchargealliance.org/downloads/)来限制证书的使用范围，使其仅用于相应的操作。>                                                                                                                                                                                                                                |
| A00.FR.513                                                         |                                     | 如果充电站证书也用作ISO 15118协议中的SECC证书，那么证书还应满足ISO 15118-2的要求。                                                                                                                                                                                                                                                                                   |
| A00.FR.514                                                         |                                     | 对于所有证书，==强烈建议不使用X.509 Extended Key Usage扩展==，以确保与ISO 15118标准兼容。有可用的替代机制。                                                                                                                                                                                                                                                                |

#### 证书层次结构

OCPP协议支持使用两个单独的证书层次结构：

1. 充电站操作员层次结构，包括CSMS和充电站证书。
2. 制造商层次结构，包括固件签名证书。

CSMS可以使用`InstallCertificateRequest`消息更新存储在充电站上的CSO根证书。

| ID         | Precondition Requirement | definition                                                                                                           |
| ---------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| A00.FR.601 |                          | 充电站操作员可以作为充电站操作员层次结构的证书颁发机构。                                                                                         |
| A00.FR.602 | A00.FR.601               | 充电站操作员可以按照ISO15118-2的附录E和F中描述的证书层次结构，并使用CSO Sub-CA 2证书来签署CSMS和充电站证书。这可能会带来一个优势，即可以在充电站操作员的网络内进行充电站客户端证书的在线验证，简化网络架构。 |
| A00.FR.603 |                          | 属于CSO根证书的私钥必须得到良好的保护。                                                                                                |
| A00.FR.604 |                          | 由于制造商通常是与充电站操作员不同的组织，因此应使用可信的第三方作为证书颁发机构。这对于固件的不可否认性至关重要。                                                            |

### 证书吊销

在某些情况下，证书可能会在有效期结束之前变得无效。这些情况包括组织名称的更改，或者证书的私钥被泄露或怀疑泄露。在这种情况下，需要吊销证书或指示证书不再有效。==吊销证书并不意味着连接需要关闭==，因为连接可以保持开启超过24小时。

对于证书吊销，建议使用不同的方法，请参考下表。

| Certificate                  | Revocation |
| ---------------------------- | ---------- |
| CSMS certificate             | 快速到期       |
| Charging Station certificate | 在线验证       |
| Firmware Signing certificate | 在线验证       |

证书撤销要求：

| ID         | Precondition Requirement | definition                             |
| ---------- | ------------------------ | -------------------------------------- |
| A00.FR.701 |                          | 应该使用快速到期来吊销CSMS证书（参见注释1）。              |
| A00.FR.702 |                          | CSMS应该使用在线证书验证来验证充电站证书的有效性。            |
| A00.FR.703 |                          | 强烈建议使用单独的证书颁发机构服务器来管理证书。               |
| A00.FR.704 | A00.FR.703               | 这个服务器还应该跟踪已吊销的证书。                      |
| A00.FR.705 |                          | CSMS必须使用证书颁发机构服务器验证证书的有效性（参见注释2）。      |
| A00.FR.706 |                          | 在向充电站提供用于固件验证的证书之前，CSMS应该验证证书和签名的固件更新。 |

注释1：使用快速到期，证书**仅在短时间内有效**，**不超过24小时**。之后，服务器需要从证书颁发机构（可能是CSO本身，参见证书层次结构部分）请求新证书。这可以避免充电站需要实施吊销列表或在线证书验证。这简化了充电站的证书管理实现，并减少了充电站端的通信成本。通过要求快速到期，如果证书被泄露，影响仅限于短时间内。

当证书链被破坏时，攻击者可以使用伪造的证书欺骗充电站连接到“假冒”的CSMS。通过使用快速到期，充电站处于易受攻击的时间大大减少。

充电站始终通过CSMS与证书颁发机构通信，这样，如果充电站被破坏，充电站无法直接攻击CA。

注释2：这允许立即吊销充电站证书。充电站证书的吊销通常发生在移除充电站时。这比吊销CSMS证书更常见，通常只在CSMS证书被泄露时才会执行。

### 安装

应该使用唯一的凭据来对每个充电站进行身份验证，无论是用于HTTP基本身份验证的密码（参见充电站身份验证）还是充电站证书。==这些唯一的凭据必须在制造或安装过程中的某个时候放置在充电站上==。

#### 证书安装要求

| ID         | Precondition Requirement      | definition                                                                              |
| ---------- | ----------------------------- | --------------------------------------------------------------------------------------- |
| A00.FR.801 |                               | 建议制造商在制造过程中==使用唯一凭证初始化充电站==。                                                            |
| A00.FR.802 | A00.FR.801                    | 这些凭据应该使用加密随机数生成器生成，并在安全环境中安装。                                                           |
| A00.FR.803 | A00.FR.801                    | 它们应该通过安全通道发送给CSO，以便CSO可以将它们导入到CSMS中。                                                    |
| A00.FR.804 | 如果使用充电站证书                     | 制造商可以使用自己的证书在这些证书上签名                                                                    |
| A00.FR.805 | A00.FR.804                    | 强烈建议CSO在安装后立即使用Section A01中描述的方法更新凭据 - 通过HTTP基本身份验证更新充电站密码或A02 - 根据CSMS的请求更新充电站证书。      |
| A00.FR.806 | 在“工厂凭据”更新之前                   | CSMS可以限制充电站可以使用的功能。CSMS可以使用BootNotification状态：Pending来实现这一点。在Pending状态期间，CSMS可以更新凭据。    |
| A00.FR.807 | A00.FR.804 ==AND==充电站制造商证书已过期 | CSMS可以在BootNotification之后接受处于Pending状态的充电站连接，并立即执行用例A02 - 根据CSMS的请求更新充电站证书以安装新的有效CSO证书。 |

## 示例

### 更新充电站HTTP基本认证密码

![](../../../图片/Update Charging Station Password for HTTP Basic Authentication.png)

### 根据CSMS的请求更新充电站证书

![](../../../图片/Update Charging Station Certificate.png)

### 由充电站启动的更新充电站证书操作

![](../../../图片/Update Charging Station Certificate initiated by Charging Station.png)

### 安全事件通知

![](../../../图片/Security Event Notification.png)

### 升级充电站安全配置文件

![](../../../图片/Upgrade Charging Station Security Profile.png)
