Efeito de visão confiável contra ataque de homem no dispositivo

Olá, Habr.



Você já pensou no fato de que a era da criptografia personalizada acabou irrevogavelmente? Não, não estou dizendo que a criptografia de mensageiros e criptomoedas esteja em desuso hoje. Estou falando da boa e velha RBS, ou seja, dos sistemas banco-cliente. Há cerca de 10 anos, qualquer banco de clientes que se preze consistia em um software e um token com uma assinatura digital. E hoje é quase uma raridade, todo mundo está mudando para confirmações de SMS em todos os lugares, o que certamente é uma ordem de magnitude mais conveniente do que mexer nas configurações de fornecedores de criptografia e definir certificados de CPU.



Qual é o problema, a conveniência realmente superou a segurança em uma área como a financeira? Mas não, verifica-se que a segurança de ambas as opções é igualmente baixa. Como está, bem, está claro que a autenticação sms está longe de ser a segurança ideal com a capacidade de interceptar e substituir sms, mas a cripta está até na operadora de hardware! A questão é que qualquer sistema de segurança é avaliado por seu elo mais fraco.



Alice e Bob



Descreverei o problema usando o exemplo de Alice e Bob. Imagine que Alice está segurando um smartphone em uma das mãos, em cuja tela é exibido um documento de pagamento. E, por outro lado, está um token sem fio assinado digitalmente. Alice terá que assinar um pedido de pagamento eletrônico, para isso basta emparelhar um token e um smartphone e clicar em "assinar".



Como se tudo fosse simples e seguro o suficiente - ambos os dispositivos pertencem a Alice e ambos estão em suas mãos. Mas digamos que haja Bob, que decide neste momento interceptar o documento de Alice e enviar outro documento para seu token - por exemplo, uma ordem de pagamento, na qual uma grande quantia irá da conta de Alice para uma conta desconhecida.



imagem



Aqui, não consideraremos vários cenários de como fazer isso, basta listar as áreas potencialmente inseguras onde Bob pode realizar a substituição pretendida. Portanto, a área de ataque potencial inclui: sistema operacional do smartphone, processador, processador de vídeo, RAM, canal de comunicação sem fio. A interceptação remota do controle do smartphone permite que Bob organize um ataque em qualquer uma das áreas listadas aproximadamente de acordo com o seguinte algoritmo: rastrear se o gateway de token está aberto para receber dados, interceptar o documento de Alice no caminho da RAM para o transmissor sem fio, enviar seu documento para o gateway de token, receber do receptor de smartphone sem fio documento assinado e envie-o a um host específico. Ao mesmo tempo, exiba informações sobre o documento assinado com sucesso de Alice na tela do smartphone.O ataque também pode ser realizado por meio de um canal de comunicação sem fio, mas em geral o algoritmo de ataque será o mesmo.



Alguém pode ter uma pergunta - e quanto à criptografia, é realmente impossível usar a criptografia para se proteger contra Bob. A criptografia pode ser usada, é claro, mas infelizmente, é impossível esconder as chaves de Bob, que assumiu o controle do smartphone, no próprio smartphone. Mas mesmo que as chaves de criptografia sejam retiradas do dispositivo, isso não salvará a situação, já faz sentido criptografar um documento eletrônico apenas antes de enviá-lo a um token para proteger o canal sem fio. Todas as outras operações com o documento no próprio smartphone são realizadas exclusivamente de forma aberta. Nessa situação, o usuário só pode contar com o antivírus atualizado e o antifraude bancário.



Sobre o antifraude



Eu gostaria de dizer algumas palavras sobre essa tecnologia polêmica. Se alguém se deparar com isso, vai me entender. Qualquer pagamento suspeito do ponto de vista do banco é bloqueado instantaneamente, e com ele a conta é bloqueada, seguido por uma maratona de vários dias de coleta de documentos e prova ao banco que você é um bom cidadão quer transferir dinheiro para outro bom cidadão. Bem, é assim, inspirado por eventos recentes de minha própria experiência.



MITM, ou melhor, MID



Portanto, temos uma espécie de ameaça do homem no meio - "Man In The Middle" (MITM). Nesse caso, no meio entre a tela do smartphone e o token assinado digitalmente. Mas, ao contrário do ataque clássico de man-in-the-middle, é impossível neutralizá-lo usando métodos criptográficos. Não sei se este tipo de ataque tem um termo específico, chamamos de pessoa em um dispositivo - “Man In Device” (MID) . A seguir, chamarei esse ataque dessa forma.



