Assinatura Digital
No dia-a-dia a veracidade de um documento se dá a assinatura que está presente nele, somente assim ele pode ser levado em conta legalmente.
Com a Internet cada vez mais presente em nosso dia-a-dia, encontramos um problema: Como dar veracidade e autenticidade à um documento enviado pela web ?
É por essas e outras razões que a assinatura digital foi criada. Apesar de não ser 100% segura, a probabilidade de haver uma falsificação da mesma pode ser comparada à de alguém falsificar sua assinatura no papel. Para quebrá-la por força bruta, é necessário um poder computacional inimaginável, já que os algoritmos de criptografia estão ficando cada vez mais complexos e as chaves geradas pelos mesmos, cada vez maiores.
2. História da Criptografia |
Desenvolvida por Arthur Scherbius em 1918, a Enigma levantou um grande interesse por parte da marinha de guerra alemã em 1926, quando passou a ser usado como seu principal meio de comunicação e ficaram conhecidas como Funkschlüssel C.
Em 1928, o exército elaborou sua própria versão, a Enigma G, e passou a ser usado por todo o exército alemão, tendo suas chaves trocadas mensalmente.
A máquina era elétrico-mecânica e funcionava com rotores (primeiramente com 3 e depois com até 8 rotores). Ao pressionar uma tecla, o rotor mais da esquerda avançava uma posição, o que ocasionava a rotação dos outros rotores da direita. Esse movimento contínuo dos rotores ocasionava em diferentes combinações na encriptação.
A codificação de uma mensagem criptografada pela Enigma era considerada impossível na época (já que para tal, seria necessário uma alta força bruta computacional).
A título de curiosidade, os Aliados só conseguiram decifrar os códigos da Enigma graças ao roubo de uma dessas máquinas, e que com graças à engenharia reversa, foram construídas máquinas capazes de ler e codificar os códigos alemães, os Colossus.
A Enigma acabou por gerar diversos descendentes, tais como a Typex, a SIGABA e a M- 134-C, que apesar de serem semelhantes à Enigma em seus princípios básicos, eram muito mais seguras.
A criptografia passou a ser usada em larga escala por todas as ações, principalmente em épocas de guerra, tal como durante a Guerra Fria, onde Estados Unidos e União Soviética usaram esses métodos a fim de esconder do inimigo suas ações e movimentações, criptografando-as e impedindo que outros que não possuíssem a chave pudessem ler, forçando-os a usar diversos métodos para quebrar os códigos de criptografia.
Depois disso surgiram diversos tipos de criptografia, tais como a por chave simétrica, por chave assimétrica e por hash (podemos citar ainda a criptografia quântica, que ainda está em fase de testes).
4. Funcionamento da Assinatura Digital |
O processo de criação de uma assinatura digital, consiste em:
- Aplicar uma função hash sobre a menssagem que se deseja assinar;
- Usando uma chave privada, encriptar o valor hash;
O resultado será uma mensagem assinada digitalmente. Em seguida, o emissor deve encaminhar a mensagem, junto com a chave pública. O receptor, por sua vez, deverá usar esta chave para descriptografar a assinatura. Se o resultado obtido for igual ao valor hash da mensagem recebida, significa que aquela assinatura é válida, e que a mensagem não sofreu nenhuma alteração ao longo da transmissão.
É importante notar que, assinar um mensagem é diferente de criptografá-la. O objetivo da criptografia é esconder o conteúdo, para que este não esteja acessível a terceiros. Já a assinatura digital visa garantir a autoria do documento, e que a mensagem não tenha sido modificada durante sua transmissão.
| |||||
Este algoritmo é baseado no algoritmo RSA de criptografia. Seu funcionamento pode ser expresso pela fórmula: S = SigPrim (private key, Transform (Hash (M))) Ou seja, aplicando uma primitiva de assinatura sobre a chave privada e uma transformação do valor hash da mensagem, é gerada a assinatura. Esta transformação em geral representa um sistema de “padding”(enchimento). S = [(EM)^d] mod n Sistemas de Enchimento Um Exemplo Funcional
Este algoritmo permite confirmar a autenticidade de uma mensagem enviada, mesmo que tenha sido enviada em um canal não seguro, além de fazer uso do problema de logaritmo de algoritmo discreto. Geração das Chaves Encriptação Desencriptação Um Exemplo Funcional |
6. Possibilidades de Fraude |
Violação da chave privada
Como o sistema de assinatura digital se baseia numa criptografia de chaves assimétricas, uma das possibilidades de fraude seria o roubo da chave privada. Normalmente, esta chave fica guardada no computador pessoal do usuário. Portanto, a segurança da assinatura dependerá da segurança deste computador.
Uma das opções para tornar a chave privada mais difícil de ser roubada é o uso de smart cards. Esses cartões são capazes de armazenar a chave privada do usuário, e assinar digitalmente qualquer documento. A grande vantagem é que não há como ler a chave privada armazenada em um smart card. O chip do cartão é que faz o processo de criptografia dos dados, fazendo com que o computador usado pelo usuário não tenha acesso à sua chave privada, apenas à mensagem já assinada.
SmartCard
Leitores de SmartCard
Retirado do site Club Do Hardware
Existe ainda o eToken da Aladdin, que é basicamente igual ao SmartCard. É uma chave que é ligada ao USB do computador e que contêm o mesmo chip encontrado no SmartCard., ou seja, é um SmartCard USB. Sua vantagem perante o SmartCard ? Compare o número de computadores que possuem leitor de cartões e o número de computadores que possuem porta USB, aí está a sua resposta.
Distribuição da chave pública
Como em todo tipo de criptografia com chave assimétrica, a segurança da divulgação da chave pública é muito importante. Caso contrário, uma pessoa pode distribuir chaves públicas em nome de outras pessoas. Por exemplo:
Digamos que um atacante deseje transmitir uma mensagem em nome de uma pessoa A. Ele cria uma chave pública e a distribui, como se esta fosse a chave pública de A. Em seguida, ele pode encriptar qualquer mensagem usado sua chave privada, assinar digitalmente o documento e enviá-lo para um destinário B. B verificará a assinatura e não encontrará fraude. Para previnir este tipo de ataque, é necessário que haja uma ICP (Infra-estrutura de Chaves Públicas) ou, em inglês, PKI (Public Key Infrastructure).
As ICPs garantem a autenticidade das chaves públicas. No Brasil, a ICP-Brasil controla seis Autoridades Certificadoras*: a Presidência da República, a Receita Federal, o SERPRO, a Caixa Econômica Federal, a Serasa e a CertiSign.
* Autoridades Certificadoras são órgãos responsáveis pela emissão de Certificados Digitais**.
** Certificados Digitais são documentos que contém a chave pública de um usuário e os dados necessários para garantir sua identidade.
Timing Attacks
Outra possibilidade de descoberta da chave privada é quando o atacante conhece muito bem o hardware do usuário que assina uma mensagem digitalmente e é capaz de interceptar as mensagens assinadas por este. Se o atacante tiver conhecimento do tempo de encriptação(assinatura) de diversas mensagens, é possível que ele descubra a chave privada do usuário. Em geral, esse tipo de ataque era usado contra smart cards, no entanto Dan Boneh e David Brumley mostraram que é possível descobrir a chave privada de um servidor de uma rede local, com segurança baseado em OpenSSL, o que foi publicado no artigo Remote Timing Attacks are Practical (2003).
Uma forma de evitar timing attacks é garantir que o processo de encriptação seja feito sempre em tempo constante, para qualquer texto que seja assinado, apesar de acarretar uma perda de eficiência.
7. O Futuro |
Diferentemente da criptografia atual, que tem a Matemática como seu pilar central, a Criptografia Quântica se utiliza da Física. Suas principais características são:
- Não necessidade de um segredo nem contato prévio entre as partes;
- Detecção de intrusos tentando interceptar o envio das chaves;
- Segura, mesmo perante a um poder computacional ilimitado.
8. Perguntas |
O objetivo da criptografia é esconder o conteúdo, para que este não esteja acessível a terceiros. Já a assinatura digital visa garantir a autoria do documento, e que a mensagem não tenha sido modificada durante sua transmissão.
Como é possível detectar se uma mensagem assinada digitalmente sofreu modifições?
Verificando se o valor hash da mensagem é igual ao valor obtido pela descriptação da assinatura, usando a chave pública do emissor.
Qual a difença entre asssinatura digital e certificado digital?
Assinatura digital é o método de autenticação de uma informação digital. Certificado Digital é um documento que contém a chave pública de uma pessoa (física ou jurídica) e os dados necessários para garantir sua identidade.
Qual a importância das ICPs?
As ICPs são importãntes para controlar a distribuição das chaves públicas, evitando fraudes. A ICP de um país controla as suas Autoridades Certificadoras, órgãos responsáveis pela emissão de Certificados Digitais.
Porque Chave Simetrica não poderia ser usada para assinatura digital?
Pois uma assinatura digital visa garantir a autoria de uma mensagem, e portanto a chave usada para a assinatura deve estar nas mão de uma única pessoa: o emissor que assina gitalmente a mensagem. Como na criptografia por chaves simétricas é necessário que emissor e receptor sempre possuam a mesma chave, ela não se torna apropriada para fins de autentificação.
9. Bibliografia |
ASPECTOS TECNICOS, PRATICOS E LEGAIS, 1ª Edição, editora AXCEL BOOKS.
Comentários