Você está na página 1de 5

Chaves e certificados

A criptografia assimtrica usa um par de chaves pblica/privada. Os dados criptografados com a chave
privada podem ser descriptografados apenas com a chave pblica correspondente e vice-versa.
As chaves pblicas (como o nome sugere) so amplamente disponibilizadas. De modo inverso, uma
chave privada permanece privada para um indivduo especfico. O mecanismo de distribuio pelo qual
as chaves pblicas so transportadas aos usurios um certificado. Normalmente, os certificados so
assinados por uma CA (autoridade de certificao) para confirmar que a chave pblica do indivduo
que afirma t-la enviado. A autoridade de certificao uma entidade mutuamente confivel.
A implementao tpica do certificado digital envolve um processo de assinatura do certificado. O
processo demonstrado na Figura 1.

Figura 1
Processo de certificao digital
A seqncia de eventos mostrada na Figura 1 a seguinte:
1.

Alice envia uma solicitao de certificado assinado contendo seu nome, sua chave pblica e,

2.

talvez, algumas informaes adicionais a uma autoridade de certificao.


A autoridade de certificao cria uma mensagem a partir da solicitao de Alice. A autoridade de
certificao assina a mensagem com sua chave privada, criando uma assinatura separada. A
autoridade de certificao retorna a mensagem e a assinatura Alice. Juntas, a mensagem e a

3.
4.

assinatura formam o certificado de Alice.


Alice envia seu certificado para Bob para conceder a ele acesso sua chave pblica.
Bob verifica a assinatura do certificado, usando a chave pblica da autoridade de certificao. Se a
assinatura for realmente vlida, ele aceita a chave pblica no certificado como a chave pblica da

Alice.
Como com qualquer assinatura digital, qualquer receptor com acesso chave pblica da autoridade de
certificao pode determinar se uma autoridade de certificao especfica assinou o certificado. Esse
processo no requer acesso a nenhuma informao secreta. O cenrio anterior considera que Bob tem
acesso chave pblica da autoridade de certificao. Bob pode ter acesso a essa chave se tiver uma
cpia do certificado da autoridade de certificao que contm essa chave pblica.
Incio da pgina

Certificados digitais X.509


Os certificados digitais X.509 incluem no apenas o nome e a chave pblica de um usurio, mas
tambm outras informaes sobre o usurio. Esses certificados so mais que um ponto de partida em
uma hierarquia digital de confiana. Eles permitem que a autoridade de certificao oferea ao
receptor de um certificado um meio de confiar no apenas na chave pblica do indivduo do
certificado, mas tambm em outras informaes sobre o indivduo do certificado. Essas outras
informaes podem incluir, entre outras coisas, um endereo de e-mail, uma autorizao para assinar
documentos de um determinado valor ou a autorizao para se tornar uma autoridade de certificao
e assinar outros certificados.

Os certificados X.509 e muitos outros certificados tm um prazo de validade. Um certificado pode


expirar e no ser mais vlido. Uma autoridade de certificao pode revogar um certificado por vrios
motivos. Para processar as revogaes, uma autoridade de certificao mantm e distribui uma lista
de certificados revogados chamada CRL (lista de certificados revogados). Os usurios da rede acessam
a CRL para determinar a validade de um certificado.
Incio da pgina

Armazenamentos de certificados
Os certificados so armazenados em locais seguros chamados de armazenamentos de certificados. Um
armazenamento de certificado pode conter certificados, CRLs e CTLs (lista de certificados confiveis).
Cada usurio tem um armazenamento pessoal (chamado "MEU armazenamento") onde os certificados
desse usurio so armazenados. O MEU armazenamento pode ser fisicamente implementado em
vrios locais, incluindo o Registro, um computador local ou remoto, um arquivo de disco, uma banco
de dados, um servio de diretrios, um dispositivo inteligente ou outro local.
Embora qualquer certificado possa ser armazenado em MEU armazenamento, esse armazenamento
deve ser reservado para os certificados pessoais de um usurio, isto , os certificados usados para
assinar e descriptografar as mensagens desse usurio especfico.
Alm de MEU armazenamento, o Windows tambm mantm os armazenamentos de certificados a
seguir:

CA e ROOT. Esse armazenamento contm os certificados de autoridades de certificao em que o


usurio confia para emitir certificados para outros indivduos. Um conjunto de certificados
autoridade de certificao confiveis fornecido com o sistema operacional e outros podem ser

adicionados pelos administradores.


Outros. Esse armazenamento contm os certificados de outras pessoas com quem o usurio troca

mensagens assinadas.
A CryptoAPI fornece funes para gerenciar certificados. Essas APIs podem ser acessadas apenas por
meio de um cdigo no gerenciado. Alm disso, o CAPICOM uma API com base em COM para a
CryptoAPI, que pode ser acessada por meio de COM Interop.

Mais informaes

