89
ISCTEIUL/DCTI Instituto Superior de Ciências do Trabalho e da Empresa Instituto Universitário de Lisboa Departamento de Ciências e Tecnologias de Informação Carlos Serrão [email protected] [email protected] http://www.carlosserrao.net http://blog.carlosserrao.net http://www.linkedin.com/in/carlosserrao OWASP @ ISCTE-IUL Workshop de Segurança Aplicacional Criptografia em PHP

OWASP @ ISCTE-IUL, Criptografia em PHP

Embed Size (px)

DESCRIPTION

Apresentação realizada no OWASP @ ISCTE-IUL, Workshop de Segurança Aplicacional, sobre Criptografia em PHP.

Citation preview

Page 1: OWASP @ ISCTE-IUL, Criptografia em PHP

ISCTE-­‐IUL/DCTI

Instituto  Superior  de  Ciências  do  Trabalho  e  da  EmpresaInstituto  Universitário  de  Lisboa

Departamento  de  Ciências  e  Tecnologias  de  Informação

Carlos  Serrão

[email protected]@gmail.com

http://www.carlosserrao.nethttp://blog.carlosserrao.nethttp://www.linkedin.com/in/carlosserrao

OWASP @ ISCTE-IULWorkshop de Segurança Aplicacional

Criptografia em PHP

Page 2: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

agenda2

criptografia em aplicações web criptografia 101 criptografia em PHP

funções hash criptografia simétrica criptografia assimétrica certificados digitais

Page 3: OWASP @ ISCTE-IUL, Criptografia em PHP

criptografia em aplicações web3

Page 4: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em aplicações web

criptografia?

$notEncrypted  =  base64_encode($data);

$notEncrypted  =  urlencode($data);

$notEncrypted  =  crc32();

4

Page 5: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em aplicações web

criptografia!

$encrypted  =  mcrypt_generic($mcryptResource,  $data);

$hash  =  hash($algorithm,  $data);

$hmac  =  hash_hmac($algorithm,  $data,  $key);

5

Page 6: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em aplicações web

porquê? necessidade de garantir confidencialidade necessidade de garantir integridade necessidade de verificar a identidade necessidade de garantir não-repúdio

6

Page 7: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em aplicações web

OWASP Top 10 evitar o A9 - Armazenamento Criptográfico Inseguro

cifrar ficheiros, cifrar BD, cifrar elementos XML usar a criptografia de forma apropriada

não invente!!! usar apenas mecanismos criptográficos conhecidos e testados

7

Page 8: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em aplicações web

cifrar dados em trânsito SSL/TLS, HTTPS

cifrar dados no armazenamento armazenar apenas aquilo que necessita recorrer a cifra simétrica e assimétrica

cifrar passwords - trânsito básica: cifra HTTPS de dados do login (POST) média: usar desafio-resposta elevada: não usar passwords

8

Page 9: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em aplicações web

cifrar dados em trânsito SSL/TLS, HTTPS

cifrar dados no armazenamento armazenar apenas aquilo que necessita recorrer a cifra simétrica e assimétrica

cifrar passwords - trânsito básica: cifra HTTPS de dados do login (POST) média: usar desafio-resposta elevada: não usar passwords

9

Page 10: OWASP @ ISCTE-IUL, Criptografia em PHP

criptografia 10110

Page 11: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

ao longo da história têm sido concebidos diversos métodos para ocultar informação antiga Grécia antigo Império Romano

atribui-se a Júlio César a criação de um método de cifra (designado por Cifra de César) para esconder informação dos inimigos

11

Page 12: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL confidencialidade

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

12

criptografia 101

Page 13: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL confidencialidade

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

chave = 2

12

criptografia 101

Page 14: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL confidencialidade

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

C D E F G H I J K L M N O

P Q R S T U V W X Y Z A B

chave = 2

12

criptografia 101

Page 15: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL confidencialidade

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

C D E F G H I J K L M N O

P Q R S T U V W X Y Z A B

CARLOS SERRAO

chave = 2

12

criptografia 101

Page 16: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL confidencialidade

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

C D E F G H I J K L M N O

P Q R S T U V W X Y Z A B

CARLOS SERRAO = ECTNQU UGTTCQ

chave = 2

12

criptografia 101

Page 17: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 10113

Page 18: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 10113

Page 19: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

a criptografia estuda do ponto de vista matemático os métodos de protecção da informação

a cripto-análise estuda as técnicas que permitem quebrar um algoritmo criptográfico

