A criptografia SSL usa a criptografia de chaves públicas, que requer chaves assimétricas para criptografar e descriptografar dados enviados entre um servidor e um cliente, normalmente um site e um navegador ou um servidor de e-mail e um cliente de e-mail, como o Outlook.
A história do SSL, ou Secure Sockets Layer, está intimamente ligada à história da Internet. Na verdade, a primeira versão viável do SSL foi lançada como SSL 2.0, em 1995, pelo navegador Netscape, e atualizada para o SSL 3.0 em 1999 antes de ser descontinuado devido a inúmeras vulnerabilidades. Ele foi substituído pelo TLS, ou Transport Layer Security, que agora é considerado uma versão mais segura do SSL. No entanto, muitas pessoas ainda se referem ao TLS (o protocolo de segurança de Internet em uso hoje) como SSL, e muitas vezes os termos são usados de forma equivalente.
Saiba mais sobre a evolução da criptografia TLS/SSL aqui.
A criptografia TLS/SSL é mais usada para proteger sites na Internet; com ela, a indicação de HTTPS é exibida na barra de endereço do navegador. A criptografia TLS/SSL também protege informações confidenciais, como números de cartão de crédito, CPFs e credenciais de login, durante sua transmissão. Para estabelecer essa conexão, o navegador e o servidor precisam de um certificado digital, conhecido também como certificado TLS/SSL.
A tecnologia por trás da criptografia TLS/SSL inclui chaves simétricas e assimétricas. As chaves públicas usam diferentes tipos de algoritmos, como RSA e Criptografia de curva elíptica (ECC), o que torna quase impossível violá-las.
A criptografia assimétrica, também conhecida como criptografia de chave pública ou criptografia SSL, usa duas chaves separadas para criptografia e descriptografia. Com a criptografia assimétrica, qualquer pessoa pode usar a chave pública para criptografar uma mensagem. No entanto, as chaves de criptografia permanecem privadas. Assim, apenas o destinatário desejado pode descriptografar a mensagem.
O algoritmo de criptografia assimétrica mais comum é o RSA. RSA significa Ron Rivest, Adi Shamir e Leonard Adleman — os homens que usaram o algoritmo publicamente pela primeira vez, em 1977. Chaves assimétricas normalmente têm 1024 ou 2048 bits. Chaves com menos de 2048 bits, porém, não são mais consideradas seguras. As chaves de 2048 bits têm inúmeros códigos de criptografia únicos, com 617 dígitos em uso.
Embora seja possível criar chaves mais longas, a carga computacional aumenta tanto que é raro usar chaves com mais de 2048 bits. Por exemplo, um computador comum precisaria de mais de 14 bilhões de anos para violar um certificado de 2048 bits.
A criptografia simétrica (ou criptografia de chaves pré-compartilhadas) usa uma única chave para criptografar e descriptografar dados. O remetente e o destinatário precisam ter a mesma chave para se comunicarem. Chaves simétricas normalmente têm 128 ou 256 bits; quanto mais longas, mais difíceis de violar. Por exemplo, uma chave de 128 bits tem 340.282.366.920.938.463.463.374.607.431.768.211.456 possibilidades de código de criptografia. Um ataque de força bruta (quando um invasor experimenta todas as chaves possíveis até encontrar a certa) precisaria de um tempo considerável para violar uma chave de 128 bits. Usar uma chave de 128 bits ou 256 bits depende dos recursos de criptografia do software do servidor e do cliente. Os certificados TLS/SSL não determinam o tamanho de chave a usar.
Como as chaves assimétricas são maiores do que as simétricas, dados criptografados de forma assimétrica são mais difíceis de violar do que dados criptografados simetricamente. Isso não significa, porém, que as chaves assimétricas são melhores. Em vez de compará-las por tamanho, essas chaves devem ser comparadas por carga computacional e facilidade de distribuição.
Chaves simétricas são menores do que as assimétricas, e por isso exigem menor carga computacional. No entanto, as chaves simétricas também apresentam uma importante desvantagem – especialmente se você as utiliza para proteger transferências de dados. Como uma mesma chave é usada para criptografia e descriptografia simétrica, tanto você como o destinatário precisam da chave. Se você pode encontrar o destinatário e informar a chave diretamente, isso não é problema. Entretanto, se precisar enviar a chave para um usuário em qualquer lugar do mundo (um cenário mais provável), precisará considerar a segurança dos dados.
Com a criptografia assimétrica, esse problema não acontece. Desde que a chave privada permaneça privada, ninguém pode descriptografar suas mensagens. Você pode distribuir a chave pública correspondente sem se preocupar com quem a recebe. Qualquer pessoa que tenha a chave pública pode criptografar dados, mas apenas a pessoa com a chave privada pode descriptografá-los.
A Infraestrutura de chave pública (PKI) é o conjunto de hardware, software, pessoas, políticas e procedimentos necessários para criar, gerenciar, distribuir, usar, armazenar e revogar certificados digitais. A PKI também vincula chaves com identidades de usuário através de uma autoridade de certificação (CA). A PKI usa um sistema criptográfico híbrido e se beneficia de ambos os tipos de criptografia. Por exemplo, em comunicações TLS/SSL, o certificado TLS do servidor contém um par de chaves privada e pública assimétricas. A chave de sessão que o servidor e o navegador criam durante o handshake SSL é simétrica.