SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
Adler Medrado
  Tales of the Crypto




   PHP Conference Brasil 2012    Imagem: Cryptomuseum.com
Monday, December 3, 12
Quem sou eu?
        •      Desenvolvedor, Consultor,
               Instrutor;
        •      Trabalha na Sigma Dataserv;
        •      Co-Fundador do PHPDF;
        •      Fui apresentado ao PHP em
               1999;
        •      Tenho meu próprio podcast
               (getOnCode);
        •      ZCE
              •      PHP 5;
              •      Zend Framework;
Monday, December 3, 12
Objetivos

                   • Mostrar como algumas ferramentas que
                         auxiliam no uso de criptografia com PHP
                   • Criptografia é um assunto complexo para
                         podermos abordar a fundo aqui
                   • Quer estudar? https://www.coursera.org/
                         course/crypto



Monday, December 3, 12
Segurança

                   • Atualmente há consenso que é necessário
                         obter segurança nas transações realizadas
                         pela internet
                   • A segurança é composta de diversos
                         fatores e a criptografia é uma delas




Monday, December 3, 12
O que é criptografia?


                   • Uma ciência
                   • Nome tem origem no grego - kryptós
                         (escondido) e gráphein (escrita)




Monday, December 3, 12
Entusiastas da
                          Criptografia
                          • Sun Tzu
                          • Hitler
                          • Carl Von Clausewitz



Monday, December 3, 12
Segunda Guerra



                                  http://www.navajocodetalkers.org/




Monday, December 3, 12
Chega de história




Monday, December 3, 12
Para que serve?

                   • Garantir Integridade do Dado
                   • Prover segurança em transações
                         confidenciais
                   • Privacidade
                   • Garantia de Autenticidade

Monday, December 3, 12
Para que não serve

                   • XSS
                   • SQL Injection
                   • Session Hijacking
                   • Engenharia Social
                         •   "As pessoas são o elo mais fraco" -Kevin Mitnick




Monday, December 3, 12
Criptografia != Segurança




Monday, December 3, 12
Não tente criar seu
                         próprio algoritimo




Monday, December 3, 12
Por mais que você seja bom, seu algoritimo tem grandes
 chances de ser inferior aos já existentes e que são abertos




Monday, December 3, 12
A não ser que você seja um matemático acima da média.




Monday, December 3, 12
Se você fizer algo superior ao que já existe, por favor,
                    torne-o um padrão aberto.




Monday, December 3, 12
Se a Microsoft, Oracle ou Apple te oferecessem um
algoritimo fechado para você criptografar os dados
          da sua empresa, você confiaria?




Monday, December 3, 12
E se o governo te oferecesse, você aceitaria?




Monday, December 3, 12
Dê a preferência, sempre, aos algoritimos abertos




Monday, December 3, 12
Criptografando
                             mensagens
                   • Código
                    • Quando é necessário um código para
                         decifrar a mensagem
                   • Cifra
                    • Esconde conteúdo original dentro de
                         outro


Monday, December 3, 12
Cifras
                   •     Exemplo 1 - Texto substituído por número e somado a valor
                         chave



                                      EU VOU PRA CASA

                               5 20 21 14 20 15 17 1 3 1 18 1

                          15 30 31 24 30 25 27 11 13 11 28 11

                                            codigo = 10

Monday, December 3, 12
Cifras
                   • Exemplo II - Cifra de Cesar
      Normal: a ligeira raposa marrom saltou sobre o cachorro cansado
      Cifrado: D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR




                                http://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar


Monday, December 3, 12
Como você salva
                           passwords ?

                   • Plain Text?
                   • Hashing?



Monday, December 3, 12
Hashing
      • Mais comuns
       • MD5 - Message Digest Algorithm - RFC 1321
       • SHA1 - Secure Hash Algorithm - NIST-FIPS 180-1
   Hashing normalmente possuem tamanho fixo, geralmente
    128 ou 256 bits, independente do tamanho de entrada.
    Além de MD5 e SHA-1, existem diversos algoritimos de
                         hashing.

Monday, December 3, 12
Colisão de Hashes
        •       Por terem tamanho fixo:
              •      deduz-se que os hashes gerados são limitados
              •      se há limite, dois valores diferentes podem ter o mesmo
                     hash
              •      se isso acontecer, é uma colisão de hashes




Monday, December 3, 12
Brute Force
                         $password = 'vidaloka';
                         md5($password);




Monday, December 3, 12
Salt
                         $password = 'vidaloka';
                         $salt = 'phpconf';
                         md5($salt.$password);




Monday, December 3, 12
Outras Opções

                   • hash
                    • Pode ser desabilitado na compilação
                    • Risco ao mudar de ambiente
                   • crypt
                    • Está no core

Monday, December 3, 12
hash
                             hash('adler32', 'vidaloka');

                                                   Algoritimo com o nome mais bonito do mundo




                  Para saber quais algoritimos estão disponíveis
                               var_dump(hash_algos());




Monday, December 3, 12
crypt
                 $password = 'vidaloka';
                 $salt = 'phpconf';

                 // Para usar Blowfish
                 $salt = '$2a$07$'.$salt.'$';

                 echo 'Plaintext password: '.$password."n";
                 echo 'Salt: '.$salt."n";

                 echo 'Blowfish hash: ' . crypt($password, $salt)."n";


                               crypt + blowfish FTW


Monday, December 3, 12
Criptografia Simétrica

                         • O mésmo código/chave usado para
                           criptografar é usado para descriptografar
                         • Por usar a mesma chave, o algoritimo
                           criptográfico usado é mais simples
                         • Por possuir um algoritimo mais simples, é
                           mais rápida que a assimétrica



Monday, December 3, 12
Criptografia
                                Assimétrica
                   • Utiliza um par de chaves: pública e privada
                   • As chaves são diferentes, entretanto,
                         matemáticamente relacionadas
                   • Mais seguro
                   • Mais lento

Monday, December 3, 12
Algoritimos populares
                   • AES - Simétrica
                   • RSA - Assimétrica
  Existem diversas bibliotecas que abstraem o trabalho sujo

                  • OpenSSL
                  • PGP/OpenPGP/GnuPG
                  • MCrypt
Monday, December 3, 12
OpenSSL
                   •     Open-Source
                   •     Toolkit que implementa suporte aos
                         protocolos SSL e TLS
                   •     Oferece uma biblioteca criptografica de uso
                         geral
                   •     Suporte a diversos padrões e algorítimos
                   •     Provê mecanismos para gerar certificados SSL


Monday, December 3, 12
Exemplos com
                            OpenSSL
                   • Criptografia Simétrica
   $texto = <<<TEXTO_SECRETO
   Joguei uma pedra na água;
   Ela era pesada e foi ao fundo;
   Os peixinhos responderam: Viva Dom Pedro II.
   TEXTO_SECRETO;

   $iv = "1234567812345678";
   $senha = '1234';
   $metodo = 'aes-256-cbc';

   file_put_contents ('arquivo.ssl.txt',openssl_encrypt ($texto, $metodo, $senha, true, $iv));

   openssl_decrypt(file_get_contents('arquivo.ssl.txt'), $metodo, $senha, true, $iv);




Monday, December 3, 12
Exemplos com
                                 OpenSSL
                         Gerando chaves pública e privada com SSL

      $chave_privada = openssl_pkey_new(array(
      	 'private_key_bits' => 1024,
      	 'private_key_type' => OPENSSL_KEYTYPE_RSA,
      ));
      openssl_pkey_export_to_file($chave_privada, 'private', '12345');

      $detalhes_da_chave = openssl_pkey_get_details($chave_privada);
      file_put_contents('public', $detalhes_da_chave['key']);




Monday, December 3, 12
Exemplos com
                           OpenSSL




Monday, December 3, 12
Exemplos com
                           OpenSSL
         Usando as chaves para criptografar e descriptografar


    $chave_publica = openssl_pkey_get_public('file:///keys/public');
    openssl_public_encrypt($texto, $dados_criptografados, $chave_publica);

    $chave_privada = openssl_pkey_get_private('file:///keys/private', '12345');
    openssl_private_decrypt($dados_criptografados, $dados_originais, $chave_privada);




Monday, December 3, 12
PGP/OpenPGP/GnuPG
                   •     Pretty Good Privacy
                   •     Desenvolvido em 1991 por Phil Zimmermann
                   •     Código Aberto - Origem do OpenPGP
                   •     Simples instalação do toolkit
                   •     Configuração com PHP não é trivial
                   •     Cadeias de confiança do PGP são interessantes
                   •     KeyServers


Monday, December 3, 12
Exemplo com PGP
            $gpg = new gnupg();
            $gpg ->
            addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC");
            $enc = $gpg -> encrypt("Texto Secreto");

            $res = gnupg_init();
            gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC8
            51566DC",'senha');
            $original = gnupg_decrypt($res,$enc);




Monday, December 3, 12
MCrypt

                   • Biblioteca open-source
                   • Suporta diversos algorítimos
                   • Criptografia Simétrica


