Inúmeras falhas na maneira em que a Microsoft armazena chaves confidenciais.

Como para recuperar chaves particulares para Microsoft Internet Explorer, Internet
Servidor De Informação, Perspectiva Expressa, e muitos outros
- ou -
Onde suas chaves do encryption desejam ir hoje?

[Isto é um ligeiramente formulário atualizado da versão Eu originalmente circulei]

Peter Gutmann, [email protected]

Resumo
-------

Microsoft usa dois arquivo diferente formata proteger os usuários chaves particulares quando
armazenado em disco, o original (unnamed) formata que esteve utilizado em versões mais velhas
de MSIE, IIS, e outro software e que é ainda suportado para
para trás-compatibilidade razões em mais novas versões, e as mais novas PFX/PKCS #12
formato. Devido para um número de projeto e falhas de implementação nas Microsofts
software, isto é possível para quebrar a segurança de ambas destes formatos e
recupere usuários chaves particulares, freqüentemente em uma matéria de segundos. Em adição, um major
buraco de segurança em meios do CryptoAPI Das Microsofts que muitas chaves que não são armazenadas
em um arquivo de disco pode ser recuperado sem até mesmo necessitando quebrar o encryption.
Esses ataques não confiam para seu sucesso na presença de fraca,
NÓS-EXPORTABLE encryption, eles também afetam NÓS versões.

Como um resultado destas falhas, nenhuma Microsoft produto internet é capaz de
protegendo umas chaves dos usuários de ataque hostil. Por combinar os ataques
descrito baixo com amplamente-publicised bugs no MSIE que permite sites hostis
para ler os conteúdos de usuários duros dirige ou com um controle do ActiveX, ou uns novos
bug que colhido para cima unicamente horas depois este artigo foi primeiro publicado que
permite qualquer um para correr código arbitrário em uma máquina das vítimas com nenhum caminho de
parando eles, uma vítima pode ter sua chave particular chupada desligado sua máquina e
o encryption que "protege" isto quebrou em um site remoto sem seu
conhecimento.

Uma Vez um attacker tem obtido uns usuários chave particular nesta maneira, eles têm
efetivamente roubado seu (digitial) identidade, e pode usar isto para digitalmente sinal
contrata e acordos, para recuperar toda chave de sessão do encryption isto está sempre
protegido no passado e sempre protegerá no futuro, para acessar particular
e email confidencial, e assim em e assim em. A facilidade com que este ataque
está
componentes do encryption em servidores de web e browsers - uma vez a chave particular está
comprometido, todos serviços de segurança que contam com isto são também comprometidos.

Um realmente attacker inteligente o seguinte:

- Uso (diz) um bug do MSIE para roubar código do someones ActiveX assinando chave.
- Decrypt isto usando um dos ataques descritos baixo.
- Usa isto para assinar um ActiveX controla que rouba outras chaves de pessoas.
- Colocado isto em uma web page e espera.

Na oportunidade remota que o controle do ActiveX é descoberto (que está extremamente
improvável, desde isto corre e apaga si mesmo quase instantaneamente, e não pode ser
parado até mesmo com o o mais alto "segurança" valor no MSIE), a vontade de ataque é
culpado na pessoa a chave foi roubada de em vez do attacker real.

Isto demonstra problemas maiores em segurança chave particular de ambas Microsoft (uns
attacker pode decrypt, e portanto emprega mal, sua chave particular), e ActiveX
segurança (um attacker pode criar um efetivamente unstoppable malicious ActiveX
controle e, na oportunidade remota que isto é sempre descoberto, assegura isso
alguém senão toma a culpa).


Fundo
----------

