a mesma chave de máquina deve ser usada em ambientes de desenvolvimento e produção?

2

Nossos servidores de produção têm a mesma chave de máquina. No entanto, nossos sistemas de produção e desenvolvimento não possuem chaves de máquina idênticas. Nós obtemos montes (cerca de um por segundo) de exceções do formulário

System.Security.Cryptography.CryptographicException: Padding is invalid and cannot be removed.
at System.Security.Cryptography.RijndaelManagedTransform.DecryptData()
at System.Security.Cryptography.RijndaelManagedTransform.TransformFinalBlock()
at System.Security.Cryptography.CryptoStream.FlushFinalBlock()
at System.Web.Configuration.MachineKeySection.EncryptOrDecryptData()
at System.Web.UI.Page.DecryptStringWithIV()...

Implementamos o código após uma compilação, a origem .cs não está presente na produção. Os arquivos aspx estão presentes na produção.

(Devo ter publicado no Stack Overflow? Não é uma questão de codificação.)

A partir da experimentação, descobrimos que usar o valor da chave dev machine faz com que as exceções desapareçam. Alguém tem documentação que eu possa usar com a equipe de segurança sobre a necessidade de chaves idênticas em tempo de compilação e implantação?

    
por Henry Troup 30.03.2010 / 22:44

1 resposta

2

A resposta é não.

O motivo para não usar as mesmas chaves de máquina é que os desenvolvedores não devem ver as chaves secretas do ambiente de produção. Se você tem um ex-trabalhadores ou consultores externos, você não pode garantir que eles não vão espalhar o código de desenvolvimento para algum lugar. Em mãos erradas, as chaves facilitam o ataque aos servidores.

Aqui é um link legal.

    
por 29.07.2010 / 14:20