📜  HTTP 标头 |仅公开密钥引脚报告(1)

📅  最后修改于: 2023-12-03 14:42:00.239000             🧑  作者: Mango

HTTP 标头 | 仅公开密钥引脚报告

HTTP 标头是 HTTP 请求和响应消息的一部分,每个标头都包含有关消息的特定信息。其中一种标头是公开密钥钥引脚报告(Public Key Pinning(HPKP))。

什么是公开密钥钥引脚报告?

公开密钥钥引脚报告(HPKP)是一种安全协议,它指定了公开密钥证书的信任,从而确保连接到 Web 服务器的客户端在具有接受证书的完整控制权的证书颁发机构之前,在多个连接中使用相同的密钥证书。HPKP 提高了中间人攻击的安全性,因为如果攻击者试图欺骗客户端,他们将不会使用与钥匙引脚指定的证书相同的证书。如果钥匙引脚指定的证书不同于所提供的证书,则浏览器将停止尝试建立安全连接。

如何向 HTTP 标头添加公开密钥钥引脚报告

要在 HTTP 标头中添加公开密钥钥引脚报告,需要在 Web 服务器上生成公钥证书,并将生成的指纹添加到 HTTP 标头中。以下是添加 HPKP 标头的示例代码片段:

HTTP/1.1 200 OK
Public-Key-Pins: pin-sha256="base64=="; max-age=2592000; includeSubDomains

该代码将服务器的公钥 SHA256 指纹添加到 HPKP 标头中,并指定标头的最大年龄为 30 天。在最大年龄内,浏览器将不会接受不同于指定公钥 SHA256 指纹的证书,并具有相同的主机名。

注意事项
  • HPKP 可能不适用于所有 Web 服务器,应先检查 Web 服务器厂商的支持情况。
  • 如果添加 HPKP 标头的服务器更换证书,需要修改 HPKP 标头以包含新的证书指纹。
  • 不正确的实现或配置可能导致客户端无法在代码库上继续访问 Web 服务器。
  • HPKP 要素与限制取决于浏览器和操作系统。部分浏览器已禁用 HPKP。
结论

公开密钥钥引脚报告(HPKP)是一种提高 Web 安全性的有效协议,可以确保客户端在连接到 Web 服务器时具有完全控制权的证书颁发机构之前,使用相同的密钥证书。要在 HTTP 标头中添加 HPKP,需要生成服务器公钥证书并将其 SHA256 指纹添加到标头中。HPKP 不是适用于所有 Web 服务器,您应仔细考虑并与 Web 服务器厂商和相关社区进行交流,以确保正确配置和实施。