Sugerir tradução
 
Outras sugestões:

progress indicator
Sem sugestões.
TechNet Magazine > Home > Edições > 2009 > TechNet Magazine Setembro 2009 >  Segredos do Windows: Codificação não é criptogr...
Exibir Conteúdo: Lado a LadoExibir Conteúdo: Lado a Lado
Este é um conteúdo traduzido por máquina que os membros da comunidade podem editar. Incentivamos você a melhorar a tradução clicando no link Editar associado a qualquer sentença abaixo.
Windows Confidential Encoding Is Not Encrypting
Raymond Chen


Start menu usage information is encoded—a word I select carefully so as not to mislead—in the registry. While encoding is about changing the form of data, encryption suggests that recovering the plain text is intended to be difficult: It isn't. Encryption also suggests that the encoding algorithm is supposed to be resilient to attack: It isn't.
The usage information is encoded so that it won't turn up during F3 searches through the registry for SomeAppName.exe. Such searches happen when people run hand-written "uninstall verification" tools that scour the hard drive and registry. If the usage information were recorded in plain text, these tools would find the entry in the usage database and then report a supposed uninstall as incomplete. However, uninstall programs are not expected to delete that registry key. They didn't create it; they don't need to delete it. In fact, usage information is supposed to outlive the uninstall. That way, if a user uninstalls and then reinstalls a program, the Start menu can say, "Welcome back! Here is your high-ranking spot on the Start menu."
Encoding also serves as a signal to programmers: "You are not expected to mess with this." If programmers do want to mess with it, they have to apply the (extremely simple but still non-null) decoding algorithm before proceeding. This makes updates, deletions and other types of messing around with those registry values impossible to do inadvertently. When you start pounding out a decoding algorithm for data in an undocumented registry key, you've obviously set about doing so intentionally. Hopefully at some point a voice in your head tells you, "Maybe I'm not supposed to be doing this."
In other words, the encoding serves as a "No Trespassing" sign. It doesn't prevent people from entering your property, but makes clear that their presence is unwelcome and removes their "But I didn't know!" defense.
The encoding has nothing to do with security. The information is stored in the user hive, so access already is restricted to the user (and administrators). No sensitive information, such as passwords, gets stored there. The encoding is just a speed bump to give application developers who attempt to tamper with the registry values, whether out of ignorance or carelessness, another chance to realize that the information really isn't for them.
Of course, the speed bumps don't stop programmers from writing the functions to encode and decode the data anyway. With one example I found, if a user reconfigured the program, then the program would in turn manipulate the usage data—and this wasn't part of an uninstall; it happened during runtime. In other words, the programmers intentionally set out to manipulate the usage data and thereby alter the program's positioning on the Start menu.
Figuring out the decoding algorithm is hardly cause for bragging—it isn't that hard to do. And besides, the decoding algorithm may not be the one you reverse-engineered anyway, because also in use may be another (equally undocumented) registry key for changing the encoding algorithm. The program I mention in the example didn't take this extra wrinkle into account. If the encoding wasn't set to its default value, the tool found usage data it perceived as corrupted. Thank goodness the code didn't try to "repair" that!
One of the criteria for the encoding is that it has to be extremely fast so as not to slow down decisions about what goes on your Start menu. You don't want 80 percent of the Start menu startup time spent inside some cryptography function.
The encoding algorithm has remained unchanged since it was introduced in Windows 2000, so that the information would be carried forward when upgrading to Windows XP and Windows Vista.
However, Windows 7 Start menu developers did temporarily change the encoding algorithm. This coincided with decisions to change the format of the application usage information and not to carry over old usage information from earlier Windows versions. Changing the encoding algorithm made distinguishing old from new data easier. This temporary change triggered a flurry of misinterpretations among Windows watchers, who assumed upon seeing a new encoding that the Start menu developers were "fixing" the weak "encryption" with a different weak "encryption"—except this was never encryption in the first place. With the final release, the original encoding algorithm will be back in place. After all, the original encoding is what carries the implicit social contract.

Raymond Chen's Web site, The Old New Thing, and identically titled book (Addison-Wesley 2007) deal with Windows history and Win32 programming. He sometimes encodes information by translating it into German (poorly).

Segredos do Windows Codificação não é criptografia
Raymond Chen


