Manual do altímetro Nano V1
Este manual detalha todos os recursos e operação do nosso pequeno altímetro de foguete Nano V1

Sobre a segurança do Nano

PDF

Um registo de voo só tem valor se for possível confiar que não foi adulterado, o que é ainda mais importante em recordes e competições. O Nano foi construído para que os dados que produz possam ser comprovados como autênticos, e para que o seu funcionamento não possa ser alterado às escondidas.

Duas técnicas criptográficas bem estabelecidas fazem o trabalho pesado: a encriptação AES-256 protege o firmware, e uma assinatura digital Ed25519 protege cada registo de voo.

A saber
Não é preciso fazer nada para ativar nada disto. Cada registo é assinado automaticamente ao ser escrito, e verificado quando é carregado no Altimeter Cloud. Um registo editado falha sempre a verificação, e é isso que mantém a tabela de resultados honesta.

Registos de voo assinados (Ed25519)

Cada registo de voo guardado pelo Nano é selado com uma assinatura digital Ed25519, um esquema moderno usado para proteger o tráfego web, o acesso por secure shell (SSH) e aplicações de mensagens como o Signal.

No Nano
1. Impressão digital
O SHA-256 reduz todo o registo a um único valor de 256 bits
No Nano
2. Assinar
A impressão digital é assinada com a chave privada, selada no firmware encriptado
No carregamento
3. Verificar
O Altimeter Cloud recalcula a impressão digital e verifica-a com a chave pública
Resultado
4. Verificado
Uma correspondência significa autêntico e não editado. Qualquer alteração e o registo é rejeitado

Uma impressão digital. O SHA-256 lê todo o registo e reduz-o a um único valor de 256 bits. Altere um só carácter em qualquer ponto do ficheiro e a impressão digital fica completamente diferente.

Uma assinatura. O Nano assina essa impressão digital com uma chave privada guardada dentro do firmware encriptado. Uma assinatura válida só pode ser criada com a chave privada, mas qualquer pessoa com a chave pública correspondente a pode verificar. As duas chaves estão ligadas matematicamente, mas a chave privada não pode ser deduzida a partir da pública.

Na prática, isto significa que:

  • Se um registo for editado de qualquer forma depois de o Nano o escrever, a impressão digital muda, a assinatura deixa de corresponder e o registo é rejeitado.
  • Só um Nano autêntico pode criar uma assinatura válida, por isso um registo alterado ou inventado não pode ser assinado para passar por verdadeiro.
  • Os nossos servidores Altimeter Cloud guardam apenas a chave pública, nunca a privada. Mesmo que os servidores fossem algum dia comprometidos, não haveria lá nada que pudesse ser usado para falsificar um registo.
  • Como a verificação de um registo só precisa da chave pública, pode ser feita de forma independente: um responsável de uma competição pode confirmar que é autêntico sem depender de nós.

O que a assinatura abrange

O nome do dispositivo e os números de concorrente também são assinados
O nome do dispositivo e os três números de concorrente são escritos no cabeçalho do registo e fazem parte da assinatura. Alterar qualquer um deles num registo guardado, nem que seja um carácter, faz falhar a verificação. Para voar com outro nome ou número, altere-os nas definições antes do voo.

A assinatura abrange todo o ficheiro, incluindo o cabeçalho com o número de série do dispositivo, as definições usadas, o nome do dispositivo e os três números de concorrente. Nenhum destes dados pode ser trocado ou alterado depois do voo sem que a verificação do registo falhe.

  • Os registos ACLZ têm duas assinaturas: uma sobre o registo completo antes da compressão e outra sobre o CSV em que se expande. Assim, um CSV que o Altimeter Cloud reconstrói a partir de um registo ACLZ pode continuar a ser verificado.
  • Os registos CSV são assinados sobre todo o ficheiro.
  • As páginas de informação do voo são assinadas da mesma forma que o registo ao lado.
  • Os registos recuperados, reconstruídos após uma falha de alimentação, são assinados como quaisquer outros, por isso podem continuar a ser comprovados como autênticos. Consulte Recuperação de registos.

Abrir um CSV numa folha de cálculo e guardá-lo basta para quebrar a assinatura, por isso carregue sempre o ficheiro original do Nano. Consulte Verificação de registos de voo para saber como verificar um registo.

Firmware encriptado (AES-256)

O firmware do Nano está guardado no chip encriptado com AES-256, a mesma norma que governos e bancos usam para proteger informação sensível. O Nano só executa firmware corretamente encriptado, por isso não é possível carregar um programa modificado ou não oficial, e o firmware não pode ser lido do chip de forma utilizável.

Isto protege o nosso trabalho de ser copiado, mas, mais importante para si, protege a chave privada de assinatura. A chave está selada dentro do firmware encriptado, nunca aparece na unidade USB nem num registo, e não pode ser extraída do dispositivo para falsificar registos. O Nano também não tem ligação sem fios: o WiFi está permanentemente desativado e o firmware só pode ser instalado por USB com a nossa ferramenta de atualização.

O AES-256 não pode ser quebrado por força bruta. Uma chave de 256 bits tem cerca de 1,2 seguido de 77 zeros valores possíveis. Mesmo que todos os computadores do planeta trabalhassem juntos a testar milhares de milhões de chaves por segundo, levariam muitíssimo mais do que a idade do universo a percorrer uma fração significativa delas, e não se conhece nenhum atalho.

Porque é que os dois juntos o tornam fiável

A força da assinatura do registo assenta no facto de a chave privada permanecer no dispositivo, e é exatamente isso que a encriptação do firmware garante. Como o Nano se recusa a executar firmware não encriptado, não há forma de carregar um programa modificado que possa divulgar a chave ou assinar dados falsos. A encriptação mantém a chave privada fora de alcance, e a assinatura usa-a para garantir cada registo, enquanto a metade pública, que é tudo o que é preciso para verificar um registo, pode ser partilhada livremente.

Tanto o AES-256 como o Ed25519 são normas abertas e publicadas, estudadas a fundo e usadas para proteger a banca online, o tráfego web e o acesso por secure shell. Combinado com uma chave privada inacessível, isto faz de um registo de voo do Nano algo em que se pode confiar, quer esteja a tentar bater um recorde pessoal quer a submeter um resultado oficial de competição.

Registos de firmware anterior a 1.52

O firmware anterior assinava os registos com HMAC SHA-256 em vez de Ed25519, misturando uma chave secreta partilhada entre o Nano e os nossos servidores na mesma impressão digital de todo o ficheiro. Evidencia a adulteração exatamente da mesma forma, e o Altimeter Cloud continua a verificar estes registos automaticamente, por isso nada do que já gravou é afetado.

A passagem para Ed25519 na versão 1.52 manteve isso e acrescentou duas coisas: a chave de assinatura no dispositivo passou a ser privada, com os nossos servidores a guardar apenas a metade pública, e um registo pode ser verificado de forma independente por qualquer pessoa com a chave pública.