在 Entrixy 之上做产品或做生意的人,需要的不只是一句「可靠」的承诺——而是写进系统本身的保证:带测试向量的开放协议、不依赖我们服务器也能开门的能力,以及可以自己部署的服务端。独立性来自设计,而不是口头保证。
已经做到的部分
- »开放协议 已完成
完整规范 BLE 与 socket ——逐字节的结构、密码学,以及 测试向量 ,用来核对您自己的实现。照着文档就能在您的板子上做出来,无需逆向任何东西。 - »参考固件,MIT 许可 已完成
ESP32、ESP8266、树莓 Pi 和 Node.js——两端都有可运行的代码,拿来即可移植。 - »BLE 完全不需要服务器 已完成
开门指令通过蓝牙从手机直达控制器,不走互联网,也不请求我们的服务器。控制器出厂时是空的,在本地完成绑定。 - »服务器看不到您的密钥,也无法伪造经过签名的开门指令 已完成
指令在手机上签名,服务器只负责转发。访客钥匙装在信封里传递,信封的密钥从不经过服务器。签名由蓝牙锁、绑定到所有者手机的 ESP32 联网控制器,以及所有者手机本身(在拨号或发送 Webhook 之前)进行校验,因此服务器无法自行打开它们(见下文)。 - »面向量产的设备预置 已完成
设备成批生产,出厂时不属于任何人;买家用外壳上的码完成绑定。
信任模型——服务器能做什么,不能做什么
开门指令在客户端签名(端到端加密),密钥则以加密形式绕过服务器。因此:
| 服务器不能 | 服务器能 |
|---|---|
| 读取您的密钥(访客密钥、所有者密钥) | 拒绝服务(不可用) |
| 在由锁、控制器或所有者手机校验签名的场合伪造开门 | 看到元数据:谁、什么、何时,以及 IP 地址 |
| 提升自己的权限 | 打开信任它的设备:由服务器发送的 Webhook,以及基于 ESP8266、Raspberry Pi 或 Node.js 的控制器 |
因此,凡是由锁、控制器或所有者手机校验签名的场合,服务器——无论是我们的还是您自己的——只影响可用性。蓝牙锁、绑定到所有者手机的 ESP32 联网控制器,以及由所有者手机发出的拨号和 Webhook 都是如此。由服务器发送的 Webhook,以及基于 ESP8266、Raspberry Pi 和 Node.js 的简易控制器则信任服务器:它掌握地址或连接,可以自行发出开门指令。自行部署服务器,元数据也一并留在您手里。
A controller that works over the internet holds its own connection to the server, so the server sees the controller’s IP address and the time of each command sent to it. Only the ESP32 network controller bound to the owner’s phone checks the signature of every command; the others act on what the server sends.
参考固件会校验服务器证书,因此同一网络中的任何人都无法冒充服务器。
路线图
- ●第 1 阶段——应用中可指定任意主机 已完成
可以把应用指向您自己的 Entrixy 服务器:连接以及它生成的访客链接都会走那里。访客打开来自另一台服务器的链接时,会自动连到那台服务器。 - ●第 2 阶段——把服务端做成可分发的安装包 已完成
服务端的 Docker 镜像:WebSocket 服务器、数据库结构和说明。可用性从此掌握在您手里,我们的故障与您无关。 - ○第 3 阶段——应用开源 计划中
让任何人都能审计并自行重新构建客户端——彻底摆脱对他人基础设施和应用商店的依赖。
这适合谁
道闸、门锁、对讲机和控制器的制造商——他们需要产品脱离我们也能继续工作,而不是依赖某一家公司。也适合自己动手做控制器、又不想被单一供应商绑住的人。洽谈接入和 OEM 条款请写信至 hello@entrixy.com。协议: BLE, socket。参考代码与配置器: 控制器。