Arquitectura abierta
El protocolo, el firmware y la parte de servidor son abiertos. No dependes de un único proveedor: el sistema funciona sin conexión, se puede auditar y, si lo necesitas, corre en tu propia infraestructura.
Lo que ya está hecho
- »Un protocolo abierto hecho
Especificaciones completas BLE y socket — disposición a nivel de bytes, la criptografía y vectores de prueba con los que contrastar tu propia implementación. La montas en tu placa a partir de la documentación, sin nada que aplicar ingeniería inversa. - »Firmware de referencia con licencia MIT hecho
ESP32, ESP8266, Raspberry Pi y Node.js: código que funciona para ambos lados, listo para tomar y portar. - »El BLE funciona sin servidor alguno hecho
La apertura va directa del teléfono al controlador por Bluetooth, sin internet y sin consultar a nuestro servidor. Los controladores se envían vacíos y se vinculan en local. - »El servidor nunca ve tus claves y no puede falsificar una apertura firmada hecho
Los comandos se firman en el teléfono y el servidor solo los transmite. Una llave de invitado viaja en un sobre cuya clave nunca pasa por el servidor. La firma la comprueban la cerradura Bluetooth, el controlador de red ESP32 vinculado al teléfono del propietario y el propio teléfono del propietario antes de llamar o enviar un webhook, así que el servidor no puede abrirlos por su cuenta (ver más abajo). - »Aprovisionamiento de dispositivos para producción hecho
Los dispositivos se fabrican en lotes que no pertenecen a nadie; el comprador los vincula con el código de la carcasa.
El modelo de confianza: qué puede y qué no puede hacer el servidor
Las aperturas se firman en el cliente (cifrado de extremo a extremo) y los secretos pasan cifrados de largo por el servidor. De ahí que:
| El servidor NO PUEDE | El servidor sí puede |
|---|---|
| leer tus claves (la llave de invitado, el secreto del propietario) | denegar el servicio (estar caído) |
| falsificar una apertura donde la firma la comprueba la cerradura, el controlador o el teléfono del propietario | ver metadatos: quién, qué, cuándo y direcciones IP |
| escalar sus propios privilegios | abrir lo que confía en él: un webhook enviado desde el servidor, controladores en ESP8266, Raspberry Pi o Node.js |
Así que, donde la firma la comprueba la cerradura, el controlador o el teléfono del propietario, el servidor —el nuestro o el tuyo— solo afecta a la disponibilidad. Así funcionan las cerraduras Bluetooth, el controlador de red ESP32 vinculado al teléfono del propietario y las llamadas y webhooks que envía el teléfono del propietario. Un webhook enviado desde el servidor y los controladores sencillos en ESP8266, Raspberry Pi y Node.js confían en el servidor: él tiene la dirección o la conexión y puede enviar una apertura por sí mismo. Si ejecutas el servidor tú mismo, ocultas también los metadatos.
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.
El firmware de referencia comprueba el certificado del servidor, así que nadie en la misma red puede hacerse pasar por el servidor.
Hoja de ruta
- ●Etapa 1: cualquier host en la aplicación hecho
La aplicación se puede apuntar a tu propio servidor Entrixy: las conexiones y los enlaces de invitado que genera van allí. Un invitado que abra un enlace de otro servidor se conecta a ese servidor automáticamente. - ●Etapa 2: el servidor como distribución hecho
Una imagen Docker de la parte de servidor: el servidor WebSocket, el esquema de la base de datos y las instrucciones. La disponibilidad pasa a estar en tus manos y nuestras caídas no te afectan. - ○Etapa 3: código abierto para la aplicación previsto
Para que cualquiera pueda auditar y recompilar el cliente: independencia total de la infraestructura ajena y de las tiendas de aplicaciones.
Para quién es esto
Fabricantes de barreras, cerraduras, porteros y controladores que necesitan que su producto siga funcionando con independencia de nosotros en vez de depender de una sola empresa. Y cualquiera que se monte un controlador y quiera no depender de un único proveedor. Para hablar de integración y condiciones OEM, escribe a hello@entrixy.com. Protocolos: BLE, socket. Código de referencia y configurador: controladores.