BestBlogs.dev

DPoP 存储悖论:为什么基于浏览器的持有证明仍然是一个未解决的问题 (opens in new tab)

📌 One-Sentence Summary 本文剖析了浏览器中的 DPoP 存储悖论:存储在 IndexedDB 中的不可提取 CryptoKey 仍然容易受到基于 XSS 的签名预言机攻击,并评估了 BFF 模式和纯内存方法作为缓解措施。 📝 Summary 本文探讨了基于浏览器的 DPoP(RFC 9449)实现中的一个关键安全漏洞:虽然该协议将令牌绑定到客户端密钥对,但并未指定密钥的存储方式。作者证明,将私钥作为不可提取的 CryptoKey 存储在 IndexedDB 中并不能阻止 XSS 攻击,因为攻击者可以调用 `crypto.subtle.sign()` 来伪造 DPoP 证明,而无需提取密钥。这种“预言机攻击”在 IETF 自身的安全考虑中已有记载。文章评估了当前行业标准——后端即前端(BFF)模式,该模式将密钥材料移至服务器端,从而同时防止了预言机攻击和新鲜令牌获取攻击。对于无法使用 BFF 的场景(例如浏览器扩展、嵌入式小部件),作者提出了一种纯内存密钥方法,并配合惰性重新绑定握手,将 XSS 攻击范围限制在单个会话内。文章最后比较了这些模式,并讨论了未来方...

Read the original article
Sign in to keep reading the full article.

Keyboard Shortcuts

Navigation

Next / previous post
j/k
Open post
oorEnter
Preview post
v

Post Actions

Love post
a
Like post
l
Dislike post
d
Undo reaction
u
Save / unsave
s

Recommendations

Add interest / feed
Enter
Not interested
x

Go to

Home
gh
Interests
gi
Feeds
gf
Likes
gl
History
gy
Changelog
gc
Settings
gs
Discover
gb
Search
/

General

Show this help
?
Submit feedback
!
Close modal / unfocus
Esc

Press ? anytime to show this help