A crescente capacidade dos atacantes de interceptar remotamente o controle do computador ou smartphone de outra pessoa abre perspectivas para vários ataques de hackers. Além disso, os maiores prejuízos podem ser causados ​​por ataques relacionados à assinatura eletrônica - a substituição de documentos na hora de assinar e com a substituição de documentos na sua visualização. Por exemplo, é mostrado um e-passaporte, e-procuração, e-ID, e-ticket, etc. em seu smartphone. A autenticidade do documento é confirmada por uma assinatura eletrônica - mas como você pode verificar de forma rápida e confiável se o documento eletrônico está realmente assinado com uma assinatura eletrônica e está em conformidade com o padrão? Espero que todos entendam que o carimbo com as palavras "assinado por uma assinatura eletrônica qualificada" não tem nada a ver com a assinatura eletrônica,e no Photoshop pode ser colado em qualquer documento eletrônico.



Uma coisa é se você de plantão precisa verificar constantemente a autenticidade de tais documentos eletrônicos - neste caso, você deve ter uma ferramenta certificada para receber, visualizar e verificar documentos eletrônicos. Por exemplo, um scanner QR e um computador conectado a ele com software certificado pré-instalado.

Mas se você é um simples usuário ou está em sua organização, não há necessidade de realizar essas operações regularmente e você tem um smartphone comum para verificar um documento eletrônico, então corre o risco de se tornar vítima de um ataque com a substituição de um documento na tela do seu dispositivo.



O que há no mercado?



Existem métodos e dispositivos para neutralizar o ataque Man In Device hoje? Sim, esses dispositivos existem, são terminais de usuário da classe Trust Screen.



Seu princípio de operação é impedir fisicamente que um invasor entre no próprio dispositivo. Na verdade, este é o mesmo smartphone, mas com software pré-instalado e certificado, com software integrado para trabalhar com assinatura digital e isolado do mundo exterior. E tem apenas duas funções - aceitar um documento eletrônico de um determinado formato, exibi-lo, assiná-lo e devolvê-lo com uma assinatura. Ou aceite o documento assinado, exiba o próprio documento e uma mensagem sobre a validade da assinatura digital. Em geral, é conveniente, seguro e confiável, mas gostaria de ter algo mais compacto para esses casos, idealmente não exigindo carregamento e algo que esteja sempre à mão.



Com essa mentalidade, há 1,5 anos, iniciamos um brainstorming em busca de uma nova solução para a ameaça Man In Device.



Voltar para Alice e Bob



Para maior clareza da solução encontrada, vamos mais uma vez retornar ao modelo de ameaça com Alice e Bob. Então, Alice ainda segura um smartphone em uma das mãos, não importa qual marca e modelo e não importa com qual sistema operacional. Vamos chamá-lo de dispositivo não confiável. Por outro lado, Alice segura um determinado dispositivo com uma assinatura digital, vamos assumir que este é um dispositivo confiável certificado, fabricado de acordo com todos os cânones de segurança da informação e Bob não pode hackear este dispositivo de Alice. Mas Bob entrou facilmente no smartphone de Alice e está pronto para implementar o ataque Man In Device nele.



Você pode perceber que até agora a situação não é diferente da descrita acima, na qual Bob facilmente transforma o documento em fraude. Onde está a solução?

A solução que encontramos, que chamamos de "efeito de visualização confiável", não neutraliza esses ataques, mas nos permite garantir que o documento correto seja exibido na tela do smartphone. Esse princípio é semelhante à ideia da criptografia quântica em que o canal de comunicação não é protegido, mas as partes têm a garantia de poder determinar a tentativa de interceptar a chave. Portanto, em nossa tecnologia - não nos comprometemos a abraçar a imensidão na tentativa de proteger os canais de comunicação, sistema operacional, processador, etc., mas nossa solução é capaz de determinar com segurança o fato de substituição ou modificação de um documento eletrônico em qualquer dispositivo não confiável, seja um smartphone ou pessoal computador.



Para entender como funciona nossa tecnologia, vamos imaginar mais uma vez que para assinar um documento, um arquivo com um documento é enviado de um smartphone para um dispositivo confiável. Mas ao longo do caminho do documento, o invasor tem várias maneiras de substituir o documento ou os dados nele. E aqui surge a questão principal. Como você pode garantir que um pequeno dispositivo confiável que não tem uma tela para exibir o documento recebido recebeu o documento correto? Em nossa solução, devolvemos o documento do dispositivo confiável e reexibimos sua imagem na tela do smartphone, mas fornecendo a imagem do documento no dispositivo confiável com determinados rótulos de segurança gerados de forma especial. A tecnologia desenvolvida cria um "efeito de visualização confiável" devido aos princípios da criptografia visual - uma direção exótica no campo da criptografia moderna.



