除了 mTLS 握手之外,是否还有浏览器和客户端 Certificate/Key 交互?
Are there Browser and Client Certificate/Key interactions besides mTLS handshake?
我知道,如果出现 mTLS 请求,现代浏览器将向用户请求 select 商店的证书(基于 OS 或在 Firefox 的情况下基于 NSS)。我想知道mTLS握手后返回的网页是否有其他方式请求使用用户证书或私钥执行操作,例如:
- 网页是否可以识别 selected 证书并阅读带有 Javascript API 的某些字段? (即:
<h1> Hello {x509CommonName}</h1>
)
- 网页可以要求用户用私钥签名吗? (风险不大但可能有用)
我不是询问仅使用网络服务器将证书反射回客户端有多容易。
从客户端无法获取SSL 连接中使用的证书,也无法执行数字签名。无法通过 JavaScript 访问浏览器密钥库。尽管已经有人尝试制定标准 API,但似乎没有成功。参见 https://www.w3.org/TR/webcrypto-key-discovery/
在服务器端可以很容易的获取到所使用的证书。任何网络服务器都会将其提供给应用层。网页可以导航到具有 SSL 两种方式身份验证的区域,服务器将检索证书并 return 在响应中
我知道,如果出现 mTLS 请求,现代浏览器将向用户请求 select 商店的证书(基于 OS 或在 Firefox 的情况下基于 NSS)。我想知道mTLS握手后返回的网页是否有其他方式请求使用用户证书或私钥执行操作,例如:
- 网页是否可以识别 selected 证书并阅读带有 Javascript API 的某些字段? (即:
<h1> Hello {x509CommonName}</h1>
) - 网页可以要求用户用私钥签名吗? (风险不大但可能有用)
我不是询问仅使用网络服务器将证书反射回客户端有多容易。
从客户端无法获取SSL 连接中使用的证书,也无法执行数字签名。无法通过 JavaScript 访问浏览器密钥库。尽管已经有人尝试制定标准 API,但似乎没有成功。参见 https://www.w3.org/TR/webcrypto-key-discovery/
在服务器端可以很容易的获取到所使用的证书。任何网络服务器都会将其提供给应用层。网页可以导航到具有 SSL 两种方式身份验证的区域,服务器将检索证书并 return 在响应中