FAQ Criptografia

Qual o período recomendado para a troca das chaves simétricas? Os chips de criptografia embedded fazem essa troca?
Resposta: O período de troca da chave simétrica pode ocorrer a cada nova abertura de comunicação, esse seria o melhor modo de se implementar um canal seguro. O EC508 é capaz de fazer negociação de novas chaves usando ECDH, mas é preciso enviar o comando para isso, não é feito automaticamente.

Quais problemas podemos  encontrar ao criptografar usando C e descriptografar em outra linguagem?
Resposta: Se utiliza o mesmo algoritmo de criptografia standard, portanto, não devem existir problemas de compatibilidade.

Block Chain se adequaria a segurança e privacidade para IoT? É factível? É aplicável?
Resposta: O blockchain é a nomenclatura de verificação de assinatura digital dos dados enviados. Esse nível de segurança é o que vemos para garantir integridade e autenticidade. De acordo com as descrições, não se fala em privacidade já que são documentos públicos .

Uma chave publica é feita a partir da chave privada. É possível ter uma chave pública que não tenha um caminho reverso à chave privada?
Resposta: A chave pública sempre é gerada por uma chave privada, desta forma não tem como uma chave pública não alterada não ter o seu respectivo par privado.

No caso de chips de criptografia com chaves simétricas, o chip faz a troca periodicamente? Qual o período que a chave deve ser trocada?
Resposta: O chip oferece mecanismo para troca de chaves simétricas já que não possui mecanismo interno de criptografia simétrica. Passos:
1 - Gerar novo par de chaves ECC (um ou ambos;
2 – Enviar nova chave pública para o parceiro (um ou ambos);
3 – Gerar o comando ECDH com a nova chave pública do parceiro (ambos);
4 – O resultado do ECDH é a nova chave simétrica (ambos).

ECC e RSA são algoritmos apenas para gerar o par de chaves. Correto?
Além de gerar chaves, eles podem fazer assinatura digital, verificação de assinatura e negociação de novas chaves no caso do ECC, e criptografar e descriptografar dados no RSA.

Como eu sei qual tecnologia eu tenho que utilizar no meu produto? Isso depende do poder computacional do meu produto?
Resposta: Se a segurança for implementada por software, sim, depende do poder computacional. Se for feito por um hardware externo, depende do nível de segurança que você pretende atingir. A pergunta normalmente é ao contrário. Qual nível de segurança eu preciso e depois disso definir o hardware.

Quantas chaves privadas podem ser armazenadas em um Microchip ATECC508a?
Resposta: O ECC508 possui 16 slots que podem armazenar chaves privadas. Oito desses slots são maiores, podendo ser configurado para armazenar chaves públicas e assinatura digital.
Saiba mais sobre o Microchip ATECC508a: http://www.microchip.com/wwwproducts/en/atecc508a

Hash utiliza somente cripto assimétrica?
Resposta: Hash é um algoritmo de “resumo”. A entrada dos mesmos dados sempre gera o mesmo “resumo”, assim consideremos um algoritmo simétrico.

Para usar um chip criptográfico eu devo escrever uma hal (hardware abstract layer), ou já existem implementações prontas?
Resposta: O componente ECC508 utiliza comunicação I2C e a Microchip disponibiliza bibliotecas implementadas para a linha Cortex-M, e em breve também será disponibilizada uma para PIC. É possível utilizar em outros microcontroladores, mas a escrita do HAL para o microcontrolador precisa ser adaptada.
Saiba mais sobre o Microchip ECC508: http://www.microchip.com/design-centers/security-ics/cryptoauthentication/ecc-aws-iot

ECDH é a prova de ataque do tipo "man in the middle"?
Resposta: Sim, uma vez que somente o receptor e o remetente conhecem a chave, pois fizeram uma negociação de chaves usando o ECDH, o receptor não terá como alterar os dados e enviar o dado com a mesma chave criptográfica. A melhor implementação para evitar o “men in the middle” é assinatura digital.

O NIST é o guia oficial (inclusive código fonte) de todas essas criptografias e tecnologias?
Resposta: O NIST (Estados Unidos) é equivalente ao Inmetro no Brasil. No caso de criptografia, ela é responsável por regular que nível de criptografia é recomendado para transações, para evitar fraudes. A NIST faz testes e certifica a segurança dos algoritmos. O código fonte certificado está disponível em algumas implementações opensource como o openSSL e wolfSSL.

O componente Microchip  ATECC508 pode ser utilizado com qualquer linha de uC ? Qual seria o requisito mínimo de uC para a utilização ?
Resposta: Sim, o Microchip ATECC508 pode ser utilizado com qualquer linha de uC, o requisito é que essa linha tenha comunicação I2C ou UART, caso utilize  a interface 1-wire.
Saiba mais sobre o Microchip ATECC508a: http://www.microchip.com/wwwproducts/en/atecc508a