Informações sobre o uso menu Iniciar é codificado — uma palavra que eu selecionar cuidadosamente assim como não para enganar — no registro. Embora a codificação seja sobre como alterar a forma de dados, criptografia sugere que a recuperação de texto sem formatação destina a ser difícil: pois não o é. Criptografia também sugere que o algoritmo de codificação deve para ser resistentes a ataques: pois não o é.
As informações de uso são codificadas para que ele não ativar durante as pesquisas F3 por meio do Registro para SomeAppName.exe. Essas pesquisas acontecer quando pessoas executarem a escrita à mão "uninstall verificação"ferramentas que scour de unidade de disco rígido e no registro. Se as informações de uso foram registradas em texto sem formatação, essas ferramentas poderiam encontrar a entrada no banco de dados de uso e, em seguida, desinstalar uma suposta relatório como incompleta. No entanto, desinstalar programas não deve excluir essa chave do Registro. Eles não criá-la;eles não é necessário excluí-lo. Na verdade, as informações de uso deve outlive a desinstalação. Dessa forma, se um usuário desinstala e, em seguida, Reinstala um programa, iniciar menu pode dizer, "Bem-vindo fazer! Aqui está o ponto high-ranking no iniciar menu. "
Codificação também serve como um sinal para programadores: "Não é esperado cair com isso." Se os programadores deseja cair com ele, eles precisam aplicar o algoritmo de decodificação (extremamente simples, mas ainda não-nulo) antes de prosseguir. Isso faz atualizações, exclusões e outros tipos de mexam esses valores do Registro impossíveis fazer inadvertidamente ao redor. Quando você inicia pounding fora um algoritmo de decodificação de dados em uma chave do Registro não documentadas, você obviamente definiu sobre como fazer isso intencionalmente. Espera-se em algum momento uma voz de cabeça informa, "Talvez eu estou não deve estar fazendo isso."
Em outras palavras, a codificação serve como um "não Trespassing"sinal. Ela não impede que pessoas inserir sua propriedade, mas torna limpa que sua presença é indesejável e remove suas "Mas não sei!"defesa.
A codificação tem nada a fazer com segurança. As informações são armazenadas na seção do usuário, portanto, acesso já está restrito aos usuário (e os administradores). Sem informações confidenciais, como senhas, obtém armazenadas lá. A codificação é apenas uma bomba de velocidade para dar aos desenvolvedores de aplicativos que tentam violar os valores do Registro, se insuficiente ignorância ou descuido, outra oportunidade de perceber que as informações não não realmente para eles.
Obviamente, saliências velocidade não parar os programadores de escrever as funções para codificar e decodificar os dados mesmo assim. Com um exemplo descobri, se um usuário reconfigurado o programa, em seguida, o programa seria por sua vez manipular os dados de uso — e isso não era parte de uma desinstalação;ele aconteceu durante o tempo de execução. Em outras palavras, os programadores intencionalmente propus a manipular os dados de uso e assim alterar o posicionamento do programa no menu Iniciar.
Descobrir o algoritmo de decodificação é causar dificilmente para bragging — não é tão difícil fazer. E Além disso, o algoritmo de decodificação pode não ser que você engenharia reversa de qualquer forma, como também em uso pode ser outra chave de registro (igualmente não documentado) para alterar o algoritmo de codificação. O programa que mencionei no exemplo não leva este ruga extra em conta. Se a codificação não foi definida como seu valor padrão, a ferramenta encontrou dados de uso que é percebida como corrompido. Ainda Felizmente o código não tenta "reparar"que!
Um dos critérios para a codificação é que ele deve ser extremamente rápida assim como não para diminuir as decisões sobre o que acontece no menu Iniciar. Você não quer que 80 por cento do tempo de inicialização do menu Iniciar gasto em alguma função de criptografia.
O algoritmo de codificação permaneceu inalterado desde que foi introduzido no Windows 2000, para que as informações devem ser transportadas ao atualizar para Windows XP e Windows Vista.
No entanto, Os desenvolvedores de menu Iniciar do Windows 7 alterar temporariamente o algoritmo de codificação. Isso coincidiu com decisões para alterar o formato das informações de uso do aplicativo e não para transportar através de antigo informações de uso de versões anteriores do Windows. Alterando o algoritmo codificação feito antigo partir novos dados mais fácil fazer a distinção. Essa alteração temporária disparado um flurry de misinterpretations entre Windows watchers, que pressupõe-se ao ver uma nova codificação que os desenvolvedores do menu Iniciar foram "corrigir"fraco "criptografia"com uma "criptografia" fraca diferente — exceto isso nunca foi criptografia em primeiro lugar. Com o lançamento final, o algoritmo de codificação original estará novamente no local. Afinal, a codificação original é o que executa o contrato implícito social.

Raymond Chen's Web site, The Old New Thing, and identically titled book (Addison-Wesley 2007) deal with Windows history and Win32 programming. Às vezes, ele codifica informações através da conversão para o alemão (incorretamente).

Page view tracker