# Validity90：逆向分析 Validity/Synaptics 指纹读取器协议

> 逆向分析 Validity/Synaptics 笔记本指纹读取器 138a:0090、138a:0094、138a:0097、06cb:0081 和 06cb:009a 的 USB 协议，目标是写出协议规范和自由的 libfprint 驱动。仓库包含初始化流程及这些读取器所用改版 TLS 1.2 握手的规范草稿、一个在密钥交换后解密通信的 Wireshark Lua 解析器，以及一个通过 libusb 与读取器通信的独立 C 原型。README 称原型代码非常粗糙，编写驱动时会完全重写，并注明集成到 libfprint 的驱动尚未就绪。

- 类型：案例
- 目标：协议
- 类别：独立重建案例
- 关联：独立重建项目
- 来源复核于：2026-10-20
- 收录于：2026-11-09
- 原始资源：<https://github.com/nmikhailov/Validity90>
- 一手来源：<https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/README.md>
- 目录页面：<https://awesomerea.org/zh/resources/validity90-fingerprint-protocol-case/>
- 记录 JSON：<https://awesomerea.org/resources/validity90-fingerprint-protocol-case/record.json>
- 英文版：[English](https://awesomerea.org/resources/validity90-fingerprint-protocol-case/index.md)

## 使用条件与局限

- README 报告原型在 138a:0090 上可扫描并输出图像，在 138a:0097 上可扫描，在 06cb:009a 上可初始化并控制 LED，但无法扫描。集成的 libfprint 驱动尚未就绪；配置、TLS 前密钥交换、设备操作和图像格式仍在完善。
- 原型需要列出的 USB 读取器及机器 DMI 产品序列号的读取权限，以生成会话密钥。Makefile 的权限目标使用 sudo。Linux 构建依赖 NSS、OpenSSL、libgcrypt、libusb-1.0、libpng 与 GLib。解析器需要 Wireshark Lua 与 lua-lockbox。
- make test 检查实用函数和一个初始化响应的解析。设备结果记录在 README 状态表及原型日志中。
- 许可证：项目代码为 LGPL-2.1-or-later；libfprint 副本及子模块保留各自许可声明。公开的规范和原型包含恢复出的密钥及字节序列。

## 一手来源

1. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/README.md>
2. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/spec.md>
3. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/prototype/README.md>
4. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/prototype/Makefile>
5. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/prototype/main.c>
6. <https://github.com/nmikhailov/Validity90/tree/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/prototype/test>
7. <https://github.com/nmikhailov/Validity90/tree/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/prototype/logs>
8. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/dissector.lua>
9. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/dbg/attach.sh>
10. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/.gitmodules>
11. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/libfprint/.gitrepo>
12. <https://github.com/nmikhailov/Validity90/blob/8b80cfeae15487d5e13ff5ff3ab4f282eac765be/COPYING>

## 同分区更多条目：协议

- [Ember Mug：逆向分析得出的低功耗蓝牙特征](https://awesomerea.org/zh/resources/ember-mug-ble-protocol-case/index.md) · 案例
- [BM2 Battery Monitor：重建加密的 BLE 电压协议](https://awesomerea.org/zh/resources/bm2-battery-monitor-ble-case/index.md) · 案例
- [Smart ring protocol：记录 Oura Ring 蓝牙协议与事件格式](https://awesomerea.org/zh/resources/ringverse-oura-ring-protocol-case/index.md) · 案例
- [openrsync：ISC 许可的 rsync 协议 27 实现](https://awesomerea.org/zh/resources/openrsync-protocol-case/index.md) · 案例
- [Thermal Master P3：浏览器里的厂商 USB 协议客户端](https://awesomerea.org/zh/resources/thermal-master-p3-protocol-case/index.md) · 案例
- [SNX-VPN：重建 Check Point SNX 的浏览器登录流程](https://awesomerea.org/zh/resources/snxvpn-case/index.md) · 案例

## 关于此条目

说明已依据一手来源复核。
原创说明采用 MIT 许可；外部项目、论文与素材保留各自的权利和许可。
