Simpósio de TCC e Seminário de IC , 2016 / 1º 1814
TSI CRIPTOBOX
ANDRÉ LUÍS E SILVA MAURO RODRIGUES NOGUEIRA
CID BENDAHAN COELHO CINTRA
RESUMO Este trabalho tem como objetivo apresentar o desenvolvimento de um software de criptografia de arquivos e pastas, que permite ao usuário criptografar cada arquivo ou pasta selecionada garantindo a confidencialidade e a integridade da informação contra terceiros. Para a elaboração do trabalho, teve como base fontes bibliográficas e apostilas da Internet. Análises, documentação, implementação, finalização e testes do software, CriptoBox, foram necessárias para construção do software criptográfico. Ao final, obteve-se um software que atende ao objetivo de tornar a informação segura atendendo aos pré-requisitos da segurança da informação. Palavras-chave: Criptografia, Segurança da Informação, CriptoBox, Privacidade, Internet. ABSTRACT This study aims to present the development of software based on file and folder criptography. It allows the users to use criptography for each file or folder, to ensure confidentially and information integrity aganinst a third party element. In order to develop this work, were used bibliographic sources and online research. Analysis, documentation, implementation, software testing, CriptoBox were used to construct the encryption software. At the end, we were able to construct a software which has the objective to secure the information covering the requirements of information security. Keywords: Criptography, Information Security, CriptoBox, Privacy, Internet. INTRODUÇÃO
As ferramentas existentes no mercado em sua maioria carecem de um conjunto completo de funcionalidades de auxílio à proteção de dados. Geralmente não possuem funcionalidades associadas à criptografia/descriptografia e verificação de integridades dos dados.
O uso de algoritmos de chave simétrica na criptografia de arquivos ou pastas além de ser um processo rápido em relação aos algoritmos de chave assimétrica equivalentes, geram saídas menores ou iguais à entrada. Para armazenamento na Internet ou local (próprio disco), fornece uma solução satisfatória na garantia da segurança da informação sigilosa.
Aliada à criptografia simétrica, a verificação de integridade dos dados por meio de algoritmos de resumo da mensagem MessageDigest, garante um processo completo no sigilo da informação, com isso assegura que a informação não foi modificada durante o trânsito para servidor remoto ou no armazenamento local do usuário.
Diante desse contexto, este trabalho visa elaborar uma solução que atenda à necessidade de proteção de arquivos ou pastas que demandem um nível de segurança mais elevado, tanto no armazenamento local como no envio para a Internet, garantindo o sigilo da informação contra terceiros. Sendo assim, é indispensável a implementação de um software que faça a criptografia/descriptografia de arquivos ou pastas, contudo, propõe-se a criação do CriptoBox. JUSTIFICATIVA
Na troca de informações entre empresas ou pessoas existe a possibilidade de captura dos dados trafegando por canal inseguro (Internet) ou
em claro, o que pode ocasionar prejuízos, roubos, fraudes, etc.
A finalidade da solução é a proteção de pastas ou arquivos, incluindo cifração, decifração, verificação e validação de integridade dos dados. Com o mundo cada vez mais conectado, é de suma importância que o acesso à informação sigilosa seja feito com acesso à Internet garantindo disponibilidade dos dados onde quer que estejam. Com isso, espera-se contribuir com uma solução que ajude o usuário a proteger as informações que julguem importantes. OBJETIVOS GERAL
Desenvolver um software que permita a criptografia de arquivos ou pastas que necessitam de níveis de segurança mais elevados e que garantam a confidencialidade e a integridade das informações contra terceiros. ESPECÍFICOS Realizar pesquisa bibliográfica para embasamento teórico do tema; Elaborar a documentação do software; Criptografar/Descriptografar arquivo ou pasta com algoritmo simétrico; Desenvolver protótipo; Testar software. METODOLOGIA
Foram realizadas pesquisas bibliográficas, com o objetivo de coletar dados em livros, apostilas e Internet. Através dessa pesquisa foi possível obter, esclarecer e aprofundar o assunto abordado.
Após estudar e pesquisar o assunto proposto, foi possível iniciar a descrição de teorias, técnicas e métodos de vários autores que trouxeram embasamento para o desenvolvimento da aplicação criptográfica.
Simpósio de TCC e Seminário de IC , 2016 / 1º 1815
Na fase de criação do software, a elaboração de diagramas, fluxos e descrição dos atores e casos de uso foram essenciais para identificar as necessidades do software e contribuiu para o melhor desenvolvimento da aplicação. REFERÊNCIAL TEÓRICO INFORMAÇÃO
Para a norma ABNT NBR ISO/IEC 27002 (2005: p.X) A informação é um ativo que, como qualquer outro ativo importante, é essencial para os negócios de uma organização e, consequentemente, necessita ser adequadamente protegida. [...] A informação pode existir em diversas formas. Ela pode ser impressa ou escrita em papel, armazenada eletronicamente, transmitida pelo correio ou por meios eletrônicos, apresentada em filmes ou falada em conversas. Seja qual for a forma de apresentação ou o meio através do qual a informação é compartilhada ou armazenada, é recomendado que ela seja sempre protegida adequadamente. SEGURANÇA DA INFORMAÇÃO
De acordo com a norma ABNT NBR ISO/IEC 27002 (2005: p.X), Segurança da informação é a proteção da informação de vários tipos de ameaças para garantir a continuidade do negócio, minimizar o risco ao negócio, maximizar o retorno sobre os investimentos e as oportunidades de negócio. PRINCÍPIOS DA SEGURANÇA
Ainda segundo a ABNT NBR ISO/IEC 27002 (2005: p.X), são definidos como princípios da segurança: a integridade, que garante que as informações sofram alterações, eliminações e acréscimos somente quando aprovadas pela empresa; a confidencialidade, que compreende que somente pessoas devidamente liberadas pela empresa devam ter acesso à informação; e por último, a disponibilidade, que defende que a informação deve permanecer disponível para as pessoas autorizadas sempre que for preciso. ARQUIVO OU PASTA
Segundo Schneider (2013), arquivo é um conjunto de dados que se relacionam de alguma forma, isso quer dizer que, juntos descrevem uma informação ou conjunto de informações. São sempre formados por dados digitais, organizados, seguindo algum tipo de estrutura ou formato.
Já a pasta ou diretório, é definida por Schneider (2013) como uma subdivisão lógica de um sistema de arquivos, permitindo que o
agrupamento de arquivos se relacionem de alguma forma. CRIPTOGRAFIA
De acordo com os autores Nakamura e Geus (2010, p.301), a criptografia é uma ciência que possui importância fundamental para a segurança. Suas propriedades como sigilo, integridade, autenticação e não-repúdio garantem o armazenamento, as comunicações e as transações seguras, exigidas nos dias de hoje.
Além dessas propriedades, a assinatura e a certificação digital são importantes para a proteção da informação. Dessa maneira entende-se que, o uso da criptografia se dá pela proteção do sigilo e integridade da informação e da autenticação da comunicação. LINGUAGEM C/C++
De acordo com Baltarejo e Santos (2006, p.1), a linguagem C, foi desenvolvida em 1970 por Dennis Ritchie para utilização no sistema operativo Unix. Esta linguagem é individualmente admirada pela eficácia e é a mais usada na escrita de software para sistemas operativos.
Baltarejo e Santos (2006, p.1), afirma que, a linguagem C++ é uma linguagem de programação genérica que suporta tanto os modelos da programação estruturada como o orientado ao objeto. A partir de 1990, o C++ tornou-se uma das linguagens de programação mais conhecidas. Em 1983, Bjarne Stroustrup, criou melhorias para a linguagem C. Estas melhorias adicionaram: adição de classes, funções virtuais, sobrecarga de operadores, múltipla herança, templates e tratamento de exceções. IDEA – INTERNATIONAL DATA ENCRYPTION ALGORITHM
Conforme Ludwig (2007), o IDEA é um cifrador de blocos que usa uma chave de 128 bits para criptografar dados em blocos de 64 bits. O mesmo algoritmo é usado tanto para criptografar quanto para descriptografar, usa métodos que geram confusão e difusão. Segundo Ludwig (2007), o IDEA possui três grupos algébricos cujas operações são misturadas. Estas operações, que podem ser implementadas via hardware e/ou software, são: XOR Adição módulo 216 (adição ignorando qualquer overflow) Multiplicação módulo 216+1 (multiplicação ignorando qualquer overflow)
A figura 1 representa o fluxograma do IDEA.
Figura 1. IDEA
Simpósio de TCC e Seminário de IC , 2016 / 1º 1816
Fonte: NUMABOA
AUTENTICAÇÃO Conforme Nakamura e Geus (2010,
p.363), a autenticação é essencial para a segurança dos sistemas, validando a identificação do usuário, permitindo a autorização para o acesso aos recursos. CRIPTOGRAFIA SIMÉTRICA
De acordo com Galvão (2007), a criptografia simétrica usa única chave, tanto para criptografar como para descriptografar dados. Os
algoritmos que são utilizados para a criptografia simétrica são mais simples do que os algoritmos utilizados na criptografia assimétrica. Em função desses algoritmos mais simples, e pelo fato de empregarem a mesma chave para criptografar e para descriptografar dados, a criptografia simétrica é muito mais veloz que a criptografia assimétrica. Assim, a criptografia simétrica é apropriada para criptografar e descriptografar uma ampla quantidade de dados.
A figura 2 ilustra o funcionamento básico da Criptografia Simétrica. Figura 2. Criptografia Simétrica
Fonte: GTA.UFRJ
Simpósio de TCC e Seminário de IC , 2016 / 1º 1817
CRIPTOGRAFIA ASSIMÉTRICA Ainda segundo Galvão (2007), a
criptografia assimétrica utiliza duas chaves distintas, contudo matematicamente estão relacionadas, tanto para criptografar como para descriptografar dados. Essas chaves são declaradas como chaves privadas e chaves públicas. Em conjunto, essas chaves são declaradas como par de chaves. A criptografia
assimétrica é dita como mais segura do que a criptografia simétrica, porque a chave utilizada para criptografar os dados é distinta da que é utilizada para descriptografá-los. Todavia, como a criptografia assimétrica utiliza algoritmos mais difíceis do que a simétrica, e como a criptografia assimétrica utiliza um par de chaves, o método de criptografia é muito mais lento que a simétrica.
A figura 3 representa o funcionamento básico da Criptografia Assimétrica.
Figura 3. Criptografia Assimétrica
Fonte: 4LINUX
FUNÇÃO HASH De acordo com Pedroza (2009), a função
hash se define como uma função criptográfica que gera uma saída de tamanho fixo (geralmente 128 a 256 bits) independentemente do tamanho da entrada. A essa saída se denomina hash da mensagem (ou documento ou o que quer que seja a entrada). ORIENTAÇÃO A OBJETO
Segundo Santos (2007, p.07), o termo orientação a objetos, significa constituir o mundo real como uma compilação de objetos que agrupam estrutura de dados (propriedades ou características) e um aglomerado de operações que manuseiam estes dados. CLASSE
Santos (2007, p.13), define que uma classe descreve um conjunto de objetos que compartilham os mesmos atributos, operações, métodos e relacionamentos.
A figura 4 exemplifica a classe Pessoa que precisará ter atributos e métodos comuns.
Figura 4. Classe
Fonte: Santos (2007)
OBJETOS Segundo Santos (2007, p.21), um objeto
possui, um estado, que é o conjunto de valores dos seus atributos em determinado instante e um comportamento, que é o conjunto de métodos definido na sua interface, uma identidade única. ATRIBUTOS
Conforme Santos (2007, p.22), atributos são características e propriedades presentes no objeto e que os valores de todos os atributos são iguais ao estado do objeto. ENCAPSULAMENTO
Santos (2007, p.37), descreve que o encapsulamento é uma defesa adicional dos dados do objeto de prováveis alterações impróprias, obrigando o acesso a um nível mais baixo para tratamento dos dados.
A figura 5 representa a funcionalidade do encapsulamento.
Figura 5. Encapsulamento
Fonte: Santos (2007)
ABSTRAÇÃO De acordo com Santos (2007, p.27), a
papel da abstração é captar as características e os comportamentos fundamentais, como se fosse uma fatoração. Desta maneira, determina-se o
Simpósio de TCC e Seminário de IC , 2016 / 1º 1818
que é imprescindível e o que não é. O referido autor apoia a seguinte definição de abstração:
“Habilidade mental que permite aos seres humanos visualizarem os problemas do mundo
real com vários graus de detalhe, dependendo do contexto corrente do problema.” (JIM RUMBAUGH, apud SANTOS, 2007, p.27).
A figura 6 ilustra a abstração de características e comportamentos.
Figura 6. Abstração
Fonte: Os autores
RELACIONAMENTO De acordo com Santos (2009, p.14), ao
estabelecer as abstrações, descobrimos que são raras as classes que trabalham isoladas. Ao invés disso, a maioria das classes contribuem com outras classes de diversas maneiras. Logo, quando estamos modelando, necessitamos identificar as classes, atributos, métodos e relacionamentos.
Santos (2009, p.14) define relacionamento como a junção entre itens. É concebido graficamente como uma passagem, que tem tipos distintos de linhas para descobrir os tipos de relacionamentos.
A figura 7 representa a funcionalidade do relacionamento.
Figura 7. Relacionamento
Fonte: Santos (2009)
“1- Pessoa é a SuperClasse de Terceiro, Aluno e de Funcionário, estas são subclasse de Pessoa. 2- Terceiro e Funcionário são SuperClasse de Professor e Pessoal Administrativo e de Professor Autônomo e Pessoal Operacional respectivamente. E estas são subclasse de Terceiro e Funcionário” (SANTOS, 2007, p14).
TIPO DE RELACIONAMENTO – DEPENDÊNCIA De acordo com Santos (2009, p.45),
dependência é um relacionamento semântico entre dois itens, nos quais a modificação de um (o item independente) pode comprometer a semântica do outro (o dependente).
A figura 8 representa a dependência com uma linha tracejada.
Figura 8. Dependência
Simpósio de TCC e Seminário de IC , 2016 / 1º 1819
Fonte. Santos (2009)
TIPO DE RELACIONAMENTO – ASSOCIAÇÃO De acordo com Santos (2009, p.45),
associação é um relacionamento estrutural que apresenta um agregado de ligações, em que as
ligações são junções entre objetos. A agregação é um tipo específico de associação, significando um relacionamento estrutural entre o todo e suas partes.
A figura 9 ilustra sua representação por uma linha reta sólida. Figura 9. Associação
Fonte. Santos (2009)
TIPO DE RELACIONAMENTO – GENERALIZAÇÃO
De acordo com Santos (2009, p.46), generalização é um relacionamento de
especialização e generalização, nos quais os objetos dos meios especializados (os filhos) são trocados por objetos dos elementos generalizados (os pais). Logo, os dividem a estrutura e comportamento dos pais.
A figura 10 exemplifica a representação de generalização. Figura 10. Generalização
Fonte. Santos (2009)
TIPO DE RELACIONAMENTO – REALIZAÇÃO De acordo com Santos (2009, p.46),
realização é um relacionamento semântico entre classificadores, em que um classificador determina um contrato que outro classificador garante efetuar.
Os relacionamentos de realização são achados em dois locais: entre interface e as classes ou componentes que as executam; entre casos de uso e as cooperações que os concretizam.
A figura 11 ilustra a representação de realização.
Figura 11. Realização
Fonte. Santos, 2009
Simpósio de TCC e Seminário de IC , 2016 / 1º 1820
HERANÇA De acordo com o explanado por Santos
(2007, p.35), entende-se que herança é um mecanismo baseado em objetos que permite que as classes compartilhem atributos e operações baseados em um relacionamento, geralmente generalização. O referido autor aborda também
que uma classe “pai” ou superclasse acomoda a funcionalidade que é igual a todas as suas classes procedidas, filhas ou subclasse, enquanto que uma classe procedida acomoda a funcionalidade suplementar que individualiza seu comportamento.
A figura 12 representa a herança de classe.
Figura 12. Herança de Classe
Fonte: Santos, 2009
UML – LINGUAGEM DE MODELAGEM UNIFICADA
Conforme Santos (2009, p.36), modelagem visual constitui modelar com o uso de notações molde UML, que é a vocabulário de modelagem das mais conhecidas do momento, e, assim, é apenas um componente de um processo para concepção de programa. Ela é autônoma do processo, sendo usada em método orientado a casos de usos e construção de modelos e diagramas. ESTÁTICOS Diagrama de Classes Diagrama de Objetos Modela a estrutura do sistema Diagrama de Componentes Diagrama de Distribuição DINÂMICOS Diagrama de Casos de Uso Diagramas de Interação
Diagrama de Sequência Modela o comportamento do sistema
Diagrama de Colaboração Diagrama de Atividade Diagrama de Estados DIAGRAMA DE CASO DE USO
Conforme Santos (2009, p.50), são diagramas que possibilitam imaginar, determinar e documentar o desempenho de um objeto. Esses diagramas permitem que o sistema, subsistemas e classes estejam disponíveis e entendíveis, por proporcionarem uma visão externa sobre como esses elementos podem ser usados no todo.
Santos (2009, pag.50), acrescenta que existem dois elementos de Caso de Uso: ator e cenários. O primeiro, simula um papel, pode ser de pessoa, sistema ou dispositivo. O segundo, podem ser apreciados como testes informais para validação das condições do sistema.
A figura 13 representa um diagrama de caso de uso.
Figura 13. Diagrama de Caso de Uso
Simpósio de TCC e Seminário de IC , 2016 / 1º 1821
Fonte: Os autores
Santos (2009, p.50), acrescenta dois relacionamentos de dependência que existe entre os casos de uso: Include: quando a ação estiver se repetindo em dois ou mais caso de uso, temos que evitar a repetição. Extends: quando estivermos descrevendo uma variação em comportamento normal, porém, querendo manter uma descrição mais controlada.
DIAGRAMA DE CLASSE De acordo com Santos (2009, p.80),
diagrama de classe demonstra a estrutura estática das classes de um sistema e seus relacionamentos. O diagrama de classes é considerado estático já que a estrutura descrita é sempre válida em qualquer ponto do ciclo de vida do sistema.
A figura 14 representa um diagrama de classe. Figura 14. Diagrama de Classe
Fonte: Os autores
Simpósio de TCC e Seminário de IC , 2016 / 1º 1822
DIAGRAMA DE SEQUÊNCIA De acordo com Santos (2009, p.50), o diagrama de sequência mostra a cooperação dinâmica entre
os múltiplos objetos de um sistema. A fundamental perspectiva deste diagrama é que a partir dele compreende a sequência de mensagens expedidas entre os objetos.
Figura 15. Diagrama de Sequência
Fonte: Os autores
Simpósio de TCC e Seminário de IC , 2016 / 1º 1823
ANÁLISE DO SISTEMA FINALIDADE
A finalidade deste documento é analisar, levantar, coletar e definir os aspectos e exigências do CriptoBox – Sistema de Criptografia. Ele se converge em recursos necessários aos envoltos, nas fundamentações e nas razões a qual levam a essas necessidades. São descritos abaixo, as particularidades que o CriptoBox – Sistema de Criptografia alcançam essas necessidades
DEFINIÇÕES, ACRÔNIMOS E ABREVIAÇÕES RUP – Rational Unifield Process CriptoBox – Sistema de Criptografia
UML – Unified Modeling Language POSICIONAMENTO OPORTUNIDADE DE NEGÓCIOS
Na troca de informações entre empresas e pessoas existe a possibilidade de captura dos dados trafegando por canal inseguro (Internet) e em claro, o que pode ocasionar prejuízos, roubo dessas informações etc.
DESCRIÇÃO DO PROBLEMA
O problema Dados transitando em claro podem ser capturados ou acesso não autorizado a informações importantes.
Afeta O proprietário das informações
O seu impacto é Uso indevido, fraudes, roubo e vazamento de informações que comprometem a continuidade do negócio.
Uma solução ideal seria
Garantir que somente o proprietário da informação consiga acessá-la e compreendê-la.
SENTENÇA DE POSIÇÃO DO PRODUTO Para Quem deseja proteger informações importantes.
Quem Precise de integridade e confidencialidade para documentos, arquivos ou qualquer mídia digital.
CriptoBox É um software
Que Cifra, decifra e valida integridade de quaisquer arquivos que se deseja proteger de acessos não autorizados
Diferente de Softwares que armazenam os dados sem garantir o nível de segurança adequado.
Nosso Produto Garantirá integridade e confidencialidade às informações do utilizador.
ESCOPO DO PRODUTO A finalidade da solução é a proteção de
arquivos. Suas principais funções incluem cifração e decifração dos dados. O usuário terá a opção de validar a integridade dos dados através de hash. Poderá também enviar os dados criptografados para um servidor remoto, garantindo que o acesso a informação possa ocorrer mediante a acesso à Internet.
A solução será exclusivamente do sistema operacional Windows, não fornecerá
interface de acesso via navegador web, ou seja, necessitará do Client (CriptoBox) para ter acesso aos dados criptografados. DESCRIÇÕES DOS ENVOLVIDOS E DOS CLIENTES DEMOGRAFIA DO MERCADO
Por consequência do crescimento de usuários na Internet, surge uma grande necessidade no desenvolvimento de soluções para a segurança das informações.
RESUMO DOS ENVOLVIDOS Nome Descrição Responsabilidades
Desenvolvedor e Analista
Responsável pelo desenvolvimento do software.
Documentar a funcionalidades; Assegurar que o sistema será
mantido; Monitorar o andamento do
projeto. RESUMO DOS CLIENTES Nome Descrição Responsabilidades Envolvido
Usuário Utilizador do CriptoBox
Selecionar arquivos ou pastas a serem criptografados
Não se aplica
AMBIENTE DOS CLIENTES O usuário deverá ter instalado o sistema operacional Windows, o software não fará comunicação
com outros sistemas. PERFIS DOS ENVOLVIDOS DESENVOLVEDOR E ANALISTA Descrição Pessoa responsável por analisar, documentar e desenvolver as funcionalidades
Simpósio de TCC e Seminário de IC , 2016 / 1º 1824
do software Tipo Especialista
Responsabilidades Analisar e desenvolver os requisitos do sistema Garantir um bom desempenho Verificar o funcionamento do sistema
Critérios de Sucesso Garantir a confidencialidade e integridade dos arquivos que se deseja proteger Envolvimento Revisor de requisitos Produtos Liberados O software Comentários/Problemas PRINCIPAIS NECESSIDADES DOS ENVOLVIDOS OU CLIENTES Necessidade Prioridade Preocupações Solução
AtualSoluções Propostas
Criptografar dados
Alta Assegurar que somente o proprietário da informação consiga acessá-la e compreendê-la.
Nenhuma Utilizar algoritmos criptográficos para cifração e decifração dos dados.
ALTERNATIVAS E CONCORRÊNCIA No momento não existe nenhum concorrente direto. As alternativas disponíveis no mercado não
suprem necessidades dos usuários em relação a confidencialidade e integridade dos dados. RESTRIÇÕES
O software será compatível somente com SO Windows, a partir da versão 7. RESTRIÇÕES ER aF. CriptoBox.001
Quadro 1 – Quadro de Especificação do Requisito ER aF. CriptoBox.001 ER aF. CriptoBox.001 Selecionar Arquivo/Pasta
Descrição O usuário irá selecionar qualquer tipo de arquivo ou pasta a ser criptografado ou descriptografado.
Descrição do risco Risco Prioridade Poderá ocorrer risco de o usuário deletar o arquivo selecionado ou selecionar o arquivo errado.
Baixo Baixa
ER aF. CriptoBox.002 Quadro 2 – Quadro de Especificação do Requisito ER aF. CriptoBox.002
ER aF. CriptoBox.002 Inserir Senha
Descrição O software deve solicitar que o usuário informe uma senha para garantir a segurança da informação que ele deseja proteger.
Descrição do risco Risco Prioridade
Informar uma senha de fácil dedução por terceiros
Alto Alta
Informar senha de difícil recordação Alto Alta
Envolvidos Usuário do Sistema ER aF. CriptoBox.003
Quadro 3 – Quadro de Especificação do Requisito ER aF. CriptoBox.003 ER aF. CriptoBox.003 Criptografar
Descrição O software deve ser capaz criptografar arquivo/pasta
Descrição do risco Risco Prioridade
Poderá ocorrer risco de o usuário selecionar o arquivo/pasta errado.
Baixo Baixa
Não gerar o arquivo/pasta criptografado. Alto Alta
Envolvidos Usuário do Sistema ER aF. CriptoBox.004
Quadro 4 – Quadro de Especificação do Requisito ER aF. CriptoBox.004 ER aF. CriptoBox.004 Descriptografar
Descrição O software deve ser capaz de descriptografar
Simpósio de TCC e Seminário de IC , 2016 / 1º 1825
arquivo/pasta Descrição do risco Risco Prioridade
Poderá ocorrer risco de o usuário selecionar o arquivo/pasta errado. Baixo Baixa
Não gerar o arquivo/pasta em claro. Alto Alta
Envolvidos Usuário do Sistema DESCRIÇÃO DOS CASOS DE USO E ATORES CASOS DE USO LOCALIZAR ARQUIVO/PASTA
Este caso de uso será responsável pela localização do arquivo/pasta a ser criptografado, descriptografado. INFORMAR SENHA
Este caso de uso é responsável por garantir a segurança do arquivo criptografado. CRIPTOGRAFAR
Este caso de uso é responsável por criptografar um arquivo ou pasta informado pelo usuário. DESCRIPTOGRAFAR
Este caso de uso é responsável pelo processo de decifração do arquivo/pasta informado criptografado.
GERAR HASH Este caso de uso é responsável pelo
processo de geração de hash do arquivo/pasta criptografado. VERIFICAR HASH
Este caso de uso é responsável pelo processo de verificação de hash do arquivo/pasta descriptografado. DESCRIÇÃO DOS ATORES Usuário
Este ator é qualquer usuário que deseja fazer uso do programa, será responsável arquivo ou pasta que será submetida ao processo de criptografia ou descriptografia.
DIAGRAMA GERAL DE CASOS DE USO
Fonte: Os autores
Simpósio de TCC e Seminário de IC , 2016 / 1º 1826
DETALHAMENTO DOS CASOS DE USO
UC[01] – Localizar Arquivo/Pasta
Quadro 5 – Fluxo de Eventos do Caso de Uso Localizar Arquivo ou Pasta
Nome da Use Case Localizar Arquivo ou Pasta Descrição Localizar arquivo ou uma pasta para efetuar a ação
desejada Requisitos Associados ER aF. CriptoBox.001
Pré-Condições Programa instalado e disponível Pós Condições Localização do arquivo ou pasta que será
criptografado ou descriptografado Atores Usuário
Fluxo Principal Ações Recebidas Ações Realizadas
1. Usuário inicia o programa. 2. O programa apresenta as operações “Criptografar: Pasta/Arquivo” e “Descriptografar: Arquivo/Pasta”
3. Usuário indica a operação desejada. 4. O programa solicita ao usuário a localização do arquivo/pasta.
5. Usuário indica a localização do arquivo/pasta.
6. A localização do arquivo/pasta informado será salva em memória pelo programa.
Fluxo Alternativo
1. Usuário não confirmou a localização do arquivo/pasta.
2. O programa encerra o caso de uso.
Fluxo de Exceção 1. A localização de arquivo/pasta informada
pelo usuário não existe. 2. O programa apresenta mensagem indicando
que o arquivo/pasta não existe.
3. A localização de destino informada pelo usuário já existe.
4. O programa apresenta mensagem indicando que a informação anterior ali armazenada será perdida.
Simpósio de TCC e Seminário de IC , 2016 / 1º 1827
UC[02] – Criptografar
Quadro 6 – Fluxo de Eventos do Caso de Uso Criptografar
Nome da Use Case Criptografar Descrição O software deve ser capaz de criptografar arquivo
ou pasta disponível no sistema. Requisitos Associados ER aF. CriptoBox.001, ER aF. CriptoBox.002, ER
aF. CriptoBox.003 Pré-Condições Localização do arquivo ou pasta informada Pós Condições Arquivo ou pasta criptografado
Atores Usuário Fluxo Principal
Ações Recebidas Ações Realizadas 1. Usuário informa a localização do
arquivo/pasta a ser criptografado. 2. O programa solicita ao usuário que indique a
localização de destino do arquivo/pasta criptografado.
3. Usuário localiza e informa o destino onde será salvo o arquivo/pasta criptografado.
4. Após informado o destino o programa salvará a localização em memória.
5. O Usuário solicita ao programa que inicie a etapa de processamento.
6. É solicitado ao usuário que informe e confirme a senha que será utilizada no processo de criptografia.
7. Usuário informa a senha e a confirma. 8. O programa armazena o hash da senha do usuário;
9. O programa armazena o hash do arquivo/pasta; 10. O programa irá criptografar o arquivo/pasta e
salvará o resultado no destino informado pelo usuário. No resultado deverá conter as informações: hash da senha + hash do arquivo/pasta + dados criptografados do arquivo/pasta.
Fluxo Alternativo
1. O usuário não confirmou a localização do arquivo/pasta a ser criptografado.
2. Programa encerra o caso de uso.
3. Usuário não confirmou a localização de destino da informação processada.
4. Programa encerra o caso de uso.
Fluxo de Exceção 1. A localização informada do arquivo/pasta
a ser criptografado pelo usuário não existe.
2. O programa apresenta mensagem indicando que o arquivo/pasta não existe.
Simpósio de TCC e Seminário de IC , 2016 / 1º 1828
3. A localização de destino informada pelo usuário já existe.
4. O programa apresenta mensagem indicando que a informação anterior ali armazenada será perdida.
5. Usuário não informou a senha de criptografia.
6. O programa apresenta mensagem indicando a obrigatoriedade dessa informação.
7. A senha e a confirmação de senha não conferem.
8. O programa apresenta mensagem indicando que a senha e a confirmação divergem.
UC[03] – Descriptografar
Quadro 7 – Fluxo de Eventos do Caso de Uso Descriptografar
Nome da Use Case Descriptografar Descrição Descriptografar arquivo ou conjunto de arquivo ou
uma pasta criptografada Requisitos Associados ER aF. CriptoBox.001, ER aF. CriptoBox.002, ER
aF. CriptoBox.003, ER aF. CriptoBox.004 Pré-Condições Localização do arquivo ou pasta criptografada
informada Pós Condições Arquivo ou pasta descriptografado
Atores Usuário Fluxo Principal
Ações Recebidas Ações Realizadas 1. Usuário indica a localização do
arquivo/pasta criptografado. 2. O programa solicita ao usuário que indique a
localização de destino onde a informação descriptografada será salva.
3. Usuário indica a localização onde será salvo o arquivo/pasta descriptografado.
4. Após informado o destino o programa salvará em memória a localização.
5. O Usuário solicita ao programa que inicie a etapa de processamento.
6. O programa solicita ao usuário que informe a senha para descriptografia.
Simpósio de TCC e Seminário de IC , 2016 / 1º 1829
7. Usuário informa a senha. 8. O programa verificará se senha informada corresponde a senha do arquivo/pasta criptografado;
9. O programa irá descriptografar o arquivo/pasta;
10. O programa verificará se o hash do arquivo/pasta descriptografado corresponde ao hash do arquivo/pasta original;
11. O programa salvará o resultado no destino informado pelo usuário.
Fluxo Alternativo1. O usuário não confirmou a localização do
arquivo/pasta a ser descriptografado. 2. Programa encerra o caso de uso.
3. O usuário não confirmou a localização de destino da informação processada.
4. Programa encerra o caso de uso.
Fluxo de Exceção 1. A localização indicada de arquivo/pasta a
ser descriptografado não existe. 2. O programa apresenta mensagem indicando
que o arquivo/pasta não existe. 3. A localização de destino informada pelo
usuário já existe. 4. O programa apresenta mensagem indicando
que a informação anterior ali armazenada será perdida.
5. Usuário não informou a senha. 6. O programa apresenta mensagem indicando a obrigatoriedade dessa informação.
7. A senha informada diverge da senha usada na criptografia.
8. O programa apresenta mensagem indicando a divergência.
9. O hash do arquivo descriptografado não corresponde ao arquivo original
10. O programa apresenta mensagem indicando a divergência entre os hash.
UC[04] – Informar Senha
Quadro 8 – Fluxo de Eventos do Caso de Uso Informar Senha
Nome da Use Case Informar Senha Descrição Informar senha em arquivo ou uma pasta criptografada
Requisitos Associados ER aF. CriptoBox.001, ER aF. CriptoBox.002, ER aF. CriptoBox.003, ER aF. CriptoBox.004
Pré-Condições Localização do arquivo ou pasta a ser criptografada/descriptografada informada
Pós Condições Senha informada no arquivo ou pasta criptografado/descriptografado
Atores Usuário Fluxo Principal
Ações Recebidas Ações Realizadas
Simpósio de TCC e Seminário de IC , 2016 / 1º 1830
1. O Usuário solicita ao programa que inicie a etapa de processamento.
2. O programa solicita ao usuário que informe a senha.
3. Usuário informa a senha. 4. A senha informada é validada. Fluxo Alternativo
1. Usuário não confirma a senha. 2. O programa encerra o caso de uso.
Fluxo de Exceção 1. Usuário não informa a senha. 2. O programa apresenta mensagem indicando a
obrigatoriedade dessa informação. 3. Senha e a confirmação não
correspondem. 4. O programa apresenta mensagem indicando a
divergência.
DIAGRAMA DE ESTADO
Diagrama De Estado Selecionar Pasta Ou Arquivo
Figura 16. Diagrama de Estado Selecionar Pasta ou Arquivo
Simpósio de TCC e Seminário de IC , 2016 / 1º 1831
Diagrama De Estado Inserir Senha
Figura 17. Diagrama de Estado Inserir Senha
Simpósio de TCC e Seminário de IC , 2016 / 1º 1832
Diagrama De Estado Criptografar
Figura 18. Diagrama de Estado Criptografar
Simpósio de TCC e Seminário de IC , 2016 / 1º 1833
Diagrama De Estado Descriptografar
Figura 19. Diagrama de Estado Descriptografar
Simpósio de TCC e Seminário de IC , 2016 / 1º 1834
DIAGRAMA DE SEQUÊNCIA
Diagrama De Sequência Selecionar Pasta Ou Arquivo
Figura 20. Diagrama de Sequência Selecionar Pasta ou Arquivo
Simpósio de TCC e Seminário de IC , 2016 / 1º 1835
Diagrama De Sequência Inserir Senha
Figura 21. Diagrama de Sequência Inserir Senha
Simpósio de TCC e Seminário de IC , 2016 / 1º 1836
Diagrama De Sequência Criptografar
Figura 22. Diagrama de Sequência Criptografar
Simpósio de TCC e Seminário de IC , 2016 / 1º 1837
Simpósio de TCC e Seminário de IC , 2016 / 1º 1838
Simpósio de TCC e Seminário de IC , 2016 / 1º 1839
Diagrama De Sequência Descriptografar
Figura 23. Diagrama de Sequência Descriptografar
Simpósio de TCC e Seminário de IC , 2016 / 1º 1840
Simpósio de TCC e Seminário de IC , 2016 / 1º 1841
Simpósio de TCC e Seminário de IC , 2016 / 1º 1842
CONCLUSÃO Neste trabalho foi exposto que a
criptografia pode ser utilizada em aplicações e ambientes cuja segurança das informações é de extrema importância, especialmente em sistemas de rede, nas quais as informações trafegam na Internet, correndo o perigo de serem interceptadas, e que será capaz de resultar prejuízos para uma instituição.
Entende-se que não há uma solução definitiva para a segurança de dados. Utilizar de uma rede totalmente segura, onde se trafega informações, ainda não é uma realidade palpável e não se sabe se haverá algum dia, pelo fato de existirem pessoas que estão dispostas a criar métodos para atacar essas redes.
Pelo atual crescente da tecnologia, é inevitável que os algoritmos, que hoje são considerados invioláveis, sofram de ataques efetivos. Com isso, a “guerra criptográfica” em prol da defesa das informações que trafegam na Internet, privacidade dos dados e a integridade dos mesmos nunca acabará, mas será sempre aperfeiçoada.
Este trabalho teve como objetivo esclarecer alguns princípios, teorias e técnicas de segurança na área da criptografia.
Utilizamos a linguagem de programação C++ para o desenvolvimento do software, essa linguagem nos possibilitou utilizar orientação a objetos e também facilitou a execução do software, o mesmo pode ser iniciado a partir de qualquer mídia disponível sem depender de um software auxiliar. O software criado, CriptoBox, atendeu as expectativas. A utilização de algoritmo criptográfico IDEA, nos deu certeza de que nos dias de hoje, ainda podemos afirmar que as informações que consideramos importantes podem estar seguras dentro da rede. REFERÊNCIAS BIBLIOGRÁFICAS ABNT. NBR ISO/IEC 27002: Tecnologia da informação – Técnicas de Segurança – Código de prática para a gestão da segurança da informação. Rio de Janeiro, 2013. ABNT. NBR 6024: Informação e documentação – numeração progressiva das seções de um documento escrito – apresentação. Rio de Janeiro, 2012.
ABNT. NBR 6027: Informação e documentação – sumário – apresentação. Rio de Janeiro, 2013. ABNT. NBR 10520: Informação e documentação – citações em documentos – apresentação. Rio de Janeiro, 2002. Junior Galvão – MVP – Data Platform – SQL Server. São Roque, 2007. Disponível em: <https://pedrogalvaojunior.wordpress.com/2007/11/16/diferencas-entre-chaves-simetrica-e-assimetrica-para-criptografia/>Acesso em: 16 abr. 2016. Nakamura, E. T.; Geus, P. L. Segurança de Redes em Ambientes Coorporativos. São Paulo: Novatec, 2010. 477 p. Rildo Ferreira Santos. São Paulo, 2012. Disponível em: <https://pt.scribd.com/doc/39359434/UML>Acesso em: 09 abr. 2016. Rildo Ferreira Santos. São Paulo, 2012. Disponível em: <https://pt.scribd.com/doc/28589397/Analise-e-Desenho-Orientado-a-Objetos-Com-UML> Acesso em: 09 abr. 2016. Bruno Schneider. Minas Gerais, 2013. Disponível em: <http://professores.dcc.ufla.br/~bruno/aulas/arquivos-e-diretorios.html> Aloysio de Castro Pinto Pedroza. Rio de Janeiro, 2009. Disponível em: <http://www.gta.ufrj.br/grad/09_1/versao-final/assinatura/hash.htm> Glauco Antônio Ludwig. Porto Alegre, 2007. Disponível em: <ftp://ftp.inf.ufrgs.br/pub/crypt/cripto/trabalhos/IDEA.pdf> Paulo Baltarejo, Jorge Santos. 2006. Disponível em: < http://www.dei.isep.ipp.pt/~pbsousa/aulas/ano_0/2006_07/c/Sebenta-cpp-03-2006.pdf>
Simpósio de TCC e Seminário de IC , 2016 / 1º 1843
APÊNDICE A A tela principal disponibiliza as funções de criptografar pasta ou arquivo, descriptografar
arquivo/pasta. Figura 24. Tela principal
Fonte: Os autores
Após selecionar a opção desejada, o software irá exibir a tela de seleção de arquivo ou pasta.
Figura 25. Tela seleção de arquivo ou pasta
Fonte: Os autores
Logo após que o arquivo ou pasta for selecionado, o software exibirá a tela inicial coma informação da origem do arquivo ou pasta.
Figura 26. Tela principal
Simpósio de TCC e Seminário de IC , 2016 / 1º 1844
Fonte: Os autores
Depois que o arquivo for selecionado, o software requer que seja informado o destino para salvar o
arquivo ou pasta criptografo ou descriptografado selecionando o botão “Localizar” Figura 27. Tela de seleção de destino
Fonte: Os autores
Logo após que o destino for selecionado, o software exibirá a tela inicial com a informação de destino do arquivo ou pasta. Com a origem e destino informado o arquivo ou pasta entrará no processo de criptografia ou descriptografia ao selecionar o botão “Processar”.
Figura 28. Tela principal
Simpósio de TCC e Seminário de IC , 2016 / 1º 1845
Fonte: Os autores
Após executar a função de processar o arquivo ou pasta, o software exibirá uma tela para a
inserção da senha e da confirmação da senha inserida. Figura 29. Tela inserir senha
Fonte: Os autores
As telas abaixo indicam ao usuário se as senhas não forem iguais, se a senha inserida na
descriptografia não confere com a senha usada na criptografia do arquivo ou pasta. Figura 30. Tela senhas não conferem
Fonte: Os autores
Figura 31. Tela senha não confere com a usada na criptografia
. Fonte: Os autores
Figura 32. Tela hash não confere com arquivo original
Simpósio de TCC e Seminário de IC , 2016 / 1º 1846
Fonte: Os autores
Após a inserção correta da senha, o software irá processar a criptografia ou descriptografia do
arquivo ou pasta selecionado.
Figura 33. Tela processando
Fonte: Os autores
Ao finalizar o processo, o software exibirá tela de confirmação de criptografia ou descriptografia. Figura 34. Tela processamento finalizado
Fonte: Os autores