ao conjunto da criptografia e da cripto-análise, designa-se por criptologia

14

Page 20: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

para garantir a confidencialidade (informação em segredo) usa-se a cifra dado M = mensagem que queremos proteger, texto em claro para cifrar usa-se um algoritmo de cifra ƒ obtém-se o texto cifrado C C = ƒ(M)

para decifrar a informação usa-se a transformação inversa M = ƒ-1(C)

15

Page 21: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

chave parâmetro que permite manipular as transformações

aplicadas pela função criptográfica chave de cifra k, chave de decifra x

C = e(k, M) M = d(x, C) = d(x, e(k, M))

16

Page 22: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

princípio de Kerckhoffs Auguste Kerckhoffs, "La cryptographie

militaire", Journal des sciences militaires, vol. IX, pp. 5–83, Jan. 1883, pp. 161–191, Feb. 1883

permissa fundamental da criptografia moderna, que estabelece que os algoritmos devem ser conhecidos publicamente e que a sua segurança depende da chave

17

Page 23: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

um algoritmo criptográfico pode ser considerado como seguro se a um adversário for impossível obter um texto em claro M, conhecendo apenas algoritmo de cifra o texto cifrado C

ou seja, é impossível decifrar a mensagem sem conhecer a chave

18

Page 24: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

confidencialidade integridade autenticação (não-repúdio)

19

Page 25: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

criptografia chave simétrica chave assimétrica funções resumo/síntese assinaturas digitais certificados digitais (X.509)

20

Page 26: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

criptografia chave simétrica21

!"#$%& '()&

*+,-%&.%$/%0,&1.23&

.2&1456(/7,89(3&

Page 27: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

criptografia chave assimétrica22

!"#$%& '()&

*+,-%&./)"#$,&0(&'()&1234(56,78(9&

.,5&0%&*+,-%:& .,5&0%&*+,-%:&

*+,-%&./)"#$,&0,&!"#$%&

*+,-%&.5#-,0,&0,&!"#$%&

*+,-%&./)"#$,&0(&'()&

*+,-%&.5#-,0,&0(&'()&

*+,-%&./)"#$,&0,&!"#$%&1234(56,78(9&

Page 28: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

funções de resumo/síntese one-way functions

23

ƒ(x)M hdimensão fixa

h = ƒ(M)mas não existe ƒ-1(h) = M

Page 29: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

funções de resumo/síntese24

M

H

M M H

comparação

transmissão

Page 30: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

assinaturas digitais25

Mensagem

Alg. Resumo

Resumo

Mensagem Enc.

Alice Bob

Enc. Resumo

Resumo

Mensagem

Resumo

Dec. Mensagem Alg. Resumo Resumo’

Dec. Resumo

Transmissão

Comparação

Chv. Privada Alice

Chv. Pública Alice

Chv. Privada Bob

Chv. Pública Bob

Chv. Pública Bob

Chv. Privada Alice

Chv. Privada Bob

Chv. Pública Alice

Page 31: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

certificados digitais (X.509) documento digital, emitido por CA, para garantir confiança

na chave pública de uma entidade (e na correspondente chave privada)

baseada em assinaturas digitais

26

Page 32: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

certificados digitais (X.509) CA«A»=CA{V, SN, AI, CA, [UCA], A, [UA], Ap, TA, [Ext]}

V: o número de versão do certificado (1, 2 ou 3); SN: o número de série do certificado; AI: identifica o algoritmo de assinatura usado para assinar o certificado; CA: o nome distinto da CA emissora; UCA: o identificador único da CA (opcional); A: o nome distinto do sujeito identificado pelo certificado; UA: o identificador único do sujeito (opcional); Ap: a chave pública do sujeito A; TA: o período de validade do certificado descrito por uma data de início e de

fim durante a qual o certificado é válido; Ext: define um conjunto de extensões que permitem a inclusão de informação

adicional no certificado sem alterar o seu formato (opcional).

27

Page 33: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

certificados digitais (X.509)28

Page 34: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia 101

ok, agora que já sabemos tudo sobre criptografia, como podemos usar isto em PHP?

29

Page 35: OWASP @ ISCTE-IUL, Criptografia em PHP

criptografia em PHP30

Page 36: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

existem muitas alternativas PEAR (Crypt_Blowfish, Crypt_CBC, Crypt_DiffieHellman,

Crypt_GPG, Crypt_HMAC, Crypt_RC4, Crypt_RSA) extensões criptográficas PHP

Básicas Crack Hash Mcrypt Mhash OpenSSL

phpseclib (PHP Secure Communications Library) ...

31

Page 37: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

vamos optar por usar as extensões criptográficas do PHP integradas na própria linguagem (ou dependem de

extensões que necessitar ser activadas)

bibliotecas implementadas em PHP (PEAR e phpseclib) têm problemas de performance

32

Page 38: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

extensões criptográficas PHP Básicas Crack Hash Mcrypt Mhash OpenSSL

33

Page 39: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

extensões criptográficas PHP34

<?php        phpinfo();?>

Page 40: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Básicas crypt md5, md5_file sha1, sha1_file

35

Page 41: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

crypt algoritmo Unix DES (one-way) string crypt(string $str [, string $salt])

36

Page 42: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

md5 calcula o hash md5 de uma string (one-way, 128 bits) string md5 ( string $str [, bool $raw_output = false ] )

37

Page 43: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

md5_file calcula o hash md5 de um ficheiro (one-way, 128 bits) string md5_file ( string $filename [, bool $raw_output =

false ] )

38

Page 44: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

sha1 calcula o hash sha1 de uma string (one-way, 160 bits) string sha1 ( string $str [, bool $raw_output = false ] )

39

Page 45: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

sha1_file calcula o hash sha1 de um ficheiro (one-way, 160 bits) string sha1_file ( string $filename [, bool $raw_output =

false ] )

40

Page 46: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Crack/CrackLib funções em PHP que permitem testar a robustez de passwords

resource crack_opendict ( string $dictionary ) bool crack_check ( [resource $dictionary , ]string $password ) string crack_getlastmessage ( void ) bool crack_closedict ([ resource $dictionary ] )

41

Page 47: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Hash engine de Message Digest suporta múltiplos algoritmos de digest principais funções:

array hash_algos ( void ) string hash ( string $algo , string $data [, bool $raw_output = false ] ) string hash_file ( string $algo , string $filename [, bool $raw_output =

false ] ) string hash_hmac ( string $algo , string $data , string $key [, bool

$raw_output = false ] ) string hash_hmac_file ( string $algo , string $filename , string $key [,

bool $raw_output = false ] )

42

Page 48: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Hash array hash_algos ( void )

43

Page 49: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Hash string hash ( string $algo , string $data [, bool $raw_output =

false ] ) string hash_file ( string $algo , string $filename [, bool

$raw_output = false ] )

44

Page 50: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Hash string hash_hmac ( string $algo , string $data , string $key [,

bool $raw_output = false ] ) string hash_hmac_file ( string $algo , string $filename , string

$key [, bool $raw_output = false ] )

45

Page 51: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mhash interface para biblioteca Mhash no PHP (http://

mhash.sourceforge.net/) instalada e actividada na configuração do PHP suporte para múltiplos algoritmos de hash lista de hash suportados

MHASH_ADLER32, MHASH_CRC32, MHASH_CRC32B, MHASH_GOST, MHASH_HAVAL128, MHASH_HAVAL160, MHASH_HAVAL192, MHASH_HAVAL256, MHASH_MD4, MHASH_MD5, MHASH_RIPEMD160, MHASH_SHA1, MHASH_SHA256, MHASH_TIGER, MHASH_TIGER128, MHASH_TIGER160

46

Page 52: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mhash string mhash ( int $hash , string $data [, string $key ] )

47

Page 53: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mcrypt interface para a biblioteca mcrypt que suporta um conjunto de

algoritmos de cifra de chave secreta cifra de bloco modos:

Cipher-block Chaining (CFC) Electronic Codebook (ECB) Cipher Feedback (CFB) Output Feedback (OFB)

alguns algoritmos: DES, TripleDES, Blowfish, 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH,

TEA, RC2, GOST, Rijndael (AES), RC6, IDEA

48

Page 54: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mcrypt mcrypt_*

string mcrypt_cbc ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

string mcrypt_cfb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

string mcrypt_ecb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

string mcrypt_ofb ( string $cipher , string $key , string $data , int $mode [, string $iv ] )

49

Page 55: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mcrypt mcrypt_*

cipher nome do algoritmo de cifra a usar

key cadeia de caracteres com a dimensão apropriada para o algoritmo a usar

(p.e. AES128, chaves de 128 bits = 128/8 = 16 caracteres) data

