Uma API criptográfica para aplicações embarcadas
Ano de defesa: | 2016 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | , , |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Universidade Tecnológica Federal do Paraná
Curitiba |
Programa de Pós-Graduação: |
Programa de Pós-Graduação em Computação Aplicada
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: | |
Área do conhecimento CNPq: | |
Link de acesso: | http://repositorio.utfpr.edu.br/jspui/handle/1/1813 |
Resumo: | Neste documento, está apresentada a GEmSysC, uma API criptográfica unificada para aplicações embarcadas. Camadas de abstração compatíveis com esta API podem ser construídas sobre bibliotecas existentes, de forma que as funcionalidades criptográficas podem ser acessadas pelo software de alto nível de forma consistente e independente da implementação. As características da API foram definidas com base em boas práticas de construção de APIs, práticas indicadas em software embarcado e também com base em outras bibliotecas e padrões criptográficos existentes. A principal inspiração para este projeto foi o padrão CMSIS-RTOS, que também busca unificar interfaces para software embarcado de forma independente da implementação, mas é voltado a sistemas operacionais, não a funcionalidades criptográficas. A estrutura da GEmSysC é modular, sendo composta de um core genérico e módulos acopláveis, um para cada algoritmo criptográfico. Nesta dissertação, está apresentada a especificação do core e de três módulos: AES, RSA e SHA-256. Ainda que a GEmSysC tenha sido elaborada para utilização em sistemas embarcados, ela também poderia ser utilizada em computadores computacionais, já que, em última instância, sistemas embarcados são sistemas computacionais. Como provas de conceito, foram feitas duas implementações da GEmSysC: uma sobre a biblioteca wolfSSL, que é de código aberto e voltada a sistemas embarcados, e outra sobre a OpenSSL, que é amplamente utilizada e de código aberto, mas não é voltada especificamente a sistemas embarcados. A primeira implementação foi testada em um processador Cortex-M3 sem sistema operacional, enquanto a segunda foi testada em um PC com sistema operacional Windows 10. Mostrou-se que a GEmSysC é, sob alguns aspectos, mais simples que outras bibliotecas. Mostrou-se também que o overhead da camada de abstração é pequeno, ficando entre pouco mais de 0% e 0,17% na implementação voltada a sistemas embarcados e entre 0,03% e 1,40% na implementação para PC. Apresentaram-se ainda os valores dos custos de memória de programa e de RAM de cada uma das implementações. |