Porque o uso classical dos cryptosystems compartilhou de chaves, não é possível ligar uma identidade a uma chave.
Os cryptosystems chaves públicos usam duas chaves, um de que deve estar disponível a tudo. A associação entre a chave cryptographic e o principal é crítica, porque determina a chave pública usada encipher mensagens para o secrecy. Se o emperramento fosse errôneo, alguém à excepção do receptor pretendido poderia ler a mensagem.
Para finalidades desta discussão, nós supomos que o principal está identificado por um nome de alguma sorte aceitável e authenticated à entidade que gera as chaves cryptographic. A pergunta é como algum (possivelmente) principal diferente pode ligar a chave pública à respresentação da identidade.
Uma idéia óbvia é para que o originator assine a chave pública com sua chave confidencial, mas esta empurra meramente o problema para um outro nível, porque o receptor saberia somente que quem quer que gerou a chave pública a assinou também. Nenhuma identidade está atual.
|
|
Criando uma mensagem que contem uma respresentação da identidade, da chave pública correspondente, e de um timestamp, e tendo um sinal confiado da autoridade ele.
CAlice = {eAlice || Alice || T} dCathy
Este tipo de estrutura é chamado um certificado.
Um certificado é um símbolo que ligue uma identidade a uma chave cryptographic.
Quando Bob quer se comunicar com a Alice, obteve o certificado CAlice de Alice. Supondo que sabe a chave pública de Cathy, pode decifrar o certificado. Ele primeiramente verificações o timestamp T para ver quando o certificado foi emitido. (deste, pode determinar se o certificado for demasiado velho ser confiado; veja abaixo.) Olha a entidade sujeita (Alice, a quem o certificado foi emitido). A chave pública no certificado pertence a esse assunto, assim que Bob tem agora a chave pública de Alice. Sabe que Cathy assinou o certificado e conseqüentemente esse Cathy vouching a algum grau que a chave pública pertence a Alice. Se confiar em Cathy para fazer tal determinação, aceita a chave pública como válida e pertencendo a Alice.
Um problema imediato é que Bob deve saber a chave pública de Cathy para validar o certificado. Duas aproximações tratam deste problema. O primeiro, por Merkle, elimina a assinatura de Cathy; o segundo estrutura certificados em correntes da assinatura.
O formulário usual da certificação é para que o issuer encipher uma mistura da identidade do assunto (a quem o certificado é emitido), da chave pública, e da informação tal como a época da edição ou da expiração usando a chave confidencial do issuer. Para validar o certificado, um usuário usa a chave pública do issuer decifrar a mistura e verificar os dados no certificado. O usuário que tenta validar o certificado deve obter a chave pública do issuer. Se o issuer tiver um certificado, o usuário pode começar essa chave do certificado do issuer. Isto empurra o problema para um outro nível: como pode o certificado do issuer ser validado?
Duas aproximações a este problema devem construir a árvore-como a hierarquia, com a chave pública da raiz sabida fora da faixa, ou permitir um arranjo arbitrário dos certifiers e confiar no conhecimento de cada indivíduo dos certifiers. Primeiramente, nós examinamos X.509, que descreve certificados e certificação no general. Nós olhamos então a estrutura da certificação do PGP.
A estrutura do authentication do diretório de X.509the é a base para muitos outros protocolos. Define formatos do certificado e validation da certificação em um contexto genérico. Logo após sua edição original em 1988, I'Anson e problemas encontrados Mitchell com os protocolos e a estrutura do certificado. Estes problemas foram corrigidos na versão 1993, consultada como a X.509v3.
O certificado X.509v3 tem os seguintes componentes.
Versão. Cada versão sucessiva do certificado X.509 tem os campos novos adicionados. Se os campos 8, 9, e 10 (veja abaixo) forem presente, este campo deve ser 3; se os campos 8 e 9 estiverem atuais, este campo é 2 ou 3; e se nenhuns dos campos 8, 9, e 10 forem presente, o número de versão pode ser 1, 2, ou 3.
Número de série. Isto deve ser original entre os certificados emitidos por este issuer. Ou seja o par (nome, número de série distinguidos do issuer) deve ser original.
Identificador do algoritmo da assinatura. Isto identifica o algoritmo, e todos os parâmetros, usados assinar o certificado.
Nome Distinguido Do Issuer. Este é um nome que identifique excepcionalmente o issuer.
Intervalo da validez. Isto dá os tempos em que o certificado se torna válido e se expira.
Distinto Nome Sujeito. Este é um nome que identifique excepcionalmente o assunto a quem o certificado é emitido.
Informação chave pública sujeita. Isto identifica o algoritmo, seus parâmetros, e a chave pública do assunto.
Identificador original do issuer (certificados da versão 2 e 3 somente). Sob algumas circunstâncias, o issuer nomes distinguidos pode recycled (para o exemplo, quando o distinto nome consulta a um papel, ou quando uma companhia se fecha e uma segunda companhia com o mesmo distinto nome abre). Este campo permite que o issuer disambiguate entre entidades com o mesmo nome do issuer.
Identificador original sujeito (certificados da versão 2 e 3 somente). Este campo é como o campo 8, mas para o assunto.
Extensões (certificados da versão 3 somente). X.509v3 define determinadas extensões nas áreas de informação da chave e da política, em confinamentes do trajeto da certificação, e na informação do issuer e a sujeita. Para o exemplo, se um issuer tiver chaves múltiplas da certificação, da "o identificador chave autoridade" permite que o certificado indique que chave deve ser usada. "a extensão dos confinamentes básicos" indica se o suporte do certificado puder emitir certificados.
Assinatura. Este campo identifica o algoritmo e os parâmetros usados assinar o certificado, seguido pela assinatura (uma mistura enciphered dos campos 1 a 10) própria.
Para validar o certificado, o usuário obtem a chave pública do issuer para o algoritmo particular da assinatura (campo 3) e decifrações a assinatura (campo 11). Usa então a informação no campo da assinatura (campo 11) ao recompute o valor da mistura dos outros campos. Se combinar a assinatura decifrada, a assinatura é válida se a chave pública do issuer estiver correta. O usuário verifica então o período da validez (campo 5) para se assegurar de que o certificado seja atual.
Uma autoridade da certificação (CA) é uma entidade essa certificados das edições.
Se todos os certificados tiverem um issuer comum, então a chave pública do issuer pode ser distribuída fora da faixa. Entretanto, isto é infeasible. Para o exemplo, é altamente improvável que France e os estados unidos poderiam concordar com um único issuer para suas organizações e certificados dos cidadãos. Isto sugere issuers múltiplos, que complica o processo do validation.
Suponha que Alice tem um certificado de seu CA local, Cathy. Quer comunicar-se com o Bob, cujo o CA local é Dan. O problema é para que Alice e Bob valide-se certificados.
Suponha que X<<Y > > representa o certificado que X gerou para o assunto Y (X é o CA que emitiu o certificado). O certificado de Bob é Dan<<Bob > >. Se Cathy emitir um certificado a Dan, Dan tem um certificado Cathy<<Dan > >; similarmente, se Dan emitir um certificado a Cathy, Cathy tem um certificado Dan<<Cathy > >. Neste caso, Dan e Cathy seriam cruz-certificados.
Dois CAs cruz-são certificados se cada um emitir um certificado para o outro.
Porque Alice tem a chave pública de Cathy (confiado), pode obter Cathy<<Dan > > e dar forma à corrente da assinatura
Cathy<<Dan > > Dan<<Bob > >
Porque Alice pode validar o certificado de Dan, pode usar a chave pública que certificado validar o certificado de Bob. Similarmente, Bob pode adquirir Dan<<Cathy > > e validar o certificado de Alice.
Dan<<Cathy > > Cathy<<Alice > >
As correntes da assinatura podem ser do comprimento arbitrário. A única exigência é que cada certificado pode ser validado por esse antes dele na corrente. (X.509 sugere CAs organizando em uma hierarquia para minimizar os comprimentos de correntes da assinatura do certificado, mas esta não é uma exigência.)
Os certificados podem ser revogados, ou cancelado. Uma lista de tais certificados permite um usuário de detectar, e a rejeição, certificados invalidated.
O PGP é um programa do encipherment usado extensamente fornecer a privacidade para o correio eletrônico durante todo o Internet, e assinar digital limas. Usa um infrastructure chave certificado-baseado da gerência para chaves públicas dos usuários. Sua estrutura do certificado e a chave de gerência difere de X.509's em diversas maneiras. Aqui, nós descrevemos a estrutura de OpenPGP; mas muita desta discussão aplica-se também a outras versões do PGP.
Um certificado de OpenPGP é composto dos pacotes. Um pacote é um registro com um Tag que descreve sua finalidade. Um certificado contem um pacote chave público seguido por zero ou mais pacotes da assinatura. Um pacote chave público de OpenPGP tem a seguinte estrutura.
Versão. Este é 3 ou 4. A versão 3 é compatível com todas as versões do PGP; A versão 4 não é compatível com (versão 2.6) versões velhas do PGP.
Época da criação. Isto especifica quando o certificado foi criado.
Período da validez (versão 3 somente). Isto dá o número dos dias que o certificado é válido. Se for 0, o certificado não expira.
Algoritmo e parâmetros chaves públicos. Isto identifica o algoritmo usado e dá os parâmetros para o cryptosystem usado. Os pacotes da versão 3 contêm o modulus para RSA. Os pacotes da versão 4 contêm os parâmetros apropriados para o cryptosystem usado.
Chave pública. Isto dá a chave pública. Os pacotes da versão 3 contêm o exponente para RSA. Os pacotes da versão 4 contêm a chave pública para o cryptosystem identificado no campo 4.
A informação em um pacote da assinatura de OpenPGP é diferente para as duas versões. A versão 3 contem o seguinte.
Versão. Este é 3.
Tipo da assinatura. Isto descreve a finalidade específica da assinatura e codifica um nível da confiança. Para o exemplo, o tipo 0x11 da assinatura diz que o signer não verificou que a chave pública pertence ao assunto nomeado.
Tempo da criação. Isto especifica o tempo em que os seguintes dos campos hashed.
Identificador chave do signer. Isto especifica a chave usada gerar a assinatura.
Algoritmo chave público. Isto identifica o algoritmo usado gerar a assinatura.
Algoritmo da mistura. Isto identifica o algoritmo usado hash a assinatura antes de assinar.
Parte do valor assinado da mistura. Depois que os dados hashed, o campo 2 está dado o tempo em que a mistura foi computada, e esse campo hashed e é adicionado à mistura precedente. Os primeiros dois bytes são colocados neste campo. A idéia é que a assinatura pode ser rejeitada imediatamente se os primeiros dois bytes hashed durante o validation não combinarem este campo.
Assinatura. Isto contem o encipherment da mistura usando a chave confidencial do signer.
Um pacote da assinatura da versão 4 é consideravelmente mais complexo, mas como um pacote da assinatura da versão 3 , liga uma assinatura a um identificador e a uns dados. O leitor interessado é consultado às especificações de OpenPGP.
Os certificados do PGP diferem dos certificados X.509 em diversas maneiras importantes. Ao contrário de X.509, uma única chave pode ter assinaturas múltiplas. (todas as chaves do PGP da versão 4 são assinados pelo proprietário; isto é chamado self-assinar.) Também ao contrário de X.509, uma noção da "confiança" é encaixada em cada assinatura, e as assinaturas para uma única chave podem ter níveis diferentes da confiança. Os usuários dos certificados podem determinar o nível da confiança para cada assinatura e agir conformemente.
EXEMPLO: Suponha que Alice necessita se comunicar com o Bob. Obtem o certificado público do PGP da chave de Bob, Ellen, Fred, Giselle, Bob<<Bob > > (onde a notação X.509 é estendida na maneira óbvia). Alice não sabe nenhumas dos signers, assim que da ela começa o certificado do PGP de Giselle, Henry, Irene, Giselle<<Giselle > >, de um usuário do certificado. Sabe o Henry vaga, assim que obtem seu certificado, Ellen, Henry<<Henry > >, e verifica o certificado de Giselle. Anota que a assinatura do Henry está no nível "ocasional" da confiança, assim que decide-se olhar em outra parte para a confirmação. Obtem o certificado de Ellen, Jack, Ellen<<Ellen > >, e reconhece imediatamente Jack como seu marido. Tem seu certificado e usa-o validar o certificado de Ellen. Anota que sua assinatura está no nível "positivo" da confiança, assim que aceita o certificado de Ellen como válido e usa-o validar Bob. Anota que Ellen assinou o certificado com confiança "positiva" também, assim que concli que o certificado, e a chave que pública contem, é trustworthy. |
No exemplo acima, Alice seguiu duas correntes da assinatura:
Henry<<Henry > > Henry<<Giselle > > Giselle<<Bob > >
e
Jack<<Ellen > > Ellen<<Bob > >
(onde as assinaturas unchecked foram deixadas cair). Os níveis da confiança afetados como Alice verificou o certificado.
Uma distinção subtle levanta-se aqui entre X.509 e certificados do PGP. Os certificados X.509 incluem um elemento da confiança, mas a confiança não é indicada no certificado. Os certificados do PGP indicam o nível da confiança, mas o mesmo nível da confiança pode ter meanings diferentes aos signers diferentes.
A distribuição e a gerência de chaves públicas são complexas por causa das exigências diferentes de vários protocolos. A maioria de protocolos usam algum formulário dos certificados X.509v3, embora as extensões variem. O infrastructure que controla chaves e autoridades públicas da certificação é chamado um infrastructure chave público. Diversos tais infrastructures estão no lugar, tal como os usuários do certificado do PGP e os issuers comerciais do certificado para browsers do World Wide Web.
Online: 404 users browsing the articles directory
|
|