1) O documento discute números muito grandes e suas aplicações em criptografia. 2) Explica o problema de segurança no boot de sistemas embarcados e como a criptografia pode resolver isso de forma segura. 3) Detalha os passos do processo de boot seguro, incluindo verificação de integridade, assinatura digital, configuração flexível e opção de criptografia.
Arduino genius com display lcd 16x2 usando i2 cThiago Pereira
Este documento descreve um projeto Arduino para implementar o jogo Simon Says usando um display LCD 16x2 conectado via I2C. O projeto usa um Arduino Uno com LEDs, botões e um display LCD para mostrar os resultados do jogo em que os participantes precisam repetir sequências de cores mostradas.
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Bruno Castelucci
-> Introdução - aceleração de hardware para OpenSSL em sistemas embarcados.
1) Sistema embarcados.
2) Aceleradores de hardware
3) SSL - OpenSSL
4) Linux
5) Acelerando
6) IPSec, DPI e segurança sistemica
7) Conclusões
8) Referências
A) Referência de chamadas de código para cifrador AES.
O documento discute técnicas de invasão e defesa de sistemas computacionais. Apresenta ferramentas como nmap, nessus e metasploit que podem ser usadas para invasão e também técnicas de defesa como firewalls e sistemas de detecção de intrusão.
A maioria dos informáticos, incluíndo os que trabalham em segurança, tem apenas noções básicas sobre criptografia assimétrica. A maioria de nós sabe utilizar os vários algoritmos, embora desconheça como operam. Nesta talk pretendo falar um pouco mais em detalhe sobre estes algoritmos, em particular o RSA. Irei falar sobre aplicações práticas de criptografia assimétrica (desde o SSL, passando pela Playstation 3 até ao Cartão do Cidadão), limitações dos algoritmos, ataques aos mesmos e falhas de implementação recentemente conhecidas. O objectivo principal desta talk é desmistificar esta "vaca sagrada" que é a criptografia assimétrica, demonstrando que não é uma panaceia: também tem falhas e limitações.
TDC2016SP - Programando PHP com mais segurança!tdc-globalcode
O documento discute técnicas para aumentar a segurança no desenvolvimento PHP, incluindo configurações do arquivo php.ini para limitar riscos, uso de criptografia forte como password_hash() para senhas, filtros de dados para prevenir XSS e outros ataques.
Pretendo apresentar o que a Zend solicita na certificação sobre segurança de aplicações PHP, iremos gerar juntos algumas simples invasões em um pequeno sistema e pretende com o exemplo explicar como podemos nos defender com alguma técnicas que serão ensinadas e que são pedidas na prova da Zend.
Este documento fornece instruções para instalação do sistema operacional Linaro Ubuntu na placa Gumstix Overo Fire COM, configuração de conexão sem fio e atualização do sistema. Inicialmente, os arquivos do sistema Linaro e ferramentas são baixados e um cartão microSD é preparado para inicializar a placa. Em seguida, demonstra-se como configurar uma rede sem fio com criptografia WPA ou uma rede Ad-Hoc e verificar a conexão. Por fim, informa como atualizar o sistema e pacotes.
O documento discute programação segura, apresentando exemplos de como diferentes perfis enxergam um código, falhas famosas causadas por bugs e como técnicas como verificação de tamanho de strings, mensagens padronizadas, CRC e confirmação de recebimento melhoram a segurança da comunicação serial entre um microcontrolador e um aplicativo.
Arduino genius com display lcd 16x2 usando i2 cThiago Pereira
Este documento descreve um projeto Arduino para implementar o jogo Simon Says usando um display LCD 16x2 conectado via I2C. O projeto usa um Arduino Uno com LEDs, botões e um display LCD para mostrar os resultados do jogo em que os participantes precisam repetir sequências de cores mostradas.
Aceleração em Hardware para OpenSSL em Sistemas Embarcados: Introdução e conc...Bruno Castelucci
-> Introdução - aceleração de hardware para OpenSSL em sistemas embarcados.
1) Sistema embarcados.
2) Aceleradores de hardware
3) SSL - OpenSSL
4) Linux
5) Acelerando
6) IPSec, DPI e segurança sistemica
7) Conclusões
8) Referências
A) Referência de chamadas de código para cifrador AES.
O documento discute técnicas de invasão e defesa de sistemas computacionais. Apresenta ferramentas como nmap, nessus e metasploit que podem ser usadas para invasão e também técnicas de defesa como firewalls e sistemas de detecção de intrusão.
A maioria dos informáticos, incluíndo os que trabalham em segurança, tem apenas noções básicas sobre criptografia assimétrica. A maioria de nós sabe utilizar os vários algoritmos, embora desconheça como operam. Nesta talk pretendo falar um pouco mais em detalhe sobre estes algoritmos, em particular o RSA. Irei falar sobre aplicações práticas de criptografia assimétrica (desde o SSL, passando pela Playstation 3 até ao Cartão do Cidadão), limitações dos algoritmos, ataques aos mesmos e falhas de implementação recentemente conhecidas. O objectivo principal desta talk é desmistificar esta "vaca sagrada" que é a criptografia assimétrica, demonstrando que não é uma panaceia: também tem falhas e limitações.
TDC2016SP - Programando PHP com mais segurança!tdc-globalcode
O documento discute técnicas para aumentar a segurança no desenvolvimento PHP, incluindo configurações do arquivo php.ini para limitar riscos, uso de criptografia forte como password_hash() para senhas, filtros de dados para prevenir XSS e outros ataques.
Pretendo apresentar o que a Zend solicita na certificação sobre segurança de aplicações PHP, iremos gerar juntos algumas simples invasões em um pequeno sistema e pretende com o exemplo explicar como podemos nos defender com alguma técnicas que serão ensinadas e que são pedidas na prova da Zend.
Este documento fornece instruções para instalação do sistema operacional Linaro Ubuntu na placa Gumstix Overo Fire COM, configuração de conexão sem fio e atualização do sistema. Inicialmente, os arquivos do sistema Linaro e ferramentas são baixados e um cartão microSD é preparado para inicializar a placa. Em seguida, demonstra-se como configurar uma rede sem fio com criptografia WPA ou uma rede Ad-Hoc e verificar a conexão. Por fim, informa como atualizar o sistema e pacotes.
O documento discute programação segura, apresentando exemplos de como diferentes perfis enxergam um código, falhas famosas causadas por bugs e como técnicas como verificação de tamanho de strings, mensagens padronizadas, CRC e confirmação de recebimento melhoram a segurança da comunicação serial entre um microcontrolador e um aplicativo.
1) OpenSSL é um framework de segurança derivado do trabalho de Eric A. Young e Tim J. Hudson em 1995
2) Aborda criptografia simétrica (como AES, 3DES) e assimétrica (como RSA, DSA), assim como funções hash (MD5, SHA1)
3) Fornece exemplos de comandos OpenSSL para gerar chaves, criptografar/descriptografar arquivos e gerar hashes
O documento apresenta uma introdução à visão computacional e à biblioteca OpenCV. Resume os principais tópicos abordados: 1) Apresentação do palestrante; 2) Instalação e uso básico da OpenCV em Python; 3) Exemplos iniciais de detecção de bordas e conversão para escala de cinza usando a biblioteca.
Como recuperar senhas WEP de redes wireless com BacktrackNatanael Simões
Este documento fornece instruções em 7 passos para recuperar a senha WEP de uma rede wireless usando o Backtrack. Os passos incluem identificar a interface wireless, falsificar o endereço MAC, identificar a rede alvo, capturar pacotes usando airodump-ng, associar à rede com aireplay-ng, capturar mais pacotes com aireplay-ng, e usar aircrack-ng para recuperar a senha WEP. O processo pode levar de 5 a 20 minutos dependendo do hardware.
O documento discute conceitos fundamentais de criptografia, incluindo termos como mensagem original, cifrar, decifrar, algoritmos de criptografia, chave, tamanho da chave, criptoanálise, força bruta. Também discute os tipos de criptografia simétrica e assimétrica, algoritmos como DES, RSA e hash. Explica termos como assinatura digital, certificado digital e sua aplicação na ICP-Brasil.
A empresa 4Linux é uma pioneira no ensino de Linux no Brasil, com mais de 30.000 alunos satisfeitos. Ela oferece treinamento em missões críticas de tecnologia da informação e é parceira de treinamento da IBM, tendo recebido reconhecimento internacional por sua inovação em cursos como Hackerteen e Boteconet.
[TDC2019] Inteligência Artificial e Testes in a NutshellJúlio de Lima
O documento discute como a inteligência artificial pode ser aplicada para melhorar os testes de software, incluindo a geração automática de testes, identificação de testes problemáticos e reconhecimento de elementos de interface do usuário. Também explora como a análise de dados de teste usando clustering pode ajudar a identificar falhas no desempenho do sistema.
O documento discute criptografia simétrica AES, seus modos de operação (ECB, CBC, CTR) e como implementá-la corretamente. Também aborda ataques comuns como timing attacks e side-channel attacks, além de exemplos de mau uso de criptografia que podem comprometer a segurança.
O documento discute as opções para plataformas de desenvolvimento após o Arduino, mencionando o Raspberry Pi, BeagleBone Black, Intel Edison e outras. Também aborda softwares de design eletrônico como KiCad e Eagle para projetar circuitos impressos. Por fim, fornece dicas sobre onde pedir ajuda para projetos eletrônicos.
A palestra comenta desde problemas básicos a avançados discutindo conceitos de informação e segurança da informação para identificar pessoas envolvidas na tarefa de segurança de um sistemas Web, Também descreve como podemos evitar com que sistemas PHPs sejam invadidos e estejam sempre disponíveis para atender a usuários humanos.
[1] O documento discute as opções para microcontroladores além do Arduino, incluindo modelos como Intel Edison, Intel Galileo, ESP8266 e ferramentas de desenho como KiCad e Eagle. [2] Também aborda shields, licenças open source e onde encontrar ajuda para projetos eletrônicos. [3] O objetivo é mostrar que existem vida e alternativas para projetos embarcados além do Arduino.
Este documento apresenta as informações sobre o Desafio Forense ICCyber 2012, incluindo ferramentas digitais como Sleuthkit, Volatility e Wireshark que podem ser úteis para resolver o desafio. O objetivo é descobrir uma frase final respondendo às etapas do desafio.
O documento descreve um script para clonar imagens de HD contendo o sistema operacional Windows 7 para vários HDs conectados a um computador rodando OpenSUSE Linux. O script guia o usuário a conectar os HDs, rodar a clonagem para os dispositivos selecionados, e expandir o tamanho das partições clonadas para usar todo o espaço disponível nos HDs.
Ethical hacking: Conceitos básicos de Testes de penetraçãoCleórbete Santos
Apresentação utilizada no minicurso que ministrei durante o II Fórum Tocantinense de Tecnologia da Informação do mestrado em Modelagem computacional da Universidade Federal do Tocantins, que aconteceu no dia 20 de novembro de 2014 em Palmas-TO.
O documento apresenta uma introdução à arquitetura de microcontroladores da família Microchip PIC, descrevendo as diferenças entre microprocessadores e microcontroladores, as principais arquiteturas PIC16, PIC18 e PIC32, e elementos como memória, registradores e contadores de programa. Também aborda tópicos como escolha do microcontrolador correto, placas de desenvolvimento e a ferramenta MPLABX IDE.
O documento discute segurança em redes sem fio, especificamente Wi-Fi. Aborda conceitos como ESSID, BSSID, canais, criptografia WEP e WPA/WPA2. Demonstra como ferramentas como aircrack podem ser usadas para capturar tráfego Wi-Fi desprotegido e recuperar senhas. Recomenda medidas básicas de segurança como usar WPA-PSK com senha forte e ocultar o SSID.
Este documento apresenta os principais conceitos e algoritmos relacionados à segurança de TI, incluindo criptografia, checksums e pesquisa de strings. O documento discute algoritmos como criptografia por matrizes, paridade, Luhn e Boyer-Moore, explicando seus conceitos, funcionamento e complexidade. O objetivo é proporcionar aos estudantes contato com técnicas avançadas de segurança utilizadas em redes e sistemas.
O documento apresenta a arquitetura de memória do PostgreSQL, discutindo como os dados são alocados e armazenados na memória e como a memória é dividida e configurada entre os subsistemas. É apresentada a hierarquia de memória do sistema e como os dados são carregados da memória secundária para a memória principal.
AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...Consultoria Acadêmica
A interação face a face acontece em um contexto de copresença: os participantes estão imediatamente
presentes e partilham um mesmo espaço e tempo. As interações face a face têm um caráter dialógico, no
sentido de que implicam ida e volta no fluxo de informação e comunicação. Além disso, os participantes
podem empregar uma multiplicidade de deixas simbólicas para transmitir mensagens, como sorrisos,
franzimento de sobrancelhas e mudanças na entonação da voz. Esse tipo de interação permite que os
participantes comparem a mensagem que foi passada com as várias deixas simbólicas para melhorar a
compreensão da mensagem.
Fonte: Krieser, Deise Stolf. Estudo Contemporâneo e Transversal - Comunicação Assertiva e Interpessoal.
Indaial, SC: Arqué, 2023.
Considerando as características da interação face a face descritas no texto, analise as seguintes afirmações:
I. A interação face a face ocorre em um contexto de copresença, no qual os participantes compartilham o
mesmo espaço e tempo, o que facilita a comunicação direta e imediata.
II. As interações face a face são predominantemente unidirecionais, com uma única pessoa transmitindo
informações e a outra apenas recebendo, sem um fluxo de comunicação bidirecional.
III. Durante as interações face a face, os participantes podem utilizar uma variedade de sinais simbólicos,
como expressões faciais e mudanças na entonação da voz, para transmitir mensagens e melhorar a
compreensão mútua.
É correto o que se afirma em:
ALTERNATIVAS
I, apenas.
III, apenas.
I e III, apenas.
II e III, apenas.
I, II e III.
Entre em contato conosco
54 99956-3050
1) OpenSSL é um framework de segurança derivado do trabalho de Eric A. Young e Tim J. Hudson em 1995
2) Aborda criptografia simétrica (como AES, 3DES) e assimétrica (como RSA, DSA), assim como funções hash (MD5, SHA1)
3) Fornece exemplos de comandos OpenSSL para gerar chaves, criptografar/descriptografar arquivos e gerar hashes
O documento apresenta uma introdução à visão computacional e à biblioteca OpenCV. Resume os principais tópicos abordados: 1) Apresentação do palestrante; 2) Instalação e uso básico da OpenCV em Python; 3) Exemplos iniciais de detecção de bordas e conversão para escala de cinza usando a biblioteca.
Como recuperar senhas WEP de redes wireless com BacktrackNatanael Simões
Este documento fornece instruções em 7 passos para recuperar a senha WEP de uma rede wireless usando o Backtrack. Os passos incluem identificar a interface wireless, falsificar o endereço MAC, identificar a rede alvo, capturar pacotes usando airodump-ng, associar à rede com aireplay-ng, capturar mais pacotes com aireplay-ng, e usar aircrack-ng para recuperar a senha WEP. O processo pode levar de 5 a 20 minutos dependendo do hardware.
O documento discute conceitos fundamentais de criptografia, incluindo termos como mensagem original, cifrar, decifrar, algoritmos de criptografia, chave, tamanho da chave, criptoanálise, força bruta. Também discute os tipos de criptografia simétrica e assimétrica, algoritmos como DES, RSA e hash. Explica termos como assinatura digital, certificado digital e sua aplicação na ICP-Brasil.
A empresa 4Linux é uma pioneira no ensino de Linux no Brasil, com mais de 30.000 alunos satisfeitos. Ela oferece treinamento em missões críticas de tecnologia da informação e é parceira de treinamento da IBM, tendo recebido reconhecimento internacional por sua inovação em cursos como Hackerteen e Boteconet.
[TDC2019] Inteligência Artificial e Testes in a NutshellJúlio de Lima
O documento discute como a inteligência artificial pode ser aplicada para melhorar os testes de software, incluindo a geração automática de testes, identificação de testes problemáticos e reconhecimento de elementos de interface do usuário. Também explora como a análise de dados de teste usando clustering pode ajudar a identificar falhas no desempenho do sistema.
O documento discute criptografia simétrica AES, seus modos de operação (ECB, CBC, CTR) e como implementá-la corretamente. Também aborda ataques comuns como timing attacks e side-channel attacks, além de exemplos de mau uso de criptografia que podem comprometer a segurança.
O documento discute as opções para plataformas de desenvolvimento após o Arduino, mencionando o Raspberry Pi, BeagleBone Black, Intel Edison e outras. Também aborda softwares de design eletrônico como KiCad e Eagle para projetar circuitos impressos. Por fim, fornece dicas sobre onde pedir ajuda para projetos eletrônicos.
A palestra comenta desde problemas básicos a avançados discutindo conceitos de informação e segurança da informação para identificar pessoas envolvidas na tarefa de segurança de um sistemas Web, Também descreve como podemos evitar com que sistemas PHPs sejam invadidos e estejam sempre disponíveis para atender a usuários humanos.
[1] O documento discute as opções para microcontroladores além do Arduino, incluindo modelos como Intel Edison, Intel Galileo, ESP8266 e ferramentas de desenho como KiCad e Eagle. [2] Também aborda shields, licenças open source e onde encontrar ajuda para projetos eletrônicos. [3] O objetivo é mostrar que existem vida e alternativas para projetos embarcados além do Arduino.
Este documento apresenta as informações sobre o Desafio Forense ICCyber 2012, incluindo ferramentas digitais como Sleuthkit, Volatility e Wireshark que podem ser úteis para resolver o desafio. O objetivo é descobrir uma frase final respondendo às etapas do desafio.
O documento descreve um script para clonar imagens de HD contendo o sistema operacional Windows 7 para vários HDs conectados a um computador rodando OpenSUSE Linux. O script guia o usuário a conectar os HDs, rodar a clonagem para os dispositivos selecionados, e expandir o tamanho das partições clonadas para usar todo o espaço disponível nos HDs.
Ethical hacking: Conceitos básicos de Testes de penetraçãoCleórbete Santos
Apresentação utilizada no minicurso que ministrei durante o II Fórum Tocantinense de Tecnologia da Informação do mestrado em Modelagem computacional da Universidade Federal do Tocantins, que aconteceu no dia 20 de novembro de 2014 em Palmas-TO.
O documento apresenta uma introdução à arquitetura de microcontroladores da família Microchip PIC, descrevendo as diferenças entre microprocessadores e microcontroladores, as principais arquiteturas PIC16, PIC18 e PIC32, e elementos como memória, registradores e contadores de programa. Também aborda tópicos como escolha do microcontrolador correto, placas de desenvolvimento e a ferramenta MPLABX IDE.
O documento discute segurança em redes sem fio, especificamente Wi-Fi. Aborda conceitos como ESSID, BSSID, canais, criptografia WEP e WPA/WPA2. Demonstra como ferramentas como aircrack podem ser usadas para capturar tráfego Wi-Fi desprotegido e recuperar senhas. Recomenda medidas básicas de segurança como usar WPA-PSK com senha forte e ocultar o SSID.
Este documento apresenta os principais conceitos e algoritmos relacionados à segurança de TI, incluindo criptografia, checksums e pesquisa de strings. O documento discute algoritmos como criptografia por matrizes, paridade, Luhn e Boyer-Moore, explicando seus conceitos, funcionamento e complexidade. O objetivo é proporcionar aos estudantes contato com técnicas avançadas de segurança utilizadas em redes e sistemas.
O documento apresenta a arquitetura de memória do PostgreSQL, discutindo como os dados são alocados e armazenados na memória e como a memória é dividida e configurada entre os subsistemas. É apresentada a hierarquia de memória do sistema e como os dados são carregados da memória secundária para a memória principal.
Semelhante a Boot Seguro para Linux Embarcado (20)
AE02 - ESTUDO CONTEMPORÂNEO E TRANSVERSAL COMUNICAÇÃO ASSERTIVA E INTERPESSOA...Consultoria Acadêmica
A interação face a face acontece em um contexto de copresença: os participantes estão imediatamente
presentes e partilham um mesmo espaço e tempo. As interações face a face têm um caráter dialógico, no
sentido de que implicam ida e volta no fluxo de informação e comunicação. Além disso, os participantes
podem empregar uma multiplicidade de deixas simbólicas para transmitir mensagens, como sorrisos,
franzimento de sobrancelhas e mudanças na entonação da voz. Esse tipo de interação permite que os
participantes comparem a mensagem que foi passada com as várias deixas simbólicas para melhorar a
compreensão da mensagem.
Fonte: Krieser, Deise Stolf. Estudo Contemporâneo e Transversal - Comunicação Assertiva e Interpessoal.
Indaial, SC: Arqué, 2023.
Considerando as características da interação face a face descritas no texto, analise as seguintes afirmações:
I. A interação face a face ocorre em um contexto de copresença, no qual os participantes compartilham o
mesmo espaço e tempo, o que facilita a comunicação direta e imediata.
II. As interações face a face são predominantemente unidirecionais, com uma única pessoa transmitindo
informações e a outra apenas recebendo, sem um fluxo de comunicação bidirecional.
III. Durante as interações face a face, os participantes podem utilizar uma variedade de sinais simbólicos,
como expressões faciais e mudanças na entonação da voz, para transmitir mensagens e melhorar a
compreensão mútua.
É correto o que se afirma em:
ALTERNATIVAS
I, apenas.
III, apenas.
I e III, apenas.
II e III, apenas.
I, II e III.
Entre em contato conosco
54 99956-3050
A transformada de Fourier tem várias aplicações práticas, incluindo análise espectral, filtragem de sinais,
compressão de dados, modulação de sinais em comunicações e análise de sinais periódicos. Ela fornece uma
maneira poderosa de entender e manipular sinais em diferentes domínios, permitindo uma ampla gama de
aplicações em ciência e engenharia.
Elaborado pelo professor (2024).
Assinale a alternativa que descreva a série de Fourier.
ALTERNATIVAS
Na transformação de um sinal de domínio do tempo em um sinal de domínio discreto.
Na transformação de um sinal de tempo continuo em um sinal de domínio do tempo discreto.
Na representação de um sinal periódico como uma soma ponderada de funções seno e cosseno.
Na representação de um sinal não periódico como uma soma ponderada de funções discretas no tempo.
Na representação de um sinal não periódico como uma função exponencial.
Entre em contato conosco
54 99956-3050
Proteco Q60A
Placa de controlo Proteco Q60A para motor de Braços / Batente
A Proteco Q60A é uma avançada placa de controlo projetada para portões com 1 ou 2 folhas de batente. Com uma programação intuitiva via display, esta central oferece uma gama abrangente de funcionalidades para garantir o desempenho ideal do seu portão.
Compatível com vários motores
2. Números Grandes
- Pessoas no mundo: ~ 2^33
- Células no corpo humano: ~ 2^33
- Atomos no corpo humano: ~ 2^81
- Grãos de areia na terra: ~ 2^63
- Estrelas no universo: ~ 2^69
- Átomos no universo: ~ 2^246
Tamanho de uma chave simétrica considerada segura: 2^128
Tempo estimado para um super-computador quebrar esta chave por força bruta: >
10^21 anos! Ou, 1 000 000 000 000 000 000 000 anos!
2
8. Agenda
1) Números grandes
2) Problema
3) Introdução
a) Processo normal de boot
b) Criptografia
4) Boot seguro
a) Assinado
b) Encriptado
c) Outros conceitos
5) Chain of Trust
6) Implementação em um processador
8
9. Processo de boot
MPU
RAM
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
CORE
SRAM
ROM
Boot
Select
9
10. Processo de boot
MPU
RAM
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
CORE
SRAM
ROM
Boot
Select
ROM
10
11. Boot Seguro
Para o boot ocorrer de maneira segura:
1) A imagem deve estar íntegra.
2) A imagem deve ter sido "assinada" pelo desenvolvedor.
3) Só pode bootar de imagens geradas e gravadas na fonte.
4) Os passos do processo de boot devem ser configuráveis.
5) A imagem pode, ou não, estar criptografada.
Como?
Criptografia!
11
12. Criptografia
A criptografia se baseia em modelos matemáticos.
Importantes para o boot seguro:
- Criptografia Simétrica (AES)
- Criptografia Assimétrica (RSA)
- Resumo Criptográfico (SHA)
12
13. Criptografia Simétrica
- Chave única, idêntica dos dois lados.
- Deve ser "combinada" previamente.
- Cálculos muito rápidos.
13
14. Criptografia Assimétrica
- Cada lado tem um par de chaves: pública, privada.
- Não há necessidade de "combinar" a chave previamente.
- Cálculo matemático lento: exponencial.
Chave
Privada Ana
Chave
Pública Ana
14
15. Criptografia - Resumo (Hash)
- Oferece um resumo dos dados, integridade.
- Muito difícil encontrar outro dado que dê o mesmo resumo.
- Não necessita de chave, qualquer um pode calcular obtendo o mesmo
resultado.
Hash = 10! Hash = 10?
Integro!
15
17. Boot Seguro - Passo a Passo
Problema 1 : Integridade dos dados.
Flash
Code A:
Mysecurecode
Not my code
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Resumo A
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
BETO:
Resumo A Resumo B==
?
CAIO:
17
18. Boot Seguro - Passo a Passo
Problema 2: Assinatura digital.
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Resumo A
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
BETO:
Resumo B
CAIO:
Resumo C Priv.
Flash
Code A:
Mysecurecode
Not my code
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Assinatura ANA
Ch. Pública ANA
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Assinatura ANA
Ch. Pública ANA
Assinatura ANA
Ch. Pública ANA
Resumo A ==
? 18
19. Boot Seguro - Passo a Passo
Problema 3: Só bootar de imagens geradas por ANA.
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Resumo A
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
BETO:
Resumo B
CAIO:
Priv.
Flash
Code A:
Mysecurecode
Not my code
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Assinatura ANA
Ch. Pública ANA
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Assinatura ANA
Ch. Pública ANA
Assinatura ANA
Ch. Pública ANA
Resumo A ==
?
Assinatura CAIO
Ch. Pública CAIO
Ch. Pública ANA
Resumo Ch Pub
ANA
Resumo Ch Pub
ANA "B"
Resumo Ch Pub
ANA
== ?
19
20. Boot Seguro - Passo a Passo
4) Adicionando flexibilidade.
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Resumo 1
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
BETO:
Resumo B
Priv.
Assinatura1 ANA
Ch. Pública1 ANA
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
ANA:
Assinatura1 ANA
Ch. Pública1 ANA
Resumo 1
== ?
Ch. Pública1 ANA
Resumo Ch Pub
ANA 1 e 2
Resumo Ch Pub
ANA 1 e 2 "B"
Resumo Ch Pub
ANA 1 e 2
== ?
Comandos
de Boot
Resumo 2
Assinatura2 ANA
Ch. Pública2 ANA
Assinatura2 ANA
Ch. Pública2 ANA
Assinatura1 ANA
Ch. Pública1 ANA
Comandos
de Boot
Ch. Pública2 ANA+
Assinatura2 ANA
Ch. Pública2 ANA
Comandos
de Boot
Resumo 2
Resumo C
== ?
20
21. Boot Seguro (Revisão)
Para o boot ocorrer de maneira segura:
1) A imagem deve estar íntegra.
a) ANA gera e envia um resumo criptográfico.
2) A imagem deve ter sido "assinada" pelo desenvolvedor.
a) ANA assina o resumo com sua chave privada, e envia sua chave pública junto com a imagem.
3) Só pode bootar de imagens geradas e gravadas na fonte.
a) Par de chaves público e privada do desenvolvedor (ANA).
b) O processador (BETO) deve poder checar que ANA é a ANA.
i) Resumo criptogáfico da chave pública da ANA.
4) Os passos do processo de boot devem ser configuráveis.
5) A imagem pode, ou não, estar criptografada.
a) Se for o caso, AES128
21
22. Boot encriptado
Flash
Code A:
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Mysecurecode
Assinatura2 ANA
Ch. Pública2 ANA
Assinatura1 ANA
Ch. Pública1 ANA
Comandos
de Boot
Chave AES (1)
Chave AES Cifrada
Chave única por
processador (2)
1+2
Chave AES (1)
Flash
Imagem
encriptada
Assinatura2 ANA
Ch. Pública2 ANA
Assinatura1 ANA
Ch. Pública1 ANA
Chave AES Cifrada
1+2
ANA:
1+2
Chave única por
processador (2)
+
=
Chave AES (1)
+
Priv. ANA
Ch. Pública1 ANA
=
Chave AES Cifrada
BETO:
22
23. Comandos de boot
- Seleção de protocolos de segurança.
- Assinatura (RSA 1024, 2048, ECC)
- Hash (SHA128, 256)
- Cifra (AES)
- Endereços das assinaturas e certificados.
- Seleção de recursos do processador de maneira segura.
- Ordem dos cálculos.
- Lógica de checagem do hash dos certificados.
23
24. Múltiplas assinaturas
- É possível checar assinatura de diversos objetos (regiões).
- Exemplos:
- U-boot
- Kernel, Device Tree
- Outros binários (cores secundários, GPU, WiFi, etc)
- Rootfs (boot pode ficar demorado)
- Cada novo objeto, gera um par de chaves:
- Chave privada, para a assinatura, “na fábrica”.
- Chave pública, em formato de certificado digital, a ser copiada junto com a imagem para a
execução do processo de boot.
- Geralmente, para cada produto é criado um conjunto de novas chaves.
- Quanto mais pares de chaves, mas seguro é o processo geral.
24
25. Gravação em fusíveis
Algumas configurações do boot seguro devem ser, na fábrica, gravadas em
fusíveis internos do processador, e bloqueados para gravações futuras:
- Fonte de boot
- Parâmetros de boot
- Hash das chaves públicas
Estes fusíveis devem ser gravados em fábrica, atravéz de ferramentas
disponibilizadas pelo fabricante.
- Os dados podem ser gravados via u-boot, ou via programa rodando no PC
com link serial (USB) com a placa.
25
26. Chain
of
Trust
- O Hardware se encarrega de carregar uma imagem inicial de boot loader de
maneira segura.
- O boot loader ou o hardware, “bootam” o kernel de maneira segura.
- O kernel, por sua vez, se encarrega de montar o rootfs e mantê-lo de maneira
segura.
Corrente de confiança (Chain of Trust)
u-boot
kernel
rootfs
Hardware
Boot
seguro
26
28. Ferramentas necessárias
Familia estudada: i.MX6 da NXP, utilizando o HABv4 (High Assurance Boot).
- Gerador de certificados, responsável por gerar:
- Par de chaves público/privada
- Certificados digitais
- Hash a ser gravado nos fusíveis
- Assinador de código, responsável por:
- Calcular o resumo do binário em questão
- Assinar o resumo com a chave privada
- Concatenar o resultado com os certificados necessários
- Exemplo de comandos de boot seguro
- Ferramenta para gravação dos fusíveis, em fábrica
28
29. Distribuição de certificados e chaves
Certificado
mestre
Produto 1
Certificado
Pai 1
Certificado
Filho 1-1
Certificado
Filho 1-2
Certificado
Filho 1-3
Produto 2
Certificado
Pai 2
Certificado
Filho 2-1
Certificado
Filho 2-2
Certificado
Filho 2-3
Produto n
n
n
n
n
Tabela de
chaves e
certificados
29
30. Gerando as chaves
bruno@bruno:~/CST-CodeSigningTool/cst-2.3.2/keys$ .
/hab4_pki_tree.sh
Do you want to use an existing CA key (y/n)?: n
Do you want to use Elliptic Curve Cryptography (y/n)?: n
Enter key length in bits for PKI tree: 2048
Enter PKI tree duration (years): 10
How many Super Root Keys should be generated? 1
Do you want the SRK certificates to have the CA flag set? (y/n)?:
y
+++++++++++++++++++++++++++++++++++++
+ Generating CA key and certificate +
+++++++++++++++++++++++++++++++++++++
Generating a 2048 bit RSA private key
writing new private key to 'temp_ca.pem'
++++++++++++++++++++++++++++++++++++++++
+ Generating SRK key and certificate 1 +
++++++++++++++++++++++++++++++++++++++++
Generating RSA private key, 2048 bit long modulus
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'SRK1_sha256_2048_65537_v3_ca'
Certificate is to be certified until Jun 27 16:14:55 2026 GMT
(3650 days)
++++++++++++++++++++++++++++++++++++++++
+ Generating CSF key and certificate 1 +
++++++++++++++++++++++++++++++++++++++++
Generating RSA private key, 2048 bit long modulus
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'CSF1_1_sha256_2048_65537_v3_usr'
Certificate is to be certified until Jun 27 16:14:56 2026 GMT
(3650 days)
++++++++++++++++++++++++++++++++++++++++
+ Generating IMG key and certificate 1 +
++++++++++++++++++++++++++++++++++++++++
Generating RSA private key, 2048 bit long modulus
The Subject's Distinguished Name is as follows
commonName :ASN.1 12:'IMG1_1_sha256_2048_65537_v3_usr'
Certificate is to be certified until Jun 27 16:14:56 2026 GMT
(3650 days)
30
31. Gerar a tabela de chaves
bruno@bruno:~/CST-CodeSigningTool/cst-2.3.2/keys$ ../linux64/srktool --help
Usage:
To generate SRK Table data and the SRK Table hash for HAB4
==========================================================
srktool --hab_ver <version> --table <tablefile> --efuses <efusefile>
--digest <digestalg> --certs <srk>,%<srk>,...
[--fuse_format <format>] [--license]
-h, --hab_ver <version>:
HAB Version - set to 4 for HAB4 SRK table generation
-t, --table <tablefile>:
Filename for output SRK table binary file
-e, --efuses <efusefile>:
Filename for the output SRK efuse binary file containing the SRK table hash
-d, --digest <digestalg>:
Message Digest algorithm. Either sha1 or sha256
-c, --certs <srk1>,<srk2>,...,<srk4>:
X.509v3 certificate filenames.
-f, --fuse_format <format>:
Optional, Data format of the SRK efuse binary file.
-l, --license:
Optional, displays program license information. 31
32. Extrair os valores dos fusíveis
bruno@bruno:~/CST-CodeSigningTool/cst-2.3.2/keys$ hexdump -e '/4 "0x"' -e '/4 "%X""n"'
SRK_1_2_3_4_fuse.bin
0xF2E90790
0x33472527
0x65452D17
0xD52CEB6C
0x3A0B28B5
0x1016780D
0xEF1F296
0x5CAD4836
- No u-boot, pode-se usar o comando fuse prog para programar os fusíveis:
fuse prog <bank> <word> <value>
Ex.:
fuse prog 3 0 0xF2E90790
32
33. Montagem dos comandos de boot
Similar a um arquivo XML, contém os comandos e passos de boot.
#Illustrative Command Sequence File Description
[Header]
Version = 4.1
Hash Algorithm = sha256
Engine = ANY
Engine Configuration = 0
Certificate Format = X509
Signature Format = CMS
[Install SRK]
File = “../crts/SRK_1_2_3_4_table.bin”
...
[Install CSFK]
File = “../crts/CSF1_1_sha256_2048_65537_v3_usr_crt.pem”
...
[Authenticate CSF]
...
[Install Key]
File= ”../crts/IMG1_1_sha256_2048_65537_v3_usr_crt.pem”
...
[Authenticate Data]
...
33
34. Preparando a imagem
- Gerar o CST (binário) a partir do arquivo CST de entrada ("XML"):
- ./cst -–o csf-uboot.bin < csf-uboot
- Concatenar o CST à imagem do u-boot:
- cat u-boot.imx csf-uboot.bin > u-boot-signed.imx
- Depois do boot, no u-boot, checar o estado do boot:
- hab_status
- Queimar os últimos fusíveis
34
35. Formato típico gerado para boot seguro
Binário do
u-boot
(uB)
Assinatura uB
Certificado uB
Certificado CB
Assinatura CB
Comandos de
Boot (CB)
Assinatura LK
Certificado LK
Linux
Kernel
(LK)
dtb
rootfs
35
36. Formato típico gerado para boot seguro
Disponível em NXP AN4581: http:
//cache.nxp.
com/files/32bit/doc/app_note/AN4581
.pdf
36