如何基于浏览器认证客户端的唯一性。

2018-04-27 17:23:01 +08:00
 kevinle

使用场景,基于 BS 的架构,只能特定的电脑才能登陆。

4398 次点击
所在节点    浏览器
16 条回复
tanranran
2018-04-27 17:56:17 +08:00
同求+1
rrfeng
2018-04-27 18:00:01 +08:00
浏览器指纹了解一下。

其实绝对上是不可能的,做客户端吧。
或者,认证客户端蜜密钥,加 USB key
ReVanTis
2018-04-27 18:04:54 +08:00
我们最近做的一个方案是把 pc 的一些硬件特征隐含在证书里,提交到服务器上签署以后放到 Yubikey 里,由 Yubikey 认证 pc 来登陆。
如果 pc 可以伪造这些硬件特征就没办法了,不过至少 Yubikey 不能伪造。
Shura
2018-04-27 18:11:37 +08:00
如果数量少,服务器部署 KDC(key distribution center),然后给每个客户端都分发一个唯一的密钥。用对称加密或非对称加密都行。
honeycomb
2018-04-27 18:18:59 +08:00
Fido u2f,目前 chrome,Firefox 都支持。
如果不需要使用标准 API 的,看 @ReVanTis
ReVanTis
2018-04-27 18:26:47 +08:00
@honeycomb
我们似乎是用 ccid 的接口做的,python c/s 的。
只是提供一种思路,具体的技术应该有很多选择。
honeycomb
2018-04-27 18:28:32 +08:00
@ReVanTis webusb 可能就是靠 ccid 实现的?
eric
2018-04-27 19:20:55 +08:00
Mutual TLS
foobar2000
2018-04-27 19:24:11 +08:00
虚拟机破解之
PHPer233
2018-04-27 19:29:03 +08:00
楼主所说的特定电脑的 IP 地址是固定的吗?如果是固定的可以限制 IP
kevinle
2018-04-29 12:29:31 +08:00
@PHPer233 想过这个方案,通过 IP 限制,但客户端 IP 不固定,有想过客户端设置一个 DDNS 反向过去。
kevinle
2018-04-29 12:30:48 +08:00
@rrfeng 浏览器指纹不可行,需要唯一性,USB KEY 可带走,也不可行。
需要的是特定的电脑才可以登录。
kevinle
2018-04-29 12:36:52 +08:00
@ReVanTis
@honeycomb
@Shura
感谢,了解学习一下。主要目的是只能特定的电脑访问,而不是特定的人访问。
rrfeng
2018-04-29 16:16:40 +08:00
usb key 锁住。

如果说你控制不了硬件本体,那绝无可能指定硬件。
nciyuan
2018-04-29 20:57:50 +08:00
数字证书呀,或者 GA 那种动态密码的加密狗
kevinle
2018-05-01 12:37:23 +08:00
@rrfeng 是想实现只能特定的电脑访问,比如只能公司的电脑可以访问,但家里的电脑不能访问。USB KEY 可以带走,不能锁定电脑。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/450453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX