Verificando a integridade de dados

Uma outra necessidade de segurança em informática é assegurar-se de que os dados não foram corrompidos durante a transmissão ou a criptografia. Existem duas maneiras mais usuais de se fazer isso:
  • Checksum (valor de verificação) - provavelmente um dos métodos mais antigos de se assegurar de que os dados estão corretos. O checksum fornece também uma forma de autenticação, já que um checksum inválido sugere que os dados foram comprometidos de alguma forma. Um checksum pode ser determinado de duas maneiras. Digamos que checksum de um pacote possui 1 byte. Um byte é composto de 8 bits e cada bit pode estar em dois estados, levando a um total de 256 (28 ) combinações possíveis. Como a primeira combinação é igual a zero, um byte pode ter um valor máximo de 255.
    • se a soma dos outros bytes no pacote a ser verificado for menor ou igual a 255, então o checksum contém aquele valor exato
    • se a soma dos outros bytes for maior que 255, então o checksum é o restante do valor total após ter sido dividido por 256

Vejamos um exemplo de cálculo de checksum:

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6 Byte 7 Byte 8 Total Checksum
212 232 54 135 244 15 179 80 1.151 127

  • 1.151 / 256 = 4,496 (arredondando-se para 4)
  • 4 x 256 = 1.024
  • 1.151 - 1.024 = 127

  • Cyclic Redundancy Check (CRC) - os CRCs possuem uma concepção semelhante ao checksum, mas utilizam a divisão polinomial para determinar o valor do CRC, que geralmente é de 16 ou 32 bits. A vantagem do CRC é que ele é muito preciso. Se um único bit estiver incorreto, o valor do CRC estará correto. Tanto o checksum quanto o CRC são bons para prevenir erros esporádicos na transmissão, mas fornecem pouca proteção a um ataque intencional aos seus dados. As técnicas de criptografia de chaves simétricas e chaves públicas são muito mais seguras.

Todos esses diferentes processos se combinam, oferecendo a você as ferramentas necessárias para assegurar que as informações que envia ou recebe pela Internet estão seguras. Na realidade, enviar informações por uma rede de computadores é normalmente muito mais seguro do que enviar de qualquer outra maneira. Os telefones, em especial os telefones sem fio, são suscetíveis a interceptação, particularmente por pessoas de mau caráter com rádio escutas. A postagem via correio tradicional e outros meios físicos freqüentemente passam por várias mãos antes de chegar ao seu destino, aumentando as chances de ser corrompida. Entender a encriptação, e simplesmente certificar-se de que todas as informações sigilosas que você envia pela Internet estão seguras (lembre-se dos "https" e do símbolo do cadeado), pode deixá-lo muito mais despreocupado.

Para mais informações sobre encriptação e tópicos relacionados, confira os links na página seguinte.