Arquitetura aberta
O protocolo, o firmware e a parte de servidor são abertos. Não fica preso a um único fornecedor: o sistema funciona offline, pode ser auditado e, se precisar, corre na sua própria infraestrutura.
O que já está feito
- »Um protocolo aberto feito
Especificações completas BLE e socket — disposição ao nível do byte, a criptografia e vetores de teste para confrontar a sua própria implementação. Constrói-a na sua placa a partir da documentação, sem nada para fazer engenharia inversa. - »Firmware de referência com licença MIT feito
ESP32, ESP8266, Raspberry Pi e Node.js — código a funcionar para os dois lados, pronto a pegar e portar. - »O BLE funciona sem servidor nenhum feito
A abertura vai direta do telemóvel ao controlador por Bluetooth, sem internet e sem consultar o nosso servidor. Os controladores saem vazios e ligam-se localmente. - »O servidor nunca vê as suas chaves e não pode forjar uma abertura assinada feito
Os comandos são assinados no telemóvel e o servidor apenas os retransmite. Uma chave de convidado viaja num envelope cuja chave nunca passa pelo servidor. A assinatura é verificada pela fechadura Bluetooth, pelo controlador de rede ESP32 associado ao telemóvel do proprietário e pelo próprio telemóvel do proprietário antes de ligar ou enviar um webhook, por isso o servidor não os consegue abrir por si só (ver abaixo). - »Aprovisionamento de aparelhos para produção feito
Os aparelhos são produzidos em lotes que não pertencem a ninguém; o comprador liga-os com o código da caixa.
O modelo de confiança — o que o servidor pode e não pode fazer
As aberturas são assinadas no cliente (cifra de ponta a ponta) e os segredos passam cifrados ao lado do servidor. Daí que:
| O servidor NÃO PODE | O servidor pode |
|---|---|
| ler as suas chaves (a chave de convidado, o segredo do proprietário) | negar o serviço (estar indisponível) |
| forjar uma abertura onde a fechadura, o controlador ou o telemóvel do proprietário verifica a assinatura | ver metadados: quem, o quê, quando e endereços IP |
| escalar os seus próprios privilégios | abrir o que confia nele: um webhook enviado a partir do servidor, controladores em ESP8266, Raspberry Pi ou Node.js |
Assim, onde a fechadura, o controlador ou o telemóvel do proprietário verifica a assinatura, o servidor — o nosso ou o seu — só afeta a disponibilidade. É assim com as fechaduras Bluetooth, com o controlador de rede ESP32 associado ao telemóvel do proprietário e com as chamadas e webhooks que o telemóvel do proprietário envia. Um webhook enviado a partir do servidor e os controladores simples em ESP8266, Raspberry Pi e Node.js confiam no servidor: ele tem o endereço ou a ligação e pode enviar uma abertura por si. Se alojar o servidor por conta própria, esconde também os metadados.
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.
O firmware de referência verifica o certificado do servidor, por isso ninguém na mesma rede se pode fazer passar pelo servidor.
Roteiro
- ●Etapa 1 — qualquer host na aplicação feito
A aplicação pode ser apontada ao seu próprio servidor Entrixy: as ligações e as ligações de convidado que gera vão para lá. Um convidado que abra uma ligação de outro servidor liga-se automaticamente a esse servidor. - ●Etapa 2 — o servidor como distribuição feito
Uma imagem Docker da parte de servidor: o servidor WebSocket, o esquema da base de dados e as instruções. A disponibilidade passa a estar nas suas mãos e as nossas falhas não o afetam. - ○Etapa 3 — código aberto para a aplicação previsto
Para que qualquer pessoa possa auditar e recompilar o cliente — independência total face a infraestrutura alheia e às lojas de aplicações.
A quem se destina
Fabricantes de cancelas, fechaduras, intercomunicadores e controladores que precisam que o seu produto continue a funcionar independentemente de nós, em vez de depender de uma só empresa. E quem constrói o seu próprio controlador e quer manter-se independente de um único fornecedor. Para falar de integração e condições OEM, escreva para hello@entrixy.com. Protocolos: BLE, socket. Código de referência e configurador: controladores.