Para obter mais informaes, consulte "Cryptography, CryptoAPI, and CAPICOM" no MSDN
(http://msdn.microsoft.com/library/default.asp?url=/library/enus/security/Security/cryptography_cryptoapi_and_capicom.asp).
Incio da pgina

Criptografia
A criptografia usada para proporcionar o seguinte:

Confidencialidade. Para garantir que os dados permaneam privados. Geralmente, a


confidencialidade obtida com a criptografia. Os algoritmos de criptografia (que usam chaves de
criptografia) so usados para converter texto sem formatao em texto codificado e o algoritmo de
descriptografia equivalente usado para converter o texto codificado em texto sem formatao
novamente. Os algoritmos de criptografia simtricos usam a mesma chave para a criptografia e a

descriptografia, enquanto que os algoritmos assimtricos usam um par de chaves pblica/privada.


Integridade de dados. Para garantir que os dados sejam protegidos contra modificao acidental
ou deliberada (mal-intencionada). A integridade, geralmente, fornecida por cdigos de
autenticao de mensagem ou hashes. Um valor de hash um valor numrico de comprimento fixo
derivado de uma seqncia de dados. Os valores de hash so usados para verificar a integridade
dos dados enviados por canais no seguros. O valor do hash de dados recebidos comparado ao

valor do hash dos dados, conforme eles foram enviados para determinar se foram alterados.
Autenticao. Para garantir que os dados se originem de uma parte especfica. Os certificados
digitais so usados para fornecer autenticao. As assinaturas digitais geralmente so aplicadas a
valores de hash, uma vez que eles so significativamente menores que os dados de origem que
representam.
Incio da pgina

Opes tcnicas

Use um hash quando desejar uma maneira de verificar se os dados no foram alterados em
trnsito.
Use um hash com chave quando desejar provar que uma entidade conhece um segredo sem ter de
transmiti-lo ou quando desejar defender-se de interceptaes durante o trnsito com um hash
simples.
Use a criptografia se desejar ocultar os dados quando eles estiverem sendo enviados por uma mdia
no segura ou quando desejar torn-los persistentes.
Use um certificado quando desejar verificar a pessoa que est afirmando ser a proprietria da
chave pblica.
Use a criptografia simtrica para fins de velocidade e quando ambas as partes compartilharem a
chave antecipadamente.
Use a criptografia assimtrica quando desejar trocar dados de maneira segura por uma mdia no
segura.
Use uma assinatura digital quando desejar autenticao e no-repdio.
Use um valor salt (um nmero aleatrio gerado de maneira criptogrfica) para se defender de
ataques de dicionrio.
Incio da pgina

Criptografia no .NET
O espao para nome System.Security.Cryptography fornece servios criptogrficos, inclusive a
codificao e a decodificao seguras de dados, hash, gerao de nmero aleatrio e autenticao de
mensagens.
O .NET Framework fornece implementaes de muitos algoritmos criptogrficos padro, que podem
ser facilmente estendidos devido hierarquia de herana bem definida, que consiste em classes
abstratas que definem os tipos bsicos de algoritmos algoritmos simtricos, assimtricos e de hash,
juntamente com as classes de algoritmos.
Tabela 1: Mostra os algoritmos para os quais o .NET Framework fornece classes de
implementao "preestabelecidas".

Algoritmos simtricos

Algoritmos
assimtricos

Algoritmos de hash

DES (padro de criptografia DSA (algoritmo de

HMAC SHA1 (cdigo de autenticao de mensagens

de dados)

assinatura digital)

com base em hashs que usa o algoritmo de hash

TripleDES (padro triplo de RSA

SHA1)
MAC Triple DES (cdigo de autenticao de

criptografia de dados)
Rijndael
RC2

mensagem que usa Triple DES)


MD5
SHA1, SHA256, SHA384, SHA512 (algoritmo de
hash seguro que usa vrios tamanhos de hash)

Suporte a algoritmos simtricos


O .NET oferece as classes de implementao a seguir que fornecem algoritmos de criptografia
simtricos e de chave secreta:

DESCryptoServiceProvider
RC2CryptoServiceProvider
RijndaelManaged
TripleDESCryptoServiceProvider

Observao: As classes que terminam com "CryptoServiceProvider" so wrappers que usam os


servios subjacentes do CSP (provedor de servios de criptografia) e as classes que terminam com
"Managed" so implementadas em cdigo gerenciado.
A Figura 2 mostra a hierarquia de herana adotada pelo .NET Framework. A classe base de tipo de
algoritmo (por exemplo, SymmetricAlgorithm) abstrata. Um conjunto de classes abstratas de
algoritmo deriva da classe base de tipo abstrata. As classes de implementao de algoritmo fornecem
implementaes concretas do algoritmo selecionado. Por exemplo, DES, Triple-DES, Rijndael e RC2.

Figura 2
A hierarquia de herana de classe de criptografia simtrica

Suporte a algoritmos assimtricos


O .NET fornece os algoritmos de criptografia assimtricos (chave pblica/privada), a seguir, por meio
da classe base abstrata (System.Security.Crytography.AsymmetricAlgorithm):

DSACryptoServiceProvider
RSACryptoServiceProvider

Eles so usados para assinar e criptografar dados digitalmente. A Figura 3 mostra a hierarquia de
herana.

Figura 3
Hierarquia de herana da classe de criptografia assimtrica

Suporte a algoritmos de hash


O .NET fornece os algoritmos de hash a seguir:

SHA1, SHA256, SHA384, SHA512


MD5
HMACSHA (algoritmo de hash com chave)
MACTripleDES (algoritmo de hash com chave)

A Figura 4 mostra a hierarquia de herana para as classes de algoritmo de hash.

Figura 4
Hierarquia de herana da classe de criptografia de hash
Incio da pgina

Resumo
A criptografia uma tecnologia importante para a criao de aplicativos da Web seguros. Este
apndice abrangeu alguns dos princpios fundamentais de certificados e criptografia e introduziu
algumas das classes expostas pelo espao para nome System.Security.Cryptography, que
permitem incorporar mais facilmente as solues de segurana criptogrfica aos aplicativos .NET.
Para obter mais informaes sobre criptografia no.NET, pesquise no MSDN a pgina ".NET Framework
Cryptography Model".