Chaves de criptografia
(a wirelesspt.net suporta e encoraja a utilização de criptografia a todos os seus utilizadores e membros dentro dos limites legais da lei em vigor)
A criptografia, considerada como a ciência e a arte de escrever mensagens em forma cifrada ou em código, é um dos principais mecanismos de segurança que você pode usar para se proteger dos riscos associados ao uso da internet e privacidade pessoal.
A primeira vista pode parecer complicado, mas para usufruir dos benefícios que proporciona não é necessário estudar profundamente e nem ser nenhum matemático experiente. Actualmente, a criptografia já está integrada ou pode ser facilmente adicionada à grande maioria dos sistemas operativos e aplicativos e para a usar, muitas vezes, basta a realização de algumas configurações ou cliques no rato.
Uma chave é um pedaço de informação que controla a operação de um algoritmo de criptografia. Na codificação, uma chave especifica a transformação do texto puro em texto cifrado, ou vice-versa, durante a descodificação. Chaves são também usadas em outros algoritmos criptográficos, tais como esquemas de assinatura digital e funções hash (também conhecidas como MAC), algumas vezes para autenticação.
Para um algoritmo bem projectado, cifrar o mesmo texto mas com uma chave diferente deverá produzir um texto cifrado totalmente diferente. Igualmente, decifrar o texto cifrado com a chave errada deverá produzir um texto aleatório ininteligível. Se a chave de decriptação for perdida, o dado cifrado praticamente não pode ser recuperado pelo mesmo algoritmo de criptografia.
As chaves usadas na criptografia de chave pública pgp têm uma certa estrutura matemática. Por exemplo, as chaves públicas usadas no sistema RSA são o produto de dois números primos. Por isso, sistemas de chave pública pgp requerem chaves maiores do que os sistemas simétricos para um nível equivalente de segurança. 3072bits é o tamanho de chave sugerido para sistemas baseados em fatoração e algoritmos discretos inteiros que visam ter segurança equivalente a da cifra simétrica de 128bits. A criptografia de curva elíptica (CCE) pode permitir chaves de tamanhos menores para uma segurança equivalente, mas estes algoritmos são conhecidos há pouco tempo e, pelas estimativas atuais para a dificuldade de se encontrar suas chaves, eles não devem sobreviver.
Recentemente, uma mensagem codificada usando uma chave de 109bits do algoritmo de curva elíptica foi quebrada por força bruta. A regra actual é usar uma chave de CCE com o dobro da segurança da chave simétrica para o nível desejado. Excepto para o one time pad aleatório, a segurança desses sistemas não foi provada matematicamente. Portanto, um ponto fraco teórico poderia fazer de tudo que você codificou um livro aberto. Esta é uma outra razão para se valorizar a escolha de chaves longas.
Vantagens no uso
- Proteger os dados privados armazenados no seu computador, como o seu arquivo de senhas, arquivos bancários, documentos pessoais
- Criar uma área (partição) específica no seu computador, na qual todas as informações que forem lá gravadas serão automaticamente criptografadas
- Proteger backups contra acesso indevido, principalmente aqueles enviados para áreas de armazenamento externo
- Proteger as comunicações realizadas pela internet, como os emails enviados/recebidos e as transacções bancárias e comerciais realizadas.
Tipo de chaves
De acordo com o tipo de chave usada, os métodos criptográficos podem ser subdivididos em duas grandes categorias: criptografia de chave simétrica e criptografia de chaves assimétricas.
Criptografia de chave simétrica é também chamada de criptografia de chave secreta ou única, utiliza uma mesma chave tanto para codificar como para descodificar informações, sendo usada principalmente para garantir a confidencialidade dos dados. Casos nos quais a informação é codificada e descodificada por uma mesma pessoa não há necessidade de partilha da chave secreta. Entretanto, quando estas operações envolvem pessoas ou equipamentos diferentes, é necessário que a chave secreta seja previamente combinada por meio de um canal de comunicação seguro (para não comprometer a confidencialidade da chave). Exemplos de métodos criptográficos que usam chave simétrica são: AES, Blowfish, RC4, 3DES e IDEA.
Criptografia de chaves assimétricas é também conhecida como criptografia de chave pública, utiliza duas chaves distintas sendo uma pública, que pode ser livremente divulgada, e uma privada, que deve ser mantida em segredo por seu dono. Quando uma informação é codificada com uma das chaves, somente a outra chave do par pode descodificá-la. Qual chave usar para codificar depende da protecção que se deseja, se confidencialidade ou autenticação, integridade e não-repúdio. A chave privada pode ser armazenada de diferentes maneiras, como um arquivo no computador, um smartcard ou um token. Exemplos de métodos criptográficos que usam chaves assimétricas são: RSA, DSA, ECC e Diffie-Hellman.
A criptografia de chave simétrica, quando comparada com a de chaves assimétricas, é a mais indicada para garantir a confidencialidade de grandes volumes de dados, pois seu processamento é mais rápido. Todavia, quando usada para a partilha de informações, torna-se complexa e pouco escalável, em virtude de:
- Necessidade de um canal de comunicação seguro para promover a partilha da chave secreta entre as partes (o que na internet pode ser bastante complicado)
- Dificuldade de administração de grandes quantidades de chaves (imagine quantas chaves secretas seriam necessárias para você se comunicar com todos os seus amigos).
A criptografia de chaves assimétricas, apesar de possuir um processamento mais lento que a de chave simétrica, resolve estes problemas visto que facilita a sua administração (pois não requer que se mantenha uma chave secreta com cada um que desejar se comunicar) e dispensa a necessidade de um canal de comunicação seguro para a partilha de chaves.
Para aproveitar as vantagens de cada um destes métodos, o ideal é o uso combinado de ambos, onde a criptografia de chave simétrica é usada para a codificação da informação e a criptografia de chaves assimétricas é utilizada para a partilha da chave secreta (neste caso, também chamada de chave de sessão). Este uso combinado é o que é utilizado pelos navegadores Web e programas de email. Exemplos de uso deste método combinado são: SSL, PGP e S/MIME.
Resumo hash
Uma função de resumo é um método criptográfico que, quando aplicado sobre uma informação, independente do tamanho que ela tenha, gera um resultado único e de tamanho fixo, chamado hash.
Hash pode ser utilizado para:
- Verificar a integridade de um arquivo armazenado no seu computador ou em seus backups
- Verificar a integridade de um arquivo obtido da internet (alguns sites, além do arquivo em si, também disponibilizam hash correspondente, para que você possa verificar se o arquivo foi correctamente transmitido e gravado)
- Criar assinaturas digitais
Para verificar a integridade de um arquivo, por exemplo, pode-se calcular a hash do mesmo e, quando necessário, criar novamente este valor. Se os dois hashes forem iguais então você pode concluir que o arquivo não foi alterado. Caso contrário, este pode ser um forte indício de que o arquivo esteja corrompido ou que foi modificado. Exemplos de métodos de hash são: SHA-1, SHA-256 e MD5.
A hash é criada de tal forma que não é possível realizar o processamento inverso para se obter a informação original e que qualquer alteração na informação original produzirá uma hash distinta. Apesar de ser teoricamente possível que informações diferentes gerem hashes iguais, a probabilidade disto ocorrer é bastante baixa.
Assinatura digital
A assinatura digital permite comprovar a autenticidade e a integridade de uma informação, ou seja, que ela foi realmente gerada por quem diz ter feito isto e que ela não foi alterada.
A assinatura digital baseia-se no fato de que apenas o dono conhece a chave privada e que, se ela foi usada para codificar uma informação, então apenas seu dono poderia ter feito isto. A verificação da assinatura é feita com o uso da chave pública, pois se o texto foi codificado com a chave privada, somente a chave pública correspondente pode descodificá-lo.
Para contornar a baixa eficiência característica da criptografia de chaves assimétricas, a codificação é feita sobre uma hash e não sobre o conteúdo em si, pois é mais rápido codificar uma hash (que possui tamanho fixo e reduzido) do que a informação toda.
A escolha da chave
Para evitar que uma chave seja adivinhada, as chaves precisam ser geradas aleatoriamente e conterem entropia suficiente. O problema de como gerar seguramente chaves verdadeiramente aleatórias é difícil e tem sido encarado de várias formas por vários sistemas criptográficos. Existe um RFC sobre a geração de aleatoriedade (RFC 1750, Randomness Recommendations for Security - Recomendações de Aleatoriedade para Segurança). Alguns sistemas operacionais incluem ferramentas para "recolher" entropia a partir da medição do tempo de certas operações imprevisíveis como os movimentos da cabeça do drive de disco. Para a produção de pequenas quantidades de material, um dado comum é uma boa fonte de aleatoriedade de alta qualidade.
Quando uma senha é usada como chave de codificação, os sistemas de criptografia bem projectados primeiro usam um algoritmo de derivação da chave, que adiciona um "sal" (salt) e o reduz ou o expande para o tamanho de chave desejado, por exemplo, através da redução de uma frase longa a um valor de 128bits apropriado para o uso em um bloco cifrado.
Certificado digital
Como dito anteriormente, a chave púbica pode ser livremente divulgada. Entretanto, se não houver como comprovar a quem ela pertence, pode ocorrer de você se comunicar, de forma cifrada, directamente com um impostor.
Um impostor pode criar uma chave pública falsa para um amigo seu e enviá-la para si ou disponibilizá-la num repositório. Ao usá-la para codificar uma informação para o seu amigo, você estará, na verdade, codificando-a para o impostor, que possui a chave privada correspondente e conseguirá descodificar. Uma das formas de impedir que isto ocorra é pelo uso de certificados digitais.
O certificado digital é um registo electrónico composto por um conjunto de dados que distingue uma entidade que associa à mesma uma chave pública. Pode ser emitido para pessoas, empresas, equipamentos ou serviços na rede (por exemplo, uma página web) e pode ser homologado para diferentes usos, como confidencialidade e assinatura digital.
Um certificado digital pode ser comparado a um documento de identidade, por exemplo, o seu passaporte, no qual constam os seus dados pessoais e a identificação de quem o emitiu. No caso do passaporte, a entidade responsável pela emissão e pela veracidade dos dados é o governo No caso do certificado digital esta entidade é uma Autoridade Certificadora (AC).
Uma AC emissora é também responsável por publicar informações sobre certificados que não são mais confiáveis. Sempre que a AC descobre ou é informada que um certificado não é mais confiável, ela o inclui em uma "lista negra", chamada de "Lista de Certificados Revogados" (LCR) para que os utilizadores possam tomar conhecimento. A LCR é um arquivo electrónico publicado periodicamente pela AC, contendo o número de série dos certificados que não são mais válidos e a data de revogação.
De forma geral, os dados básicos que compõem um certificado digital são:
- Versão e número de série do certificado;
- Dados que identificam a AC que emitiu o certificado;
- Dados que identificam o dono do certificado (para quem ele foi emitido);
- Chave pública do dono do certificado;
- Validade do certificado (quando foi emitido e até quando é válido);
- Assinatura digital da AC emissora e dados para verificação da assinatura.
Tipos de certificado digital
- Certificado auto-assinado: é aquele no qual o dono e o emissor são a mesma entidade. Costuma ser usado de duas formas:
- Legítima: além das ACs raízes, certificados auto assinados também costumam ser usados por instituições de ensino e pequenos grupos que querem prover confidencialidade e integridade nas ligações, mas que não desejam (ou não podem) arcar com o custo económico de adquirir um certificado digital validado por uma AC comercial.
- Maliciosa: um atacante pode criar um certificado auto assinado e utilizar, por exemplo, mensagens de phishing, para induzir os utilizadores a instalá-lo. A partir do momento em que o certificado for instalado no navegador, passa a ser possível estabelecer ligações cifradas com sites fraudulentos, sem que o navegador emita alertas quanto à confiabilidade do certificado.
- Certificado EV SSL (Extended Validation Secure Socket Layer):
Certificado emitido sob um processo mais rigoroso de validação do solicitante. Inclui a verificação de que a empresa foi legalmente registada, encontra-se activa e que detém o registo do domínio para o qual o certificado será emitido, além de dados adicionais, como o endereço físico
Programas de criptografia
Para garantir a segurança das suas mensagens é importante usar software de email com suporte nativo a criptografia (por exemplo, que implementam S/MIME - Secure/Multipurpose Internet Mail Extensions) ou que permitam a integração de outros programas e complementos específicos para este fim.
Programas de criptografia, como o GnuPG além de poderem ser integrados em software de email, também podem ser usados separadamente para cifrar outros tipos de informação, como os arquivos armazenados no computador ou em armazenamento removível.
Existem também programas (nativos do sistema operativo ou adquiridos separadamente) que permitem cifrar todo o disco do computador, directórios de arquivos e dispositivos de armazenamento externo (como pen-drives e discos), os quais visam preservar o sigilo das informações em caso de perda ou furto do equipamento.
Cuidados a ter
Proteja seus dados
- Utilize criptografia sempre que, ao enviar uma mensagem, quiser assegurar-se que somente o destinatário possa lê-la
- Utilize assinaturas digitais sempre que, ao enviar uma mensagem, quiser assegurar ao destinatário que foi você quem a enviou e que o conteúdo não foi alterado
- Só envie dados sensíveis após certificar-se de que está usando uma ligação segura
- Utilize criptografia para a ligação entre seu leitor de email e os servidores de email do seu ISP
- Cifre o disco do seu computador e dispositivos removíveis, como disco externo e pen-drive. Desta forma, em caso de perda ou furto do equipamento, seus dados não poderão ser indevidamente lidos
- Verifique a hash, quando possível, dos arquivos obtidos pela internet (isto permite que você detecte arquivos corrompidos ou que foram indevidamente alterados durante a transmissão).
Seja cuidadoso com as suas chaves e certificados
- Utilize chaves de tamanho adequado. Quanto maior a chave, mais resistente ela será a ataques de força bruta
- Não utilize chaves secretas óbvias
- Certifique-se de não estar sendo observado ao digitar suas chaves e senhas de protecção
- Utilize canais de comunicação seguros quando compartilhar chaves secretas
- Armazene suas chaves privadas com algum mecanismo de protecção, como por exemplo senha, para evitar que outra pessoa faça uso indevido delas
- Preserve suas chaves. Procure fazer backups e mantenha-os em local seguro (se perder uma chave secreta ou privada, não poderá decifrar as mensagens que dependiam de tais chaves
- Tenha muito cuidado ao armazenar e utilizar as chaves em computadores potencialmente infectados ou comprometidos, como em LAN houses, cybercafes, stands de eventos, etc
- Se suspeitar que outra pessoa teve acesso à sua chave privada como por exemplo, porque perdeu o dispositivo em que ela estava armazenada ou porque alguém acedeu indevidamente ao computador onde ela estava guardada), solicite imediatamente a revogação do certificado junto à AC emissora.
Seja cuidadoso ao aceitar um certificado digital
- Mantenha seu sistema operativo e navegadores web actualizados (além disto contribuir para a segurança geral do seu computador, também serve para manter as cadeias de certificados sempre actualizadas);
- Mantenha o seu computador com a data correta. Além de outros benefícios, isto impede que certificados válidos sejam considerados não confiáveis e, de forma contrária, que certificados não confiáveis sejam considerados válidos
- Ao aceder um site Web, observe os símbolos indicativos de ligação segura e leia com atenção eventuais alertas exibidos pelo navegador
- Caso o navegador não reconheça o certificado como confiável, apenas prossiga com a navegação se tiver certeza da idoneidade da instituição ou pessoa e da integridade do certificado, pois, do contrário, poderá estar aceitando um certificado falso, criado especificamente para cometer fraudes.
Ver ainda
- Privacidade
- Certificados de criptografia
- Chave pública pgp (OpenPGP)
- Chave pública ssh (OpenSSH)
- Configurar e instalar chaves ssh no firmware