📅  最后修改于: 2023-12-03 14:42:00.239000             🧑  作者: Mango
HTTP 标头是 HTTP 请求和响应消息的一部分,每个标头都包含有关消息的特定信息。其中一种标头是公开密钥钥引脚报告(Public Key Pinning(HPKP))。
公开密钥钥引脚报告(HPKP)是一种安全协议,它指定了公开密钥证书的信任,从而确保连接到 Web 服务器的客户端在具有接受证书的完整控制权的证书颁发机构之前,在多个连接中使用相同的密钥证书。HPKP 提高了中间人攻击的安全性,因为如果攻击者试图欺骗客户端,他们将不会使用与钥匙引脚指定的证书相同的证书。如果钥匙引脚指定的证书不同于所提供的证书,则浏览器将停止尝试建立安全连接。
要在 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 服务器时具有完全控制权的证书颁发机构之前,使用相同的密钥证书。要在 HTTP 标头中添加 HPKP,需要生成服务器公钥证书并将其 SHA256 指纹添加到标头中。HPKP 不是适用于所有 Web 服务器,您应仔细考虑并与 Web 服务器厂商和相关社区进行交流,以确保正确配置和实施。