Monday, December 3, 12
Exemplo MCrypt
         $texto = <<<TEXTO_SECRETO
         Joguei uma pedra na água;
         Ela era pesada e foi ao fundo;
         Os peixinhos responderam: Viva Dom Pedro II.
         TEXTO_SECRETO;

         $chave = "segredo";

         // Vetor de Identificação
         $tamanho_iv = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
         $iv = mcrypt_create_iv($tamanho_iv, MCRYPT_RAND);

         $texto_criptografado = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $chave, $texto,
         MCRYPT_MODE_CBC, $iv);

         $texto_descriptografado = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $chave,
         $texto_criptografado, MCRYPT_MODE_CBC, $iv);




Monday, December 3, 12
Perguntas?


Monday, December 3, 12
Obrigado, até a próxima.
                         http://adlermedrado.com.br
                          http://getoncode.com.br
                              @adlermedrado



Monday, December 3, 12

Mais conteúdo relacionado

Semelhante a Tales of the Crypto

Auditoria e Segurança em TI - Aula 4
Auditoria e Segurança em TI - Aula 4Auditoria e Segurança em TI - Aula 4
Auditoria e Segurança em TI - Aula 4Filipo Mór
 
T aula4-introducao-criptografia
T aula4-introducao-criptografiaT aula4-introducao-criptografia
T aula4-introducao-criptografiaHélio Martins
 
Criptografia (1).pdf
Criptografia (1).pdfCriptografia (1).pdf
Criptografia (1).pdfclaudio864549
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaCleber Fonseca
 
Criptografia
CriptografiaCriptografia
CriptografiaPaula P.
 
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosApresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosSanger Dias
 
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]Ministério Público da Paraíba
 
Tema 09
Tema 09Tema 09
Tema 09Google
 
Certificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosCertificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosLeandro Rezende
 

Semelhante a Tales of the Crypto (12)

Auditoria e Segurança em TI - Aula 4
Auditoria e Segurança em TI - Aula 4Auditoria e Segurança em TI - Aula 4
Auditoria e Segurança em TI - Aula 4
 
T aula4-introducao-criptografia
T aula4-introducao-criptografiaT aula4-introducao-criptografia
T aula4-introducao-criptografia
 
Criptografia Aplicada
Criptografia AplicadaCriptografia Aplicada
Criptografia Aplicada
 
Criptografia (1).pdf
Criptografia (1).pdfCriptografia (1).pdf
Criptografia (1).pdf
 
Segurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - CriptografiaSegurança da Informação - Aula 5 - Criptografia
Segurança da Informação - Aula 5 - Criptografia
 
Criptografia
CriptografiaCriptografia
Criptografia
 
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosApresentação tema 9 Segurança das Informações e Continuidade dos negócios
Apresentação tema 9 Segurança das Informações e Continuidade dos negócios
 
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
Tecnologias Atuais de Redes - Aula 1 - Criptografia [Apostila]
 
Seminário de SD - criptografia
Seminário de SD - criptografiaSeminário de SD - criptografia
Seminário de SD - criptografia
 
Tema 09
Tema 09Tema 09
Tema 09
 
Certificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 ExercíciosCertificação Digital - Aula1 Exercícios
Certificação Digital - Aula1 Exercícios
 
Criptografia
CriptografiaCriptografia
Criptografia
 

Mais de Adler Medrado

Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHPAdler Medrado
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHPAdler Medrado
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPAdler Medrado
 
Ferramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHPFerramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHPAdler Medrado
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHPAdler Medrado
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com AjaxAdler Medrado
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend FrameworkAdler Medrado
 

Mais de Adler Medrado (12)

Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHP
 
Mercado de Trabalho
Mercado de TrabalhoMercado de Trabalho
Mercado de Trabalho
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHP
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHP
 
Ferramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHPFerramentas Livres Para Desenvolvimento com PHP
Ferramentas Livres Para Desenvolvimento com PHP
 
Webservices
WebservicesWebservices
Webservices
 
Web 2.0 e RIA com PHP
Web 2.0 e RIA com PHPWeb 2.0 e RIA com PHP
Web 2.0 e RIA com PHP
 
Minicurso de PHP Com Ajax
Minicurso de PHP Com AjaxMinicurso de PHP Com Ajax
Minicurso de PHP Com Ajax
 
Mini Curso Zend Framework
Mini Curso Zend FrameworkMini Curso Zend Framework
Mini Curso Zend Framework
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 
Zend Framework
Zend FrameworkZend Framework
Zend Framework
 