Sobre um ano atrás Eu postei um artigo em como para quebrar a Netscape (então) servidor
encryption chave à lista do cypherpunks (Netscape corrigida este problema em
sobre o mesmo tempo como Eu postei o artigo). Entretanto mais que um ano depois
o código foi publicado, e 2 1/2 anos depois um problema parecido com o Windows
.PWL arquiva encryption foi publicised, Microsoft estão ainda usando exatamente o mesmo
dados facilmente-quebrados,fracos formatam para "protegem" usuários chaves particulares. Para quebrar isto
formate Eu simplesmente espanei desligado meu ano-velho software, mudado o "Netscape" fios
para "Microsoft", e teve um encryption-breaker que poderia recuperar a maioria da particular
chaves "protegidas" com este formato em uma matéria de segundos.

Além Do formato mais velho, mais novos produtos da Microsoft também suportam o PKCS
#12 formato (que eles originalmente PFX chamado), que render da Microsoft como
inseguro como o formato mais velho por empregar o RC2 cifra com uma 40-bit chave.
Este mesmo nível de "segurança" é global utilizada, de modo que até mesmo NÓS usuários obtêm nenhum
segurança qualquer que quando armazenando suas chaves particulares. Entretanto até mesmo RC2/40 pode
tome um pouco para quebrar (a definição exata de "uma enquanto" conta com quanto
força computacional você tem disponível, para a maioria do não-financiado attackers isto varia
de umas horas poucas para uns dias poucos). Afortunadamente, há falhas de projeto bastantes em
PKCS #12 e bugs em implementação das Microsofts para assegurar que nós podemos ignorar o
encryption tamanho chave. Isto tem o útil - para um attacker - efeito colateral que
mesmo que Microsoft muda usar RC2/128 ou DES triplo ao encryption, isto
não faz a tarefa do attackers qualquer mais difícil. Por combinar o código para
quebre o PKCS #12 formata com o código mencionado acima que quebra o mais velho
formato, nós obtemos um programa único que, quando continua tipo um ou outro de arquivo chave,

segundos.

Um (algo limitado) exemplo deste tipo de programa é disponível em fonte
código forma do http://www.cs.auckland.ac.nz/~pgut001/pubs/breakms.c, com um
executable do DOS DO precompiled em
http://www.cs.auckland.ac.nz/~pgut001/pubs/breakms.exe. Porque isto é pretendido como
um prova-de-conceito programa isto está algo cru, e restringiu recuperar
senhas que são palavras de dicionário únicas. Nota: Isto faz não meio que
usando (diz) duas palavras como uma senha ao invés de uma vontade protege suas particulares
chave. Todo isto meios é que Eu tenho não bothered para escrever algo mais
sofisticado - sem dúvida qualquer um esteve sério sobre isto podia adaptar
alguma coisa regras senha-geração do cracklib igual e rotinas para fornecer uma
mais tipo poderoso e compreensivo de ataque. Parecidamente, por fabricação trivial
muda aos dados de arquivo chaves formatam isto é possível para enganar o programa até
alguém faz um igualmente mudança trivial ao programa para seguir a pista o formato
mudança - isto é pretendida como um demonstrator unicamente, não um feito-tudo encryption
breaker.

Para usar o programa, compila (ou usa a versão do precompiled) e invoca isto
com:

breakms

Aqui É que a saída deveria olhar gosta de (alguma das linhas têm sido trimmed uma
bit):

Arquivo é um PFX/PKCS #12 arquivo chave.
Codificado dados está 1048 bytes ambicionam.
A senha que esteve utilizada para codificar esta Microsoft PFX/PKCS #12 arquivo está
'orthogonality'.

Módulo = 00BB6FE79432CC6EA2D8F970675A5A87BFBE1AFF0BE63E879F2AFFB93644D [...]
Expoente Público = 010001
Expoente Particular = 6F05EAD2F27FFAEC84BEC360C4B928FD5F3A9865D0FCAAD291E2 [...]
Prime 1 = 00F3929B9435608F8A22C208D86795271D54EBDFB09DDEF539AB083DA912D [...]
Prime 2 = 00C50016F89DFF2561347ED1186A46E150E28BF2D0F539A1594BBD7FE4674 [...]
Expoente 1 = 009E7D4326C924AFC1DEA40B45650134966D6F9DFA3A7F9D698CD4ABEA [...]
Expoente 2 = 00BA84003BB95355AFB7C50DF140C60513D0BA51D637272E355E397779 [...]
Coefficient = 30B9E4F2AFA5AC679F920FC83F1F2DF1BAF1779CF989447FABC2F5628 [...]

