Você está na página 1de 4

A arte de garantir a integridade

A ferramenta de hash usa uma função criptográfica de hash para verificar e assegurar a integridade de
dados. Também pode verificar a autenticação. As funções hash substituem a senha de texto simples
ou chaves de criptografia porque as funções hash são funções unidirecionais. Isso significa que, se
uma senha for confundida com um algoritmo de hash específico, o resultado sempre será o mesmo
hash digest. 
Uma função hash criptográfica tem as seguintes propriedades:
 A entrada pode ser de qualquer comprimento.
 A saída tem um comprimento fixo.
 A função hash é unidirecional e não é reversível.
 Dois valores de entrada distintos quase nunca resultarão em valores de hash idênticos.
Algoritmos hash
As funções hash são úteis para assegurar que um erro de comunicação ou do usuário altere os dados
acidentalmente. Por exemplo, um remetente pode querer ter certeza de que ninguém alterará uma
mensagem a caminho do destinatário. O dispositivo de envio insere a mensagem em um algoritmo de
hash e calcula o digest de tamanho fixo ou a impressão digital.
Senhas de hash
Os algoritmos hash transformam qualquer quantidade de dados em um hash digital ou impressão
digital de tamanho fixo. Um criminoso não pode reverter um hash digital para descobrir a entrada
original. Se a entrada mudar completamente, o resultado será um hash diferente. Isso funciona para
proteger as senhas. Um sistema precisa armazenar uma senha de modo a protegê-la, mas que ainda
possa verificar se a senha do usuário está correta.
Use as funções hash criptográficas nas seguintes situações:
 Fornecer a comprovação da autenticidade quando usada com uma chave de autenticação secreta
simétrica, como IP Security (IPsec) ou autenticação de protocolo de roteamento
 Fornecer autenticação gerando respostas unidirecionais únicas para desafios em protocolos de
autenticação
 Fornecer a comprovação da verificação de integridade da mensagem, como as que são usadas em
contratos assinados digitalmente, e certificados de infraestrutura de chave pública (PKI), como os que
são aceitos ao acessar um site seguro com um navegador
Para decifrar um hash, um invasor deve adivinhar a senha. O ataque de dicionário e o ataque de força
bruta são os dois principais ataques usados para adivinhar senhas. Um ataque de força bruta tenta
todas as combinações possíveis de caracteres até determinado tamanho. Um ataque de força bruta
consome muito tempo do processador, mas é só uma questão de tempo até esse método descubra a
senha. 
O salting torna o hash de senhas mais seguro. Se dois usuários têm a mesma senha, eles também
terão os mesmos hashes de senha. Um SALT, que é uma cadeia de caracteres aleatória, é uma entrada
adicional à senha antes do hash. Isso cria um resultado de hash diferente para as duas senhas,
conforme mostrado na figura. Um banco de dados armazena o hash e o SALT.
Para implementar o salt com sucesso, siga as seguintes recomendações:
 O salt deve ser exclusivo para cada senha de usuário.
 Nunca reutilize um salt.
 O tamanho do sal deve corresponder ao tamanho da saída da função hash.
 Sempre execute o hash no servidor em um aplicativo da Web.
O que é um HMAC?
O próximo passo para evitar que um criminoso virtual lance um ataque de dicionário ou um ataque de
força bruta em um hash é adicionar uma chave secreta ao hash. Um HMAC usa um algoritmo
específico que combina uma função hash criptográfica com uma chave secreta. Considere um
exemplo em que o remetente deseja assegurar que uma mensagem permaneça inalterada em trânsito e
que a destinatária tenha uma forma de autenticar a origem da mensagem.
Aplicação do HMAC
 Os roteadores Cisco IOS usam o hash com chaves secretas de maneira semelhante ao HMAC, para
adicionar informações de autenticação às atualizações do protocolo de roteamento.
 Os IPsec gateways e clientes usam os algoritmos hash, como MD5 e SHA-1 no modo de HMAC,
para proporcionar a integridade e a autenticidade do pacote.
 As imagens de software Cisco na página da Cisco.com disponibilizam uma soma de verificação de
MD5, para que os clientes possam verificar a integridade das imagens baixadas.
As assinaturas digitais podem oferecer a mesma funcionalidade que as assinaturas de próprio punho.
Os documentos digitais não protegidos pode ser facilmente alterados por qualquer pessoa. Uma
assinatura digital pode determinar se alguém editou um documento após a assinatura do usuário. Uma
assinatura digital é um método matemático usado para verificar a autenticidade e a integridade de
uma mensagem, documento digital ou software.
Uma assinatura digital assegura que o remetente assinou eletronicamente a mensagem ou documento.
Como uma assinatura digital é exclusiva para a pessoa que a criou, essa pessoa não pode
posteriormente negar que forneceu a assinatura.
As duas situações a seguir dão exemplos de como usar as assinaturas digitais:
 Assinatura de código - Utilizada para verificar a integridade de arquivos executáveis baixados de