Tales of the Crypto

  • 1. Adler Medrado Tales of the Crypto PHP Conference Brasil 2012 Imagem: Cryptomuseum.com Monday, December 3, 12
  • 2. Quem sou eu? • Desenvolvedor, Consultor, Instrutor; • Trabalha na Sigma Dataserv; • Co-Fundador do PHPDF; • Fui apresentado ao PHP em 1999; • Tenho meu próprio podcast (getOnCode); • ZCE • PHP 5; • Zend Framework; Monday, December 3, 12
  • 3. Objetivos • Mostrar como algumas ferramentas que auxiliam no uso de criptografia com PHP • Criptografia é um assunto complexo para podermos abordar a fundo aqui • Quer estudar? https://www.coursera.org/ course/crypto Monday, December 3, 12
  • 4. Segurança • Atualmente há consenso que é necessário obter segurança nas transações realizadas pela internet • A segurança é composta de diversos fatores e a criptografia é uma delas Monday, December 3, 12
  • 5. O que é criptografia? • Uma ciência • Nome tem origem no grego - kryptós (escondido) e gráphein (escrita) Monday, December 3, 12
  • 6. Entusiastas da Criptografia • Sun Tzu • Hitler • Carl Von Clausewitz Monday, December 3, 12
  • 7. Segunda Guerra http://www.navajocodetalkers.org/ Monday, December 3, 12
  • 8. Chega de história Monday, December 3, 12
  • 9. Para que serve? • Garantir Integridade do Dado • Prover segurança em transações confidenciais • Privacidade • Garantia de Autenticidade Monday, December 3, 12
  • 10. Para que não serve • XSS • SQL Injection • Session Hijacking • Engenharia Social • "As pessoas são o elo mais fraco" -Kevin Mitnick Monday, December 3, 12
  • 12. Não tente criar seu próprio algoritimo Monday, December 3, 12
  • 13. Por mais que você seja bom, seu algoritimo tem grandes chances de ser inferior aos já existentes e que são abertos Monday, December 3, 12
  • 14. A não ser que você seja um matemático acima da média. Monday, December 3, 12
  • 15. Se você fizer algo superior ao que já existe, por favor, torne-o um padrão aberto. Monday, December 3, 12
  • 16. Se a Microsoft, Oracle ou Apple te oferecessem um algoritimo fechado para você criptografar os dados da sua empresa, você confiaria? Monday, December 3, 12
  • 17. E se o governo te oferecesse, você aceitaria? Monday, December 3, 12
  • 18. Dê a preferência, sempre, aos algoritimos abertos Monday, December 3, 12
  • 19. Criptografando mensagens • Código • Quando é necessário um código para decifrar a mensagem • Cifra • Esconde conteúdo original dentro de outro Monday, December 3, 12
  • 20. Cifras • Exemplo 1 - Texto substituído por número e somado a valor chave EU VOU PRA CASA 5 20 21 14 20 15 17 1 3 1 18 1 15 30 31 24 30 25 27 11 13 11 28 11 codigo = 10 Monday, December 3, 12
  • 21. Cifras • Exemplo II - Cifra de Cesar Normal: a ligeira raposa marrom saltou sobre o cachorro cansado Cifrado: D OLJHLUD UDSRVD PDUURP VDOWRX VREUH R FDFKRUUR FDQVDGR http://pt.wikipedia.org/wiki/Cifra_de_C%C3%A9sar Monday, December 3, 12
  • 22. Como você salva passwords ? • Plain Text? • Hashing? Monday, December 3, 12
  • 23. Hashing • Mais comuns • MD5 - Message Digest Algorithm - RFC 1321 • SHA1 - Secure Hash Algorithm - NIST-FIPS 180-1 Hashing normalmente possuem tamanho fixo, geralmente 128 ou 256 bits, independente do tamanho de entrada. Além de MD5 e SHA-1, existem diversos algoritimos de hashing. Monday, December 3, 12
  • 24. Colisão de Hashes • Por terem tamanho fixo: • deduz-se que os hashes gerados são limitados • se há limite, dois valores diferentes podem ter o mesmo hash • se isso acontecer, é uma colisão de hashes Monday, December 3, 12
  • 25. Brute Force $password = 'vidaloka'; md5($password); Monday, December 3, 12
  • 26. Salt $password = 'vidaloka'; $salt = 'phpconf'; md5($salt.$password); Monday, December 3, 12
  • 27. Outras Opções • hash • Pode ser desabilitado na compilação • Risco ao mudar de ambiente • crypt • Está no core Monday, December 3, 12
  • 28. hash hash('adler32', 'vidaloka'); Algoritimo com o nome mais bonito do mundo Para saber quais algoritimos estão disponíveis var_dump(hash_algos()); Monday, December 3, 12
  • 29. crypt $password = 'vidaloka'; $salt = 'phpconf'; // Para usar Blowfish $salt = '$2a$07$'.$salt.'$'; echo 'Plaintext password: '.$password."n"; echo 'Salt: '.$salt."n"; echo 'Blowfish hash: ' . crypt($password, $salt)."n"; crypt + blowfish FTW Monday, December 3, 12
  • 30. Criptografia Simétrica • O mésmo código/chave usado para criptografar é usado para descriptografar • Por usar a mesma chave, o algoritimo criptográfico usado é mais simples • Por possuir um algoritimo mais simples, é mais rápida que a assimétrica Monday, December 3, 12
  • 31. Criptografia Assimétrica • Utiliza um par de chaves: pública e privada • As chaves são diferentes, entretanto, matemáticamente relacionadas • Mais seguro • Mais lento Monday, December 3, 12
  • 32. Algoritimos populares • AES - Simétrica • RSA - Assimétrica Existem diversas bibliotecas que abstraem o trabalho sujo • OpenSSL • PGP/OpenPGP/GnuPG • MCrypt Monday, December 3, 12
  • 33. OpenSSL • Open-Source • Toolkit que implementa suporte aos protocolos SSL e TLS • Oferece uma biblioteca criptografica de uso geral • Suporte a diversos padrões e algorítimos • Provê mecanismos para gerar certificados SSL Monday, December 3, 12
  • 34. Exemplos com OpenSSL • Criptografia Simétrica $texto = <<<TEXTO_SECRETO Joguei uma pedra na água; Ela era pesada e foi ao fundo; Os peixinhos responderam: Viva Dom Pedro II. TEXTO_SECRETO; $iv = "1234567812345678"; $senha = '1234'; $metodo = 'aes-256-cbc'; file_put_contents ('arquivo.ssl.txt',openssl_encrypt ($texto, $metodo, $senha, true, $iv)); openssl_decrypt(file_get_contents('arquivo.ssl.txt'), $metodo, $senha, true, $iv); Monday, December 3, 12
  • 35. Exemplos com OpenSSL Gerando chaves pública e privada com SSL $chave_privada = openssl_pkey_new(array( 'private_key_bits' => 1024, 'private_key_type' => OPENSSL_KEYTYPE_RSA, )); openssl_pkey_export_to_file($chave_privada, 'private', '12345'); $detalhes_da_chave = openssl_pkey_get_details($chave_privada); file_put_contents('public', $detalhes_da_chave['key']); Monday, December 3, 12
  • 36. Exemplos com OpenSSL Monday, December 3, 12
  • 37. Exemplos com OpenSSL Usando as chaves para criptografar e descriptografar $chave_publica = openssl_pkey_get_public('file:///keys/public'); openssl_public_encrypt($texto, $dados_criptografados, $chave_publica); $chave_privada = openssl_pkey_get_private('file:///keys/private', '12345'); openssl_private_decrypt($dados_criptografados, $dados_originais, $chave_privada); Monday, December 3, 12
  • 38. PGP/OpenPGP/GnuPG • Pretty Good Privacy • Desenvolvido em 1991 por Phil Zimmermann • Código Aberto - Origem do OpenPGP • Simples instalação do toolkit • Configuração com PHP não é trivial • Cadeias de confiança do PGP são interessantes • KeyServers Monday, December 3, 12
  • 39. Exemplo com PGP $gpg = new gnupg(); $gpg -> addencryptkey("8660281B6051D071D94B5B230549F9DC851566DC"); $enc = $gpg -> encrypt("Texto Secreto"); $res = gnupg_init(); gnupg_adddecryptkey($res,"8660281B6051D071D94B5B230549F9DC8 51566DC",'senha'); $original = gnupg_decrypt($res,$enc); Monday, December 3, 12
  • 40. MCrypt • Biblioteca open-source • Suporta diversos algorítimos • Criptografia Simétrica Monday, December 3, 12
  • 41. Exemplo MCrypt $texto = <<<TEXTO_SECRETO Joguei uma pedra na água; Ela era pesada e foi ao fundo; Os peixinhos responderam: Viva Dom Pedro II. TEXTO_SECRETO; $chave = "segredo"; // Vetor de Identificação $tamanho_iv = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($tamanho_iv, MCRYPT_RAND); $texto_criptografado = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $chave, $texto, MCRYPT_MODE_CBC, $iv); $texto_descriptografado = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $chave, $texto_criptografado, MCRYPT_MODE_CBC, $iv); Monday, December 3, 12
  • 43. Obrigado, até a próxima. http://adlermedrado.com.br http://getoncode.com.br @adlermedrado Monday, December 3, 12