Edson's Home Page          



 Criptografia

Definição:  É o ato de alterar uma mensagem para esconder o significado desta.

Algoritmos de Criptografia:

Definição: “É uma função matemática utilizada para cifrar e decifrar um determinado dado.”

Os primeiros algoritmos criptográficos desenvolvidos aplicavam uma função matemática, repetidamente, a um dado para cifrá-lo.
Para tornar os algoritmos de criptografia mais robustos criou-se o conceito de chave criptográfica.
Os algoritmos de criptografia podem ser utilizados para:

  • Autenticação: garante que o emissor de uma mensagem, ou usuário, é quem clama ser. Desta maneira evita-se que um invasor se mascare como um emissor ou usuário válido.

  • Integridade: garante que os dados não foram alterados durante a transmissão ou por um outro usuário de um sistema. Desta maneira pode detectar se um arquivo ou dado foi modificado sem a devida autorização do proprietário deste.

  • Não-repudiação: garante que um emissor de uma mensagem não será capaz de negar que tenha enviado uma determinada mensagem.

 A segurança de um algoritmo criptográfico depende do tamanho da chave e do algoritmo utilizado.

Tipos de algoritmos:

  • Algoritmo de chave simétrica

Utilizam uma única chave para criptografar e decifrar os dados, como já foi dito anteriormente. São aplicados principalmente para garantir a confidencialidade dos dados pois somente o proprietário da chave será capaz de decifrar os dados. Por exemplo, este poderia ser aplicado na criptografia de dados de uma base de dados, criptografia de arquivos em um sistema com múltiplos usuários garantindo que o dado permanecerá confidencial. Uma outra utilização seria na criptografia de dados em um canal de comunicação, como por exemplo na transferência de dados entre duas máquinas através da internet, entretanto os usuários nos extremos do canal de comunicação deverão previamente conhecer a chave privada antes de trocarem dados e neste caso a divulgação da chave privada pode comprometer a segurança do esquema criptográfico. Exemplos de implementações deste tipo de algoritmo: DES (Data Encryption Standard), Blowfish, TwoFish.

  • Algoritmo de chave pública

Utiliza duas chaves, uma para criptografar os dados (chamada de chave publica) e outra para decifrar os dados (chamada de chave privada). Neste caso a chave pública é divulgada enquanto que a chave privada permanece secreta. Esta técnica é muito utilizada para o envio de mensagens onde se deseja que somente o destinatário, portador da chave privada, consiga ler a mensagem. O emissor da mensagem utiliza a chave pública para criptografar a mensagem e a envia, quando o receptor receber a mensagem utilizará a chave privada para decifrar a mensagem. Este esquema provê a confidencialidade dos dados e também autenticação pois somente o proprietário da chave privada será capaz de decifrar a mensagem. Nestes algoritmos um dado que é criptografado com uma chave só poderá ser decifrado com a utilização da outra chave e vice-versa. Exemplos de implementações deste tipo de algoritmo: RSA, ElGamal, DSS (Digital Signature Standard).

  • Funções Hash

"São funções que, para uma string digital de tamanho qualquer, calculam um identificador digital confiável de tamanho fixo, usualmente de 16 ou 20 bytes”.
Qualquer alteração da string original, por menor que seja, irá gerar uma alteração significativa no valor do “hash” correspondente
Deve ser impossível gerar intencionalmente uma string digital, diferente da original, que resulte no mesmo valor “hash”.

  • Assinaturas Digitais

Possui a mesma função de uma assinatura convencional, ou seja, garante a autenticidade de um documento e também evita a repudiação pela pessoa que o assinou.  Este esquema utiliza funções hash e algoritmos de chave pública. Funciona da seguinte maneira: o autor de uma mensagem aplica uma função hash na mensagem e assim obtém um valor hash para esta; em seguida, criptografa o valor hash obtido utilizando uma chave privada, adiciona-o ao documento e o envia. O receptor da mensagem, ao recebê-la, irá fazer a validação da assinatura digital, o que consiste em decifrar a mensagem com a sua chave pública, obtendo assim o valor hash do documento; depois disto, basta calcular novamente o valor hash da mensagem e compará-lo com o valor obtido. No caso de serem idênticos, está validada a autenticidade da mensagem e do seu emissor; caso contrário, não. Neste esquema, garante-se a integridade da mensagem, a autenticidade e a não-repudiação da mesma. Exemplos de implementações deste tipo de algoritmo: RSA, DSS. 

  • Certificados digitais