Sobre criptografia visual



Um dos métodos mais famosos pertence a Moni Naor e Adi Shamir, que o desenvolveram em 1994. Eles demonstraram um esquema gráfico secreto compartilhado, segundo o qual a imagem foi dividida em n partes para que apenas uma pessoa com todas as n partes pudesse decifrar a imagem, enquanto as outras n-1 partes não mostravam nenhuma informação sobre a imagem original.



imagem

Conectar segredos separados permite que você veja informações ocultas





Em nossa tecnologia, o mecanismo reverso funciona - três segredos são combinados em um único todo, o que não permite que você isole cada um dos segredos em um tempo estritamente limitado. E apenas dividir o todo em três partes originais permite que você veja as informações ocultas nelas.



3 segredos estão escondidos aqui







segredos são divididos




Vamos analisar o esquema de criptografia do algoritmo



O texto original consiste em três imagens em preto e branco, cada pixel é 0 - transparente ou 1 - preto.



Quando as imagens são sobrepostas, os pixels são mesclados de acordo com o seguinte princípio:



1) 0 + 0 + 0 = 0

2) 1 + 0 + 0 = 1 ou 0 + 1 + 0 = 1 ou 0 + 0 + 1 = 1

3) 1 + 1 + 0 = 1 ou 1 + 0 + 1 = 1 ou 0 + 1 + 1 = 1

4) 1 + 1 + 1 = 1



Assim, a fusão de imagens leva à perda de algumas informações (linhas 2 e 3), o que não permitirá sem uma chave restaure cada uma das imagens separadamente. Este é o estágio de criptografia.



Agora vou mostrar como gerar uma chave de descriptografia, ou seja, decompor a imagem de volta em seus componentes originais.



Por exemplo, temos diante de nós três fragmentos das imagens originais, sobrepostas umas às outras:







O fragmento criptografado da imagem contém pixels pretos e transparentes e tem menos informações do que as três imagens originais.



Para criar uma chave de descriptografia, você precisa percorrer os pixels pretos em cada fragmento das imagens originais e combiná-los de acordo com as coordenadas.

A chave resultante conterá as coordenadas dos pixels pretos na imagem criptografada e seu conteúdo original.



No exemplo fornecido, a seguinte chave será obtida:



a1: 110, c2: 011, d2: 111, b4: 010, a5: 110, c5: 111



onde a1 são as coordenadas do pixel preto na imagem criptografada e 110 são as cores dos pixels com as mesmas coordenadas nas imagens originais.



Este algoritmo criptográfico é essencialmente uma função unilateral com uma chave.



Sobre a força criptográfica



Vamos calcular a resistência à criptografia desse algoritmo. Cada pixel preto é o resultado da fusão de pixels de três camadas. Ao mesmo tempo, como mostrado acima, existem 7 opções para tal mesclagem, eu as darei novamente:







Assim, em um pequeno fragmento da imagem dada no exemplo, consistindo de 6 pixels pretos, existem 7 à 6ª potência ou 117.649 opções para decomposição nas imagens originais ...



Não é difícil estimar que, se, por exemplo, 1000 desses pixels aparecem em uma imagem em tamanho real,então o número de opções será de 7 elevado à milésima potência, que serácombinações.



É claro que, com uma determinada resistência à criptografia, um método de hacking direto é impossível. Mas o suposto invasor tem outros métodos de criptoanálise.



Levando em consideração o fato de que, recentemente, os sistemas de reconhecimento de imagem baseados em redes neurais fizeram grandes avanços - um invasor em potencial poderia usá-los para reconhecer uma imagem de um código de autenticidade em uma única imagem. No entanto, essa ferramenta, neste caso, será impotente por três motivos.

Primeiro, o código de autenticidade é exibido em uma forma deformada na forma de um captcha. Além disso, a localização do captcha e o ângulo de inclinação também são aleatórios.



Em segundo lugar, o captcha é misturado com a imagem da grade de segurança, que possui um padrão aleatório e o texto do documento.



