O problema: confiança cega
Quando instala uma app de monitorização de bebés, dá-lhe acesso a um espaço muito privado: o quarto do seu bebé. A app ouve e, por vezes, também vê. Ao mesmo tempo, os pais muitas vezes não conseguem perceber o que acontece em segundo plano: as transmissões passam por servidores de terceiros, são recolhidos dados de utilização, quem pode tecnicamente aceder a alguma coisa?
A resposta honesta é: com muitas apps, não se sabe. O código é fechado e a arquitetura não passa de uma alegação. No fim, é-lhe pedido que confie no fornecedor.
Código fechado, falhas expostas
Nos últimos anos, houve muitos relatos de monitores de bebé pirateados. Estranhos conseguiam ouvir, mexer nas câmaras ou falar através dos altifalantes. Na maioria dos casos, não eram ataques sofisticados, mas falhas graves: ligações sem encriptação, palavras-passe predefinidas, autenticação em falta.
Com software proprietário, quem está de fora muitas vezes só vê essas fragilidades depois de algo acontecer. Investigadores de segurança, programadores independentes e pais analisam um produto acabado do exterior. Para um dispositivo no quarto do bebé, é um modelo frágil.
A transparência como princípio de segurança
A segurança da informação tem uma regra antiga e útil: princípio de Kerckhoffs. A segurança não deve depender de a conceção do sistema permanecer secreta. Um sistema deve continuar a ser seguro mesmo quando alguém sabe como foi construído.
Código documentado publicamente não torna, por si só, o software seguro. Mas permite verificar as afirmações. Quem percebe da área pode analisar os fluxos de dados, a derivação de chaves e as regras, em vez de ler texto de marketing.
A abordagem do Timmy: um núcleo de segurança separado
No Timmy, separo agora de forma muito clara as partes que são verdadeiramente críticas para a segurança. Nem todos os elementos da interface determinam se o produto merece confiança. Os elementos decisivos são a lógica de backend, os contratos de sinalização, a criptografia de emparelhamento e a questão de saber que dados chegam a um servidor.
É por isso que o núcleo de segurança está agora no repositório público baby-monitor-timmy-core. O código completo da app não é público neste momento. Os blocos críticos para a segurança são retirados da interface e da lógica do produto para poderem ser documentados e analisados de forma autónoma.
O que significa isto, na prática?
- Limites claros: os blocos de segurança estão separados da interface e da lógica do produto.
- Fluxos de dados auditáveis: o emparelhamento, a sinalização e as interfaces de backend podem ser documentados separadamente.
- Sem rastreadores ocultos: os percursos críticos contêm apenas o que tecnicamente lhes pertence.
- Manutenção a longo prazo: é mais fácil analisar um núcleo separado do que um monólito sem estrutura.
Conclusão: os pais merecem transparência
Quando uma app tem acesso ao quarto do bebé, deve ser concreta nas questões críticas: que dados são criados? Para onde vão? Quem os pode ler? Os pais merecem mais do que um selo de privacidade no rodapé.
O Baby Monitor Timmy deve mostrar que um bom produto e uma segurança auditável podem coexistir. Para mim, isto não significa tornar pública cada parte da app. Significa abrir as partes que decidem o emparelhamento, a sinalização, o acesso ao backend e os fluxos de dados.