Alguém enviado me uma chave da Microsoft De teste eles tinham criado com o MSIE 3.0 e o
programa pegou somente uns segundos poucos para recuperar a senha utilizada para codificar o
arquivo.

Um desculpa oferecido por Microsoft é aquele Windows Nt tem acessado listas de controle
(ACL) para arquivos que podem estar utilizados para proteger contra este ataques e o um
descrito baixo. Entretanto isto está não notavelmente útil: A Maioria Da vontade dos usuários seja corrida
Windows '95 que não tem ACL, do pequeno restante usando maior do NT
não mais ambos valor o ACL, e em qualquer caso desde o ataque estará virá de
software corre como o usuário corrente (que tem acesso cheio ao arquivo), o
doACL tem nenhum efeito. A questão do ACL está meramente um herring vermelho, e oferece nenhuma
além disso proteção.


Além Disso Ataques (informação fornecida por Steve Henson )
---------------

Há um além disso ataca possível que trabalha porque segurança da Microsoft
produtos confiam na presença do CryptoAPI Da Microsoft, que tem uns maravilhosos
função chamada CryptExportKey(). Esta mãos de função acima de uns usuários chave particular
para qualquer um que pede isto. A chave é codificada sob o usuário corrente, assim qualquer
outro programa corre sob o usuário pode obter sua chave particular com um solteiro
funcione chamada. Por Exemplo um ActiveX controla em uma web page podia pedir o
chave dos usuários corrente, despacha isto fora para um site remoto, e então apaga si mesmo de
o sistema deixando nenhum traço de que acontecido, um bit gosta do mail.exe programa Eu
escreveu sobre 2 anos atrás que fizeram a mesma coisa para senhas do Windows. Se o
controle é assinado, não há caminho para parar isto de corrida até mesmo com o o mais alto
nível de segurança selecionado no MSIE, e desde isto imediatamente apaga todos traços de
sua existência o código assinando é sem valor.

Mais Novas versões do CryptoAPI que vem com o MSIE 4 permite o usuário para atribuir umas
bandeira (CRYPT_USER_PROTECTED) que especifica que a função de exportação chave deve

proteção. Entretanto o caminho isto é implementado faz isto principalmente ineficaz.
Primeiramente, se o certificado solicita escrita utilizada para gerar a chave não atribui
esta bandeira, você acaba com o default de "nenhuma proteção" (e a maioria de
usuários somente usarão o default de "nenhuma proteção" de qualquer modo). Embora Microsoft
reclame que " vontade do CA honroso não esquece atribuir esta bandeira", um número de CA
testado (incluindo Verisign) faz não mais ambos para atribuir isto (faz este meio que
Microsoft considera Verisign como um CA não respeitável? :-). Por Causa De isto, eles
não até mesmo fornece o usuário com a opção de selecionar alguma coisa que não
"nenhuma segurança qualquer que".

Em adição ao menos uma versão de CryptoAPI poderia permitir o "usuário
notificação" nivela de segurança para seja desviada por apagar a notificação
recurso de diálogo de memória de modo que a chamada poderia calmamente falhar e a chave
estaria
mecanismo de proteção de página da CPU, há caminhos mais fáceis para obter a chave que
isto).

Finalmente, o " proteção de senha" nivela de segurança pede a senha uma
whopping 16 (sim, *sixteen*) tempos quando exportando a chave, ainda que isto unicamente
necessita fazer isto uma vez. Depois sobre o quinto tempo o usuário provavelmente pressionará
no "recorda senha" caixa, movendo eles retorna para zero segurança até eles
reboot a máquina e limpa o valor, desde a vontade chave seja exportada com
nenhuma notificação ou senha checa uma vez a caixa é pressionada.

