Entendendo a Criptografia: Segurança na Internet

Classificado em Computação

Escrito em em português com um tamanho de 15,79 KB

Considerada como a ciência e a arte de escrever mensagens em forma cifrada ou em código, a criptografia é um dos principais mecanismos de segurança que pode ser utilizado para se proteger dos riscos associados ao uso da internet.

Criptografia
A primeira vista, ela até pode parecer complicada; porém, para usufruir dos benefícios que proporciona, você não precisa estudá-la profundamente e nem ser nenhum matemático experiente. Atualmente, a criptografia já está integrada ou pode ser facilmente adicionada à grande maioria dos sistemas operacionais e aplicativos. Para utilizá-la, muitas vezes, basta a realização de algumas configurações ou cliques de mouse.

Com a criptografia é possível:
Proteger os dados sigilosos armazenados em seu computador, como o seu arquivo de senhas e a sua declaração de imposto de renda;
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 seus backups contra acesso indevido, principalmente aqueles enviados para áreas de armazenamento externo de mídias;
Proteger as comunicações realizadas pela internet, como os e-mails enviados/recebidos e as transações bancárias e comerciais realizadas.

Termos empregados em criptografia e comunicações via internet
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
Utiliza a mesma chave tanto para codificar quanto para decodificar. É utilizada principalmente para garantir a confidencialidade dos dados, também chamada de criptografia de chave secreta ou única.

Nos casos em que a informação é codificada e decodificada por uma mesma pessoa, não há necessidade de compartilhamento da chave secreta. Entretanto, quando essas 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
IDEA

Criptografia de chaves assimétricas
Utiliza duas chaves distintas: uma pública, que pode ser livremente divulgada, e uma privada, que deve ser mantida em segredo por seu dono. Também conhecida como criptografia de chave pública, quando a informação é codificada com uma das chaves, somente a outra chave do par pode decodificá-la. Qual chave usar para codificar depende da proteção que se deseja (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
DAS
ECC
Diffie-Hellman

Comparação entre criptografia de chave simétrica e assimétrica
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. Seu processamento é mais rápido; todavia, quando usada para o compartilhamento de informações, se torna complexa e pouco escalável.

Isso se deve à necessidade de um canal de comunicação seguro para promover o compartilhamento da chave secreta entre as partes (o que na internet pode ser bastante complicado) e à dificuldade de gerenciamento 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 resolve esses problemas, visto que facilita o gerenciamento, 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 o compartilhamento de chaves.

Apesar de possuir um processamento mais lento que a de chave simétrica, para aproveitar as vantagens de cada um desses 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 o compartilhamento da chave secreta, neste caso, também chamada de chave de sessão.

Esse uso combinado é o que é utilizado pelos navegadores web e programas leitores de e-mails. Exemplos de uso deste método combinado são:
SSL
PGP
S/MIME

Função de resumo e hash
A 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. O hash é gerado de tal forma que não é possível realizar o processamento inverso para se obter a informação original. Qualquer alteração na informação original produzirá um hash distinto.

Apesar de ser teoricamente possível que informações diferentes gerem hashes iguais, a probabilidade disto ocorrer é bastante baixa.

O hash pode ser utilizado para:
Verificar a integridade de um arquivo armazenado em 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 o hash correspondente, para que você possa verificar se o arquivo foi corretamente transmitido e gravado);
Gerar assinaturas digitais.

Para verificar a integridade de um arquivo, por exemplo, você pode calcular o hash dele e, quando julgar necessário, gerar 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
MD5

Assinatura digital
A assinatura digital permite comprovar a autenticidade e a integridade de uma informação. A informação foi realmente gerada por quem diz ter feito isso e não foi alterada. 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 isso.

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 decodificá-lo. Para contornar a baixa eficiência característica da criptografia de chaves assimétricas, a codificação é feita sobre o hash e não sobre o conteúdo em si. É mais rápido codificar o hash (que possui tamanho fixo e reduzido) do que a informação toda.

Certificado digital
Como dito anteriormente, a chave pública pode ser livremente divulgada. Entretanto, se não houver como comprovar a quem ela pertence, pode ocorrer de você se comunicar, de forma cifrada, diretamente com um impostor. Um impostor pode criar uma chave pública falsa para um amigo seu e enviá-la para você ou disponibilizá-la em um 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á decodificá-la.

