Autenticadores

Um autenticador ajuda a impedir a substituição do valor inteiro de campos criptografados. Por exemplo, considere a tabela seguinte de dados de folha de pagamento.

Identificação_Funcionário

Cargo_Padrão

Salário_Base

345

Assistente do departamento de cópias

Fskj%7^edhn00

697

Diretor financeiro

M0x8900f56543

694

Supervisor de entrada de dados

Cvc97824%^34f

Sem quebrar a criptografia, um hacker pode deduzir informações significativas a partir do contexto no qual o texto cifrado é armazenado. Como um Diretor financeiro ganha mais do que um Assistente do departamento de cópias, deduz-se que o valor criptografado como M0x8900f56543 seja maior do que o valor criptografado como Fskj%7^edhn00. Portanto, qualquer usuário com permissão ALTER na tabela pode conceder um aumento ao Assistente do departamento de cópias substituindo os dados em seu campo Base_Pay por uma cópia dos dados armazenados no campo Base_Pay do Diretor financeiro. Este ataque de substituição do valor inteiro ignora completamente a criptografia. Os ataques de substituição do valor inteiro podem ser impedidos acrescentando-se informações contextuais ao texto não criptografado antes de criptografá-lo. Essas informações contextuais são usadas para verificar se os dados de texto não criptografado não foram movidos.

Se um parâmetro de autenticador for especificado no momento que os dados são criptografados, o mesmo autenticador será necessário para descriptografá-los. No momento da criptografia, um hash do autenticador é criptografado com o texto não criptografado. No momento da descriptografia, o mesmo autenticador deve ser transmitido para a função de descriptografia. Se os dois não coincidirem, a descriptografia falhará, indicando que o valor foi movido desde que foi criptografado. Recomendamos usar a chave primária da tabela na qual o resultado será armazenado como um autenticador.