São documentos digitais que garantem que uma chave pública, relativa a uma assinatura digital, pertença a uma determinada entidade ou pessoa.
Este certificado é emitido e revogado por uma organização chamada Autoridade Certificadora (Certification Authority – CA) que irá associar a chave pública à identidade de uma pessoa através de dados como: endereço, telefone, carteira de identidade.
Os certificados podem ser os seguintes:
 - certificados certificação de autoridades
 - certificados de servidores
 - certificados pessoais
 - certificados para distribuição de software


Problemas definidos:

  • Chaves privadas não são pessoas: as assinaturas digitais e certificados podem ser utilizados para provar a identidade de pessoas, mas por si só não são provas de identidade. O que se garante com estes é que uma pessoa, organização ou programa tem acesso a uma chave privada que casa com uma chave pública assinada por um CA.  A forma de garantir a identidade seria garantindo que as chaves fossem geradas aleatoriamente e só fossem utilizadas pelo próprio dono. Entretanto, como as chaves privadas são armazenadas em computadores pessoais e não existe garantia de que uma pessoa que não o proprietário irá se apoderar da chave privada.

  • Nomes distintos não são pessoas: mesmo garantindo a proteção da chave privada, não se estabelece a confiança na estrutura de chave pública, pois um certificado digital só garante que existe uma pessoa que registrou uma chave pública em um dado CA, o que não implica que esta pessoa seja quem declara ser. Isto se deve ao fato de não existir nenhuma garantia que o CA não esteja falsificando certificados digitais ou sendo pouco criteriosa na concessão destes.

  • Repetição de nomes: existem muitos nomes iguais e, por conta disto, o certificado precisa conter informações adicionais para poder diferenciar pessoas com nomes idênticos. Entretanto, estas informações adicionais podem não ser do conhecimento de uma pessoa que esteja tentando obter um certificado digital para validar uma assinatura digital.

  • Os certificados digitais ainda não dizem o suficiente: os certificados digitais utilizados atualmente na Internet não possuem informações suficientes que permitam identificar univocamente uma pessoa, como por exemplo: foto, idade, sexo, impressões digitais. Entretanto, mesmo que estas informações venham a estar presentes em certificados digitais não existe nenhuma garantia de não sejam divulgadas sem o consentimento do usuário, devido à má fé das pessoas que podem obter os certificados digitais e também devido à possibilidade dos computadores do CA serem invadidos e estes invasores terem acesso a estas informações.

  • Os protocolos de certificação atuais não permitem a disponibilização seletiva de informações: uma solução para amenizar o problema do item anterior seria a disponibilização de informações relevantes a uma determinada operação. Isto ajudaria a diminuir a possibilidade de divulgação de informações não autorizadas. Entretanto, os protocolos atuais não suportam esta funcionalidade e a única forma de se obter uma disponibilização seletiva de informações seria utilizando diversos certificados digitais.

  • As chaves privadas podem ser emprestadas ou roubadas: as chaves privadas, da mesma forma que passwords, podem ser emprestadas ou roubadas e, conseqüentemente, utilizadas por outras pessoas que não os proprietários.

Solução futura:

Uma solução, ainda em estudo, para a criptografia perfeita seria a criptografia quântica, descendo ao subsolo da polarização dos fótons; mas, ao mesmo tempo, os computadores quânticos ainda são apenas projetos. 

Página Principal
Atividades Exercidas no LSI
Trabalhos Acadêmicos Realizados
Meu Curriculum
Segurança em Redes de Computadores
Downloads
Fotos
Entre em Contato