Conceitos de Segurança

A criptografia particular tradicional ou de chave simétrica requer uma única chave secreta, que é compartilhada por duas ou mais partes para proteger a comunicação. Essa chave é usada para criptografar e decriptografar mensagens seguras trocadas entre as partes, o que exige a distribuição prévia e segura da chave a cada parte. O problema desse método é a dificuldade de transmitir e armazenar a chave de modo seguro.

A criptografia de chave pública é uma solução para esse problema, pois utiliza pares de chaves públicas/privadas e um método seguro de distribuição de chaves. A chave pública distribuída gratuitamente é usada para criptografar mensagens que podem ser decriptografadas somente pelo proprietário da chave privada associada. A chave privada é armazenada com segurança, junto com outras credenciais de segurança, no container criptografado -- denominado wallet.

Os algoritmos de chave pública podem garantir a confidencialidade de uma mensagem, mas não necessariamente garantem comunicações seguras, pois não verificam as identidades das partes que estão se comunicando. Para estabelecer comunicações seguras, é importante verificar se a chave pública usada para criptografar uma mensagem realmente pertence ao destinatário desejado. Caso contrário, um terceiro poderá espionar a comunicação e interceptar solicitações de chave pública, substituindo sua própria chave pública por uma chave legítima (ataque por interceptação).

Para evitar um ataque desse tipo, é necessário verificar o proprietário da chave pública, um processo denominado autenticação. A autenticação pode ser feita por meio de uma CA (Certificate Authority – autoridade de certificação) um terceiro confiável para ambas as partes que estão se comunicando.

A CA emite certificados de chave que contêm o nome de uma entidade, a chave pública e algumas outras credenciais de segurança. Geralmente tais credenciais incluem o nome e a assinatura da CA e as datas durante as quais o certificado está em vigor (Data De, Data Até).

A CA usa a chave privada para criptografar uma mensagem, ao passo que a chave pública é usada para decriptografá-la, verificando se a mensagem foi criptografada pela CA. A chave pública da CA é bastante conhecida e não precisa ser autenticada sempre que acessada. As chaves públicas de tal CA são armazenadas em uma Oracle wallet.