Para checar que nivela de segurança você tem, tentativa exportando seu certificado chave.
Se não há warning/password diálogo, você tem zero segurança para sua chave, e
não necessidade par para usa a encryption-quebrada técnica Eu descrevo em qualquer outra parte
neste artigo. Qualquer web page você folheia podia estar roubando sua chave (através de
um controle do ActiveX embutido) sem você sempre sendo atento disto.


Obtendo Acesso para Chaves
------------------------

Por coincidência, umas horas poucas depois Eu postei este artigo o seguinte aparecido
na lista do Bugtraq:

>O Microsoft Internet Explorer 4.0(1) Suíte, incluindo todos programas fornecidos
>com isto que lê and/or processa HTML de máquinas locais um ou outro, intranet
>máquinas, ou máquinas internet remotas são assunto para um buffer transborda nas
>HTML decodificando processo. A inundação do buffer pode causar a aplicação para paginar
>falta, ou no caso pior, executa precompiled arbitrário código nativo.
>
>Diferente Do res:// bug, encontrado uns meses poucos atrás, este bug _does_ afeta Windows
>NT assim como Windows 95.
>
>Isto tem também sido relatado que este bug afeta Internet Explorer 3.0 se você
>tem Estúdio Visual (VC++/J++ etc) instalado em seu sistema.

[A mensagem continua incluir uma descrição de um programa que executará
código arbitrário em sua máquina]

>Correntemente, não há solução disponível para esta falha. Você não pode atribuir qualquer
> opções de Internet Explorer para evitar isto, e você não são protegidas por qualquer nível
>de segurança de zona. Simplesmente não surfa a web, lê email ou vê notícias de rede usando
>Internet Explorer 4.0(1) até a Microsoft levantada um hotfix.

Isto está precisamente o espécie de problema Eu referi para no resumo acima. Por
combinando este tipo de buraco de segurança do unstoppable com os problemas de segurança
descrito neste artigo, qualquer um pode acessar suas chaves, e não há caminho para
pare eles à parte de (como o consultivo acima diz) não surfando a web ou
correspondência de leitura ou notícias.

Com este bug, os ataques exatos Eu descrevo neste artigo pode ser implementado,
por usar o bug para correr código arbitrário na máquina dos usuários que um ou outro agarra
o arquivo chave ao decryption ou chama CryptExportKey() para obter as vítimas
chave particular. Alguém pode roubar sua chave particular(s) sem seu conhecimento,
simplesmente por ter você acessa sua web page.


Detalha em Quebrar o Formato Mais Velho
------------------------------------

A Microsoft formato chave utilizado por softare mais velho tal como MSIE 3.0 é muita
suscetível para ambos um dicionário ataca e para recuperação do keystream. Isto usa o
PKCS #8 formata para chaves particulares, que fornece uma quantia grande de sabida
plaintext no começo dos dados, em combinação com RC4 sem qualquer formulário de
IV ou outro preprocessing (ainda que PKCS #8 recomenda aquele PKCS #5
senha-baseado encryption está utilizado), que meios você pode recuperar o primeiro
100-odd bytes de corrente chave com um XOR simples (o mesmo erro eles fizeram com
seu . Arquivos do PWL, que foi publicised 2 1/2 anos mais antecipados). Embora o
senha é hashed com MD5 (permitindo eles para reclamar o uso de um 128-bit chave),
o caminho a chave é aplicada fornece quase nenhuma segurança. Este meios duas coisas:

1. Isto É muito simples para escrever um programa para desempenhar um dicionário ataca no
chave de servidor (isto originalmente leve-me sobre meia hora usando cryptlib,
http://www.cs.auckland.ac.nz/~pgut001/cryptlib/, outra hora meia para rasgar
o código apropriado fora de cryptlib para criar um programa do standalone, e um
minutos poucos ao retarget o programa da Netscape à Microsoft).

2. A corrente chave recuperada da chave de servidor codificada pode estar utilizada para
decrypt qualquer outro recurso codificado com a senha de servidor, *without
sabendo o password*. Isto está porque há bastante sabido plaintext
(ASN.1 objetos, contestam identifiers, e componentes chaves públicos) no começo
dos dados codificados para recuperar quantidades grandes de corrente chave. Este meios
que mesmo que você usa uma milhão-bit chave do encryption, um attacker pode ainda
recupere ao menos o primeiro 100 bytes de algo você codifica sem necessitar
para saber sua chave ( Stevenson Franco glide.exe programa usa este para recuperar
senhas do Windows .PWL arquiva em uma fração de um segundo).

O problema aqui é causado por uma combinação do PKCS #8 formato (que está
melhor nonoptimal para proteger chaves particulares) e o uso de RC4 ao encryt
fixado, sabido plaintext. Desde tudo é constante, você faz não necessidade par para
corra o senha-transformação processo mais que uma vez - somente armazena um
dicionário da corrente chave resultada para cada senha em um banco de dados, e
você pode quebrar o encryption com uma pesquisa única (isto poderia seria evitar por
o uso de PKCS #5 senha-baseado encryption, que reitera a atribuição chave e
use um sal para fazer um dicionário do precomputed ataca impossível. PKCS #5
declara que seu primário pretendido aplicação está para proteger chaves particulares,
mas a Microsoft (e Netscape) escolheu não para usar esta e foi com reta RC4
encryption ao invés). Isto está exatamente o mesmo problema que subiu com
Microsoft .PWL arquiva encryption em 1995, e ainda no 2 1/2 anos desde Eu
exposto este problema eles ainda não têm aprendido de seus erros prévios.

Ao curioso (e ASN.1-aware), aqui é que os dados formata olhar gosta de.
Primeiro há o encapsulation exterior que Microsoft usa movimentar para cima o
codificado chave:

MicrosoftKey ::= SEQÜÊNCIA {
FIO DO identifier OCTET ('particular-chave'),
encryptedPrivateKeyInfo
EncryptedPrivateKeyInfo
}

Interior isto é um PKCS #8 chave particular:

EncryptedPrivateKeyInfo ::= SEQÜÊNCIA {
encryptionAlgorithm EncryptionAlgorithmIdentifier,
encryptedData EncryptedData
}

EncryptionAlgorithmIdentifier ::= AlgorithmIdentifier

EncryptedData = FIO DO OCTET

Agora o EncryptionAlgorithmIdentifier é suposto ser alguma coisa igual
pbeWithMD5AndDES, com um associado 64-bit sal e conta do iteration, mas
Microsoft (e Netscape) ignorada esta e reta utilizada rc4 com nenhum sal ou
conta do iteration. O EncryptedData decrypts para:

PrivateKeyInfo ::= SEQÜÊNCIA {
Versão De versão
privateKeyAlgorithm PrivateKeyAlgorithmIdentifier
privateKey PrivateKey
atributos [ 0 ] Atributos IMPLÍCITOS OPCIONAIS
}

Versão ::= INTEIRO

PrivateKeyAlgorithmIdentifier ::= AlgorithmIdentifier

PrivateKey ::= FIO DO OCTET

Atributos ::= ATRIBUA DE Atributo

(e assim em e assim em, Eu tenho não bothered descendo mais além). Uma coisa
noting digno é aquela Microsoft codifica o AlgorithmIdentifier incorretamente por
omitindo os parâmetros, esses deveriam seriam codificar como um valor NULO se há
nenhuns parâmetros. Neste eles diferem da Netscape, indicando que ambos
companhias administradas para independentemente sobem com a mesma armazenamento chave quebrada
formato. Wow.

Para pessoas escolhendo à parte a chave interiora, Microsoft também codifica sua ASN.1
INTEIROS incorretamente, assim você necessita estar atento deste quando lendo fora os
dados.


Detalha em Quebrar o PFX/PKCS #12 Formato
-------------------------------------------

O PFX/PKCS #12 formato está vastamente mais complexo (e braindamaged) que o
formato mais velho. Você pode encontrar um resumo de algum do bletcherousness neste
formate no http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html. Depois Microsoft
originalmente projetado o formato (chamando isto PFX) e apresentado isto ao mundo
como um fait accompli, tripulações de limpeza de outras companhias aceleradas em e fixadas algum
dos problemas piores e falhas de segurança. De Fato PFX esteve assim ruim que isto foi
unimplementable como projetado, assim isto foi renamed e transmogrified dentro o PKCS #12
(embora há várias reclamações em literatura do vendedor que que está sendo
suportado é PFX and/or PKCS #12 - a situação exata é complexo e
confundindo). Pelo tempo isto foi finalised, Microsoft tinha já despachada um
implementação que foi baseada em uma versão mais antecipada com um número de falhas e
buracos, e não desejaram mudar seu código qualquer mais. Um efeito colateral deste
que para estava estando vendedores outros, compatíveis tiveram copiar bugs das Microsofts melhor
que produzimos uma implementação em conformidade com o padrão. Mais Novas versões
do padrão tem agora estado emendado definir os bugs de implementação como um
separe do padrão.

De Qualquer Modo, como um resultado deste isto é possível para montar três independant digita de
ataque na Microsoft PFX/PKCS #12 chaves:

1. Ataque o RC2/40 encryption utilizado em todas versões, até mesmo o NÓS-UNICAMENTE um.
2. Ataque o MAC utilizado para proteger o arquivo inteiro. Desde a mesma senha está
utilizado ao MAC e a chave codificada, recuperando a senha do MAC também
recupera a senha utilizada para codificar a chave particular. As tripulações de limpeza
somado um MAC iteration conta fazer este ataque mais duro, mas a Microsoft
ignorado isto.
3. Ataque a chave do encryption chave particular diretamente. Goste Do MAC, isto também
tem uma conta do interation. Microsoft não usa isto.

Mesmo Que um destas falhas é fixado, um attacker pode simplesmente mudar e
concentre em uma falha diferente.

Eu decidi ver que um podia ser implementado o maior eficientemente.
Obviamente (1) esteve ausente (você necessita desempenhar 2^39 RC2 horários chaves em média
para encontrar a chave), que esquerda (2) e (3). Com os refinamentos Eu Estou sobre para
descreva, isto despede que um ataque no encryption chave particular está
significativamente mais eficiente que um ataque no MAC.

Para compreender como os trabalhos de ataque, você necessita olhar como PKCS #12 faz seus
chave processando. O PFX spec original incluido unicamente alguns muitos pensamentos vagos
em como para fazer isto. Em mais tarde PKCS #12 versões isto desenvolvidas dentro umas algo
truncado rebento do PKCS #5 e chave do TLS processando métodos. Ao decrypt
dados que está "protegidos" usando o PKCS #12 chave processando, você necessita fazer os
seguinte:

construa um 64-byte "diversifier" (que difere contando com seja você
deseje montar uma chave ou um IV) e hash isto;
estique o sal fora para 64 bytes e hash isto depois o hash do diversifier;
estique a senha fora para 64 bytes (usando incorretos processando da
fio de texto, isto é um de bugs de implementação das Microsofts que têm
agora torna-se enshrined no padrão) e hash isto depois o hash de sal;
complete o hash e volta o valor resultado como um ou outro a chave ou o
IV, contando com o valor do diversifier;

(isto está realmente melhor mais complexo que que, isto é uma desnudada-abaixo versão
que é equivalente para que uso da Microsoft).

Este processo é levado a cabo duas vezes, uma vez pela chave e uma vez pelo IV. O
hashing é desempenhado usando SHA-1, e cada do dois invocations do
processo requer 4 passa através do SHA-1 função de compressão, para um total
de 8 passa através da função. Porque o PKCS #12 spec convenientemente
requer aqueles todos dados sejam esticados fora para 64 bytes, que acontece ser os
dados bloqueiam tamanho para SHA-1, não há necessidade à entrada processando que está
usualmente requerido para SHA-1 assim nós podemos desnudar este código fora e alimenta os dados
diretamente dentro o SHA-1 função de compressão. Assim a função de compressão
(junto com o RC2 atribuição chave) é o fator limitado à velocidade de uma
ataque. Obviamente nós desejamos reduzir o esforço requerido como muito como possível.

Como isto despede, nós podemos eliminar 6 dos 8 passagens, incisivo nossa carga de trabalho por
75%. Primeiro, nós observamos que o diversifier é um valor constante, assim
ao invés de valor isto para cima e hashing isto, nós precompute o hash e armazena o
valor de hash. Isto elimina o diversifier, e uma passagem através de SHA-1.

Próximo, nós observamos que o sal nunca muda à existência de arquivo atacada, assim
outra vez ao invés de valor isto para cima e hashing isto, nós precompute o hash e
armazene o valor de hash. Isto elimina o diversifier, e outra passagem
através de SHA-1.

Finalmente, todo que é deixado é a senha. Isto requer duas passagens através de
a função de compressão, um à senha (outra vez convenientemente esticada
para 64 bytes) e uns segundo para movimentar para cima o hashing.

Em teoria nós tínhamos necessitado repetir este processo duas vezes, uma vez para gerar a
chave do decryption e um segundo tempo para gerar o decryption IV que é utilizada
para codificar os dados em modo do CBC. Entretanto o começo do decrypted plaintext
está:

SEQÜÊNCIA {
SEQÜÊNCIA {
CONTESTE IDENTIFIER,
...

e a SEQÜÊNCIA é codificada como 30 82 xx xx (onde xx xx são o comprimento
bytes). Este meios o primeiro 8 vontade de bytes é 30 82 xx xx 30 82 xx xx, e
vontade seja seguida pelo identifier de objeto. Nós podemos portanto pular o primeiro 8
bytes e, usando eles como o IV, decrypt o segundo 8 bytes e checam aos
conteste identifier. Isto elimina o segundo PKCS #12 initialisation chave
chame que é normalmente requerido gerar o IV.

Como esta análise (e o programa) espetáculos, Microsoft administrada projetar e
implemente um "segurança" formata em que você pode eliminar 75% do encryption
processando trabalho enquanto ainda permitindo um ataque nos dados codificados. Para fazer
isto até mesmo mais fácil para um attacker, eles então reduzia a chave para unicamente 40 bits, par
na NÓS-UNICAMENTE versão do software. De Fato isto faz não realmente tem qualquer
efetue em segurança, mesmo que eles utilizados 128-bit RC2 ou DES triplo ou qualquer que, isto

Soluções ao Problema
------------------------

Remendando o bug do MSIE corrente um banda-ajuda rápido fixa para
aquele problema particular, mas este só está não ambos bastante porque há
ainda números significantes de pessoas usando versões mais velhas de software com outro
vulnerabilidades que permitem acesso para suas chaves, e porque há uniram
para estar mais caminhos de chegar a arquivos em uns usuários dirigem ou dados em uma máquina dos usuários
que colhe para cima no futuro. O bug do MSIE corrente somente acontecido aparecer em
o tempo direito ao mesh com os problemas Eu descrevi, para realmente endereço esses
Microsoft poderia necessitar para:

1. Arranje seu PKCS #12 implementação para evitar as várias ponto fraco Eu
descreva. Até Mesmo melhor poderia ser ao redo PKCS #12 (por exemplo por submeter
isto ao processo do IETF standardisation), porque a versão corrente é um
projeto horroroso bonito que parece dirigir mais por político e
negociando considerações que requerimentos de segurança.

2. Faz alguma coisa sobre CryptExportKey(). Eu Estou não seguro que a melhor solução
, desde Eu estou não estou sabendo quanto software poderia seria afetar por mudar isto.
Eu faço não realmente vejo que propósito uma função com a capacidade para mão acima de
sua chave particular para qualquer um que pede isto tem - por que pode um API DE segurança
até mesmo tem uma função que suporta esta capacidade?

Hosted by www.Geocities.ws

1