[英]How to SHA-256 hash text in a chrome extension with SubtleCrypto
[英]How do you implement digest authentication with SHA-256 when modern web browsers disable SubtleCrypto when you're not in a secure context (https)?
我有一个非常基本的 web 服务器在 ESP8266 微控制器上运行,因此系统资源非常有限,但我认为它可能可以处理 SHA-256(我猜我们会看到,但这是一个单独的问题)。
我的准系统摘要身份验证实现运行良好,我可以通过 curl 访问该站点。
这个微控制器不打算暴露在互联网上,它只是你可以通过你的局域网在内部访问的东西,所以 SSL 不是一个选择(不确定如果它试图支持 HTTPS,微控制器会保持多好)。
所以,这是我的场景:用户尝试从他们最喜欢的 web 浏览器访问微控制器上的站点。 他们获得 401 代码并重定向到登录页面(连同 WWW-Authenticate 标头)。 此登录页面需要从 WWW-Authenticate header 中获取信息,以及用户输入的用户名和密码,生成 hash 需要发送授权 Z099FB995346F31C749F6E40DB0EZ。
不幸的是,如果您没有通过 HTTPS 连接(根据https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto ),生成 SHA-256 哈希的内置功能将被禁用 - 也是如此这意味着 web 浏览器本身不支持摘要身份验证(除非他们选择使用 MD5 而不是更安全的东西)? 如果您正在实施摘要身份验证,您需要提供自己的散列函数吗? 我也不太明白为什么禁用执行哈希的能力有助于用户安全(在非 https 上下文中)。
一个假设:
所以回答我自己的问题(部分):
事实证明,用户端完全由浏览器处理(即通用登录模式弹出窗口)。 Java 脚本甚至无法访问响应标头。
我想是为了防止实施不善的非安全登录?
我见过的示例通过完全通过 xhttprequests 提供功能来解决它。
我仍然不知道拒绝访问散列算法有什么好处
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.