dados a serem cifrados ou decifrados mode

operação a ser realizada: cifra ou decifra iv

vector de inicialização

50

Page 56: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mcrypt cifrar e decifrar informação com AES

51

Page 57: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

Mcrypt cifrar e decifrar informação com 3DES

52

Page 58: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL é um módulo que usa as funções do OpenSSL

(www.openssl.org) para: cifrar e decifrar informação gerar e verificar certificados digitais assinar e verificar digitalmente assinaturas

53

Page 59: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL operações (mais relevantes):

criação de um par de chaves criação de um certificado digital cifrar e decifrar informação com criptografia de chave pública assinar e verificar dados com criptografia de chave pública

54

Page 60: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de um par de chaves

55

variável password

Page 61: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de um par de chaves

56

Page 62: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de um par de chaves (escrever ficheiro)

57

Page 63: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de um par de chaves (ler de um ficheiro)

58

Page 64: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

59

Page 65: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

60

Page 66: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

61

Page 67: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

62

Page 68: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

63

Page 69: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

64

Page 70: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

64

Page 71: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

64

Page 72: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais

64

Page 73: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL criação de certificados digitais (leitura de ficheiro)

65

Page 74: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL cifrar informação com criptografia de chave pública

66

Page 75: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL cifrar informação com criptografia de chave pública

66

Page 76: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL decifrar informação com criptografia de chave pública

67

Page 77: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL assinatura digital com criptografia de chave pública

68

Page 78: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL assinatura digital com criptografia de chave pública

68

Page 79: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

criptografia em PHP

OpenSSL verificar assinatura digital com criptografia de chave pública

69

Page 80: OWASP @ ISCTE-IUL, Criptografia em PHP

recomendações70

Page 81: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

recomendações71

Page 82: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

recomendações

não invente!!! não pense que vai inventar um mecanismo criptográfico mais seguro do que outro já existente!

71

Page 83: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

recomendações

não invente!!! não pense que vai inventar um mecanismo criptográfico mais seguro do que outro já existente!

use bibliotecas criptográficas que tenham provas dadas no mercado - em particular (e se possível) open-source

71

Page 84: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

recomendações

não invente!!! não pense que vai inventar um mecanismo criptográfico mais seguro do que outro já existente!

use bibliotecas criptográficas que tenham provas dadas no mercado - em particular (e se possível) open-source

use as bibliotecas criptográficas *correctamente* - o facto de ter uma ferramenta poderosa, não significa que a saiba usar correctamente

71

Page 85: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

recomendações

não invente!!! não pense que vai inventar um mecanismo criptográfico mais seguro do que outro já existente!

use bibliotecas criptográficas que tenham provas dadas no mercado - em particular (e se possível) open-source

use as bibliotecas criptográficas *correctamente* - o facto de ter uma ferramenta poderosa, não significa que a saiba usar correctamente

gerir e proteger as chaves - IMPORTANTE!!! Não serve de nada cifrar informação se a chave ficar comprometida!!!!

71

Page 86: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

gestão do ciclo de vida das chaves72

Page 87: OWASP @ ISCTE-IUL, Criptografia em PHP

referências73

Page 88: OWASP @ ISCTE-IUL, Criptografia em PHP

Abril 2010OWASP @ ISCTE-IUL

referências

manual online do php, www.php.net/manual Carlos Serrão, Joaquim Marques, “Programação com PHP 5.3”,

FCA, 2009 Carlos Serrão, “Secure Your Data with Cryptography”, php|

architect, Volume 6, Issue 2, pages 8-15, 2007 André Zúquete, “Segurança em Redes Informáticas”, FCA, 2008 Bruce Schneier, “Applied Cryptography”, John Wiley & Sons,

1996 Ross Anderson, “Security Engineering”, Wiley, 2008 (http://

www.cl.cam.ac.uk/~rja14/book.html)

74

Page 89: OWASP @ ISCTE-IUL, Criptografia em PHP

ISCTE-­‐IUL/DCTI

Instituto  Superior  de  Ciências  do  Trabalho  e  da  EmpresaInstituto  Universitário  de  Lisboa

Departamento  de  Ciências  e  Tecnologias  de  Informação

Carlos  Serrão

[email protected]@gmail.com

http://www.carlosserrao.nethttp://blog.carlosserrao.nethttp://www.linkedin.com/in/carlosserrao

OWASP @ ISCTE-IULWorkshop de Segurança Aplicacional

Criptografia em PHP