Tecnologia e Stack
Lista de tecnologias, ferramentas e componentes de software e hardware utilizados no seu Cuvex 1.0
Nós compilamos informações com todo luxo de detalhes, mergulhando nos principais aspectos que compõem este dispositivo disruptivo: características principais dos componentes, detalhes sobre os fluxos de software e notas importantes da segurança implementada.
​
Com o objetivo de oferecer total transparência na implementação da solução, incluímos o identificador do fabricante dos componentes de hardware, isso vai permitir que você faça sua própria pesquisa de cada um deles.
​
Na imagem a seguir, podemos observar o diagrama de alto nível que reúne os principais componentes de Hardware e Software, bem como os componentes externos e atores que formam o sistema.
![Component_diagram_cuvex.png](https://static.wixstatic.com/media/20363d_1c2dd19f77884e4f8c16e0d061fdcbf1~mv2.png/v1/crop/x_2,y_22,w_631,h_774/fill/w_339,h_416,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/Component_diagram_cuvex.png)
O coração do sistema
Modelo da série STM32 da STMicroelectronics, o STM32U585.
![micro.png](https://static.wixstatic.com/media/20363d_28fc59ebd3b4487291938f00bc3542da~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/micro.png)
Este microcontrolador é baseado na arquitetura ARM Cortex-M, com um design específico para atender aos mais altos padrões de segurança e focado em satisfazer as necessidades das indústrias de defesa e aeroespacial. Oferece um desempenho eficiente e um consumo de energia mínimo, entre suas principais características encontramos:
-
2 unidades de coprocessador AES.
-
Alta resistência a técnicas de Análise de Potência Diferencial.
-
Acelerador de hardware HASH.
-
Interfaces de entrada, saída e memória asseguradas (Arm® TrustZone®).
-
Caminho de confiança graças à entrada de boot única e à área de proteção oculta segura (HDP).
-
Instalação segura de firmware (SFI) com os serviços seguros de raiz integrados (RSS).
-
Armazenamento seguro de dados com chave única de hardware (HUK).
Em resumo, este componente de uso militar foi implantado no seu Cuvex para oferecer as maiores capacidades do mercado em criptografia e segurança da informação. Isso dota o seu dispositivo com a capacidade de ciframento em frio e um gerenciamento de dados altamente seguro.
Desenhado para não guardar dados no dispositivo
Memória protegida em sua totalidade
![Memory_cuvex.png](https://static.wixstatic.com/media/20363d_69f3f76a5898433ea2cedfeafd7f2ab4~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Memory_cuvex.png)
O Cuvex foi projetado para nunca armazenar dados na memória do dispositivo. Seu segredo mais precioso apenas passa pelo dispositivo temporariamente para ser processado e convertido em um criptograma que, em seguida, será enviado a um cartão via NFC. Assim que termina de realizar qualquer processo, a memória é liberada e, da mesma forma, ao cortar a alimentação ou ao iniciar o dispositivo, é feito um reset de toda a memória.
Com o modo TrustZone habilitado, baseado na segurança de marcas d'água não voláteis, segurança por controle de acesso e ocultação de proteção HDP, a memória está totalmente protegida. Além disso, para a proteção de leitura, foi estabelecido o nível RDP 2 definido pelo próprio fabricante.
​
Isso implica que as funções de depuração, o boot em RAM e a seleção do gerenciador de boot estão desabilitadas, isso é irreversível e faz com que o dispositivo não possa ser desbloqueado ou manipulado, com isso o hardware não pode ser reutilizado para outra finalidade e tudo que está na memória é inacessível para qualquer intruso.
​
Em resumo, nunca se armazenam dados em memória não volátil, a memória volátil está protegida, de modo que é impossível acessar seu conteúdo, que além disso, é cifrado, e é liberado quando qualquer fluxo é completado ou se corta/inicia a alimentação. Adicionado a isso, o dispositivo está bloqueado o que impede qualquer tipo de manipulação.
Incorporação de componentes seguros
Modelo da ST, o STM32WB5MMG
![bluetooth.png](https://static.wixstatic.com/media/20363d_f66d1a6d686e4b76bf2f64b4425818ec~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/bluetooth.png)
Seguindo a mesma linha de incorporar os componentes mais seguros disponíveis no mercado, para o módulo de comunicações por Bluetooth, escolhemos o modelo da ST, o STM32WB5MMG, entre suas características de segurança destacadas encontramos:
-
Serviços de administração de chaves/armazenamento de chaves do cliente, PKA, AES de 256 bits, TRNG, PCROP, CRC, UID de 96 bits.
-
Possibilidade de derivar 802.15.4 e Bluetooth® Low Energy de 48 bits UEI
-
Bluetooth® Low Energy 5.4, Zigbee® 3.0 com certificação OpenThread
A nível operacional, este módulo apenas se ativa para o processo de atualização de firmware do Cuvex, garantindo assim que não está disponível em nenhum outro processo, de fato, o próprio dispositivo verifica antes de iniciar um processo e, se encontrar o módulo ligado, aborta a ação.
​
O cliente também pode verificar a atividade do módulo. Com uma luz azul visível na frente do CASE que simboliza quando o Bluetooth está disponível, o usuário sempre está ciente do estado do BL. Este LED faz parte do módulo de Bluetooth e acende quando alimentado, o que impede que seja alterado para dar falsos negativos.
​
Quanto ao emparelhamento, foi definido um protocolo específico para as comunicações de pacotes com o App Cuvex e utiliza-se o modo de conexão segura LE Secure rejeitando Legacy Pairing por seu potencial de insegurança.
Para o método de troca de chave de link, a opção "Just Works" é rejeitada e é estabelecido como requisito uma proteção MITM, baseada em um PIN entrópico e forçando a exclusão das chaves trocadas uma vez finalizada a conexão.
​
Quanto à potência do sinal, foi estabelecido um alcance inferior a um metro de distância, isso mitiga qualquer tentativa de acesso remoto ao dispositivo. Por último, embora este módulo ofereça um sistema seguro de instalação de Firmware (SFI), esta opção está desabilitada de fábrica, bloqueando assim a porta a qualquer potencial risco de segurança.
Módulo para processos "criptografar, descriptografar e clonar"
Transdutor RFID CR95HF
![Memoria_nfc.png](https://static.wixstatic.com/media/20363d_e4eca27b86f147688f9a2f107d571cf9~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Memoria_nfc.png)
Para a leitura e escrita de cartões NFC, optou-se pelo transdutor RFID CR95HF (parte da família ST25), projetado especialmente para soluções sem contato da indústria de meios de pagamento. Esse componente gerencia a codificação e decodificação de frames para aplicações de comunicação de campo próximo (NFC), possibilitando a detecção, leitura e escrita de etiquetas NFC Forum Tipo 1, 2, 3 e 4.
​
O módulo NFC só é ativado na etapa final dos processos de “Criptografar” e “Clonar”, uma vez que o criptograma está dentro do elemento seguro da memória preparado para ser escrito em uma TAG NFC CUVEX, ou no início do processo “Descriptografar” quando se quer ler o conteúdo de uma TAG. Tudo isso é gerenciado pelo próprio microcontrolador e trabalha em consonância com os elementos de segurança da memória descritos anteriormente.
​
Vale ressaltar que o conteúdo que viaja entre o controlador NFC e o microcontrolador (ou vice-versa) é sempre criptografado, pois se trata do criptograma gerado em qualquer uma das funções oferecidas pelo dispositivo Cuvex. Dessa forma, não existe em nenhum caso, risco de acesso a dados sensíveis.
Duas versões TAG-NFC
MIFARE DESFIRE EV1 8K e outra NTAG216 888 Bytes
![NFC_TAG.png](https://static.wixstatic.com/media/20363d_828ceb8c3e6c4055bbcf163e79ea3a29~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/NFC_TAG.png)
Os cartões Cuvex na qual armazena seus criptogramas, carregam consigo duas versões de TAG NFC, uma é do tipo MIFARE DESFIRE EV1 8K e outra NTAG216 888 Bytes. São cartões NFC passivos, portanto, não possuem uma bateria ou fonte de alimentação interna, é o transdutor RFID que fornece a energia necessária para ativar o cartão. Isso acontece a distâncias muito curtas (na escala dos milímetros), impedindo que outros dispositivos fora do alcance sejam capazes de interagir com a TAG.
​
No cartão, é armazenada uma série de metadados necessários para as comunicações com um dispositivo Cuvex, e claro, o criptograma com teu segredo cifrado com AES 256, o que torna os ataques criptográficos inoperantes.
​
A durabilidade dos cartões Cuvex é reforçada por vários fatores: a resistência física do material utilizado, a qualidade da impressão, a forma de armazenamento e o manuseio no ambiente real de uso. Tudo isso nos oferece uma vida útil em torno dos 10 anos, ou 15.000 ciclos, permitindo assim um tempo consideravelmente bom para um elemento de backup vs seu custo.
​
Em qualquer caso, o App se encarregará de te lembrar o tempo que resta ao teu cartão, para que, seguindo as boas práticas, vás renovando as cópias periodicamente.
​
Para favorecer a saúde dos dados armazenados, é recomendável usar uma Gaiola de Faraday para o armazenamento dos cartões NFC, isso previne interferência eletromagnética, indução de corrente ou perturbações de energia elétrica, seja por fenômenos naturais como tempestades solares, ou tentativas maliciosas de terceiros.
Interface principal de comunicação
Controlador tátil capacitivo FT5446DQS
![Screen_EN_cuvex.png](https://static.wixstatic.com/media/20363d_35b094b079b841f996a9fedf6c74cc63~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Screen_EN_cuvex.png)
A tela é a principal interface de comunicação com o cliente e por isso escolhemos o controlador tátil capacitivo FT5446DQS. Trata-se de um único chip com unidade de microcontrolador (MCU) melhorada embutida.
​
Oferece os benefícios da tecnologia de varredura de modo comum em tela cheia, tempo de resposta rápido e alto nível de precisão.
​
A tela possui um tamanho de 4 polegadas para proporcionar conforto ao cliente, uma UIX intuitiva, baseada em telas de fácil manuseio e um teclado alfanumérico com uma distribuição popular em dispositivos móveis, permitindo assim que o cliente se sinta familiarizado com a interface desde o primeiro momento.
​
Na nossa primeira versão do Firmware, a captura de dados está aberta a texto plano ou a sementes sob o padrão BIP39, de modo que o preenchimento automático e validação do dicionário favorecem a tranquilidade do cliente no momento de introduzir suas palavras. Em muito pouco tempo, serão publicadas atualizações de dicionários para Monero e Shamir.
Assim como acontece com qualquer outro componente do sistema, no momento de cortar a alimentação, a tela se apaga e tudo que está na memória é resetado com o objetivo de que não possa ser recuperado por intrusos.
Código 100% verificável.
Firmware update via the Cuvex mobile app
![Firmware.png](https://static.wixstatic.com/media/20363d_cb575b4fdb4c4ba588bf9dc0dd95eb14~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Firmware.png)
Trata-se do mestre de cerimônias, o que orquestra as funcionalidades expostas para os clientes. Desde o manuseio de cartões até os processos de cifrar, decifrar e clonar, todos esses fluxos são definidos e realizados a partir das linhas de código do Firmware que dão as instruções adequadas a cada um dos componentes antes descritos.
Não se preocupe, aqui não está definido o algoritmo que cifra seu segredo, como já dissemos, isso é feito em frio e baseado em hardware. O que o firmware faz, é utilizar as APIs do microcontrolador para executar as funções de criptografia expostas pelo microcontrolador e seguir a sequência de passos lógicos para: pegar o dado de entrada desde a tela, convertê-lo em um criptograma (utilizando seu potente STM32U585) e enviá-lo para seu cartão NFC via o transdutor NFC/RFID CR95HF.
Se com esta explicação você ficou com fome, você é um verdadeiro custodiante. Para que verifique por si mesmo o que dizemos, encontrará neste link todo o código fonte do Firmware. Nosso código é 100% verificável, visível, editável e você pode compilá-lo você mesmo. Também adicionamos um pouco mais de informação deste processo na seção "Criptografia" deste documento.
A atualização do Firmware é feita por meio do App móvel Cuvex, utilizando o canal Bluetooth antes descrito. Desse modo, seu celular faz de "Firewall", abstraindo tudo o que tem a ver com o download da atualização da internet. Em síntese, o App notificará quando houver uma nova atualização, esta será baixada no elemento seguro do seu celular, para que, uma vez emparelhado por Bluetooth, o binário seja enviado de forma segura para seu Cuvex.
​
Cabe destacar que antes da escrita do Firmware no dispositivo, é feita uma validação da integridade e autenticidade do software baseada em uma assinatura digital, isso permite assegurar que nenhum outro software e/ou alteração do mesmo seja capaz de executar no seu Cuvex. No momento em que o dispositivo detecta a anomalia, este procede a reiniciar e voltar ao modo de fábrica, solicitando novamente a instalação de um binário válido.
O Papel Chave do Bootloader
Ele age como um porteiro
![Bootloader_cuvex3.png](https://static.wixstatic.com/media/20363d_00e42afacc2c4866b9e1139e95ae71a9~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/Bootloader_cuvex3.png)
Se o Firmware é o pianista, o Bootloader é o afinador do piano. Esse Software se encarrega de preparar os elementos básicos para que o Firmware possa operar, assegurando a integridade do hardware e prevenindo a instalação de qualquer tipo de software desconhecido.
​
Uma das suas principais características é que é o único capaz de manusear o controlador de Bluetooth. Com isso, nenhum processo de software fora do Bootloader pode alimentar e/ou utilizar o módulo Bluetooth.
​
Ao apenas iniciar, verifica se existe uma instância do Firmware válida, se não houver, apaga completamente a partição de memória destinada ao Firmware App e ativa o modo atualização, acende o módulo Bluetooth e fica em loop à espera de escrita de um novo Firmware na memória dedicada para isso.
​
Da mesma forma, se o usuário executa a função atualizar, o Firmware instalado apaga a assinatura verificada e isso provoca a limpeza automática de toda a memória onde se aloja a própria instância do Firmware, forçando o dispositivo a operar novamente com o Bootloader.
​
Outra das suas funções é a de validar a assinatura digital do software antes de proceder com sua execução, isso é feito por meio da função criptográfica RSA exposta pelo microcontrolador. Se foi alterado o conteúdo do software a instalar, e/ou não foi assinado com a chave privada da Cuvex, o Bootloader apagará o binário e retornará ao estado inicial de fábrica, à espera de uma atualização de Firmware.
Em resumo, podemos dizer que o Bootloader age como um software de recuperação de fábrica que só permite atualizações para Firmware assinado pela Cuvex e isola o acesso ao canal de comunicação Bluetooth.
![](https://static.wixstatic.com/media/20363d_adf38ca624b74338bbd06230c85f05ec~mv2.png/v1/crop/x_0,y_4,w_875,h_838/fill/w_116,h_111,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/20363d_adf38ca624b74338bbd06230c85f05ec~mv2.png)
Processo de Atualização
de Firmware - Diagrama
de Atividades.
Política de conhecimento zero.
Totalmente desenvolvida com código-fonte nativo.
![app_cevex.png](https://static.wixstatic.com/media/20363d_b6bb75ea219e4581bde702890d3bd42d~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/app_cevex.png)
Construída sob uma política de conhecimento zero e projetada de acordo com os mais altos padrões de segurança da informação, o app Cuvex oferece uma série de funções complementares para os proprietários de um dispositivo Cuvex e qualquer pessoa que esteja procurando migrar para uma verdadeira autoguarda soberana.
​
Uma das principais funções deste aplicativo é fornecer ao dispositivo Cuvex as últimas atualizações de Firmware, intermediando entre os serviços de download e o dispositivo de criptografia fria. Podemos dizer que desempenha um papel de Firewall, garantindo a comunicação com os serviços oficiais de fábrica e enviando o arquivo binário através de um canal BL alternativo com criptografia P2P. Isso garante que seu Cuvex nunca esteja exposto à internet e que as conversas sejam feitas de forma segura com o aplicativo oficial publicado nas lojas das plataformas.
​
Está totalmente desenvolvido com código-fonte nativo, apoiado nos frameworks das plataformas iOS/Android e seguindo as melhores práticas de segurança. Entre os controles implementados, temos a detecção das funções de comunicação BL/WiFi ou a existência de um cartão SIM no dispositivo. Esses controles são ativados em processos-chave que bloqueiam o progresso por não cumprimento de requisitos.
Estas são suas outras funções:
Criação de Wallet BTC: Permite que você mesmo gere a entropia da sua seed phrase por meio do processo de Dados e Moeda para as primeiras 23 palavras. Além disso, calcula a palavra 24 e gera as chaves pública/privada. O resultado é uma wallet que não foi gerada por um software de terceiros e sem nenhum tipo de dependência (liberdade real). Não precisa de mais nada, com isso você tem tudo para começar a guardar seus Satoshis. Não se esqueça de cifrar sua seed phrase e chaves com seu Cuvex.
​
Verificação de saldo de Wallets: É um serviço disruptivo que enviará notificações em tempo real de qualquer alteração na blockchain relacionada às suas carteiras, um verdadeiro guardião dos seus criptoativos. O melhor de tudo é que você só precisa registrar a chave pública (Xpub) da sua Wallet. Além disso, seguindo a política de conhecimento zero, torna-se impossível estabelecer uma conexão entre os usuários e as chaves públicas (na verdade, não temos nenhum dado dos usuários do nosso aplicativo, hehehe).
​
Manejo de cartões Cuvex: São serviços de apoio para a administração dos cartões em que você armazena seus segredos. Com o aplicativo, você pode associar informações de identificação em vez de ter que etiquetar fisicamente seus cartões, evitando assim uma má prática de segurança. Também oferece tarefas programadas de lembrete para zelar pela consistência do criptograma e pelo tempo de vida útil.
​
Comunicações TOR: O aplicativo conta com seu próprio cliente de conexão à rede TOR para garantir uma privacidade integral nas chamadas expostas ao exterior. Isso fortalece processos como a verificação de saldo e o serviço de Alertas de Saldo.
A robustez do AES256
Reconhecimento em nível mundial, adotado por entidades militares e governamentais.
![AES256_cuvex.png](https://static.wixstatic.com/media/20363d_3eab6999da62457282f7622c33032622~mv2.png/v1/fill/w_336,h_295,al_c,q_85,enc_auto/AES256_cuvex.png)
Os fluxos de criptografia e descriptografia disponibilizados aos usuários utilizam o algoritmo de criptografia simétrica AES 256 GCM, o padrão de criptografia com maior reconhecimento mundial, adotado pela grande maioria das entidades militares e governamentais. O AES foi submetido a um amplo escrutínio e análise criptográfica desde sua adoção como padrão no ano de 2001, e desde então, a consistência e robustez que oferece foram constantemente revalidadas. De fato, mesmo com os futuros computadores quânticos, não se alcançaria a vantagem quântica desejada para quebrar sua segurança através de cálculos de força bruta.
​
No seu Cuvex, este algoritmo está implementado no próprio hardware. Para isso, o microcontrolador possui unidades de potência específicas de AES, o que não só proporciona um processamento acelerado dos cálculos, mas também abstrai o software de participar desses cálculos.
![](https://static.wixstatic.com/media/20363d_c28474749d3b4a0b9f919189aa8d16c8~mv2.png/v1/crop/x_0,y_0,w_701,h_816/fill/w_97,h_112,al_c,q_85,usm_0.66_1.00_0.01,blur_2,enc_auto/20363d_c28474749d3b4a0b9f919189aa8d16c8~mv2.png)
Processo de Criptografia - Diagrama de Atividades
Quanto à assinatura digital do Firmware, optou-se pelo algoritmo assimétrico RSA. Novamente, a implementação é feita em hardware, capaz de gerenciar o par de chaves para a validação da assinatura digital e funções de CRC e HASH para impressão digital. Com a Chave Privada, os serviços da Cuvex assinam o binário que é instalado no dispositivo. Com a chave pública, o próprio dispositivo é capaz de verificar a autoria do software. Além disso, por meio do SHA256, verifica-se a integridade do software.
​
Não é demais te contar que estamos cientes de que o RSA, assim como qualquer outro padrão de criptografia assimétrica, tem seus dias contados, com a chegada da computação quântica demonstrou-se que o trabalho de força bruta se reduz de forma exponencial ao tentar encontrar a chave privada a partir da pública. Como sabemos que a era quântica está a menos de 10 anos de distância, em nosso backlog já está incluída a implementação do algoritmo Crystal Dilithium, projetado para a era pós-quântica.
​
Outra característica interessante a destacar é a capacidade de gerar dados aleatórios. O microcontrolador possui seu próprio gerador denominado RNG (True Random Number Generator) que fornece saídas totalmente entrópicas a partir de uma fonte analógica, está em conformidade com o NIST SP 800-90B como fonte válida de entropia e, portanto, pode ser usado como gerador não determinístico de bits aleatórios.
​
Isso tem especial relevância para processos como o de emparelhamento Bluetooth, onde o processo de PassKey entry se baseia na geração de um PIN pelo dispositivo Cuvex que, por ser verdadeiramente entrópico, impossibilita ataques baseados em dicionários e/ou força bruta.