Uma das formas de impedir que isso ocorra é pelo uso de certificados digitais. O certificado digital é um registro eletrônico composto por um conjunto de dados que distingue uma entidade e associa a ela uma chave pública. Ele pode ser emitido para pessoas, empresas, equipamentos ou serviços na rede (por exemplo, um site web) e pode ser homologado para diferentes usos, como confidencialidade e assinatura digital.

Um certificado digital pode ser comparado a um documento de identidade. 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 é a polícia federal. 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 usuários possam tomar conhecimento.

A LCR é um arquivo eletrô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.

Como os certificados digitais são apresentados nos navegadores web
Embora os campos apresentados sejam padronizados, a representação gráfica pode variar entre diferentes navegadores e sistemas operacionais. O certificado digital de uma AC é emitido, geralmente, por outra AC, estabelecendo uma hierarquia conhecida como "cadeia de certificados" ou "caminho de certificação". A AC raiz é a primeira autoridade da cadeia e a âncora de confiança para toda a hierarquia. Por não existir outra AC acima dela, possui um certificado autoassinado.

Os certificados das ACs raízes publicamente reconhecidas já vêm inclusos, por padrão, em grande parte dos sistemas operacionais e navegadores e são atualizados juntamente com os próprios sistemas.

Exemplos de atualizações realizadas na base de certificados dos navegadores:
Inclusão de novas ACs;
Renovação de certificados vencidos;
Exclusão de ACs não mais confiáveis.

Tipos especiais de certificado digital
Certificado autoassinado: é 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 autoassinados também costumam ser usados por instituições de ensino e pequenos grupos que querem prover confidencialidade e integridade nas conexões, mas que não desejam (ou não podem) arcar com o ônus de adquirir um certificado digital validado por uma AC comercial.

Maliciosa: Um atacante pode criar um certificado autoassinado e utilizar, por exemplo, mensagens de phishing para induzir os usuários a instalá-lo. A partir do momento em que o certificado for instalado no navegador, passa a ser possível estabelecer conexõ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 registrada, encontra-se ativa e que detém o registro 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 programas leitores de e-mails com suporte nativo à criptografia, por exemplo, que implementam S/MIME - Secure/Multipurpose Internet Mail Extensions. Caso não possuam suporte, ao menos permitam a integração de outros programas e complementos específicos para este fim.

Programas de criptografia podem ser integrados aos programas leitores de e-mails ou podem ser usados separadamente para cifrar outros tipos de informação, como os arquivos armazenados em seu computador ou em mídias removíveis. Exemplo: GnuPG. O GnuPG não utiliza o conceito de certificados digitais emitidos por uma hierarquia de autoridades certificadoras. A confiança nas chaves é estabelecida por meio do modelo conhecido como "rede de confiança", no qual prevalece a confiança entre cada entidade.

Existem também programas (nativos do sistema operacional ou adquiridos separadamente) que permitem cifrar todo o disco do computador, diretórios de arquivos e dispositivos de armazenamento externo (como pen-drives e discos) visando preservar o sigilo das informações em caso de perda ou furto do equipamento.

Cuidados a serem tomados
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 conexão segura;
Utilize criptografia para conexão entre seu leitor de e-mails e os servidores de e-mail do seu provedor.

Proteja seus dados:
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 acessados;
Verifique o 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 proteção;
Utilize canais de comunicação seguros ao compartilhar chaves secretas.

Seja cuidadoso com as suas chaves e certificados:
Armazene suas chaves privadas com algum mecanismo de proteçã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 você perder uma chave secreta ou privada, não poderá decifrar as mensagens que dependiam de tais chaves);
Tenha muito cuidado ao armazenar e utilizar suas chaves em computadores potencialmente infectados ou comprometidos, como em lan houses, cybercafés, stands de eventos, etc.;
Se suspeitar que outra pessoa teve acesso à sua chave privada (por exemplo, porque perdeu o dispositivo em que ela estava armazenada ou porque alguém acessou indevidamente o 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 operacional e navegadores web atualizados (além disto contribuir para a segurança geral do seu computador, também serve para manter as cadeias de certificados sempre atualizadas);
Mantenha 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 acessar um site web, observe os símbolos indicativos de conexã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 e da integridade do certificado, pois, do contrário, poderá estar aceitando um certificado falso, criado especificamente para cometer fraudes.

Entradas relacionadas: