_NSAKEY é o nome de uma variável descoberta em agosto de 1999 no sistema operacional Windows NT 4 (SP5) para a Microsoft . Esta versão foi lançada sem remover informações de depuração .
A variável descoberta por Andrew D. Fernandes de Cryptonym Corporação continha um 1024 pouco de chave pública . A notícia causou protestos públicos e o surgimento de vários boatos. O pressuposto intuitivo era que a Agência de Segurança Nacional possuía a chave privada correspondente à chave pública do sistema operacional e, portanto, visava transmitir informações de todas as estações de trabalho equipadas com este SO para que somente a ANS pudesse usá-los. Essa hipótese envolve um acordo secreto entre a NSA e a Microsoft com o objetivo de espionar usuários.
Qualquer suíte criptográfica integrada aos sistemas operacionais da Microsoft precisa ser assinada digitalmente . Este procedimento facilita os trâmites junto à administração americana responsável pela verificação dos produtos exportados, o EAR ( Export Administration Regulations ). Esta entidade faz parte do Departamento de Comércio e inclui o BXA ( Bureau of Export Administration ).
O uso de duas chaves pela Microsoft já era conhecido. Ambos podem produzir assinaturas válidas. A primeira chave estava contida na variável _KEY, Fernandes descobriu a segunda.
A Microsoft refutou as acusações: “(...) este relatório é inexato e infundado. A chave em questão é uma chave da Microsoft. Ela é mantida e (a chave secreta) mantida em segurança. Não compartilhamos essa chave com a NSA ou qualquer outro terceiro. (...) ” . O símbolo _NSAKEY foi atribuído devido ao conhecimento técnico e controle de exportação operado pela NSA. A chave também era consistente com as leis de exportação dos Estados Unidos .
Mas certas declarações da Microsoft, enquanto a discussão estava em pleno andamento, agravaram ainda mais a paranóia .
A conferência Computers, Freedom and Privacy 2000 ocorreu de 4 a7 de abril de 2000em Toronto . Em uma apresentação, Duncan Campbell , repórter e pesquisador sênior do Electronic Privacy Information Center (EPIC), mencionou que a controvérsia _NSAKEY foi um excelente exemplo de questões de segurança e vigilância.
Richard Purcell, chefe de privacidade corporativa da Microsoft, conversou com Campbell após sua apresentação para esclarecer a controvérsia. Imediatamente após a conferência, Scott Culp, do Security Response Center da Microsoft, entrou em contato com Campbell e se ofereceu para responder às suas perguntas. Se suas trocas foram corteses no início, a discussão rapidamente escalou. Campbell afirmou que Culp era evasivo e Culp, por sua vez, disse que, em um design hostil, Campbell fazia perguntas que já havia respondido.
O 28 de abril de 2000, Culp disse que "sem dúvida chegamos ao fim desta discussão ... que está rapidamente descendo para o reino da conspiração." As outras perguntas de Campbell ficaram sem resposta.
Após uma controvérsia e vários conhecimentos criptográficos, várias conclusões foram apresentadas. Alguns observadores, incluindo Fernandes, duvidaram que o BXA imporia um backup específico das chaves. No entanto, nenhum dos proponentes desta tese acreditava ter a competência necessária para prová-lo formalmente.
A Microsoft insistiu que a segunda chave fosse apresentada como um backup. Se a primeira chave secreta fosse perdida, a Microsoft ainda poderia trabalhar com o outro par. Fernandes e Bruce Schneier expressaram dúvidas sobre a relevância desta explicação. Para eles, a melhor maneira de manter uma chave secreta é dividi-la em várias partes que seriam distribuídas para pessoas em quem confiam. Essa solução seria muito mais robusta do que usar duas chaves. Se a segunda chave tivesse sido perdida, a Microsoft teria que "corrigir" ou atualizar todas as cópias do Windows em todo o mundo, bem como quaisquer módulos que a empresa pudesse ter assinado.
Outra descoberta afirma que a segunda chave era destinada a assinaturas fora dos Estados Unidos, embora ainda fosse compatível com os regulamentos BXA. Se os módulos criptográficos precisavam ser assinados em vários lugares, o uso de várias chaves parecia mais lógico. No entanto, nenhum módulo criptográfico parece ter sido assinado pelo _NSAKEY e a Microsoft negou a existência de outra autoridade de certificação.
Uma terceira possibilidade seria da NSA e de outras agências governamentais que, para poderem assinar seus próprios módulos criptográficos, usariam a chave secreta. Esses módulos com algoritmos classificados seriam usados nas agências sem serem transmitidos à Microsoft. Essa possibilidade permitiria de fato à NSA assinar módulos que poderiam tornar o Windows mais vulnerável. Foi apontado, no entanto, que havia maneiras mais fáceis de minar uma instalação do Windows sem passar pela API de criptografia.
A Microsoft alegou que a NSA não tinha a chave secreta correspondente a _NSAKEY. A chave ainda está presente no Windows até hoje, mas foi renomeada para "_KEY2".
Em setembro de 1999 , um pesquisador anônimo fez a engenharia reversa das chaves para obter os dados equivalentes no formato PGP e postou o resultado em um servidor de chaves :