um site do fornecedor. A assinatura de código também usa certificados digitais assinados para
autenticar e verificar a identidade do site.
 Certificados digitais - Utilizados para verificar a identidade de uma empresa ou indivíduo para
autenticar um site do fornecedor e estabelecer uma conexão criptografada para troca de dados
confidenciais.
Um certificado digital é equivalente a um passaporte eletrônico. Permite que usuários, hosts e
empresas troquem informações de forma segura através da Internet. Especificamente, um certificado
digital autentica e verifica se os usuários que enviam uma mensagem são quem dizem ser. Os
certificados digitais também podem proporcionar a confidencialidade para o destinatário por meio da
criptografia de uma resposta.
As pessoas concordam em aceitar a palavra de terceiros imparciais. Supõe-se que terceiros conduzem
uma investigação detalhada antes da emissão das credenciais. Após essa investigação detalhada,
terceiros emitem credenciais que são difíceis de falsificar. Desse ponto em diante, todas as pessoas
que confiaram em terceiros simplesmente aceitam as credenciais emitidas por terceiros.
Uma autoridade de certificação (CA) atua da mesma forma que o departamento de trânsito. A CA
emite certificados digitais que autenticam a identidade de empresas e usuários. Esses certificados
também assinam mensagens para assegurar que ninguém adulterou as mensagens.
Os três processos de validação incluem:
 A descoberta do certificado valida o caminho de certificação, verificando cada certificado desde o
início com o certificado da CA raiz
 A validação do caminho escolhe um certificado da CA emissora para cada certificado na cadeia
 A revogação determina se o certificado foi revogado e por que
Integridade de dados
As quatro regras ou restrições de integridade de dados são as seguintes:
 Integridade da entidade: Todas as linhas devem ter um identificador único denominado chave
primária.
 Integridade de domínio: Todos os dados armazenados em uma coluna devem seguir o mesmo
formato e definição.
 Integridade de referência: A relação entre as tabelas deve permanecer coerente. Portanto, um
usuário não pode excluir um registro que está relacionado a outro.
 Integridade definida pelo usuário: Um conjunto de regras definidas por um usuário que não
pertence a uma das outras categorias. Por exemplo, um cliente faz um novo pedido.
Sobre as Regras de Validação
 Tamanho – verifica o número de caracteres em um item de dados
 Formato – verifica se os dados estão de acordo com um formato especificado
 Consistência – verifica a consistência dos códigos nos itens de dados relacionados
 Intervalo – verifica se os dados estão dentro de valores mínimo e máximo
 Dígito de verificação – efetua um cálculo extra para gerar um dígito de verificação para detecção
de erros
Validação dos tipos de dados
A validação dos tipos de dados é a validação de dados mais simples e verifica se um usuário que
insere dados é coerente com o tipo de caracteres esperados. Por exemplo, um número de telefone não
conteria o caractere alfa. Os bancos de dados permitem três tipos de dados: número inteiro, sequência
de caracteres e decimal.
Integridade da entidade
Um banco de dados é como um sistema de arquivamento eletrônico. Manter um arquivamento
correto é fundamental para preservar a confiança e a utilidade dos dados no banco de dados. Tabelas,
registros, campos e dados dentro de cada campo compõem um banco de dados. Para manter a
integridade do sistema de arquivos do banco de dados, os usuários devem seguir determinadas regras.
Integridade referencial
Outro conceito importante é a relação entre diferentes sistemas de arquivamento ou tabelas. A base
da integridade de referência consiste em chaves externas. Uma chave estrangeira em uma tabela faz
referência a uma chave primária em uma segunda tabela. A chave primária de uma tabela é um
identificador único das entidades (linhas) na tabela. A integridade referencial mantém a integridade
das chaves externas.
Integridade do domínio
Garante que todos os itens de dados em uma coluna estejam dentro de um conjunto definido de
valores válidos. Cada coluna em uma tabela tem um conjunto definido de valores, como o conjunto
de todos os números de cartão de crédito, de CPFs ou de endereços de e-mail. Limitar um valor
atribuído a uma instância dessa coluna (um atributo) reforça a integridade do domínio.

Você também pode gostar