O documento apresenta um resumo sobre criptografia. O palestrante discute a importância da segurança na internet, define o que é criptografia e seus objetivos, e apresenta exemplos de como criptografar e descriptografar mensagens usando ferramentas como OpenSSL, PGP e MCrypt.
O documento discute o conceito de metaprogramação em PHP. Ele explica que metaprogramação permite alterar o comportamento de um programa em tempo de execução ou compilação com base em metadados. O documento também apresenta exemplos de como recursos como métodos mágicos, propriedades dinâmicas e a API de Reflection permitem implementar metaprogramação em PHP.
Este documento fornece uma introdução sobre testes de unidade com RSpec, incluindo:
1) Uma breve explicação do que é RSpec e como ele pode ser usado para testes de unidade e desenvolvimento guiado por testes.
2) Uma visão geral dos principais métodos e conceitos do RSpec como describe, it, expect entre outros.
3) Algumas dicas e melhores práticas para a utilização do RSpec, incluindo a postergação de testes e uso de hooks.
Clustering é uma técnica de agrupamento de dados não supervisionado onde objetos similares são agrupados em clusters. Existem vários algoritmos de clustering que diferem na forma como formam os grupos e eficiência. Clustering é amplamente usado em mineração de dados e análise estatística.
1) O documento discute os desafios do processamento de grandes volumes de dados, conhecidos como Big Data.
2) Novas tecnologias como bancos de dados não-relacionais, MapReduce e visualização de dados são necessárias para lidar com a escala, diversidade e distribuição dos dados.
3) As ferramentas para Big Data ainda estão evoluindo para atender as novas demandas, mas já complementam soluções estabelecidas.
O documento descreve como o palestrante quebrou milhões de senhas criptografadas em português brasileiro ("pt_BR") usando técnicas como força bruta, dicionários e regras. Ele indexou os hashes quebrados em Elasticsearch para permitir buscas rápidas.
O documento discute criptografia simétrica, que usa a mesma chave secreta para criptografar e descriptografar mensagens. Detalha a história da criptografia, incluindo a Cifra de César e a máquina Enigma. Explora algoritmos simétricos como DES, IDEA e AES, focando no AES de quatro etapas: AddRoundKey, SubBytes, ShiftRows e MixColumns.
Este documento apresenta um resumo sobre criptografia. Ele discute os conceitos básicos de criptografia simétrica e assimétrica, incluindo exemplos de algoritmos criptográficos comuns. Também aborda tópicos como certificados digitais, assinatura digital e função hash, que são elementos importantes para garantir a segurança e integridade da informação.
O documento discute o conceito de metaprogramação em PHP. Ele explica que metaprogramação permite alterar o comportamento de um programa em tempo de execução ou compilação com base em metadados. O documento também apresenta exemplos de como recursos como métodos mágicos, propriedades dinâmicas e a API de Reflection permitem implementar metaprogramação em PHP.
Este documento fornece uma introdução sobre testes de unidade com RSpec, incluindo:
1) Uma breve explicação do que é RSpec e como ele pode ser usado para testes de unidade e desenvolvimento guiado por testes.
2) Uma visão geral dos principais métodos e conceitos do RSpec como describe, it, expect entre outros.
3) Algumas dicas e melhores práticas para a utilização do RSpec, incluindo a postergação de testes e uso de hooks.
Clustering é uma técnica de agrupamento de dados não supervisionado onde objetos similares são agrupados em clusters. Existem vários algoritmos de clustering que diferem na forma como formam os grupos e eficiência. Clustering é amplamente usado em mineração de dados e análise estatística.
1) O documento discute os desafios do processamento de grandes volumes de dados, conhecidos como Big Data.
2) Novas tecnologias como bancos de dados não-relacionais, MapReduce e visualização de dados são necessárias para lidar com a escala, diversidade e distribuição dos dados.
3) As ferramentas para Big Data ainda estão evoluindo para atender as novas demandas, mas já complementam soluções estabelecidas.
O documento descreve como o palestrante quebrou milhões de senhas criptografadas em português brasileiro ("pt_BR") usando técnicas como força bruta, dicionários e regras. Ele indexou os hashes quebrados em Elasticsearch para permitir buscas rápidas.
O documento discute criptografia simétrica, que usa a mesma chave secreta para criptografar e descriptografar mensagens. Detalha a história da criptografia, incluindo a Cifra de César e a máquina Enigma. Explora algoritmos simétricos como DES, IDEA e AES, focando no AES de quatro etapas: AddRoundKey, SubBytes, ShiftRows e MixColumns.
Este documento apresenta um resumo sobre criptografia. Ele discute os conceitos básicos de criptografia simétrica e assimétrica, incluindo exemplos de algoritmos criptográficos comuns. Também aborda tópicos como certificados digitais, assinatura digital e função hash, que são elementos importantes para garantir a segurança e integridade da informação.
O documento discute os fundamentos e tipos de criptografia, incluindo criptografia simétrica e assimétrica. Apresenta exemplos de algoritmos criptográficos como DES, RSA e Diffie-Hellman.
A apresentação introduz os principais conceitos de criptografia, incluindo criptografia simétrica que usa a mesma chave para criptografar e descriptografar, criptografia assimétrica que usa chaves públicas e privadas diferentes, e criptografia hash que gera resumos digitais irreversíveis. O documento também discute a importância da privacidade e segurança da informação.
O documento apresenta uma introdução sobre criptografia, resumindo alguns dos principais tópicos que serão abordados, como hash, criptografia simétrica e assimétrica, infraestrutura de chaves públicas, ataques e esteganografia. A agenda inclui também boas práticas de uso doméstico e referências.
O documento discute os conceitos fundamentais de criptografia, incluindo criptografia simétrica e assimétrica. Ele explica que a criptografia simétrica usa uma única chave para criptografar e descriptografar, enquanto a criptografia assimétrica usa chaves públicas e privadas. O documento também descreve vários algoritmos criptográficos, como DES, 3DES e AES.
Segurança da Informação - Aula 5 - CriptografiaCleber Fonseca
O documento apresenta uma série de aulas sobre criptografia ministradas no Campus Charqueadas. Aborda conceitos básicos como definição de criptografia, tipos de criptografia simétrica e assimétrica, funções hash e uma breve história da evolução da criptografia ao longo dos séculos.
O documento discute conceitos básicos de criptografia, incluindo definições, tipos de cifras, chaves públicas e privadas, criptografia simétrica e assimétrica, e algoritmos como RSA, Blowfish e TKIP.
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosSanger Dias
O documento discute vários tópicos relacionados à segurança da informação, incluindo criptografia simétrica e assimétrica. Apresenta algoritmos como DES, AES, RSA e discussões sobre distribuição de chaves, ataques de força bruta e criptoanálise.
Escola Técnica Estadual Aderico Alves de Vasconcelos
Curso: Técnico de Redes de Computadores
Disciplina: Tecnologias Atuais de Redes
Professor: Fagner Lima
Seminário da disciplina de Sistemas Distribuídos da Universidade Federal de São Paulo apresentado pelas alunas Jade Carvalho e Isadora Coelho, durante o primeiro semestre de 2015.
O documento discute conceitos e mecanismos de segurança da informação, incluindo criptografia simétrica e assimétrica. Apresenta os principais algoritmos como DES, 3DES, AES, RSA e o modelo híbrido. Também aborda assinatura digital, hash, certificados digitais e o protocolo Kerberos.
1) OpenSSL é um framework de segurança derivado do trabalho de Eric A. Young e Tim J. Hudson em 1995
2) Aborda criptografia simétrica (como AES, 3DES) e assimétrica (como RSA, DSA), assim como funções hash (MD5, SHA1)
3) Fornece exemplos de comandos OpenSSL para gerar chaves, criptografar/descriptografar arquivos e gerar hashes
A criptografia é o estudo de transformar informações em forma ilegível através de técnicas que requerem uma chave secreta para descriptografia. A criptografia tem sido usada por governos e pessoas ao longo da história, e o físico italiano Giambattista Della Porta é considerado o pai da criptografia moderna por ter inventado o primeiro sistema de cifra polialfabética.
O documento apresenta um panorama do PHP atual, discutindo sua história, evolução, uso em grandes projetos como o Facebook, e as tendências futuras. Apresenta o PHP como uma linguagem madura e adequada para projetos de grande porte, destacando melhorias como o PHP 7 e frameworks populares. Por fim, discute a importância da comunidade ao redor do PHP.
[1] O documento discute o mercado de trabalho para desenvolvedores e analistas de TI, destacando as oportunidades e desafios, bem como dicas para se preparar para o mercado, como participar de projetos de código aberto e comunidades. [2] É importante estar preparado para as vagas existentes, embora muitas sejam "ciladas", e se manter atualizado com novas tecnologias. [3] Além de experiência, o mercado espera profissionalismo, comprometimento e aprendizado contínuo.
O documento apresenta a biblioteca ReactPHP, que permite a implementação de I/O não-bloqueante em PHP através do padrão Reactor. Apresenta os componentes disponíveis na biblioteca e exemplos de uso, incluindo um servidor web simples, cliente HTTP e chat via telnet/netcat. Discute quando e por que usar a ReactPHP em vez de outras bibliotecas como Node.js.
O documento apresenta Adler Medrado falando sobre PHP. Ele discute o que é PHP, seu foco no ecossistema, robustez, desempenho e segurança. Também aborda novidades na linguagem como geradores, tratamento de exceções e acesso a arrays, além de mudanças futuras como cache opcode embutido e certificações.
A palestra discute os conceitos básicos de caching em PHP, incluindo opcodes PHP, quando o caching é vantajoso, e técnicas de caching de conteúdo e recordsets. Algumas ferramentas para caching em PHP são apresentadas, como APC, PEAR Cache e Zend Cache.
Ferramentas Livres Para Desenvolvimento com PHPAdler Medrado
Este documento apresenta diversas ferramentas livres úteis para desenvolvimento com PHP, incluindo IDEs como PDT e editores como gPHPEdit, frameworks como Symfony e Zend Framework, ferramentas de depuração como XDebug, sistemas de controle de versão como CVS e SVN, e sistemas de rastreamento de bugs como Trac. O documento também fornece demonstrações e estatísticas sobre essas ferramentas.
O documento discute PHP e web services. Ele define web services e as tecnologias relacionadas como SOAP, WSDL e UDDI. Explica como web services funcionam entre fornecedores e requerentes e seu status atual e futuro. Também discute como criar e consumir web services com PHP usando a extensão php-soap.
Este documento discute o desenvolvimento de aplicações ricas para internet (RIA) utilizando PHP no lado servidor. Apresenta conceitos de web 2.0 como requisições assíncronas e mashups. Define RIA e lista suas características como funcionalidades semelhantes a aplicativos de desktop e comunicação assíncrona com o servidor. Discutem-se tecnologias relacionadas como PHP, JavaScript e Flash, além de exemplos e motivos para usar PHP para desenvolver RIA, como conversão nativa entre JSON e objetos PHP.
O documento apresenta conceitos sobre PHP e AJAX. Resume os principais pontos sobre: 1) como o AJAX permite enviar e receber dados de um servidor sem recarregar a página usando tecnologias como Javascript, XML e HTTP; 2) o objeto XMLHttpRequest que permite fazer requisições assíncronas; 3) um exemplo prático de um mural de recados interativo usando PHP no servidor e AJAX no cliente.
Este documento apresenta Adler Medrado, um especialista em Zend Framework. Ele resume suas qualificações e experiência com Zend Framework, PHP e gerenciamento de projetos. O documento também fornece uma visão geral do Zend Framework, seus pré-requisitos, configuração e arquitetura MVC. Finalmente, apresenta exemplos práticos de código com e sem o uso do Zend Framework.
O documento discute os fundamentos e tipos de criptografia, incluindo criptografia simétrica e assimétrica. Apresenta exemplos de algoritmos criptográficos como DES, RSA e Diffie-Hellman.
A apresentação introduz os principais conceitos de criptografia, incluindo criptografia simétrica que usa a mesma chave para criptografar e descriptografar, criptografia assimétrica que usa chaves públicas e privadas diferentes, e criptografia hash que gera resumos digitais irreversíveis. O documento também discute a importância da privacidade e segurança da informação.
O documento apresenta uma introdução sobre criptografia, resumindo alguns dos principais tópicos que serão abordados, como hash, criptografia simétrica e assimétrica, infraestrutura de chaves públicas, ataques e esteganografia. A agenda inclui também boas práticas de uso doméstico e referências.
O documento discute os conceitos fundamentais de criptografia, incluindo criptografia simétrica e assimétrica. Ele explica que a criptografia simétrica usa uma única chave para criptografar e descriptografar, enquanto a criptografia assimétrica usa chaves públicas e privadas. O documento também descreve vários algoritmos criptográficos, como DES, 3DES e AES.
Segurança da Informação - Aula 5 - CriptografiaCleber Fonseca
O documento apresenta uma série de aulas sobre criptografia ministradas no Campus Charqueadas. Aborda conceitos básicos como definição de criptografia, tipos de criptografia simétrica e assimétrica, funções hash e uma breve história da evolução da criptografia ao longo dos séculos.
O documento discute conceitos básicos de criptografia, incluindo definições, tipos de cifras, chaves públicas e privadas, criptografia simétrica e assimétrica, e algoritmos como RSA, Blowfish e TKIP.
Apresentação tema 9 Segurança das Informações e Continuidade dos negóciosSanger Dias
O documento discute vários tópicos relacionados à segurança da informação, incluindo criptografia simétrica e assimétrica. Apresenta algoritmos como DES, AES, RSA e discussões sobre distribuição de chaves, ataques de força bruta e criptoanálise.
Escola Técnica Estadual Aderico Alves de Vasconcelos
Curso: Técnico de Redes de Computadores
Disciplina: Tecnologias Atuais de Redes
Professor: Fagner Lima
Seminário da disciplina de Sistemas Distribuídos da Universidade Federal de São Paulo apresentado pelas alunas Jade Carvalho e Isadora Coelho, durante o primeiro semestre de 2015.
O documento discute conceitos e mecanismos de segurança da informação, incluindo criptografia simétrica e assimétrica. Apresenta os principais algoritmos como DES, 3DES, AES, RSA e o modelo híbrido. Também aborda assinatura digital, hash, certificados digitais e o protocolo Kerberos.
1) OpenSSL é um framework de segurança derivado do trabalho de Eric A. Young e Tim J. Hudson em 1995
2) Aborda criptografia simétrica (como AES, 3DES) e assimétrica (como RSA, DSA), assim como funções hash (MD5, SHA1)
3) Fornece exemplos de comandos OpenSSL para gerar chaves, criptografar/descriptografar arquivos e gerar hashes
A criptografia é o estudo de transformar informações em forma ilegível através de técnicas que requerem uma chave secreta para descriptografia. A criptografia tem sido usada por governos e pessoas ao longo da história, e o físico italiano Giambattista Della Porta é considerado o pai da criptografia moderna por ter inventado o primeiro sistema de cifra polialfabética.
O documento apresenta um panorama do PHP atual, discutindo sua história, evolução, uso em grandes projetos como o Facebook, e as tendências futuras. Apresenta o PHP como uma linguagem madura e adequada para projetos de grande porte, destacando melhorias como o PHP 7 e frameworks populares. Por fim, discute a importância da comunidade ao redor do PHP.
[1] O documento discute o mercado de trabalho para desenvolvedores e analistas de TI, destacando as oportunidades e desafios, bem como dicas para se preparar para o mercado, como participar de projetos de código aberto e comunidades. [2] É importante estar preparado para as vagas existentes, embora muitas sejam "ciladas", e se manter atualizado com novas tecnologias. [3] Além de experiência, o mercado espera profissionalismo, comprometimento e aprendizado contínuo.
O documento apresenta a biblioteca ReactPHP, que permite a implementação de I/O não-bloqueante em PHP através do padrão Reactor. Apresenta os componentes disponíveis na biblioteca e exemplos de uso, incluindo um servidor web simples, cliente HTTP e chat via telnet/netcat. Discute quando e por que usar a ReactPHP em vez de outras bibliotecas como Node.js.
O documento apresenta Adler Medrado falando sobre PHP. Ele discute o que é PHP, seu foco no ecossistema, robustez, desempenho e segurança. Também aborda novidades na linguagem como geradores, tratamento de exceções e acesso a arrays, além de mudanças futuras como cache opcode embutido e certificações.
A palestra discute os conceitos básicos de caching em PHP, incluindo opcodes PHP, quando o caching é vantajoso, e técnicas de caching de conteúdo e recordsets. Algumas ferramentas para caching em PHP são apresentadas, como APC, PEAR Cache e Zend Cache.
Ferramentas Livres Para Desenvolvimento com PHPAdler Medrado
Este documento apresenta diversas ferramentas livres úteis para desenvolvimento com PHP, incluindo IDEs como PDT e editores como gPHPEdit, frameworks como Symfony e Zend Framework, ferramentas de depuração como XDebug, sistemas de controle de versão como CVS e SVN, e sistemas de rastreamento de bugs como Trac. O documento também fornece demonstrações e estatísticas sobre essas ferramentas.
O documento discute PHP e web services. Ele define web services e as tecnologias relacionadas como SOAP, WSDL e UDDI. Explica como web services funcionam entre fornecedores e requerentes e seu status atual e futuro. Também discute como criar e consumir web services com PHP usando a extensão php-soap.
Este documento discute o desenvolvimento de aplicações ricas para internet (RIA) utilizando PHP no lado servidor. Apresenta conceitos de web 2.0 como requisições assíncronas e mashups. Define RIA e lista suas características como funcionalidades semelhantes a aplicativos de desktop e comunicação assíncrona com o servidor. Discutem-se tecnologias relacionadas como PHP, JavaScript e Flash, além de exemplos e motivos para usar PHP para desenvolver RIA, como conversão nativa entre JSON e objetos PHP.
O documento apresenta conceitos sobre PHP e AJAX. Resume os principais pontos sobre: 1) como o AJAX permite enviar e receber dados de um servidor sem recarregar a página usando tecnologias como Javascript, XML e HTTP; 2) o objeto XMLHttpRequest que permite fazer requisições assíncronas; 3) um exemplo prático de um mural de recados interativo usando PHP no servidor e AJAX no cliente.
Este documento apresenta Adler Medrado, um especialista em Zend Framework. Ele resume suas qualificações e experiência com Zend Framework, PHP e gerenciamento de projetos. O documento também fornece uma visão geral do Zend Framework, seus pré-requisitos, configuração e arquitetura MVC. Finalmente, apresenta exemplos práticos de código com e sem o uso do Zend Framework.
O documento apresenta o framework PHP Zend Framework. Discute o que é um framework, apresenta alguns dos principais componentes do Zend Framework como MVC e estrutura de diretórios, e conclui com uma sessão prática e perguntas.
O documento apresenta o framework Zend Framework. Aborda o que são frameworks, quem usa o Zend Framework e por que usá-lo. Explica alguns de seus componentes e como utilizá-lo, contribuir e se certificar.
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
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
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
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
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