E em terceiro lugar, o tempo para uma tentativa de reconhecer o invasor é extremamente curto, 1-2 segundos. É quanto tempo deve decorrer desde o momento em que o usuário pressiona o botão no dispositivo confiável e a imagem aparece na tela do dispositivo não confiável.





Tente reconhecer uma palavra-código misturada com uma rede de segurança e parte do texto do documento



Após descoloração da malha protetora




O mesmo fragmento após a camada com a malha de proteção é parcialmente descolorido - a palavra de código é facilmente reconhecida



Está tudo tão tranquilo?



No entanto, uma visão geral da tecnologia apresentada seria incompleta sem mencionar uma lacuna potencial que um hacker poderia explorar. O fato é que uma das três camadas em uma única imagem é conhecida com antecedência pelo atacante Bob - esta é uma imagem com o texto do documento. Naturalmente, Bob também tem uma imagem de seu próprio documento, com a qual substituirá o documento de Alice. E então a tarefa de Bob pode ser bastante simplificada. Conhecendo um dos três segredos na forma de uma camada com uma imagem de texto, você pode subtrair uma máscara com a imagem desse segredo de uma única imagem. Como resultado, haverá uma imagem que inclui 2 camadas - com uma malha de proteção e um código de autenticidade. Em seguida, a imagem resultante é misturada com a imagem do texto do documento original. E isso é tudo - o problema de hackear está resolvido.



Porém, nem tudo é tão simples aqui: naquelas áreas onde os pixels do texto se misturam com os pixels da grade de segurança e / ou do código de autenticidade, após subtrair a máscara, permanecerão lacunas visíveis. Mas se o texto original difere do falso por um pequeno número de caracteres no fragmento local, então, depois que a imagem residual da grade de segurança com o código de autenticidade é imposta ao texto original, essas lacunas na maioria das áreas irão desaparecer e permanecerão apenas em um pequeno fragmento onde a substituição foi feita. Assim, Alice pode nem perceber a substituição do documento.



Decisão



Para evitar a possibilidade de hackear de acordo com o cenário acima, uma solução bastante simples é proposta. No dispositivo confiável, a imagem do texto do documento é previamente ligeiramente distorcida usando valores aleatórios. A maneira mais fácil de deformar é alterar a largura de cada uma das 4 margens de cada página do documento.



Além disso, a largura de cada campo mudará para seu valor aleatório, seja no sentido de aumentar ou diminuir. Basta alterar a largura dos campos em alguns pixels e a conduta desse ataque será visível a olho nu na forma de artefatos residuais de partes de caracteres pendentes após a subtração da máscara. Se o texto do documento contiver linhas, como no exemplo abaixo, quando o texto for deformado, as imagens das linhas não serão afetadas.





a descoloração suave da grade de segurança permite que você tenha certeza de que o texto do documento não muda.



Para facilitar a compreensão, um exemplo com imagens em preto e branco é fornecido. Mas, com uma certa modificação do algoritmo, ele também pode ser aplicado a imagens coloridas.



Agora, algumas palavras sobre o papel do usuário nesta tecnologia. O uso de técnicas de criptografia visual em tecnologia implica no uso da visão do usuário como principal métrica para avaliar a ausência ou presença de um ataque Man In Device. Na verdade, estamos falando de validação visual, que se expressa em duas operações sucessivas realizadas pelo usuário:



1. Comparar o código de autenticidade no indicador de um dispositivo confiável com o código de autenticidade no captcha na imagem do documento





como um dispositivo confiável, propõe-se a criação de um cartão de plástico especial

com um indicador de um código de autenticidade e botões "confirmar" e "cancelar"




2. Comparação do texto exibido com uma diminuição gradual no contraste das camadas com uma malha de proteção e códigos de autenticidade com o texto original do documento



A última operação é baseada na capacidade de uma pessoa perceber a menor mudança no quadro geral. Assim como um caçador é capaz de perceber o movimento do jogo na floresta através dos galhos das árvores em seus contornos mais sutis, aqui o usuário pode ver claramente que o texto gradualmente emergente do documento não muda quando o contraste das outras duas camadas da imagem diminui e corresponde ao original no contexto.



É a validação visual que cria o efeito final de visualização confiável.



PS Na próxima parte, tentarei falar sobre os problemas que tive que enfrentar ao desenvolver um protótipo, como é possível transferir alguns dos cálculos complexos de um dispositivo confiável para um servidor confiável sem comprometer a segurança e se conseguimos encontrar um investidor no projeto.



All Articles