Escolar Documentos
Profissional Documentos
Cultura Documentos
O que é um Hash?
Os utilizadores precisam saber que os seus dados permanecem inalterados estando em
repouso ou trânsito. Hashing é um processo que garante a integridade dos dados que
permite obter, a partir dos dados binários (a mensagem), uma representação de
tamanho fixo chamada de hash, ou resumo da mensagem, como se mostra na figura.
Sempre que os dados são modificados, o valor do hash também muda. Devido a esta
caracterísitca, os valores de hash, quando produzidos com recurso a uma palavra-
passe, são muitas vezes chamados de impressões digitais. Podem detetar ficheiros
duplicados, diferentes versões de um ficheiro, e outras aplicações semelhantes.
Estes valores protegem contra uma mudança acidental ou intencional nos dados, ou
corrupção acidental dos dados. O recurso ao hashing também é muito eficiente. O
hash de um simples ficheiro ou o hash da totalidade do conteúdo de um disco,
resultam num valor de hash com exatamente o mesmo tamanho.
Propriedades do Hashing
Hashing é uma função matemática unidirecional que é relativamente fácil de
calcular, mas extremamente difícil de reverter. Moer café é uma boa analogia de uma
função unidirecional. É fácil moer grãos de café, mas é quase impossível colocar
todas as pequenas peças juntas de volta para reconstruir os grãos originais.
Algoritmo de Hash
As funções de hash são úteis para garantir que um erro do utilizador, ou de
transmissão, não altere os dados acidentalmente. Por exemplo, um remetente pode
querer ter certeza de que ninguém altera uma mensagem no caminho até ao
destinatário. O dispositivo de envio introduz a mensagem num algoritmo de hash e
calcula o resumo da mensagem de comprimento fixo (hash) ou impressão digital.
Algoritmo de Hash Simples (Soma de Controlo de 8 bits)
1. Converta BOB para binário usando a tabela ASCII, como se mostra na Figura 1.
SEGREDO = “S” =53 “E” =45 “C” =43 “R” =52 “E” =45 “T” =54
VALOR DE HASH = 3A
MENSAGEM = “M” =4D “E” =45 “S” =53 “S” =53 “A” =41 “G” =47 “E” =45
VALOR DE HASH = FB
O MD5 produz um valor de hash de 128 bits. O malware Flame comprometeu a segurança
do MD5 em 2012. Os autores do malware Flame usaram uma colisão MD5 para forjar um
certificado de assinatura de código, no Windows. Clique aqui para ler uma
explicação do ataque de colisão do malware Flame.
Nota: O comando verify /md5, mostrado na figura, está fora do âmbito deste curso.
Hash de Palavras-passe
Os algoritmos de hash transformam qualquer quantidade de dados numa impressão ou
hash digital, de comprimento fixo. Um criminoso não consegue reverter um hash
digital para descobrir a entrada original. Se a entrada for alterada, resulta num
hash diferente. Isto funciona para proteger as palavras-passe. Um sistema precisa
de armazenar uma palavra-passe num formato que a proteja e ainda conseguir
verificar que esta corresponde a um utilizador.
Aplicações
UItilize funções de hash criptográficas nas seguintes situações:
Para fornecer prova de autenticidade quando é usado com uma chave de autenticação
secreta simétrica, como no protocolo IP Security (IPsec), ou na autenticação de
protocolos de encaminhamento.
Para fornecer autenticação, gerando respostas únicas e unidirecionais aos desafios
(challenges) nos protocolos de autenticação
Para fornecer prova de verificação de integridade de mensagens, como os usados em
contratos assinados digitalmente, e certificados de infraestrutura de chave pública
(PKI), como os aceites no acesso a um site seguro usando um navegador.
Durante a escolha de um algoritmo de hash, utilize o SHA-256 ou superior, pois são
atualmente os mais seguros. Evite o SHA-1 e MD5 devido a de falhas de segurança já
descobertas nestes algorimtos. Nas redes que se encontram em produção (em uso),
implemente o SHA-256 ou superior.
Embora o hash possa detectar alterações acidentais, não consegue proteger contra
mudanças deliberadas. Não há nenhuma informação de identificação única do remetente
no procedimento de hash. Isto significa que qualquer um pode calcular um hash para
quaisquer dados, desde que tenha a função de hash correta. Por exemplo, quando uma
mensagem atravessa a rede, um atacante pode interceptar a mensagem, alterá-la,
recalcular o hash e anexar o novo hash à mensagem modificada. O dispositivo
receptor só irá validar a mensagem recebida contra o hash anexado. Portanto, o
processod e hashing é vulnerável a ataques man-in-the-middle (homem-no-meio) e não
fornece segurança aos dados transmitidos.
Prevenção de Ataques
O uso de Sal impede que um atacante use um ataque de dicionário para tentar
adivinhar palavras-passe. O uso de Sal também torna impossível usar tabelas de
procura e tabelas de arco-íris para quebrar um hash.
Tabelas de Procura
Tabelas Arco-íris
Os passos que uma aplicação da base de dados realiza para armazenar e validar uma
palavra-passe salgada são mostrados na figura.
O que é um HMAC?
O próximo passo para impedir que um cibercriminoso lance um ataque de dicionário ou
um ataque de força bruta a um hash é adicionar uma chave secreta ao hash. Somente a
pessoa que conhece o hash pode validar uma palavra-passe. Uma forma de fazer isto é
incluir a chave secreta no cálculo do hash, produzindo um keyed-hash message
authentication code (HMAC or KHMAC) Os HMACs usam uma chave secreta adicional como
entrada para a função de hash. A utilização do HMAC vai mais além do que apenas a
garantia de integridade, visto que adiciona autenticação. Um HMAC usa um algoritmo
específico que combina uma função de hash criptográfica com uma chave secreta, como
se mostra na figura.
Operação HMAC
Considere um exemplo em que um remetente queira garantir que uma mensagem em
trânsito permaneça inalterada e deseja oferecer uma forma para que o receptor
autentique a origem da mensagem.
Aplicação do HMAC
Os HMACs também podem autenticar um utilizador Web. Muitos serviços web usam a
autenticação básica, que não cifra o nome de utilizador e a palavra-passe durante a
transmissão. Usando o HMAC, o utilizador envia um identificador de chave privada e
um HMAC. O servidor procura a chave privada do utilizador e cria um HMAC. O HMAC do
utilizador deve corresponder ao calculado pelo servidor.
As VPNs que usam IPsec usam funções HMAC para autenticar a origem de cada pacote e
verificar a integridade de dados.
Os routers Cisco IOS permitem o uso de hashes com chaves secretas de uma forma
semelhante a um HMAC para adicionar informação de autenticação nos updates enviados
pelos protocolos de encaminhamento.
Gateways e clientes IPsec usam algoritmos de hash, como o MD5 e o SHA-1 no modo
HMAC, para fornecer integridade e autenticidade de pacotes.
As imagens do software Cisco, disponíveis em Cisco.com, têm uma soma de controlo
baseada em MD5 que permite que clientes possam verificar a integridade das imagens
transferidas.
Nota: O termo entidade pode referir-se a dispositivos ou sistemas dentro de uma
organização.
Documentos digitais desprotegidos são muito fáceis de mudar por qualquer pessoa.
Uma assinatura digital pode determinar se alguém edita um documento após ter sido
assinado pelo utilizador. Uma assinatura digital é um método matemático usado para
verificar a autenticidade e integridade de uma mensagem, documento digital ou
software.
Não-Repúdio
Repudiar significa negar. Não-repúdio é uma maneira de garantir que o remetente de
uma mensagem ou documento não possa negar ter enviado a mensagem ou documento e que
o destinatário não pode negar ter recebido a mensagem ou documento.
A Alice quer enviar ao Bob um e-mail que contém informações importantes para a
implantação de um novo produto. A Alice quer ter certeza de que Bob sabe que a
mensagem veio dela, e que a mensagem não foi modificada desde que foi enviada.
A Alice cria a mensagem junto com um resumo da mensagem. De seguida, ela cifra o
resumo com sua chave privada, como se mostra na Figura 1. A Alice empacota a
mensagem, o resumo cifrado da mensagem, e a sua chave pública, para criar o
documento assinado. Alice envia este conjunto de informação para Bob como ilustrado
na Figura 2.
O Bob recebe a mensagem e lê-a. Para se certificar de que a mensagem veio de Alice,
o Bob cria um resumo da mensagem. Pega no resumo cifrado da mensagem da Alice
recebida e decifra-o usando a chave pública da Alice. O Bob compara o resumo da
mensagem da Alice recebido com o que gerou. Se ambos corresponderem, o Bob fica a
saber que ninguém alterou a mensagem original da Alice, como ilustrado na Figura 3.
Clique aqui para ver um vídeo que explica o processo de criação de um certificado
digital.
1. Geração de chaves
2. Verificação de chave
O DSA usa fatorização de grandes números. Os governos usam o DSA para assinar para
criar assinaturas digitais. O DSA não se estende para lá da assinatura da própria
mensagem.
O RSA é, atualmente, o algoritmo de criptografia de chave pública mais comum. O RSA
foi criado em 1977 e recebeu o nome dos seus criadores: Ron Rivest, Adi Shamir e
Leonard Adleman. O RSA depende da criptografia assimétrica. O RSA abrange a
assinatura da mensagem e a cifra do seu conteúdo.
O DSA é mais rápida do que o RSA como serviço de assinatura para um documento
digital. O RSA é mais adequado para as aplicações que exijam a assinatura e
verificação de documentos eletrónicos, e a cifragem de mensagens.
Passo 1: Bob acede ao site da Alice. Um navegador requer uma ligação segura
mostrando um ícone com um cadeado na barra de estado de segurança.
Passo 5: O navegador Web do Bob cria uma única chave de sessão única.
Uma autoridade de certificação (CA) funciona da mesma forma que Direção-Geral dos
Serviços de Viação neste exemplo. Uma CA emite certificados digitais que autenticam
a identidade de organizações, dispositivos e utilizadores. Estes certificados
também permitem assinar mensagens para garantir que ninguém as adulterou.
O Processo de Validação
Os navegadores e aplicações validam os certificados antes de confiarem na
informação que transmitem, para garantir que sejam válidos. Os três processos
incluem:
O Caminho do Certificado
Um indivíduo recebe um certificado para uma chave pública de uma CA comercial. O
certificado pertence a uma cadeia de certificados chamada cadeia de confiança. O
número de certificados na cadeia depende da estrutura hierárquica da CA.
A figura mostra uma cadeia de certificados para uma CA de dois níveis. Existe uma
CA raiz offline e uma CA subordinada online. A razão para a estrutura de dois nível
é que a assinatura X.509 permite uma recuperação mais fácil em caso de
comprometimento Se há uma CA offline (modelo de 2 níveis) e a CA subordinada online
fica comprometida, a CA raiz pode assinar um novo certificado para uma nova CA
subordinada online. Caso não existisse um modelo de 2 níveis, o comprometimento da
CA que emitiu os certificados implicaria que um utilizador teria que instalar um
novo certificado de CA raiz em cada máquina cliente, telemóvel ou tablet.
Integridade de dados
As bases de dados oferecem uma forma eficiente de armazenar, recuperar e analisar
dados. À medida que a recolha de dados aumenta e estes se tornam mais sensíveis, é
importante que os profissionais de cibersegurança protejam o crescente número de
bases de dados. Pense numa base de dados como um sistema de armazenamento
eletrónico. A integridade dos dados refere-se à precisão, consistência e
confiabilidade dos dados armazenados numa base de dados. A responsabilidade da
integridade dos dados recai sobre os criadores da base de dados, os programadores e
gestão da organização.
Devem usar uma opção drop down para as tabelas-mestre em vez de pedir aos
utilizadores para inserir os dados. Um exemplo do uso de controlos de dados mestre
é recorrer à lista oficial de locais (ex., providenciada pelo serviço de correio
postal) para normalizar os endereços dos utilizadores.
Regras de Validação
Uma regra de validação verifica se os dados estão dentro dos parâmetros definidos
pelo programador da base de dados. Uma regra de validação ajuda a garantir a
integridade, a precisão e a consistência dos dados. Os critérios usados numa regra
de validação incluem o seguinte:
Validação de Entrada
Um dos aspectos mais vulneráveis da gestão da integridade da base de dados é
controlar o processo de entrada de dados. Muitos ataques conhecidos são realizados
contra uma base de dados, inserindo dados malformados. O ataque pode confundir,
bloquear ou fazer com que a aplicação exponha informação ao atacante. Os atacantes
usam ataques de entrada automatizados.
Verificação de Anomalias
A deteção de anomalias refere-se à identificação de padrões nos dados que não estão
em conformidade com o comportamento esperado. Estes padrões não conformes são
considerados anomalias, outliers, exceções, aberrações ou surpresas, em diferentes
aplicações de bases de dados. A deteção e a verificação de anomalias são uma
contramedida importante e uma salvaguarda na identificação da deteção de fraudes. A
deteção de anomalias na base de dados pode identificar, por ex., fraudes em cartões
de crédito e seguros. A deteção de anomalias na base de dados pode proteger os
dados contra destruição maciça ou alterações.
Integridade Referencial
Outro conceito importante é a relação entre diferentes sistemas de armazenamento ou
tabelas. A base da integridade referencial são as chaves estrangeiras. Uma chave
estrangeira numa tabela faz referência a uma chave primária numa outra tabela. A
chave primária de uma tabela identifica de forma única as entidades (linhas) na
tabela. A integridade referencial mantém a integridade das chaves estrangeiras.
Integridade Domínio
A integridade do domínio garante que todos os campos de dados numa coluna estejam
dentro de um conjunto definido de valores válidos. Cada coluna de uma tabela tem um
conjunto definido de valores, como o conjunto de todos os números para os números
de cartão de crédito, números de segurança social ou endereços de e-mail. Limitar o
valor atribuído a uma instância dessa coluna (um atributo) impõe a integridade do
domínio. A imposição da integridade do domínio pode ser tão simples quanto escolher
o tipo de dados, o comprimento e o formato corretos para uma coluna.