Beruflich Dokumente
Kultur Dokumente
São Roque
2018
1
São Roque
2018
2
LISTA DE ABREVIATURAS E SIGLAS
AES - Advanced Encryption Standard
ASCII - American Standard Code for Information Interchange
CF - Constituição Federal
CPU - Central Process Unit
CRUD - CReate Update Delete
FATEC - Faculdades de Tecnologia do Estado de São Paulo
HTML - HyperText Markup Language
HTTP - Hyper Text Transfer Protocol
HTTPS - Hyper Text Transfer Protocol Secure
ISO - International Organization for Standardization
LAMP - Linux Apache Mysql PHP
LDB - Lei de Diretrizes e Bases
MVC - Model View Controller
NIST: National Institute of Standards and Technology
PHP - PHP: Hypertext Preprocessor
PHP5 - PHP: Hypertext Preprocessor Version 5
RAM - Random Access Memory
SIA - Sistema Integrado de Avaliações
SSL - Secure Socket Layer
UTF - Unicode Transformation Format
3
Dados Internacionais de Catalogação-na-Publicação (CIP)
Divisão de Informação e Documentação
REFERÊNCIA BIBLIOGRÁFICA –
Sá, Yuri Vasconcelos de Almeida. A Criptografia de Dados Sensíveis em Sistemas
Open-Source. 2018. 33f. Trabalho de Graduação - FATEC de São Roque.
CESSÃO DE DIREITOS
NOME DO AUTOR: Yuri Vasconcelos de Almeida Sá
TÍTULO DO TRABALHO: Design De Interação Centrado no Usuário
TIPO DO TRABALHO/ANO: Trabalho de Graduação / 2018.
É concedida à FATEC de São Roque permissão para reproduzir e emprestar cópias deste
Trabalho somente para propósitos acadêmicos e científicos. O autor reserva outros direitos de
publicação e nenhuma parte deste Trabalho pode ser reproduzida sem a autorização do autor.
____________________________________
Yuri Vasconcelos de Almeida Sá
RG 26.602.212-1
4
DEDICATÓRIA
Agradeço a minha família pelo apoio durante o curso que enseja este trabalho,
pelas horas ausentes e pelas obrigações assumidas.
A Paula, minha esposa pelo esforço, abnegação e ajuda.
E a todos os professores que tocaram minha vida ao longo do processo, guiando e
ajudando, fazendo parcerias e amizades para a vida.
6
RESUMO
New information technologies revolutionized the society in large scale in the last
few years, but as all new technologies, there are flaws. To the common user, the worst flaw in
a information system is the breach of privacy that can lead to overwhelming consequences in
private life, remarkably with sensitive data circulating in all kinds of systems around the web.
This work offer a method to cryptography data freely and funcional in application
layer, not needed any special software or service fee. Analyzing the results and discourse
about the quality of the system.
8
LISTA DE FIGURAS
1. Introdução 11
1.1 - Objetivo 12
1.2 - Justificativa 13
2. Referência Bibliográfica 14
3 - Metodologia 18
4 - Sistema Desenvolvido 19
4.5.1.2 - Tabelas 24
4.6 - A criptografia 29
10
5. Considerações Finais 36
Referências 37
11
1. Introdução
Desde a constituição de 1988, a educação deve ser universal (Art. 205, CF), no
entanto a Lei nº 9.394/96 – Lei de diretrizes e bases da educação nacional (LDB), define
educação especial, assegura o atendimento aos educandos com necessidades especiais e
estabelece critérios de caracterização das instituições privadas sem fins lucrativos,
especializadas e com atuação exclusiva em educação especial para fins de apoio técnico e
financeiro pelo poder público. Essas entidades são referidas genericamente como núcleos. Ou
seja, temos um número alto de alunos com necessidades especiais, que são atendidos pelos
núcleos, mas que estudam em escolas regulares.
Notou-se que a comunicação entre estas duas entidades é precária, o que causa um
enorme transtorno, pois muitas vezes a deficiência é comportamental e ambas as partes devem
estar cientes de ocorrências.
Neste prisma, com uma iniciativa inédita a FATEC São Roque firmou parceria
com a Prefeitura do Município para que o sistema pudesse ser desenvolvido a título gratuito e
open-source para facilitar a integração entre essas duas entidades. E assim foi feito. O nome
dado é Sistema Integrado de Avaliações (SIA) e faz uma integração entre a Escola e o Núcleo,
provendo relatórios, na forma de avaliações, sobre os educandos.
O sistema consiste em uma plataforma totalmente Web, com um banco de dados
simples (não criptografado), e disponibilizado através de Pré-Processamento Server-side
(PHP).
Em linhas gerais o SIA, permite que um gestor do núcleo registre o mesmo e
gerencie alunos e escolas, uma vez registrados os usuários do núcleo e as escolas (que
também tem autenticação no sistema) pode-se criar avaliações, que consistem em um grande
campo de texto formatável, anexos e meta-dados (usuário, criação, privacidade e etc.).
Para que o sistema fique de fato útil a seus usuários foi necessário adicionar
informações pessoais dos alunos, que contêm dados sensíveis devido a natureza
extremamente íntima. Muitas vezes informações como estas, até mesmo sua mera
participação em um núcleo podem causar ainda mais sofrimento a quem é afligido por alguma
mazela de cunho emocional.
12
Embora a própria conexão possa ser criptografada através de SSL (HTTPS), o que
torna a própria conexão virtualmente impossível de ser interceptada (PROTOCOLO HTTP X
PROTOCOLO HTTPS, 2009). Existem outras inúmeras maneiras de se comprometer um
sistema, sendo a segunda opção na lista de prioridades o próprio banco de dados, que através
de técnicas de injeção, pode ter seus dados lidos por um usuário malicioso. Técnicas de
injeção tem se tornado cada vez mais populares nos últimos anos, com o aumento da adoção
de HTTPS, ensejando até a criação de ferramentas que automatizam o processo e até mesmo
ensinam técnicas de injeção, tal qual o SQLMAP (ENCONTRO ANUAL DE TECNOLOGIA
DA INFORMAÇÃO, 2017).
Existe criptografia de banco de dados diretamente, porém esta é dispendiosa e
causa grandes transtornos quando o dado por acaso, chega desformatado o que diminui a
confiabilidade e resiliência do projeto.
Devido às capacidades da linguagem escolhida (PHP) tais quais, orientação a
objetos e disponibilidade de Frameworks MVC (DALL´OGLIO, 2015), é possível de maneira
muito simples criptografar o dado somente no banco de dados, tornando o dado então
disponível de forma clara (descriptografada) para todo o sistema. Neste caso, mesmo que o
banco de dados sofrer uma invasão, os dados serão inúteis.
1.1 - Objetivo
Este trabalho destina-se avaliar a implementação de uma criptografia de dados
dentro da arquitetura MVC em PHP, na camada de Controle, sem que o sistema seja afetado
de maneira global O Objetivo é possibilitar inclusive criptografia seletiva dos campos, o que
pode trazer melhorias em relação a velocidade na qual os dados são traduzidos de sua forma
criptográfica.
Também tenta estabelecer, através de uma base teórica a eficiência da criptografia
de programa sobre outros métodos disponíveis e sua viabilidade em um ambiente de
hospedagem e operação em escala. Implementar métricas de utilização dos recursos do
servidor (particularmente Espaço em disco e transferência). Além de estabelecer um
paradigma (índice) de velocidade que vai estabelecer a complexidade da criptografia.
13
Devido a característica pública do projeto (onde qualquer pessoa pode registrar
um núcleo de forma gratuita e isenta), é necessário manter a utilização dos recursos de
servidor a um mínimo aceitável, equilibrando o custo computacional com a escalabilidade.
1.2 - Justificativa
A segurança da informação é um assunto atual e recorrente em muitos campos de
pesquisa, cada vez mais serviços utilizam data-mining (processo de aquisição de dados) para
construção de perfis de usuário e o advento do Big Data que traz análises cada vez mais
precisas e de diversas fontes para classificar seu público já trazem cada vez mais questões
éticas e de direito à própria informação disponível na internet.
Esses classificadores utilizam em sua grande maioria, dados legais ou seja, que
não foram obtidos através de fraude ou outros métodos ilegais porém, uma grande parcela de
invasões é publicada na “surface” web que é indexada pelos buscadores (dependendo do tipo
de ataque, pode ter sido somente um gracejo, uma demonstração de habilidade, ou ainda um
resgate não pago), e a capacidade dos algoritmos das empresas de data-mining é imensa em
associar um dado a outro, podendo então criar um perfil ostensivo da vida pessoal de um
indivíduo de forma automática. Que pode ser usada para os mais diversos fins, até mesmo
humilhação, chantagem e ameaça.
Então, um pequeno banco de dados comprometido pode vir a fazer parte de um
perfil detalhado de sua vida, até a senha que você utiliza normalmente em seus serviços. Daí
surge a necessidade de barreiras cada vez mais fortes de acesso a estes dados e a criptografia,
tal qual ela está posta hoje é um caminho muito viável, pois apesar de representar custos
adicionais (principalmente hardware) para operação de um sistema, ela pode representar uma
barreira intransponível até mesmo para hackers h abilidosos, que embora tenham conseguido
burlar as proteções de um banco de dados pode se deparar com dados irrelevantes.
14
2. Referência Bibliográfica
É importante observar que todos os campos que poderiam ter limitações (por
convenção), como e-mail (que poderia ter no máximo 255 caracteres, portanto, varchar) ,
estão definidos como TEXT pois este tipo de dado em MySQL não tem limites de caracteres,
o que é necessário para a criptografia.
25
4.5.1.2.2 - Tabela escola
A tabela escola é a entidade que armazena e gerencia os dados de cada escola, até
mesmo suas credenciais de acesso, dados para contato e estruturas de controle. Na figura 5
temos uma representação de sua estrutura.
● id - Chave Primária, (auto incrementada);
● documento - Algum documento para registro da escola (ex.: CNPJ);
● nome - Nome da escola no sistema (Criptografado);
● email - Email da escola dentro do sistema, será utilizado para comunicação do
sistema com o usuário escola (Criptografado);
● data_criacao - Data com hora da criação da escola no sistema (automático);
● data_ultima_alteracao - Data e hora da última alteração da escola no sistema
(Automático);
● senha - senha registrada na criação do registro escola;
● nome_usuario - Nome de usuário utilizado para login da escola no SIA;
● arquivos - caminho no sistema de arquivos anexados (Criptografado);
● link_id_nucleo - Chave estrangeira que referencia o núcleo (Obrigatório);
4.6 - A criptografia
4.6.1 - O Algoritmo escolhido
Seguindo o padrão da indústria (AES), o algoritmo de criptografia escolhido para
o SIA foi o Rjindael, presente em virtualmente todas as linguagens de programação.
Em 2 de outubro de 2001, o NIST anunciou o algoritmo Rijndael como vencedor
de um concurso para a escolha de um algoritmo para se tornar padrão da indústria, dado suas
melhores qualificações em termos de segurança, desempenho, eficiência, facilidade de
implementação e flexibilidade. (2001, NIST)
O algoritmo Rijndael foi desenvolvido por Joan Daemen, da Proton World
International, e Vincent Fijmen, da Katholieke Universiteit Leuven. O Rijndael é um
algoritmo simétrico com chaves de 128, 192 e 256 bits e blocos cifrados de 128, 192 e 256
bits t ambém. A natureza do algoritmo permite que o tamanho das chaves e dos blocos seja
múltiplo de 32 bits. (2003, NIST)
30
bazc9+bXEvqLDwnqjNwq5Q
teste 5 25 400%
==
1
Primeiros 1000 dígitos de pi, incluindo a vírgula
32
Para se aproximar do caso de uso real, o tempo de criptografia do dado, em PHP
(Geração do dado e posterior criptografia) também é computado
Para cada tabela, foram geradas 10000 (dez mil) linhas de dados através de um
laço de repetição for, exemplificado na Figura 11 abaixo.
aluno 0s 0s 0s 0s
Tabela Tempo mínimo dos Tempo médio Tempo máximo Desvio Padrão do
10 passes (10000 linhas) dos 10 passes tempo de cada
passe
aluno 6s 6s 6s 0s
nucleo 5s 5s 5s 0s
2
A medição original era 0 (o que torna impossível uma medida de aumento)
36
5. Considerações Finais
Referências
BRASIL. Constituição (1988). Constituição da República Federativa do Brasil. Brasília, DF:
Senado Federal: Centro Gráfico, 1988. 292 p.
COUTO, Sérgio Pereira. Códigos & Cifras: da antiguidade à era moderna. Rio de
Janeiro (RJ): Novaterra, 2008.
DALLOGLIO, Pablo. PHP: Programando com Orientação a Objetos. 3. ed. São Paulo:
Novatec, 2015. 552 p.
SÁ, Yuri Vasconcelos de Almeida. TCC Yuri Sá FATEC 2018. Repositorio GIT
Bitbucket. Disponível em: https://bitbucket.org/yurisa2/tcc-yuri-sa-fatec-2018/. Acesso em:
24 mai. 2018.
TKOTZ, Viktoria. Criptografia: Segredos Embalados para Viagem. 1. ed. São Paulo:
Novatec, 2005. 355 p.