Infraestrutura de Chave Pública - InfoSecalbertini/1sem2016/infosec/aulas/aula07b-PKI.pdfI Ataque...
Transcript of Infraestrutura de Chave Pública - InfoSecalbertini/1sem2016/infosec/aulas/aula07b-PKI.pdfI Ataque...
Infraestrutura de Chave Publica - InfoSec
14 de Junho de 2016
Conteudo
I Estabelecimento de chaves simetricas
I Protocolos baseados em autoridades centrais (Kerberos)
I Ataque “Man in the middle”
I Esquemas de distribuicao de chaves publicas
I Certificados
Estabelecimento de chaves
I Duas abordagensI Transporte de chaves (key transport)
I Apenas um usuario decide qual e a chaveI Tipo criptografia simetrica
I Negociacao de chaves (key agreement)I Os dois usuarios participam da geracao da chaveI Tipo Diffie-Hellman
Distribuicao de chaves simetricas
I Abordagem naıve:I Estabelecer pares de chaves secretas entre todos usuariosI Para usuario (A,B,C ,D) temos chaves kAB , kAC , kAD , kBC , . . .
I Problemas:I Numero de pares de chaves e n · (n − 1)/2I Para 1000 usuarios, necessarias 499500 chavesI E complicado adicionar novos usuarios (como?)
Protocolos baseados em centro de distribuicao de chaves(Kerberos)
I Ideia: usar um “autoridade confiavel” centralI Key Distribution Center (KDC)
I Autoridade central compartilha uma chave com cada usuarioI Usuarios (A,B,C ,D), chaves: kA,KDC , kB,KDC , kC ,KDC , kD,KDC
I Comunicacao entre A e B exige comunicacao com KDCprimeiro
I KDC gera ksessao aleatoriaI KDC encripta: yA = ekA(ksessao) e yB = ekB (ksessao)I KDC envia yA e yB para AI A obtem chave ksessao = e−1kA
(yA)I A envia texto cifrado com ksessao e yB para B
I Para um usuario novo E , basta se cadastrar em KDC e obteruma key encryption key (KEK) kE ,KDC
I Problemas:I KDC e um ponto unico de falha
Estabelecimento de chaves assimetricas
I Meta: troca de chaves com meio inseguroI Abordagens:
I Transporte de chaves: autoridade centralI Negociacao de chaves: Diffie-Hellman
I Problema: Man-in-the-Middle attack
Man-in-the-Middle attack
pk
pk, sk
Alice pk
Alice pk∗
Alice pk∗
Alice pk
Distribuicao de chaves publicas
pk
pk, sk
Alice pk
Alice pk∗
Alice pk
Usar assinaturas para distribuicao segura de chaves
I Ideia: usar autoridade confiavel com uma chave publicaconhecida por todos
I CA = certifying authority = autoridade certificadoraI Chave publica pkCAI Chave privada skCA
Usar assinaturas para distribuicao segura de chaves
I Alice pede para o CA assinar o contrato (Alice, pk)I Certificado da CA sobre Alice consiste na assinatura do par
“dados de identidade da Alice” IDAlice e “chave publica daAlice” pkAlice com a chave privada skCA da autoridadecertificadora
I certCA→Alice = SignskCA(IDAlice , pkAlice)
I CA deve verificar identidade de Alice fora da comunicacao(por canal seguro)
Geracao de certificado pelo cliente
Geracao de certificado pela CA
Usar assinaturas para distribuicao segura de chaves
I Bob obtem par “IDAlice , pk” e o certificado certCA→Alice
I e verifica que VrfyPKCA((IDAlice , pkAlice), certCA→Alice) = 1
I Bob agora tem certeza que pk e a chave publica de AliceI Depende da confiabilidade de CA
I CA deve ser honesto e verificar apropriadamente a identidadede Alice
I Depende da seguranca da chave privada de CA
Diffie-Hellman com certificados
I sA e sB sao as assinaturas de certificacao do CA
Problema cıclico?
I Com Bob obtem pkCA em primeiro lugar?I Opcoes:
I Roots of TrustI Web of TrustI Repositorios de chaves publicas
I MIT PGP keyserver
Roots of Trust: chaves de CAs
I Pontos de origem de confianca (Roots of Trust)
I Bob so precisa obter de maneira segura um numero pequenode chaves publicas de CAs
I Necessario garantir distribuicao segura somente para essaspoucas chaves publicas iniciais
I OpcoesI Distribuir como parte do sistema operacionalI Instalar com os navegadores Web
Roots of Trust
Teia de confianca
I Obter chaves publicas de meus amigos pessoalmenteI Partes que assinam chaves
I Obter cerficados na minha chave publica de meus amigos
I Se A conhecer pkB e B emitiu certificado para C entao Cpode mandar esse certificado para A
Repositorio de chaves publicas
I Armazenar certificados em um repositorio centralI Exemplo: servidor de chaves PGP do MIT
I Para achar a chave publica de AliceI Obter todas as chaves publicas para Alice e certificados nessas
chavesI Procurar por um certificado assinado por alguem que voce
confia cuja chave publica voce ja tem
PKI na pratica
I Nao funciona tao bem quanto na teoriaI Proliferacao de CAs raizI RevocacaoI Outros problemas