Biometria Não é a Solução. Será? - Parte 2
O debate e a troca de idéias são sem dúvida alguma uma grande oportunidade de aprendizado. Infelizmente poucos são os profissionais de segurança capazes de deixar de lado as vaidades e embarcar em um debate saudável onde ambas as partes aprendem. Fernando Cima é um daqueles poucos profissionais com o qual podemos discutir pontos de vista distintos e como sempre aprender muito, justamente por isso, em meu post anterior havia comentado algo que ele havia publicado em seu blog. Em um post mais recente, Fernando fez uma espécie de réplica aos meus comentários à qual eu eu gostaria de comentar.
Primeiramente é importante ressaltar que eu não discordo totalmente do Fernando. Compreendo seu ponto de vista mas considero que algumas afirmações dele soaram um tanto binárias, isso é, sem as nuances que a escolha de um fator de autenticação forte exigem. Minha resposta não deve ser compreendida como uma defesa do uso de dispositivos biométricos na autenticação de websites mas um contra ponto à certas afirmações feitas por ele, dito isso, peço aos leitores que procurem não observar essa série de posts como mais uma daquelas "guerras santas tecnológicas". Tenho certeza que o Fernando concorda comigo.
Acerca da réplica dele, gostaria de comentar alguns pontos:
Discordo quando Fernando diz que "Neste caso o leitor na verdade identifica o usuário e se autentica junto ao sistema de segurança usando uma chave privada dentro do leitor. O fator de autenticação no sistema na verdade é a posse pelo usuário da chave privada armazenada dentro do leitor, e não a informação biométrica.", o que pode ser uma questão de semântica é na verdade uma questão de detalhes. Quando afirmo em meu post anterior que "O algoritmo biométrico poderia ser executado apenas no leitor, evitando transferir a imagem da digital para o PC" não é preciso presumir existência de certificados digitais e nem mesmo de criptografia. A execução do algoritmo de biometria no próprio dispositivo de leitura visa evitar que a totalidade da impressão digital seja transferida para algum outro dispositivo de processamento de forma a evitar o armazenamento das informações contidas em uma digital, talvez seja importante observar que um algoritmo de identificação de digitais não restringe-se a uma resposta binária de sim ou não, sendo capaz de prover fragmentos específicos da própria digital, os quais então podem ser transferidos para o serviço de autenticação sem maiores interações por parte do PC.
É importande deixar claro algo que Fernando percebeu em meu post anterior o fato de que "a informação biométrica também está fora do leitor". Para que o modelo comentado em meus dois posts funcione, é fundamental o cadastramento prévio das digitais em um ambiente controlado, o que pode ser visto como uma desvantagem desse tipo de solução. Ainda que conceitualmente faça sentido, em aplicações reais, a maioria dos sistemas empregando certificados digitais possuem uma base que relaciona determinado perfil de usuário à determinado certificado digital.
É natural que o mecanismo apresentado leve um especialista a perguntar, o que ocorre se um software hostil consultar o leitor de forma a obter todas as combinações possíveis de informações da digital de forma a construir um replay attack? A única forma de combater isso é estabelecer um mecanismo de autenticação entre o leitor e o próprio servidor de autenticação, daí a necessidade de um plugin no micro capaz de estabelecer esse canal entre o leitor e o servidor de autenticação. A lógica do plugin é a mesma daquele de um proxy HTTP quando lida com sessões criptografadas. O browser apenas conduz o fluxo de informações entre leitor e servidor sem interagir com as mensagens trocadas, sob o custo de invalidar a mensagem. Como sabemos, uma das formas mais simples e eficientes de se estabelecer essa comunicação segura é o emprego de um protocolo com base em chaves públicas. Note porém que entre o uso desse tipo de protocolo e a afirmação de que a autenticação é feita por uma chave privada do leitor há uma grande distância, especialmente se considerarmos que até mesmo o SSL, um dos mais conhecidos mecanismos que empregam certificados digitais oferecem a capacidade de se autenticar exclusivamente o servidor sem o uso de certificados de propriedade do cliente. Observa ainda que isso se dá sem a necessidade do uso de Next-Generation Secure Computing Base, o que significa que você ainda vai poder comprar músicas online sem se preocupar com mecanismos de DRM - ainda bem!
Não obstante, deve-se tomar extremo cuidado para não se confundir um protocolo criptográfico com um algoritmo criptográfico. Observado de forma purista, nem mesmo o RSA é capaz de resistir à um ataque de man-in-the-middle, sendo justamente por isso que o RSA é normalmente empregado em conjunto com métodos de troca de chaves, tais como PKI, web of trust, etc.
Porém, é importante observar que toda a aplicação desse tipo de mecanismos impacta diretamente no custo das soluções biométricas, muitas vezes inviabilizando sua aplicação em larga escala. Diversos fabricantes ao invés de reinventarem a roda, estão adotando uma estratégia que Fernando até comenta por alto em seus posts: o armazenamento do template biométrico em smart-cards. Porém as soluções não param por aí há até mesmo quem afirme oferecer um smartcard com o próprio sensor biométrico! (detalhe que apesar dessa empresa ter uma pinta de vaporware* as pesquisas nesse sentido continuam bem fortes, incluindo aí um anúncio por parte da Seiko Epson de um sensor com 0.2 milímetros de espessura).
Não é a toa que ao comentar em meu post anterior começo a argumentação com a seguinte frase:"Biometria não é a solução? Talvez não, talvez sim porém...". Ao publicar que "É possível garantir a confiança do equipamento e do procedimento de leitura pela Internet? De forma alguma.", Fernando comete aquilo que ao meu ver é um certo exagero. A situação atual dos dipositivos biométricos e essencialmente uma questão de custos, assim como foi a questão da adoção de smartcards pelas instituições financeiras. Porém considerando-se que a inviabilidade econômica e a tecnológica são fatores distintos, a expansão dos dispositivos biométricos depende mais da redução de custos de fabricação, aquisição e operação do que de qualquer outro.
Entretanto acredito ser adequado fazer mea-culpa e pedir desculpas ao Fernando por não ter sido objetivo no detalhamento do processo biométrico e do detalhamento de minhas idéias, creio que isso poderia ter evitado alguns equívocos por parte dele, tal como quando ele comenta minha observação sobre o erro de senhas. Não era minha idéia adotar as senhas estáticas como padrão de referência acerca da taxa de erros mas adotar uma analogia de forma a chamar a atenção de que o erro de identificação possui impacto menor em uma aplicação sem filas.
Sobre o MythBuster, faço de minhas palavras a de um leitor do Blog: "Os MythBusters fazem TV" e devem ser encarados como tal. Se a idéia é testar os dispositivos biométricos de forma mais séria, creio que é interessante prestar atenção em iniciativas mais sérias acerca do assunto. Em tempos de passaportes biométricos ninguém anda mais preocupado com isso do que o governo, academia e sociedade civil.
Mais uma vez agradeço ao Fernando pelas palavras e tempo dedicado.
* Antes de terminar, uma breve observação sobre o biometric smartcard da BAI: Durante uma pesquisa que fiz alguns anos atrás o website era quase o mesmo de hoje, com essa cara de abandonado e visto que existem muito poucas referências à empresa, eu prefiro utilizar "há quem afirme". Apesar disso existem pelo menos duas patentes acerca de fingerprint smartcards. São elas: US Patent 6325285 e US Patent 7044392
Primeiramente é importante ressaltar que eu não discordo totalmente do Fernando. Compreendo seu ponto de vista mas considero que algumas afirmações dele soaram um tanto binárias, isso é, sem as nuances que a escolha de um fator de autenticação forte exigem. Minha resposta não deve ser compreendida como uma defesa do uso de dispositivos biométricos na autenticação de websites mas um contra ponto à certas afirmações feitas por ele, dito isso, peço aos leitores que procurem não observar essa série de posts como mais uma daquelas "guerras santas tecnológicas". Tenho certeza que o Fernando concorda comigo.
Acerca da réplica dele, gostaria de comentar alguns pontos:
Discordo quando Fernando diz que "Neste caso o leitor na verdade identifica o usuário e se autentica junto ao sistema de segurança usando uma chave privada dentro do leitor. O fator de autenticação no sistema na verdade é a posse pelo usuário da chave privada armazenada dentro do leitor, e não a informação biométrica.", o que pode ser uma questão de semântica é na verdade uma questão de detalhes. Quando afirmo em meu post anterior que "O algoritmo biométrico poderia ser executado apenas no leitor, evitando transferir a imagem da digital para o PC" não é preciso presumir existência de certificados digitais e nem mesmo de criptografia. A execução do algoritmo de biometria no próprio dispositivo de leitura visa evitar que a totalidade da impressão digital seja transferida para algum outro dispositivo de processamento de forma a evitar o armazenamento das informações contidas em uma digital, talvez seja importante observar que um algoritmo de identificação de digitais não restringe-se a uma resposta binária de sim ou não, sendo capaz de prover fragmentos específicos da própria digital, os quais então podem ser transferidos para o serviço de autenticação sem maiores interações por parte do PC.
É importande deixar claro algo que Fernando percebeu em meu post anterior o fato de que "a informação biométrica também está fora do leitor". Para que o modelo comentado em meus dois posts funcione, é fundamental o cadastramento prévio das digitais em um ambiente controlado, o que pode ser visto como uma desvantagem desse tipo de solução. Ainda que conceitualmente faça sentido, em aplicações reais, a maioria dos sistemas empregando certificados digitais possuem uma base que relaciona determinado perfil de usuário à determinado certificado digital.
É natural que o mecanismo apresentado leve um especialista a perguntar, o que ocorre se um software hostil consultar o leitor de forma a obter todas as combinações possíveis de informações da digital de forma a construir um replay attack? A única forma de combater isso é estabelecer um mecanismo de autenticação entre o leitor e o próprio servidor de autenticação, daí a necessidade de um plugin no micro capaz de estabelecer esse canal entre o leitor e o servidor de autenticação. A lógica do plugin é a mesma daquele de um proxy HTTP quando lida com sessões criptografadas. O browser apenas conduz o fluxo de informações entre leitor e servidor sem interagir com as mensagens trocadas, sob o custo de invalidar a mensagem. Como sabemos, uma das formas mais simples e eficientes de se estabelecer essa comunicação segura é o emprego de um protocolo com base em chaves públicas. Note porém que entre o uso desse tipo de protocolo e a afirmação de que a autenticação é feita por uma chave privada do leitor há uma grande distância, especialmente se considerarmos que até mesmo o SSL, um dos mais conhecidos mecanismos que empregam certificados digitais oferecem a capacidade de se autenticar exclusivamente o servidor sem o uso de certificados de propriedade do cliente. Observa ainda que isso se dá sem a necessidade do uso de Next-Generation Secure Computing Base, o que significa que você ainda vai poder comprar músicas online sem se preocupar com mecanismos de DRM - ainda bem!
Não obstante, deve-se tomar extremo cuidado para não se confundir um protocolo criptográfico com um algoritmo criptográfico. Observado de forma purista, nem mesmo o RSA é capaz de resistir à um ataque de man-in-the-middle, sendo justamente por isso que o RSA é normalmente empregado em conjunto com métodos de troca de chaves, tais como PKI, web of trust, etc.
Porém, é importante observar que toda a aplicação desse tipo de mecanismos impacta diretamente no custo das soluções biométricas, muitas vezes inviabilizando sua aplicação em larga escala. Diversos fabricantes ao invés de reinventarem a roda, estão adotando uma estratégia que Fernando até comenta por alto em seus posts: o armazenamento do template biométrico em smart-cards. Porém as soluções não param por aí há até mesmo quem afirme oferecer um smartcard com o próprio sensor biométrico! (detalhe que apesar dessa empresa ter uma pinta de vaporware* as pesquisas nesse sentido continuam bem fortes, incluindo aí um anúncio por parte da Seiko Epson de um sensor com 0.2 milímetros de espessura).
Não é a toa que ao comentar em meu post anterior começo a argumentação com a seguinte frase:"Biometria não é a solução? Talvez não, talvez sim porém...". Ao publicar que "É possível garantir a confiança do equipamento e do procedimento de leitura pela Internet? De forma alguma.", Fernando comete aquilo que ao meu ver é um certo exagero. A situação atual dos dipositivos biométricos e essencialmente uma questão de custos, assim como foi a questão da adoção de smartcards pelas instituições financeiras. Porém considerando-se que a inviabilidade econômica e a tecnológica são fatores distintos, a expansão dos dispositivos biométricos depende mais da redução de custos de fabricação, aquisição e operação do que de qualquer outro.
Entretanto acredito ser adequado fazer mea-culpa e pedir desculpas ao Fernando por não ter sido objetivo no detalhamento do processo biométrico e do detalhamento de minhas idéias, creio que isso poderia ter evitado alguns equívocos por parte dele, tal como quando ele comenta minha observação sobre o erro de senhas. Não era minha idéia adotar as senhas estáticas como padrão de referência acerca da taxa de erros mas adotar uma analogia de forma a chamar a atenção de que o erro de identificação possui impacto menor em uma aplicação sem filas.
Sobre o MythBuster, faço de minhas palavras a de um leitor do Blog: "Os MythBusters fazem TV" e devem ser encarados como tal. Se a idéia é testar os dispositivos biométricos de forma mais séria, creio que é interessante prestar atenção em iniciativas mais sérias acerca do assunto. Em tempos de passaportes biométricos ninguém anda mais preocupado com isso do que o governo, academia e sociedade civil.
Mais uma vez agradeço ao Fernando pelas palavras e tempo dedicado.
* Antes de terminar, uma breve observação sobre o biometric smartcard da BAI: Durante uma pesquisa que fiz alguns anos atrás o website era quase o mesmo de hoje, com essa cara de abandonado e visto que existem muito poucas referências à empresa, eu prefiro utilizar "há quem afirme". Apesar disso existem pelo menos duas patentes acerca de fingerprint smartcards. São elas: US Patent 6325285 e US Patent 7044392
2 Comments:
Bem Fucs acho que chegamos no coração da nossa discordância: eu mantenho que é impossível garantir a integridade e a confidencialidade da comunicação entre o leitor e um servidor na Internet com a plataforma atual dos PCs, enquanto você afirma que isso é possível.
Bem, fico aguardando conhecer um plug-in que faça isso - e mostre que todo o investimento no TCG foi dinheiro jogado no lixo! E mesmo se (ou quando) for possível, ficamos ainda com o problema de como garantir que o procedimento de leitura da informação biométrica foi feita corretamente, estando o usuário no conforto do seu lar.
Para talvez encerrarmos por ora esse debate, recomendo um estudo feito pelo DoT americano sobre o uso de biometria em transações pela Internet - http://www.treas.gov/offices/domestic-finance/financial-institution/cip/biometrics_study.pdf. Eu diria que ele é cautelosamente otimista sobre o futuro, mas bastante cético sobre a tecnologia atual.
Abraços, - Fernando Cima
Caro André,
Você como eu, estamos há mais de 10 anos envolvidos profissionalmente e exclusivamente com segurança. A essa altura discutir a solução tecnológica perfeita de segurança, nem quando estamos bêbados fazemos mais isso. Talvez tenha perdido um pouco a graça por conta dessa maturidade. Mas considerar que uma tecnologia não é "a solução" por não ser a "bala de prata", nos faria todos, desistir de trabalhar com segurança, já que nenhuma até hoje foi, ou será um dia a "bala de prata". Já estou com saudades do tempo que discutíamos quem era melhor, Windows ou Unix. Como éramos bobos! Mas talvez fôssemos mais felizes :-D
Postar um comentário
<< Home