Pitch: Minha contribuição para esse mundo: Segurança ponta a ponta de verdade (Pelo menos em trocas de mensagem de texto)
Porquê estou publicando isso?
Olá meu nome é Augusto e atualmente vejo pouca divulgação científica entre os devs aqui na minha região e também muitos trabalhos de conclusão de curso sendo feito com temas irrelevantes somente para a obtenção do diploma, então venho apresentar um pouco do meu TCC para vocês para que assim, talvez, eu possa estar ajudando vocês e vocês me ajudando…
O problema 🧑💻
A segurança e privacidade do usuário na internet é um tópico cada vez mais importante nos dias atuais, tendo até tópicos e issues sendo criado nesse projeto…
Justamente pelo grande aumento do uso de computadores com internet e muitos serviços sendo disponibilizados online, como exemplo os comunicadores instantâneos: whatsapp, telegram, messenger…
Porém com o aumento do uso de internet também tem aumentado o número de computadores infectados por malwares, tendo um estudo da Kingsoft de 2016 mostrando que em média 2-5 milhões de computadores são infectados por dia.
Atualmente sabemos que esses comunicadores instantâneos utilizam criptografia entre um dispositivo e outro, porém não podem garantir que o dispositivo que recebeu ou enviou a mensagem já não esteja infectado por um malware…
Podendo esse malware saber a mensagem que o usuário vai enviar antes mesmo dele pressionar ENTER com a utilização de um keylogger ou até mesmo gravando a tela do usuário com “screenlogger”.
A Proposta 🗿🍷👉 ⌨️ 👉 🤖 👉 💻
Minha proposta busca uma solução para o problema citado acima, podemos com a utilização de um arduino conectado ao computador criar um middleware entre um teclado externo e o computador para realizar a criptografia de mensagens que precisam realmente ser seguras e privadas...
O arduino receberia a entrada de dados do usuário através do teclado e realizaria a criptografia da mensagem antes mesmo que ela fosse realmente digitada no computador, podendo ele visualizar e alterar a mensagem original através de um display também conectado ao arduino.
Mas e a outra ponta?
A outra ponta que receberia essa mensagem também teria que ter um mesmo dispositivo, porém no caso de quem recebe a mensagem existiria um programa em que você cola a mensagem recebida e envia para o arduino para que o mesmo realize a descriptografia da mensagem e mostre a mensagem original também através do display.
Desenvolvimento da solução
Versão 1
Já existe uma versão 1 funcional do projeto que está usando:
- Arduino UNO,
- Display lcd IC2
- Cabo otg
- Criptografia rot47
- Linguagem Python e Arduino
Essa versão do projeto era a minha POC e usei somente esses componentes e a linguagem Python e Arduino e ela "resolveu" o problema com dos keylogger e screenlogger.
Que você pode acessar e conferir aqui: Repositório no Gitub, Não esquece de me seguir e deixar a star no repo para apoiar
Versão 2
Atualmente estou desenvolvendo a versão 2 e de apresentação para o meu tcc utilizando:
- Arduino UNO
- USB host shield
- Display lcd IC2
- Criptografia AES
- linguagem Python e Arduino
Utilizando o USB host shield quero trazer mais praticidade e com a AES uma criptografia de uso real (Mesmo sabendo de sua defasagem atual)
Que você pode também pode acessar e conferir aqui: Repositório no Gitub, novamente não esquece de me seguir e deixar a star no repo para apoiar
Demostração
Já de antemão desculpem a qualidade mas segue um vídeo demonstração da POC no youtube Vídeo demonstração no youtube
achei a ideia muito boa, mais uma coisa que tenho percebido é que, infelizmente, se nao for transparente pro usuario utilizar, ele não utiliza, ou seja, se precisar de algum esforço e não gerar um retorno positivo ele simplesmente não usa. Claro que segurança é um otimo retorno, mais só da valor quem realmente foca nisso.
Me fez lembrar a maquina enigma que já existia desde a década 20, mas se popularizou mesmo com uso pelo alemães a partir da década de 30... A ideia de criptografia antes mesmo da transmissão e possuir as chaves também fora do computador é uma receita perfeita. Meus parabéns pelo seu trabalho, criatividade e perspicácia.
Parabéns AugustoSavi, muito legal!
Eu não conheço os detalhes sobre a criptografia AES, porém, imagino que ao criptografar uma mensagem o resultado é um array de bytes que representa a mensagem codificada. Então, se você apenas tentar mostrar esse linguição de bytes como texto, vai ter caracteres "quebrados", já que pode haver bytes que não são associados a caracteres ASCII.
Como é tratado esse problema? A mensagem codificada é convertida para texto de alguma forma?
Parabéns pelo projeto, um ótimo tema e muito importante!
Saudade de ler sobre Arduino, fiz meu curso de técnico em Automação Industrial e mexi muitos anos nele, inclusive tenho um kit completo, mas está apenas guardado. Hoje em dia fico mais no mundo do software do que no do hardware.
Parabéns pela ideia!! Tem um nicho que você pode pegar, que é o de quem ainda utiliza o FAX (sim, ele existe). Consultórios de Advocacia, Clínicas Médicas, Serviços Militares e até mesmo o Governo, ainda utiliza a velha tecnologia, para o envio seguro de documentos assinados.
Isso porque o FAX (ou fac-símile) utiliza a transmissão de imagem e não de dados, pela linha telefônica, o que a faz ser mais confiável que um e-mail autenticado.
Grandes empresas que fazem a troca de documentos de alto valor (confidenciais), também utilizam a tecnologia. Ex: FIFA (e tem uma questão, caso alguma empresa atenda a FIFA e não tenha FAX, ela tem que enviar o documento por Correios com aviso e mão própria).
Então, um equipamento como o seu, que "intercepta" as informações digitadas no teclado e cria um dado criptografado, já ajuda bastante na troca de textos.
É interessante pensar em algo para assegurar o envio de imagem, talvez entre um scanner e um PC, para criptografar o documento escaneado.
Mas corra... a blockchain está aí.. rsrs
Por ser uma tecnologia inovadora, o blockchain tem ganhado espaço no cenário mundial por se mostrar como um excelente aliado na hora de guardar informações e preservar dados de empresas ou terceiros.
Mais do que apenas atuar no segmento das criptomoedas, o blockchain pode contribuir para armazenar e validar registros de diversos outros tipos, como os documentos.
Já existem empresas que utilizam o blockchain para realizar a validação de documentos, assegurando economia de tempo, redução de custos e maior segurança e confiabilidade à operação. Essas são as principais vantagens de validar documentos através dessa tecnologia.
Dá pra pensar na Blockchain ao seu favor, também...