Criptografia Web (Apache + PHP) Um estudo de caso, literalmente.... Bruno Nunes MSDPA 2006/2007 Arquitectura Prevista O que nos espera... One-Way Cypher Mhash MCrypt One-Way Cypher string crypt (string input_string, [string salt]) Vários algoritmos (especificados no “Salt”) CRYPT_STD_DES CRYPT_EXT_DES CRYPT_MD5 2 Caracteres 9 Caracteres 12 Caracteres, começando como “$1$” CRYPT_BLOWFISH 16 Caracteres começando como “$2$” Exemplo Mhash Biblioteca de funções de hashing Algoritmos suportados: CRC32; HAVAL160; MD5; CRC32B; HAVAL192; RIPEMD160; GOST; HAVAL224; SHA1; HAVAL128; HAVAL256; TIGER; Exemplo MCrypt Extensão ao PHP Suporta Encriptação e Desencriptação Criptografia por Blocos Blowfish; RC2; Safer-sk64 xtea; Cast256; RC4; Safer-sk128; DES; RC4-iv; Serpent; Enigma;Rijndael-128; Threeway; Gost; Rijndael-192; TripleDES; LOKI97; Rijndael-256; Twofish; Panama; Saferplus;Wake Continua MCrypt (continuação) Vários modos de encriptação: ECB (electronic codebook) – Aconselhado para encriptação pequenos volumes de dados, como números de cartões de crédito CBC (cipher block chaining) – Ideal para a encriptação de grandes volumes de dados, como fcheiros CFB (cipher feedback) – deve ser utilizado apenas para quantidades muito pequenas de dados, em que há necessidade de encriptar bytes individuais, como em streams Exemplo