PEM
一种常见的密钥和证书编码格式,由 BEGIN 和 END 边界行包裹 base64 编码的体,标签用于标识块类型
时间轴 (近 90 天)
llm-stream-guardrails 在 0.7.9 版本之前的实现中,通过 `BEGIN PRIVATE KEY` 标记持有 PEM 私钥,但判断结束的方式是看是否出现任意带标签的 `END` 行,而非要求标签精确匹配。
由于结束标记匹配逻辑缺陷,当 PEM 私钥的结束标记被错误写成 `END CERTIFICATE` 时,库仅掩码头部,base64 编码的私钥体直接以明文流过去,且泄露的体可重建出可用的私钥。
PEM 格式由 `-----BEGIN <label>-----` 和 `-----END <label>-----` 两条边界行包裹 base64 编码的体,标签用于标识块类型;严格解析器会拒绝开始与结束标签不一致的块,而宽松解析器可能仅凭出现 END 就认为块已闭合。
安全解析 PEM 必须绑定开始标签和结束标签,而非依赖任意 END 行。
全部知识事实 (4)
llm-stream-guardrails 在 0.7.9 版本之前的实现中,通过 `BEGIN PRIVATE KEY` 标记持有 PEM 私钥,但判断结束的方式是看是否出现任意带标签的 `END` 行,而非要求标签精确匹配。
50%待验证由于结束标记匹配逻辑缺陷,当 PEM 私钥的结束标记被错误写成 `END CERTIFICATE` 时,库仅掩码头部,base64 编码的私钥体直接以明文流过去,且泄露的体可重建出可用的私钥。
50%待验证PEM 格式由 `-----BEGIN <label>-----` 和 `-----END <label>-----` 两条边界行包裹 base64 编码的体,标签用于标识块类型;严格解析器会拒绝开始与结束标签不一致的块,而宽松解析器可能仅凭出现 END 就认为块已闭合。
50%待验证安全解析 PEM 必须绑定开始标签和结束标签,而非依赖任意 END 行。
50%