切换到宽版
  • 9624阅读
  • 69回复

[电脑]假装原生~集成指纹模块到台式电脑面板上,并介绍指纹模块的一些微冷知识 [复制链接]

上一主题 下一主题
离线f@tfox
 

发帖
728
M币
6968
专家
22
粉丝
39
— 本帖被 發騷友 设置为精华,作者+3000M币+5专家(2018-08-26) —
先上完成效果图:



之前看到坛友改的指纹模块,想起以前曾经想用手机指纹模块做些东西,但仍然没有找到方法,忍不住淘了一个笔记本的指纹模块改着玩。不同的是我把模块集成到了机器里,而不是做成外置 USB 的形式。

我的电脑机箱是这款:


机箱前面板正面除了 LOGO 什么都没有。顶部有一些插口。最右侧带 H、L 字样的貌似是风扇控制开关的开口。这个面板模具应该是多款公用的,此款机箱比较低端,割掉了这个功能, HL 开口就没有打开。正好可以利用这里安装指纹模块,对外观的破坏最小。


这样做需要较小的指纹模块,或者感应器和模块的主 PCB 可以分开,否则空间不够。




指纹模块需要占用一条 USB 线路。如果机箱前面板上没有那个 HL,完全可以把一个靠边的 USB 口改成指纹窗口,并把模块连接在该线路上。但我这里的情况是,主板提供的 USB 3.0 前面板插口有两条线路,这款机箱的前面板上却仅有一个 USB 3.0 口。我打算移走一个 USB 2.0 用来连接指纹模块,然后把空闲的 USB 3.0 线路移过来取而代之,这样就不会浪费。


在深水宝找来找去选中了这种。是戴尔笔记本的模块。


我们先看看模块的结构。这种模块和 Thinkpad 上那种最常见的不太一样。




模块的 Pinouts 已经标注在图中。空焊盘原本就是空的,八脚 IC 焊盘中间脏脏的部分原本是个二维码贴纸,掉了。这里应该是给 SPI 存储器准备的。

侧面看来这有个支架,我们把它拆下来。








模块的核心是一个薄薄的 FPC(柔性电路板)。黑色的部分是指纹感应区,被支架顶起,弯曲成拱形;黄色的部分中间长条形的是主控芯片,其他部分有密密麻麻的线路,最后连接到模块电路板的背面(被标签遮住了)。

这个模块的关键部分都在 FPC 上,方形的 PCB 上仅仅是晶振和阻容件。FPC 上的部分是指纹传感器。这是一个刮擦式的传感器,它来自 Synaptics 公司(更常见的另一种样子的刮擦式传感器,也就是坛友改造最常用的那种,来自 AuthenTec 公司,一会儿我会详细介绍)。这些传感器本身就支持 USB 接口,如果有传感器的资料,设计一个最小化的适配板子再去板厂打样,DIY 一个无线鼠标接受器大小的指纹狗是完全可能的——实际上已有此类产品存在。

Synaptics 的刮擦式指纹传感器使用了 Chip-On-Flex 封装,这是某种程度上的“软封装”,把控制芯片和指纹感应区分离,实际应用场合下,芯片会被外壳遮盖住;AuthenTec 则使用 BGA 形式的“硬封装”,焊接在电路板上,整个传感器暴露在外。

这里顺便说说能帮助判断模块接口线序的规律。例如:
数据线、电源线的粗细对比;
线路上圆圆的 Test Points;
GND 铺铜;
三脚贴片晶振的中间引脚为 GND;
VCC-GND 之间通常有滤波/去耦电容;
USB 的 D+ D- 是差分线;
......
凡此种种,在实际操作中不一定每条都满足,综合考虑吧。

供电电压从低开始试验。猜测:PCB 上带有电源芯片的模块,其外部供电电压可能会高一些,比如 5V;否则就取决于控制芯片本身——一般来说,是 3.6/3.3/3.0/2.7/2.4/1.8V 这样的电压,其中 3.3/1.8 比较常用,当然也不排除其他可能性。鉴于这个模块没有专门的电源芯片,我们应该从尽可能低的电压开始试验,逐渐升至 3.3V 或 5V。


实测发现,用可调电源板从 USB 口取电,提供一个 1.?V 的电压,模块其他引脚接至 USB 口无法识别,即使交换 D+ D-,仍不能识别,说明电压不对或者模块损坏;逐渐提高电压发现 3.3V 供电可以成功识别。真实情况是,接近 3V 已经能识别了,但 3.3V 是标准电压,模块能稳定工作,同时这个电压也比较容易获得。






这个模块的型号是 Synaptics VFS5011。实际上我们通过英文 Google 能查到关于这个模块的一些资料。
Win 10 会自动安装驱动程序,然后可以在“设置”里面可以找到指纹登录的选项。按照向导提供的步骤录入指纹后就可以刷指纹登录了。










特别提一下 Linux 下的情况。因为写程序的需要,我有时候会在 Ubuntu 下工作,命令行下老是 sudo 有点烦人,刷指纹可以代替输入一大串的密码用于 sudo 的验证。关于 Ubuntu 怎么用这个指纹模块,我待会儿说明一下。

一般的台式机用这玩意其实没什么大用,顶多是登录方便一些。在软件支持下登录网站账户也行,坛友已经讲解过了。至于安全性什么的,不必强求,对于计算机来说,基本的物理安全都没有的话,哪有什么信息安全可言。

待续……
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共12条打赏M币+153
漫步时光 M币 +15 優秀文章写的很不错 09-02
netlhq M币 +1 我是不是买到劣质产品了,只能绑定一个指纹,第二个就没反应了 08-31
l68990040 M币 +8 看不懂,但不影响我加分给牛人。 08-31
411183343 M币 +9 優秀文章 08-29
goodanytime M币 +13 謝謝分享 08-29
eros8269 M币 +13 謝謝分享 08-28
mmdhj M币 +20 看不懂,但不影响我加分给牛人。 08-28
dragonkyo M币 +8 原創內容 08-28
sonj M币 +13 謝謝分享 08-27
geek云中漫步 M币 +20 優秀文章 08-27
12
离线f@tfox

发帖
728
M币
6968
专家
22
粉丝
39
只看该作者 1楼 发表于: 08-24
既然稍微离题了,就顺便说说我对指纹模块、指纹传感器的一些了解,或许能对大家有一点儿帮助。上文提到,我们最常见的拆机指纹模块,其传感器来自 AuthenTec 公司。这家公司大概是从上世纪 90 年代后期开始出品指纹识别解决方案,早期的各种并购关系就不说了,最著名的是后来它被苹果公司收购(原本 AuthenTec 的产品资料是比较好找的,被苹果收购以后就变得封闭了,NND)。





关于指纹识别的原理神马的就不说了,网上资料非常多,感兴趣的话可以搜搜,虽然对玩模块没什么帮助。这里只说一些不太常见的关于具体产品的微冷知识。这部分的一些图片来自网络,版权属于相应的持有人,侵删。

AuthenTec 早期的指纹传感器是方形的,用的是 PLCC、LQFP 这类封装,并不是刮擦式的,而是和现在的手机类似的触摸式——似乎有点令人惊讶。


那时候已经有了一些笔记本电脑 PCMCIA 卡使用了这些早期的触摸式指纹传感器(当然类似打卡机那种光学指纹识别 PC 卡、指纹识别鼠标出现得恐怕更早)。


基于成本等多方面的原因,2000 年以后 AuthenTec 的产品逐渐转向刮擦式,BGA 封装。狭窄的晶片减小了传感器的体积,同时比起方形能大大提高晶圆的利用率,能耗也逐渐得到更好的控制:传感器的供电从 5V、3.3/5V 渐渐变为 2.7~3.6V、2.4~3.6V 甚至 1.8V(当然 USB IO 的电压仍然是 3.0~3.6V),扫描/待机电流也有了数倍的降低。

这里提供几个型号的数据。特别提醒一下,AuthenTec 家的指纹除了很早的,基本用不到 5V 供电。如果模块上没有专门的电源芯片,那么 1.8V 和 3.3V 二选一基本没问题。


两个型号的传感器,坛友 DIY 遇到过的



这个是 3.3V 比较适合。但是如果模块上有电源芯片另说。


这是比较新一点的指纹传感器,是 1.8V 供电。


另一方面,我选择的模块,传感器为 COF 封装,尺寸更小,对我来说安装更方便。Synaptics 的产品中,大家最熟悉的大概是笔记本上的触摸板。其指纹技术,主要来自收购的 Validity 公司。或许有专利方面的原因,貌似从一开始 Validity 的指纹传感器就是装在柔性电路板上的。那时候它的体积还比较大。



下面这个是 2009 年的 VFS301。至于我手里这个模块,大概是 2010 年左右面世的,这些 COF 传感器的体积和耗电都已经控制得比较优秀了,或许比同时期的 AuthenTec 还要好一点。VFS5xxx 系列还是 3.3V 供电,到 VFS6xxx 以后就可以 1.8V 了。


超小的模块。注意它是包含 PCB 板的,也就是说直接连接 USB 就行了。比我用的这个还要小。



耗电已经很不错了,对于笔记本电脑来说。

再后来,指纹传感器的主要商业应用就转向了手机指纹解锁之类,小面积的触摸式传感器开始大量出现,体积和功耗都越来越小,网上能找到的带有技术细节的资料也越来越少,虽然某宝上能低价买到的手机指纹模块非常非常多,但 DIY 玩起来却并不容易。我对此有些兴趣,但并非业内人士,手头的资料不多,希望哪天能有人不吝赐教吧。至于资料完整的二次开发模块,某宝上倒是有一些,外面也有一些公司提供,但其价格、体积,与手机指纹模块几乎都不在一个数量级上,大部分是面向防盗门锁具之类的应用,那就是另外一个世界的事情了。

待续……
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
离线f@tfox

发帖
728
M币
6968
专家
22
粉丝
39
只看该作者 2楼 发表于: 08-24
言归正传,接下来开始真正的 DIY 流程。首先是除去 HL 开口上的挡片。


拆下 USB 小板上焊接的排线。把小板单独装在面板上,可以看到它是被两个塑料支架固定住的。不出意料,右边还有个安装小板的位置,留空了。




把中间的 USB 2.0 母座挖掉,注意开口的位置要基本准确。小板不是玻纤材质,质量辣鸡,但是真的容易加工……


保留的 USB 2.0 母座焊上一个接插件,以后拆装方便。至于增加接触电阻什么的,反正前面板也不适合插大功率设备不是么?


按照右边空间的形状,找块洞洞板切个板子,用来支撑指纹模块。洞洞板也选质量不好的,便于加工……


试试合适不。边上有个空闲的螺丝固定柱,可惜没有第三个塑料支架,缺了一个支点就不够稳定。


自己想办法。讲究点儿,咱不用自攻螺丝,镶一个滚花螺母进去,用微量胶水固定,注意不要让胶流到螺纹里面。同时,按照指纹模块的形状,把 HL 开口内侧的一边挖薄,使模块能平整安装进去,让感应区尽量接近面板表面,便于触摸。


在小板上的合适位置装一个插片当作支架,插片上自带的小孔正好当作螺丝孔。


焊好了,支撑问题解决。


手头没有 6 针 FPC 排线座,拿 10 针的凑合一下。用贴片 IC 转接板转成 2.54 间距,拼拼凑凑吧。


一事不烦二主,供电也直接用 USB 线路解决了。模块耗电很少,随便找个 3.3V LDO 就行。其实可以把电路都装在切好的小板上,但空间稍小,做起来有点儿麻烦。犯懒找了一个成品 1117 模块,另做了一个转接板。


检查电路无误,测试一下刷指纹正常。热成像观察板子,没有异常发热,OK。


这种 COF 指纹器的芯片如果暴露在外,会比较容易受损。在实际应用中,笔记本的 C 壳会起到保护作用。这里的 HL 开口太宽、太大,自制一个保护壳比较好。找来找去,手头没有合适的黑色塑料片,无奈之下选择了万能的热缩管 作为保护壳的材料。

量好尺寸画个图。电脑作图,打印出 1:1 的图纸。


用双面胶带把图纸粘在裁开的黑色热缩管上,沿边缘仔细切好。然后用酒精降低双面胶带的黏性,再揭掉图纸和胶带,防止切好的保护壳被拉长、变形。最后用泡棉胶带裁出窄条,把保护壳粘在模块上。


大概比划一下(并没有仔细对准位置)。


另一边,电脑的 USB 线路已经改造完了。


从一堆破烂里找到充电宝包装用的硬泡沫,切下合适大小的一块,顶住指纹模块。


转接板用泡棉胶带粘在前面板内侧。


装回前面板。看起来还不错。电源灯顺便换成橙色,蓝光太刺眼。


这就是成品了。几乎可以伪装成原生的指纹识别

PS. 坛友的帖子(Windows 中使用指纹模块可参考):
http://bbs.mydigit.cn/read.php?tid=2475877


待续……
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共6条打赏M币+75
cushion M币 +20 原創內容 08-29
dragonkyo M币 +8 謝謝分享 08-28
阿甲 M币 +9 弄个指纹锁就牛了 08-27
sonj M币 +20 謝謝分享 08-27
zhkrid M币 +9 以資鼓勵 08-24
wulishui M币 +9 搞得我也想搞个来装 08-24
离线f@tfox

发帖
728
M币
6968
专家
22
粉丝
39
只看该作者 3楼 发表于: 08-24
简单说说 Ubuntu 中使用指纹模块的方法。Linux 下有一些支持指纹模块的软件,我们挨个看一看。

Ubuntu 设置指纹登录是很简单的,和 Win10 下面差不多。只是需要事先使用 apt 一下。
sudo apt install libfprint0 libpam-fprintd
(大概是这样。如果有报告缺什么软件包,apt 装上就好)

