工牌/身份证生成器 - 虚拟证件在线制作
自定义头像、姓名、部门等信息,生成虚拟员工ID卡,适合团队活动或内部展示。
UD5工具箱
深入了解 HPKP 机制 —— 生成密钥对、计算 PIN 哈希、构建 Public-Key-Pins 响应头, 并通过交互式模拟理解浏览器证书验证流程与安全风险。
当前服务器证书的公钥 —— 必须固定。
离线安全存储的备用公钥 —— 防止意外锁定。
Pin 中间CA公钥可允许证书轮换而不触发HPKP错误。
自动生成主密钥、备份密钥和CA密钥,并计算所有PIN。
模拟浏览器访问配置了HPKP的网站时的证书验证过程。
服务器使用与主PIN匹配的证书
服务器使用与备份PIN匹配的证书
攻击者使用不匹配任何PIN的证书
如果所有被Pin的公钥对应的私钥全部丢失(如服务器被入侵、备份密钥损坏),网站将永久无法被已缓存HPKP的浏览器访问,直到max-age过期。这是HPKP最致命的风险,也是其被废弃的主要原因之一。
HPKP已于2017年被Chrome废弃,2018年移除。现代Web安全依赖证书透明度(Certificate Transparency)和Expect-CT头来检测恶意证书,更安全且不会造成不可逆的锁定。
HTTP公钥固定(HTTP Public Key Pinning,HPKP)是一种Web安全机制,通过Public-Key-Pins HTTP响应头告诉浏览器:在指定时间内(max-age),只接受与预定义公钥哈希值(PIN)匹配的证书。如果服务器提供的证书公钥与任何已声明的PIN都不匹配,浏览器将拒绝连接,从而防止中间人攻击和 rogue CA 颁发的伪造证书。
HPKP由IETF在RFC 7469中定义,但由于配置风险极高(可能导致网站永久不可访问),已于2017-2018年被主流浏览器废弃。
HPKP被废弃的主要原因包括:
pin-sha256的计算步骤如下:
在本工具中,我们使用Web Crypto API真实地执行了以上所有步骤:生成密钥对 → 导出SPKI(DER格式)→ SHA-256 → Base64。
命令行方式(使用OpenSSL):
openssl x509 -in certificate.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64
HPKP规范强制要求至少声明两个PIN:
备份PIN的作用是灾难恢复:如果主密钥的私钥泄露或丢失,可以使用备份密钥申请新证书,从而恢复网站访问。如果没有备份PIN且主密钥不可用,网站将进入"HPKP自杀"状态。
最佳实践建议备份PIN使用不同CA签发的证书的公钥,以防范单个CA出现问题。
HPKP可以pin证书链中任意层级的公钥:
最佳实践是Pin中间CA的公钥,同时备份pin另一个不同CA的中间证书公钥。
max-age决定了浏览器缓存HPKP策略的时长(秒):
重要:max-age越长,配置错误的影响越大!在max-age过期前,被错误锁定的用户无法访问网站。建议从较短时间开始,确认无误后再延长。
Public-Key-Pins-Report-Only(Report-Only模式):浏览器仅检查PIN匹配情况并发送报告,但不会阻止连接。用于部署前测试。
report-uri:指定一个URL,当浏览器检测到PIN不匹配时,会向该URL发送JSON格式的违规报告。报告包含:
建议部署流程:先使用Report-Only模式 + report-uri收集数据 → 分析确认配置正确 → 再启用强制模式。
两者都是通过HTTP响应头增强安全性的机制,但作用不同:
HSTS目前仍被广泛使用和推荐;HPKP已被废弃。两者可以配合使用,但HPKP的风险远高于HSTS。
证书透明度(Certificate Transparency,CT)是一个开放的框架,用于监控和审计证书颁发:
与HPKP相比,CT的优势:
includeSubDomains指令将HPKP策略应用到所有子域名。风险包括:
建议:除非你完全控制所有子域名的证书管理,否则不要启用includeSubDomains,或仅在充分测试后启用。
自定义头像、姓名、部门等信息,生成虚拟员工ID卡,适合团队活动或内部展示。
粘贴SSH公钥,生成对应的OpenSSH randomart视觉指纹图和指纹字符串。
模拟服务端生成与校验CSRF令牌的完整过程,展示隐藏在表单与Session中的同步模式。
使用CTAP2模拟器或安全密钥在浏览器中体验无密码注册与认证流程。
同步器令牌模式演示:生成令牌嵌入表单,提交时验证,理解CSRF防护核心流程。
创建带有弹性动画的通知数字徽章或红点,生成对应的HTML/CSS代码。
通过PBKDF2算法将弱密码转为加密级密钥,可设定盐和迭代次数,用于密钥管理演示。
模拟通过第三方身份提供商(如 Google)登录网站的完整 OAuth 2.0 授权码流程。
生成一次性恢复码,排列成卡片样式可打印保存,用于账号恢复。
逐步演示OAuth 2.0授权码流程或PKCE流程,展示参数跳转和Token交换。
生成一个随机字符矩阵的密码卡,通过行列坐标记忆组合强密码,可打印保存。
生成简单数字或字母验证码图片,带干扰线和噪点,适合前端原型测试,不依赖服务端。
粘贴Base64编码的PEM证书,解码并显示颁发者、有效期、公钥算法与指纹等信息。
模拟跨站请求伪造攻击以及如何通过CSRF Token进行防护的流程演示。
填写商家名、物品清单、金额等,生成逼真的收据HTML,可打印作为道具或玩笑。
使用 Web Crypto API 生成自签名的 X.509 证书和密钥对,演示本地 HTTPS 证书原理。
使用Web NFC API读取NDEF格式标签的数据,展示记录类型和内容(需硬件支持)。
在PWA环境中设置和清除应用图标上的数字角标,演示Badging API的简单用法。
演示请求订阅Web Push,获得端点后可配合服务端发送测试推送。
显示国旗图片,输入国家名称验证,或翻转卡牌学习,适合儿童认识世界。
上传或粘贴证书签名请求(CSR)或公开证书内容,提取CN, SAN, 有效期等。
构建一个虚拟的登录窗,演示SQL注入登录绕过,并展示参数化查询如何防范。
在线随机密码生成工具,可自定义密码长度、字符类型(大小写、数字、符号),生成高强度的随机密码。
通过公共API获取指定域名的证书信息,展示颁发者、有效期及SAN。
上传主图标,自动生成带安全区域内缩的maskable-icon和monochrome通知徽章。
生成RSA/EC对称密钥的JWK表示,支持复制导出,用于OAuth2/JWT的密钥配置。
输入域名,通过TLS连接获取其SSL证书的颁发者、有效期、主题等信息。
支持多人通过不同键盘按键抢答,最先按下者屏幕亮起并锁定,类似电视节目。
配置 manifest 中的 share_target 字段,模拟接收来自其他应用的分享数据。
输入球员名单及首选号码,自动解决冲突并分配唯一号。