Como funciona a criptografia
por Jeff Tyson - traduzido por HowStuffWorks Brasil
Introdução
O surpreendente crescimento da Internet agitou empresas e consumidores com sua promessa de mudar a maneira que vivemos e trabalhamos. Mas a maior preocupação ainda remete-se a sua segurança, especialmente quando envolve o envio de informações sigilosas. Convenhamos, há sempre várias informações que não gostaríamos que outras pessoas soubessem, tais como:- informações do cartão de crédito
- CPF
- correspondência privada
- detalhes pessoais
- informações sigilosas sobre a empresa
- informações sobre a conta bancária
![]() O comércio eletrônico confia na capacidade de enviar informações com segurança |
Neste artigo, você aprenderá sobre a criptografia e a autenticação. Aprenderá também sobre os sistemas de chave pública e chave simétrica, bem como os algoritmos de espalhamento.
Sistemas de criptografia
A criptografia não é algo novo - a novidade é sua aplicação em computadores. Antes da era digital, os maiores usuários da criptografia eram os governos, particularmente para finalidades militares. A existência de mensagens codificadas foi verificada desde a época do Império Romano. Mas a maior parte da criptografia utilizada hoje se baseia em computadores, simplesmente porque um código baseado em seres humanos é muito fácil de ser decodificado por um computador. A maioria dos sistemas de criptografia de computadores pertence a uma destas categorias:- criptografia de chave simétrica
- criptografia de chave pública
Chave simétrica
Na criptografia de chave simétrica, cada computador possui uma chave secreta (código) que ele pode utilizar para criptografar um pacote de informações antes que ele seja enviado pela rede a um outro computador. A chave simétrica exige que você saiba quais computadores irão se comunicar, de forma que seja possível instalar a chave em cada um deles. A criptografia de chave simétrica é basicamente o mesmo que um código secreto que cada um dos computadores precisa saber a fim de decodificar as informações. O código fornece a chave para decodificar a mensagem. Pense assim: você cria uma mensagem codificada para enviar a um amigo, nela cada letra é substituída pela letra que está duas posições abaixo no alfabeto. Assim, "A" se torna "C," e "B" se torna "D". Você já informou ao seu amigo de confiança que o código é "deslocamento em 2 posições". Seu amigo recebe a mensagem e a decodifica. Qualquer outra pessoa que olhar esta mensagem verá somente um emaranhado de letras sem sentido.Chave pública
A criptografia de chave pública utiliza a combinação de uma chave privada e uma chave pública. A chave privada só é conhecida pelo seu computador, enquanto que a chave pública é dada por seu computador a todo computador que queira comunicar-se de forma segura com ele. Para decodificar uma mensagem criptografada, um computador deve usar a chave pública, fornecida pelo computador de origem, e sua própria chave privada. Uma utilidade bem popular de criptografia de chave pública é chamada de Pretty Good Privacy (PGP - “ótima privacidade”) e permite que você criptografe quase qualquer coisa. Você pode saber mais a respeito no site da PGP (em inglês).O computador emissor criptografa o documento com uma chave simétrica e em seguida criptografa a chave simétrica com a chave pública do computador receptor. O computador receptor usa sua chave privada para decodificar a chave simétrica e então a usa para decodificar o documento.
Chave pública: SSL
Uma implementação popular da criptografia de chave-pública é o Secure Sockets Layer (SSL). Originalmente desenvolvida pela Netscape, o SSL é um protocolo de segurança utilizado por navegadores de Internet e servidores web para transmitir informações sigilosas. O SSL tornou-se parte de um protocolo geral de segurança conhecido como Transport Layer Security (TLS).![]() Procure pelo "s" após o "http" no endereço sempre que estiver prestes a enviar informações sigilosas, como o número do cartão de crédito, em um formulário na internet. |
![]() O símbolo do cadeado avisa que você está utilizando criptografia |
Algoritmos de espalhamento
A chave, na criptografia de chave pública, é baseada em um hash value. Esse é um valor que é calculado a partir de um número de entrada baixo utilizando um algoritmo de espalhamento. Basicamente, esse valor é um sumário dos valores de origem. O importante sobre esses hash value é que se torne quase impossível derivar o número original de entrada sem conhecer os dados utilizados para criá-lo.| Número de entrada | Algoritmo de espalhamento | Hash value |
| 10.667 | # input x 143 | 1.525.381 |
As chaves públicas geralmente utilizam algoritmos complexos e hash value muito grandes para criptografia, incluindo números de 40 bits ou até mesmo de 128 bits. Um número de 128 bits possui cerca de 2128 combinações ou (3.402.823.669.209.384.634.633.746.074. 300.000.000.000.000.000.000.000.000.000.000.000.000) diferentes combinações possíveis. Isso seria como tentar encontrar um específico grão de areia no Deserto do Saara.
Autenticação
Como apontado anteriormente, a criptografia é o processo que codifica todos os dados que um computador está enviando a outro, de tal forma que somente o outro computador possa decodificá-lo. Um outro processo, a autenticação, é utilizado para verificar que as informações são originárias de uma fonte confiável. Basicamente, se a informação for "autêntica", você sabe quem a criou e que ela não foi alterada de nenhuma forma desde que a pessoa a criou. Esses dois processos, criptografia e autenticação, funcionam juntos de maneira a criar um ambiente seguro. Há diversas maneiras de autenticar uma pessoa ou uma informação em um computador:- Senha - a utilização de um nome de usuário e de uma senha representa a maneira mais comum de autenticação. Você digita seu nome e sua senha quando solicitado pelo computador. Ele os compara a um arquivo seguro para confirmação. Caso o nome ou a senha não sejam compatíveis, você não obtém o acesso.
- Cartões de acesso - esses sistemas podem variar de um simples cartão com uma tira magnética, similar a um cartão de crédito, aos sofisticados smart cards (cartões inteligentes) que possuem um chip de computador embutido.
- Assinaturas digitais - uma assinatura digital é basicamente uma maneira de se assegurar que um documento eletrônico (e-mail, planilha eletrônica, arquivo de texto) seja autêntico. O Digital Signature Standard (DSS) - é baseado em um tipo de método de criptografia de chave pública que utiliza o Digital Signature Algorithm (DAS). O DSS é o formato para assinaturas digitais que foi endossado pelo governo americano. O algoritmo DSA consiste de uma chave privada, conhecida apenas pelo emissor do documento (o signatário), e uma chave pública que tem quatro partes. Se qualquer coisa estiver alterada no documento depois que a assinatura digital for anexada a ele, o valor, ao qual a assinatura digital faz a comparação, é alterado, resultando assim em uma assinatura inválida.
- leitura de impressão digital
- leitura de retina
- leitura facial
- identificação de voz
Verificando a integridade de dados
Uma outra necessidade de segurança em informática é assegurar-se de que os dados não foram corrompidos durante a transmissão ou a criptografia. Existem duas maneiras mais usuais de se fazer isso:- Checksum (valor de verificação) - provavelmente um dos métodos mais antigos de se assegurar de que os dados estão corretos. O checksum fornece também uma forma de autenticação, já que um checksum inválido sugere que os dados foram comprometidos de alguma forma. Um checksum pode ser determinado de duas maneiras. Digamos que checksum de um pacote possui 1 byte. Um byte é composto de 8 bits e cada bit pode estar em dois estados, levando a um total de 256 (28 ) combinações possíveis. Como a primeira combinação é igual a zero, um byte pode ter um valor máximo de 255.
- se a soma dos outros bytes no pacote a ser verificado for menor ou igual a 255, então o checksum contém aquele valor exato
- se a soma dos outros bytes for maior que 255, então o checksum é o restante do valor total após ter sido dividido por 256
| Byte 1 | Byte 2 | Byte 3 | Byte 4 | Byte 5 | Byte 6 | Byte 7 | Byte 8 | Total | Checksum |
| 212 | 232 | 54 | 135 | 244 | 15 | 179 | 80 | 1.151 | 127 |
- 1.151 / 256 = 4,496 (arredondando-se para 4)
- 4 x 256 = 1.024
- 1.151 - 1.024 = 127
- Cyclic Redundancy Check (CRC) - os CRCs possuem uma concepção semelhante ao checksum, mas utilizam a divisão polinomial para determinar o valor do CRC, que geralmente é de 16 ou 32 bits. A vantagem do CRC é que ele é muito preciso. Se um único bit estiver incorreto, o valor do CRC estará correto. Tanto o checksum quanto o CRC são bons para prevenir erros esporádicos na transmissão, mas fornecem pouca proteção a um ataque intencional aos seus dados. As técnicas de criptografia de chaves simétricas e chaves públicas são muito mais seguras.
Para mais informações sobre encriptação e tópicos relacionados, confira os links na página seguinte.



Nenhum comentário:
Postar um comentário