安装完成以后可以在账户设置里面找到指纹登录的设置项,按步骤录入指纹即可启用指纹登录。


启用指纹登录:


扫指纹:


之后这个栏就变成了“已启用”状态。


之后重新登录系统:

这个时候滑动手指就可以登录了,和 Windows 差不多。

再看看 fprint-demo 这个软件。需要先安装。


这里可以录入十个手指的指纹。我们来试试。


之后也是会让你扫指纹。然后可以进入 Verify(验证)环节。


恶魔妹妹卖面膜……WTF!


很明显,一切都是赤裸裸的!这个指纹模块就像一台扫描仪,系统会直接获得指纹的扫描图像,而不是仅仅获得指纹比对的结果。这里面有相当的安全风险:指纹不像设置密码一样可以随时更换,一旦泄露就永远泄露了。当然这里我扫的不是指纹……

一般地,对刮擦式的指纹模块来说,指纹图像并非直接一次生成,而是在手指划过感应器的过程中,存在一个“扫描-拼接”的过程,这个过程有操作系统的参与,其安全性取决于操作系统本身,不像现在手机上常见的触摸式指纹模块使用 TrustZone 这种基于硬件的技术来防止系统直接访问指纹数据——当然 TrustZone 也有过爆出漏洞的黑历史……

试试另一个软件 fingerprint-gui,安装它需要添加一个源:
sudo add-apt-repository ppa:fingerprint/fingerprint-gui
sudo apt update
sudo apt install fingerprint-gui

打开安装好的 Fingerprint GUI:



点击指尖录入指纹:



继续扫……




解决 sudo 指纹验证的地方在此:



设置完成以后,随便输入一个带 sudo 的命令,就 apt 好了:



这时可能报告一个错误信息:
Gtk-Message: Failed to load module "canberra-gtk-module"
只要运行:
sudo apt-get install libcanberra-gtk-module
即可消除。


如果一切正常,屏幕下方会出现这样的浮窗,继续刷吧:



刷指纹成功以后,命令就会执行下去,这样就实现了 sudo 的指纹验证,避免每次 sudo 都输入一串密码。



本帖到此结束,谢谢观看!




@wcg659377727: 华擎deskmini 小主机加装指纹模块:http://bbs.mydigit.cn/read.php?tid=2520430
本文内容包含图片或附件,获取更多资讯,请 登录 后查看;或者 注册 成为会员获得更多权限
本帖最近打赏记录:共11条打赏M币+155专家+1
漫步时光 M币 +15 原創內容 09-02
misi_miss M币 +15 優秀文章 08-31
awii M币 +30 - 08-30
goodanytime M币 +13 謝謝分享 08-29
wjhwpp 专家 +1 歡迎探討 08-27
隔壁邻居老王 M币 +20 謝謝分享 08-27
ch104517745 M币 +20 優秀文章 08-27
chenzoutie M币 +1 謝謝分享 08-27
lerotom M币 +8 穿拖鞋按指纹还带酥麻的感觉 08-25
wenxueroom M币 +20 开眼界了 一直在用ubuntu 原来还能这么玩 08-25
12
离线lasttears

发帖
278
M币
608
专家
0
粉丝
15
只看该作者 4楼 发表于: 08-24
要是能DIY TPM就好了,光指纹不够牛。
在线wulishui

发帖
13267
M币
1790
专家
25
粉丝
9869
只看该作者 5楼 发表于: 08-24
搞得我也想搞个来装

楼主留言:

感谢支持

在线aacyxjz

发帖
4039
M币
9124
专家
51
粉丝
103
只看该作者 6楼 发表于: 08-24
很厉害,这是要成精吗

楼主留言:

感谢支持

离线邪恶海盗

发帖
10092
M币
8331
专家
6
粉丝
64
只看该作者 7楼 发表于: 08-24
我用虚拟机玩Xubuntu的时候都是搞ROOT登陆的...

楼主留言:

某种意义上来说,虚拟机就是拿来祸祸的。。。

离线f@tfox

发帖
728
M币
6968
专家
22
粉丝
39
只看该作者 8楼 发表于: 08-25
回 lasttears 的帖子
lasttears:要是能DIY TPM就好了,光指纹不够牛。 (2018-08-24 22:17) 回 lasttears 的帖子

目的不同,改指纹玩主要是为了方便…… TPM…… 我的旧电脑主板上倒是有这个接口,还有入侵检测之类的功能。
[ 此帖被f@tfox在2018-08-25 01:07重新编辑 ]
离线小王325

发帖
60
M币
55
专家
0
粉丝
6
只看该作者 9楼 发表于: 08-25
刚试了一下,我的hp笔记本自带指纹在linux无法驱动,悲剧。

楼主留言:

查过支持列表了?

内容来自Android手机客户端