Certificados
Digitais
Uma regra em sistemas de criptografia com
chave pública é que os usuários devem ser constantemente vigilantes para assegurar que
eles estão encriptando para a chave correta da pessoa. Em um ambiente onde é seguro a
troca livre de chaves por servidores públicos, ataques de uma pessoa do meio são uma
ameaça potencial. Neste tipo de ataque, alguém põe no correio uma falsa chave com o
nome e ID do usuário do recipiente. Dados encriptados e interceptados pelo
verdadeiro dono desta falsa chave está agora em mãos erradas.
Em um ambiente de chave pública, é vital que
você esteja seguro que a chave pública para a qual você está encriptando dados é de
fato a chave pública do recipiente no qual você quer mandar a mensagem e não uma
falsificação. Você simplesmente poderia encriptar só para essas chaves que foram dadas
fisicamente a você. Mas suponha você precisa trocar informação com pessoas que você
nunca se encontrou; como você pode contar que você tem a chave correta?
Certificados digitais, ou certs, simplifica a
tarefa de estabelecer se uma chave pública realmente pertence ao dono pretendido.
Um certificado é uma forma de credencial.
Exemplos poderiam ser sua licença de motorista, seu cartão de seguro social, ou sua
certidão de nascimento. Cada um destes tem um pouco de informação que podem identificar
você e essas autorizações declaram que outra pessoa confirmaram sua identidade. Alguns
certificados, como seu passaporte, são bastante importantes para a confirmação de sua
identidade que você não quereria os perder, para que alguém não os use para te
personificar.
Um certificado digital é um dado como o que
funciona muito parecidamente com um certificado físico. Um certificado digital é uma
informação incluída com a chave pública de uma pessoa que ajuda outros verificarem que
uma chave é genuína ou válida. Certificados digitais são usados para contrariar
tentativas de substituição da chave de uma pessoa por outra.
Um certificado digital consiste em três
coisas:
Uma chave pública.
Certificado de informação. (Informação de
"identidade" sobre o usuário, como nome, ID do usuário, e assim por diante.)
Uma ou mais assinaturas digitais.
O propósito da assinatura digital em um
certificado é declarar que a informação do certificado foi atestada por alguma outra
pessoa ou entidade. A assinatura digital não atesta à autenticidade do certificado como
um todo; só atesta que a informação da identidade assinada vai junto com, ou é ligada,
a chave pública.
Assim, um certificado é basicamente uma chave
pública com uma ou duas formas de ID atachado, mais um selo cordial de aprovação de
alguma outra pessoa confiável.
Figura 1-8. Anatomia de um certificado em PGP
Distribuição do certificado
São utilizados certificados quando é
necessário trocar chaves públicas com outra pessoa. Para grupos pequenos de pessoas para
que se deseje comunicar com segurança, é fácil trocar disquetes manualmente ou e-mail
contendo a chave pública de cada dono. Esta é uma distribuição manual da chave
pública, e isto é prático até um certo ponto. Além deste ponto, é necessário por
sistemas em lugares que pode prover a segurança necessária, armazenamento, e mecanismos
de troca, sócios empresariais, ou os estranhos poderiam comunicar se for necessário.
Estes poderiam entrar na forma de armazenamento em repositórios chamado Servidores de
certificado, ou sistemas mais estruturados que provêem administração adicional de
chaves e é chamada de Infra-estruturas de chaves públicas
(PKIs).
Servidores de certificados:
Um servidor de certificado, também chamado
de servidor de chave, é um banco de dados que permite para os usuários submeter e
recuperar certificados digitais. Um servidor de certificados normalmente provê algumas
características administrativas que permite uma companhia a manter suas políticas de
segurançapor exemplo, permitindo que só as chaves que satisfazem certas
exigências serem armazenadas.
Infra-estruturas das chaves
públicas(PKI) :
Um PKI contém as facilidades de armazenamento
de certificados de um servidor de certificado, mas também provê facilidades de
administração de certificado (a habilidade para emitir, revogar, armazenar, recobrir, e
certificados de confiança). O principal característica de um PKI é a introdução do
que é conhecido como uma autoridade de certificação, or CA, na qual é uma entidade
humanauma pessoa, um grupo, departamento, companhia, ou outra associaçãoque
uma organização autorizou a emitir certificados para seus usuários de computador. (Um
papel de CA é análogo ao escritório de Passaporte do governo de um país.) Uma CA cria
certificados e digitalmente os assina usando a chave privada de CA. Por causa de seu papel
de criar certificados, o CA é o componente central de um PKI. Usando a chave público do
CA, qualquer um que quer verificar a autenticidade de um certificado verifica a emissão
da assinatura digital do CA, e consequentemente, a integridade dos conteúdos do
certificado (e mais ainda, a chave pública e a identidade do possuidor do certificado).
Formatos de certificado
Um certificado digital é basicamente uma
coleção de informações de identificação junto com uma chave pública e assinado por
uma terceira parte confiável para provar sua autenticidade. Um certificado digital pode
ser um de um número de formatos diferentes.
PGP reconhece dois formatos de certificado
diferentes:
certificados PGP
certificados X.509
Formato do certificado PGP:
Um certificado PGP inclui (mas não é limitado) a
seguinte informação:
O número da versão do PGPisto
identifica qual versão de PGP foi usado para criar a chave associada com o certificado.
A chave pública do possuidor do
certificadoa porção pública do seu par de chaves, junto com o algoritmo da chave:
RSA, DH, (Diffie-Hellman), ou DSA (Digital Signature Algorithm).
A informação do possuidor do
certificadoisto consiste na informação da identidade sobre o usuário, como o nome
dele ou dela, ID do usuário, fotografia, e assim por diante.
A assinatura digital do dono do
certificadotambém chamado um self-signature, esta é a assinatura que usa a
correspondente chave privada da chave pública associada com o certificado.
O período de validez do certificadoa data de começo do certificado / tempo e data
de vencimento / tempo; indica quando o certificado vai expirar.
O algoritmo preferido de encriptação
simétrica para a chaveindica o algoritmo de encriptação para qual o dono do
certificado prefere ter a informação encriptada. Os algoritmos suportados são CAST,
IDEA ou Triple-DES. Você poderia pensar que um certificado de PGP fosse como uma chave
pública com um ou mais etiquetas amarradas a isto (veja Figura 1-9). Nestas etiquetas
você achará informação que identifica o dono da chave e uma assinatura do dono de
chave, significando que a chave e a identificação vão junto. (Esta assinatura
particular é chamada de self-signature; todo certificado de PGP contém uma
self-signature.)
Um aspecto de formato que só tem no PGP é que
um único certificado pode conter assinaturas múltiplas. Várias ou muitas pessoas podem
assinar o par chave / identificação para atestar à própria garantia deles/delas que a
chave pública definitivamente pertence ao dono especificado. Se você olha em um servidor
de certificado público, você pode notar que certos certificados, como aquele do criador
do PGP, Phil Zimmermann, contem muitas assinaturas. Alguns certificados de PGP consistem
em uma chave pública com várias etiquetas, cada dos quais contém diferentes meios de
identificar o dono chave (por exemplo, o nome do dono e conta de e-mail, o apelido do dono
e conta de e-mail de casa, uma fotografia do donotudo em um certificado). A lista de
assinaturas de cada uma dessas identidades podem diferir; aí as assinaturas atestam à
autenticidade de que um das etiquetas pertencem à chave pública, não que todas as
etiquetas na chave são autênticos.
Figura 1-9. Um certificado PGP
Formato do certificado X.509:
X.509 é um outro formato de certificado muito
comum. Todos os certificados X.509 obedecem o padrão internacional ITU-T X.509; assim
(teoricamente) certificados X.509 criados para uma aplicação podem ser usados por
qualquer aplicação que obedece X.509. Em prática, porém,
companhias diferentes criaram as próprias extensões deles/delas para certificados X.509,
nos quais não trabalham junto.
Um certificado exige alguém para validar que
uma chave pública e o nome do dono da chave vão juntos. Com certificados de PGP,
qualquer um pode representar o papel de validador. Com certificados X.509, o validator é
sempre uma Autoridade de Certificação ou alguém designado por uma CA (tenha em mente
que certificados PGP também suportam completamente uma estrutura hierárquica que usa uma
CA para validar certificados.)
Um certificado X.509 é uma coleção de um
conjunto padrão de campos contendo informações sobre um usuário ou dispositivo e suas
correspondente chave pública. O padrão X.509 define qual informação vai no
certificado, e descreve como codificar isto(o formato dos dados). Todos certificados X.509
têm os seguintes dados:
O número da versão do X.509 isto
identifica qual padrão é aplicada na versão do X.509 para este certificado, o que afeta
qual informação pode ser especificada neste.
A chave pública do possuidor do
certificadoa chave pública do possuidor do certificado, junto com um algoritmo de
identificação que especifica qual sistema de criptografia pertence a chave e qualquer
parâmetros associados.
O número de série do certificadoa
entidade (aplicação ou pessoa) que criou o certificado é responsável por neste um
número de série para distinguir este de outros certificados que ele emite. Esta
informação é usada de várias maneiras; por exemplo quando um certificado é revogado,
seu número serial é colocado em uma Lista de Revogação de Certificado ou CRL.
A identificação única do possuidor de
certificado(ou DNnome distinguido). Este nome tem que ser único pela
Internet. Um DN consiste em múltiplas subseções e pode parecer com algo do tipo:
CN=Bob Allen, OU=Total Network Security Division, O=Network Associates, Inc., C=US
(Estes se referem ao Nome Comum do assunto, Organizacional, Unidade, Organização, e
País.)
O período de validez do certificadoa
data do começo do certificado /tempo e data de vencimento / tempo; indica quando o
certificado expira.
O nome único do emissor do certificadoo
nome único da entidade que assinou o certificado. Esta normalmente é uma CA. Usando o
certificado implica em confiar na entidade que assinou este certificado. (Note que em
alguns casos, como raiz do certificado ou top-level da CA, o emissor assina seu próprio
certificado.)
A assinatura digital do emissora
assinatura que usa a chave privada da entidade que emitiu o certificado.
A identificação do algoritmo de
assinaturaidentifica o algoritmo usado pela CA para assinar o certificado. Há
muitas diferenças entre um certificado X.509 e um certificado PGP, mas os mais salientes
são como se segue:
Você pode criar seu próprio certificado de
PGP; você tem que pedir um certificado X.509 de uma Autoridade de Certificação
Certificados X.509 suportam só um único nome
para o dono de chave
Certificados X.509 suportam só uma única
assinatura digital para atestar para a validez da chave
Para obter um certificado X.509, você tem que
pedir para uma CA que emita um certificado a você. Você providencia sua chave pública,
prova que você possui a chave privada correspondente, e alguma informação específica
sobre você. Você então digitalmente assina a informação e envia o pacote todoo
pedido de certificadopara a CA. A CA então executa alguma devida diligência
verificando que a informação que você providenciou está correta, e nesse caso, gera o
certificado e retorna ele.
Você poderia pensar em um certificado X.509
como parecendo um certificado de papel padrão com uma chave pública gravada nele. Isto
tem seu nome e um pouco de informação sobre você, mais a assinatura da pessoa que
emitiu isto para você.
Figura 1-10. Um certificado X.509
Provavelmente o mais visível uso de
certificados X.509 está em WEB browsers.