tsi desenvolvimento de software zero one...

26
Simpósio de TCC e Seminário de IC , 2016 / 1º 1865 TSI DESENVOLVIMENTO DE SOFTWARE CRIPTOGRÁFICO (ZERO ONE ENCRYPT) CAMILA ALVES DE OLIVEIRA RODRIGO ARRUDA GOMES CID BENDAHAN COELHO CINTRA RESUMO Este trabalho tem como objetivo o desenvolvimento de um software de criptografia, que visa garantir a confidencialidade de arquivos e pastas por meio da encriptação de dados, assim como garantir a integridade dos mesmos fazendo uso da função Hash. Para o desenvolvimento deste trabalho, foram realizados estudos relacionados à segurança da informação e desenvolvimento de software. As principais atividades realizadas com base nesses estudos foram: levantamento, análise e documentação dos requisitos do software, desenvolvimento do software na linguagem JAVA baseado no conceito de Orientação a Objetos, finalização e testes do software. O resultado atingido através desse trabalho foi um software funcional de criptografia e hash com o propósito de manter arquivos e pastas armazenadas com segurança, colocando em relevância a segurança da informação. Palavras Chaves: Criptografia, Desenvolvimento de Software, Segurança da Informação. ABSTRACT This work aims at the development of encryption software, which aims to guarantee the confidentiality of files and folders through data encryption, as well as ensure the integrity of the making use of the hash function. For the development of this work were carried out studies related to information security and software development. The main activities based on these studies were: survey, analysis and documentation of software requirements software development in Java- based Guidance concept Object, completion and testing of the product. The result achieved by this work was a functional software encryption and hash with the purpose of keeping files and folders stored securely, putting in relevant security information. Keywords: Cryptography, Software Development, Information Security. INTRODUÇÃO Nos últimos anos, a informação vem sendo tratada de maneira mais valiosa do que há algum tempo atrás, tanto no âmbito organizacional como no pessoal. Portanto, é de suma importância que esta seja tratada de forma segura, garantindo assim sua integridade, confidencialidade e disponibilidade. Devido ao crescimento da quantidade de informações que tramitam em sistemas computacionais, é de fundamental necessidade que a mesma esteja livre de acessos não autorizados. Garantir que isso não aconteça é uma responsabilidade não somente do profissional de segurança da informação, mas de todos que tratam com essa informação. Tais riscos podem ser evitados fazendo-se uso de políticas de segurança e softwares criptográficos. Este trabalho enfatiza a importância do uso de um software criptográfico para garantir ao usuário maior segurança de suas informações, seja ele um usuário comum sem pretensões comerciais ou até mesmo organizações comerciais que necessitam de uma maneira segura para armazenar informações importantes. A elaboração deste trabalho tem por objetivo o desenvolvimento de um software criptográfico que visa garantir a confidencialidade, integridade e disponibilidade das informações. Justificativa No âmbito tecnológico atual, faz-se uso de inúmeras ferramentas de segurança, entretanto a garantia de que as informações transmitidas atenderão os pilares da segurança da informação nem sempre é atendida. Enfatizando a segurança da informação com base em seus pilares (confidencialidade, integridade e disponibilidade), justifica-se a elaboração deste trabalho, visando proteger informações, mitigando os riscos de alterações não autorizadas da mesma. Valendo-se de recursos criptográficos e função Hash, o Zero One Encrypt é um software de grande relevância para a segurança dos dados pessoais ou profissionais do usuário. Objetivos Objetivo Geral Desenvolver um aplicativo que criptografa, decriptografa e verifica hash de arquivos e pastas, garantindo assim, a confidencialidade e integridade dos mesmos. Objetivos Específicos Pesquisar a bibliografia pertinente, os conceitos e definições.

Upload: phamdang

Post on 28-Jan-2019

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1865

TSI DESENVOLVIMENTO DE SOFTWARE CRIPTOGRÁFICO (ZERO ONE ENCRYPT) 

CAMILA ALVES DE OLIVEIRA RODRIGO ARRUDA GOMES

CID BENDAHAN COELHO CINTRA

RESUMO Este trabalho tem como objetivo o desenvolvimento de um software de criptografia, que visa garantir a confidencialidade de arquivos e pastas por meio da encriptação de dados, assim como garantir a integridade dos mesmos fazendo uso da função Hash. Para o desenvolvimento deste trabalho, foram realizados estudos relacionados à segurança da informação e desenvolvimento de software. As principais atividades realizadas com base nesses estudos foram: levantamento, análise e documentação dos requisitos do software, desenvolvimento do software na linguagem JAVA baseado no conceito de Orientação a Objetos, finalização e testes do software. O resultado atingido através desse trabalho foi um software funcional de criptografia e hash com o propósito de manter arquivos e pastas armazenadas com segurança, colocando em relevância a segurança da informação. Palavras Chaves: Criptografia, Desenvolvimento de Software, Segurança da Informação. ABSTRACT This work aims at the development of encryption software, which aims to guarantee the confidentiality of files and folders through data encryption, as well as ensure the integrity of the making use of the hash function. For the development of this work were carried out studies related to information security and software development. The main activities based on these studies were: survey, analysis and documentation of software requirements software development in Java- based Guidance concept Object, completion and testing of the product. The result achieved by this work was a functional software encryption and hash with the purpose of keeping files and folders stored securely, putting in relevant security information. Keywords: Cryptography, Software Development, Information Security. INTRODUÇÃO

Nos últimos anos, a informação vem sendo tratada de maneira mais valiosa do que há algum tempo atrás, tanto no âmbito organizacional como no pessoal. Portanto, é de suma importância que esta seja tratada de forma segura, garantindo assim sua integridade, confidencialidade e disponibilidade.

Devido ao crescimento da quantidade de

informações que tramitam em sistemas computacionais, é de fundamental necessidade que a mesma esteja livre de acessos não autorizados. Garantir que isso não aconteça é uma responsabilidade não somente do profissional de segurança da informação, mas de todos que tratam com essa informação. Tais riscos podem ser evitados fazendo-se uso de políticas de segurança e softwares criptográficos.

Este trabalho enfatiza a importância do uso de um software criptográfico para garantir ao usuário maior segurança de suas informações, seja ele um usuário comum sem pretensões comerciais ou até mesmo organizações comerciais que necessitam de uma maneira segura para armazenar informações importantes.

A elaboração deste trabalho tem por

objetivo o desenvolvimento de um software criptográfico que visa garantir a confidencialidade, integridade e disponibilidade das informações. Justificativa

No âmbito tecnológico atual, faz-se uso de inúmeras ferramentas de segurança, entretanto a garantia de que as informações transmitidas atenderão os pilares da segurança da informação nem sempre é atendida.

Enfatizando a segurança da informação com base em seus pilares (confidencialidade, integridade e disponibilidade), justifica-se a elaboração deste trabalho, visando proteger informações, mitigando os riscos de alterações não autorizadas da mesma. Valendo-se de recursos criptográficos e função Hash, o Zero One Encrypt é um software de grande relevância para a segurança dos dados pessoais ou profissionais do usuário.

Objetivos Objetivo Geral

Desenvolver um aplicativo que

criptografa, decriptografa e verifica hash de arquivos e pastas, garantindo assim, a confidencialidade e integridade dos mesmos. Objetivos Específicos Pesquisar a bibliografia pertinente, os conceitos e definições.

Page 2: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1866

Levantar as necessidades do usuário. Elaborar a documentação de análise do aplicativo. Elaborar uma solução segura para encriptação e decriptação de arquivos e pastas, bem como comparar o hash dos mesmos. Desenvolver o protótipo do aplicativo. Metodologia

Para a elaboração deste trabalho,

diversos estudos foram realizados, o que proporcionou um aprimoramento da idéia de desenvolver um software criptográfico que atendesse às expectativas do usuário.

Na fase de desenvolvimento do projeto,

as atividades executadas foram: pesquisa bibliográfica sobre assuntos pertinentes à segurança da informação e desenvolvimento de software, análise, desenvolvimento e documentação dos requisitos, codificação e testes. A documentação foi baseada nos modelos UML e PRISM. Na codificação foi utilizada a ferramenta de desenvolvimento NetBeans IDE e linguagem de programação JAVA.

Por fim, o Zero One Encrypt foi testado e

apresentou resultados dentro das conformidades esperadas. REFERENCIAL TEÓRICO Informação

De acordo com norma a 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”.

Segundo a norma ABNT NBR ISO/ IEC

27002 (2005) a informação pode ser impressa, escrita em papel ou falada, armazenada em drivers ou transmitida por meios eletrônicos. Ela pode existir de diversas formas, e independente da forma que será transmitida, é recomendado que ela seja protegida adequadamente. Segurança da Informação

A norma ABNT NBR ISO/ IEC 27002 (2005, p. X), ao abordar segurança da informação, afirma que: “A segurança da informação é obtida a partir da implementação de um conjunto de controles adequados, incluindo políticas, processos, procedimentos, estruturas organizacionais e funções de software e hardware. Estes controles precisam ser estabelecidos, implementados, monitorados, analisados criticamente e melhorados, onde necessário, para garantir que os objetivos do negócio e de segurança da organização sejam atendidos. Convém que isto

seja feito em conjunto com outros processos de gestão de negócio.”

A segurança da informação sustenta-se

em alguns pilares. Conforme afirma a norma ABNT NBR ISO/IEC 27001 (2006), os pilares são: Confidencialidade: propriedade que garante que somente pessoas autorizadas tenham acesso à informação. Disponibilidade: propriedade que garante que a informação estará acessível e utilizável sempre que solicitada por pessoas com a devida autorização. Integridade: propriedade que garante que a informação não sofrerá modificações sem a devida autorização.

Oliveira (2012) ressalta outros princípios de igual importância:

Não-repudiação: propriedade que garante a prevenção de que alguém negue o envio e/ou recebimento de uma informação. Privacidade: propriedade que garante que apenas a origem e o destino tenham conhecimento da informação. Autenticidade: propriedade que garante a identidade de quem está enviando a mensagem. Criptografia

Segundo Simon (1999 apud Moreno et. al2005, p. 11), a criptografia pode ser entendida como um conjunto de regras e técnicas usadas para tornar uma informação legível em outra totalmente ilegível, por meio de algoritmos criptográficos, sendo possível através do processo inverso recuperar as informações originais.

Conforme Moreno et. al (2005), as informações podem ser criptografadas basicamente através de códigos ou de cifras. Segundo eles, os códigos protegem as informações alterando partes da informação por códigos predefinidos, sendo que as pessoas autorizadas a ter acesso a essa informação criptografada tenha conhecimento desses códigos utilizados a fim de que o processo reverso seja possível.

Conforme expresso pela CERT.BR (2012), a criptografia pode ser usada para diversos fins, entre eles: Proteger dados sigilosos armazenados no computador.

Page 3: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1867

Fazer backups contra acessos não autorizados. Proteger as comunicações realizadas na Internet, como e-mails enviados/recebidos e as transições bancárias e comerciais realizadas.

Segundo Oliveira (2012), a criptografia se subdivide em dois tipos básicos: a criptografia

simétrica, ou chave privada, e a criptografia assimétrica ou chave pública. Criptografia Simétrica

“Criptografia de chave simétrica, também chamada de chave secreta ou única, utiliza uma mesma chave tanto para codificar como para decodificar informações, sendo usada principalmente para garantir a confidencialidade dos dados.” (CERT.BR,2012)

A figura 1 mostra o funcionamento da criptografia simétrica.

Figura 1 – Criptografia Simétrica

Fonte: Pinto (2010)

Segundo Pinto (2010), os algoritmos que

utilizam a criptografia simétrica tendem a serem mais rápidos, porém são menos seguros do que os que usam criptografia assimétrica, uma vez que a chave usada para cifrar a informação é partilhada entre várias máquinas.

Dentre os algoritmos criptográficos que usam chave simétrica, os mais conhecidos são: 3DES, IDEA, AES, RC4, Blowfish. Criptografia Assimétrica

Ainda de acordo com a CERT.BR (2002): Criptografia de chaves assimétricas, também conhecida como criptografia de chave pública, utiliza duas chaves distintas: uma pública, que pode ser livremente divulgada, e uma privada, que deve ser mantida em segredo por seu dono. Quando uma informação é codificada com uma das chaves, somente a outra chave do par pode decodificá-la.

A figura 2 mostra o funcionamento da criptografia assimétrica.

Figura 2 – Criptografia Assimétrica

Fonte: Pinto (2010)

Os algoritmos criptográficos mais conhecidos que utilizam criptografia assimétrica são: RSA, DAS, ECC e Diffie-Hellman. Advanced Encryption Standard (AES)

Alvarenga (2011) afirma que, o algoritmo

AES foi desenvolvido por Vicent Rijmen e Joan Daemen em uma competição promovida por uma

agência americana, o NIST (National Institute of Standards and Tecnology), que tinha por finalidade o desenvolvimento de um algoritmo de criptografia simétrica que viria a substituir o algoritmo DES.

Segundo Alvarenga (2011), o AES tem

um tamanho de bloco fixo de 128 bits e uma

Page 4: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1868

chave que pode ser no tamanho de 128, 192 ou 256 bits.

Alvarenga (2011) afirma ainda que, o

AES é um algoritmo seguro, fácil de implementar, flexível, não exige muito poder de processamento.

Função Hash

Segundo a CERT.BR (2002) a função Hash: “ é um método criptográfico que, quando aplicado sobre uma informação, independente do tamanho que ela tenha, gera um resultado único e de tamanho fixo, chamado Hash.”

É considerado relativamente fácil

descobrir o hash a partir da mensagem, mas matematicamente impossível fazer o processo inverso.

Conforme a CERT.BR (2002), a função hash pode ser utilizada para: Verificar a integridade de um arquivo armazenado no seu computador; Gerar assinaturas digitais; Verificar a integridade de arquivos obtidos da Internet;

Message – Digest Algorithm 5 (MD5)

Segundo Vale (2007), o Message-Digest Algorith5 (MD5) é um algoritmo de hash de 128 bits que foi desenvolvido pela RSA Data Security, com a finalidade de substituir o algoritmo MD4 que apresentou falhas de segurança. O MD5 é utilizado basicamente para verificação de integridade e logins.

Ainda de acordo com Vale (2007), o MD5

é um algoritmo unidirecional no qual através de uma saída não é possível identificar o conteúdo de entrada. Portanto, segundo Vale (2007), o método de verificação de hash é dado pela comparação entre dois hash, um armazenado na base de dados e outro gerado a partir da tentativa de login.

Vale (2007) ressalta ainda que,

independente da mensagem de entrada, o MD5 gera um valor hash de tamanho fixo de 128 bits. Orientação a Objeto

“A Orientação a Objetos é uma tecnologia que enxerga os sistemas como sendo coleção de objetos integrantes. Ela permite melhorar a reusabilidade e extensibilidade dos softwares.” (FARINELLI, 2007).

Farinelli (2007) afirma ainda que, a

proposta da Orientação a Objetos é representar as situações do mundo real nos sistemas computacionais da maneira mais fiel possível a realidade. A Orientação a Objetos considera os sistemas computacionais como uma coleção de objetos que interagem entre si. Classes, Objetos Atributos e Métodos

“As classes de programação são receitas

de um objeto, aonde têm características e comportamentos, permitindo assim armazenar propriedades e métodos dentro dela.” (GARCIA, 2015).

“Um objeto é um elemento computacional

que representa, no domínio da solução, alguma entidade (abstrata ou concreta) do domínio de interesse do problema sob análise. Objetos similares são agrupados em classes.” (RICARTE, 2002).

A figura 3 mostra um exemplo de objeto.

Figura 3 – Objeto

Fonte:Palmeira(s.d.)

“Atributos são as características de um objeto, essas características também são conhecidas como variáveis.” (GARCIA, 2015).

“Métodos são as ações que os objetos

podem exercer quando solicitados, onde podem interagir e se comunicarem com outros objetos.” (GARCIA, 2015).

A figura 4 mostra a representação de uma classe com atributos e métodos.

Figura 4 – Representação de uma Classe

Page 5: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1869

Fonte: Os autores

Pilares da Orientação a Objetos

Segundo a Scriptcase Brasil (2013), a programação Orientada a Objetos é caracterizada em quatro pilares: Abstração: esse pilar tem como objetivo trazer algo do mundo real (com suas propriedades, identidade e métodos) e transformá-lo em um objeto na programação.

A figura 5 mostra um exemplo de abstração.

Figura 5 – Abstração

Fonte: Palmeira (S. d.)

Ainda de acordo com a Scriptcase Brasil (2013):

Encapsulamento: esse pilar permite ocultar dados que não podem ser manipulados diretamente dentro de uma classe manipulável. A figura 6 mostra um exemplo de encapsulamento.

Figura 6 – Encapsulamento

Fonte: Aniche (2012)

Ainda de acordo com a Scriptcase Brasil (2013):

Herança: esse pilar permite que classes com propriedades comuns entre si sejam abstraídas e reunidas em uma classe base.

Page 6: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1870

A figura 7 mostra um exemplo de herança entre classes. Figura 7 – Herança entre Classes

Fonte: Palmeira(S. d.)

Ainda de acordo com a Scriptcase Brasil (2013): Polimorfismo: esse pilar permite que um método existente em mais de uma classe seja trabalhado de forma diferente em outras classes. A figura 8 mostra um exemplo de polimorfismo.

Figura 8 – Polimorfismo

Fonte: Macoratti (s.d.)

Java

De acordo com Braz (s.d.), a linguagem Java foi criada em 1995 pela Sun Microsystems devido o advento da Internet e a necessidade da existência de uma tecnologia onde computadores de diferentes plataformas pudessem conversar entre si já que a linguagem C++ (utilizada até então por eles) não permitia realizar tudo o que o grupo desejava.

Braz (s.d.) cita algumas características da

linguagem Java, são elas:

Orientada a Objetos: é o paradigma mais utilizado atualmente no desenvolvimento de softwares. Uma das suas principais vantagens está na reusabilidade do código usado em sistemas já desenvolvidos. Simples e Robusta: Java apresenta aspectos mais aprimorados que a linguagem C++, inclusive rapidez na criação de softwares.

Gerenciamento Automático de Memória: na linguagem Java, o procedimento de separação e liberação da memória é feito de forma automática. Independência de Plataforma: um programa desenvolvido em Java pode ser aplicado em outra plataforma diferente da plataforma original, isso se deve a utilização de Java Virtual Machine (JVM) que funciona como um interpretador Java. Multi-theading: um programa Java pode realizar várias tarefas paralelamente em múltiplos threads. Engenharia de Software

Em relação à Engenharia de Software, Sommerville (2011, p. 5) afirma que:

“Engenharia de software é uma disciplina de engenharia cujo foco está em todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até sua

Page 7: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1871

manutenção, quando o sistema já está sendo usado.”

Sommerville (2011, p. 5) ressalta que a Engenharia de Software é importante por dois motivos:

Cada vez mais a sociedade depende dos sistemas de softwares avançados e que devemos ser capazes de produzir sistemas de forma econômica, confiáveis e com um preço relevante. Na maioria das vezes é mais barato, a longo prazo, usar técnicas da engenharia de software para produzir um sistema do que fazê-lo com um projeto pessoal. Filho (2011) enfatiza que, o processo de desenvolvimento de um software (assim como qualquer outro produto), é dividido em três fases: Definição: nesta fase do processo define-se “o que” será desenvolvido. Desenvolvimento: define-se basicamente as técnicas que serão utilizadas, e a implementação do projeto. Manutenção: nesta fase são consideradas as modificações e/ou correções que podem ocorrer quando o software entrar em produção. Modelo Prático para o Desenvolvimento de Software (PRISM)

O Modelo Prático para o Desenvolvimento de Software idealizado por Cardoso (2003) apresenta uma maneira relativamente simples da elaboração da

arquitetura e engenharia de um software com base em diagramas da UML. Unified Modeling Language (UML) – Linguagem Unificada de Modelagem

Terra (2009) define Unified Modeling

Language (UML) como um grupo de representações gráficas, que ajudam na descrição e no projeto de sistemas de software, sobretudo de projetos que fazem uso da Orientação a Objetos.

Segundo Pimentel (2015), a UML foi

criada com o intuito de visualizar, especificar, construir e documentar as ferramentas de um sistema de software.

Silva, Videira (2001, p. 166) enfatizam

que, a especificação da estrutura de um sistema de software depende de alguns elementos: classes, relações, interfaces e objetos.

De acordo com Silva, Videira (2001, p.

169), uma relação em UML é representada por um tipo diferente de linha e representa a ligação entre elementos dos sistemas. Ambos ressaltam ainda que, os três tipos de relações mais importantes são:

Relação de Dependência: está relacionada à utilização. Indica que se um elemento for alterado na sua especificação, isso pode afetar outro item que a usa, mas o oposto nem sempre acontece. Na UML, a dependência é representada por uma linha tracejada e dirigida.

A figura 9 demonstra um exemplo de dependência entre classes.

Figura 9 – Dependências entre classes

Fonte: Silva, Videira (2001, p. 169)

Relação de Generalização: é a relação entre itens gerais (superclasse) e itens específicos (subclasse). Utilizam-se generalizações para ilustrar relações de herança. É representada em UML por uma linha dirigida a cheio com um triângulo branco no seu extremo. A figura 10 demonstra um exemplo de generalização entre classes.

Figura 10 – Generalização entre Classes

Page 8: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1872

Fonte: Silva, Videira (2001, p. 171)

Relação de Associação: é uma relação estrutural que especifica um objeto de uma determinada classe ligado a objeto de outra classe. Em UML, a associação é representada por uma linha a cheio.

A figura 11 demonstra um exemplo de associação entre classes.

Figura 11 – Associação entre Classes

Fonte: Silva, Videira (2001, p. 172)

Pimentel (2015) ressalta que, a UML 2.1 se organiza em conjuntos de diagramas, todos com comportamento bem definido e que a mesma descreve 13 tipos de diagramas.

A figura 12 mostra os tipos de diagramas.

Figura 12 – Diagramas

Fonte: Pimentel (2015)

Page 9: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1873

Diagrama de Caso de Uso Segundo Madeira (2007), o Diagrama de

Casos de Uso tem como finalidade representar um requisito do sistema que será automatizado. Ele é representado por dois elementos básicos:

Caso de Uso: representa o requisito que será

automatizado. Atores: são usados para representar as

entidades que interagem com o sistema. A figura 13 mostra os elementos básicos

do diagrama de caso de uso.

Figura 13 – Elementos Básicos do Diagrama de Caso de Uso

Fonte: Os autores

Madeira (2007) ressalta ainda que, há duas formas de relacionamento entre os casos de uso, são elas:

Include: acontece quando em dois casos de uso “A e B”, ao executar o caso de uso “A”, também executará o “B”. Extends: ao executar o caso de uso “A” não necessariamente será executado em “B”. Diagrama de Classe

Segundo Terra (2009), um diagrama de classes descreve basicamente os objetos existentes em um sistema e seus diversos tipos de relacionamentos.

Ainda segundo Terra (2009), “os

diagramas de classe também mostram as propriedades e operações de uma classe e as restrições que se aplicam à maneira como os objetos estão conectados”.

A figura 14 mostra um exemplo de Diagrama de Classe.

Figura 14 - Diagrama de Classe

Fonte: Os autores

Diagrama de Sequência

De acordo com Guedes (2014), o

Diagrama de Sequência está relacionado à ordem temporal em que as mensagens dos objetos envolvidos no processo são trocadas.

Guedes (2014) ressalta ainda que:

“Um Diagrama de Sequência costuma identificar o evento gerador do processo modelador, bem como o ator responsável por este evento, e determina como o processo deve se desenrolar e ser concluído por meio do envio de mensagens que em geral disparam métodos entre os objetos.”

A figura 15 mostra um diagrama de sequência.

Page 10: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1874

Figura 15- Diagrama de Sequência

Fonte: Os autores

ANÁLISE DO APLICATIVO

Documento de Visão Introdução Finalidade

A finalidade deste documento é coletar,

analisar e definir as características do software de criptografia "Zero One Encrypt". Serão abordadas as maneiras de como o "Zero One Encrypt" irá agir em suas especificações. Definições, Acrônimos e Abreviações

a. RUP – Rational Unified Process. b. ZOE – Programa criptográfico desenvolvido. c. JRE – Java Runtime Environment.

Referências

a. RUP – Rational Unified Process.

b. Notas de aula.

Posicionamento Oportunidade de Negócios

O alvo desse aplicativo está diretamente ligado a uma parcela da sociedade que faz uso da tecnologia, mas que necessitam de um método seguro para troca de informações, bem como guardá-las, onde somente as pessoas com devida autorização serão capazes de acessá-las.

No processo de troca de informações,

existe o risco de pessoas não autorizadas apoderarem-se dessas informações legíveis e causar possíveis transtornos aos envolvidos.

Com intuito de evitar estes possíveis

transtornos, esse projeto apresenta o desenvolvimento do Zero One Encrypt, que oferece a criptografia e decriptografia de arquivos e pastas de forma segura, garantido sua integridade e confidencialidade.

Descrição do Problema

Page 11: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1875

Quadro 1 – Descrição do Problema O problema de Pessoas não autorizadas terem acesso às informações

sigilosas e possa alterá-las e/ou destruí-las. Afeta Dono da informação. Cujo impacto é Possíveis constrangimentos com a publicação dessas

informações, fraudes, sabotagem. Uma boa solução seria Um software que garanta a integridade e

confidencialidade dessas informações.

Fonte: Os autores. Sentença de Posição do Produto

Quadro 2 – Sentença de Posição do Produto. Para Qualquer usuário. Quem Desejar tornar inteligíveis suas informações.

O Zero One Encrypt É um software.

Que Criptografa e decriptografa arquivos e pastas de forma segura e prática.

Diferente de Softwares atuais que não garantem total confidencialidade e integridade das informações.

Nosso produto Garante sigilo total dos arquivos e pastas por ele criptografado e integridade das informações por meio do hash.

Fonte: Os autores. Escopo do Produto

A finalidade do Zero One Encrypt é

criptografar e decriptografar arquivos e pastas por meio da criptografia.

Para verificação da integridade dos dados

será usado a função hash e o uso de senhas para criptografar e decriptografar dados.

O programa será utilizado em qualquer

computador que tenha instalado o Java Runtime Environment (JRE).

Descrições dos Envolvidos e dos Clientes Demografia do Mercado

A tecnologia está crescendo

gradativamente e muitas são as pessoas que a acompanham.

A grande maioria não se preocupa com a

segurança de suas informações. O mercado está precisando de softwares que atendam as suas necessidades de forma rápida e segura.

Resumo dos Envolvidos Quadro 3 – Resumo dos Envolvidos

Nome Descrição Responsabilidades

Analista e Desenvolvedor

Responsáveis pelo escopo e desenvolvimento do projeto.

- Analisar as necessidades do usuário. - Desenvolver o software seguro. - Realizar manutenção do software garantindo seu bom funcionamento.

Fonte: Os autores. Resumo dos Clientes

Quadro 4 – Resumo dos clientes.

Nome Descrição Responsabilidades Envolvido

Usuário Usuário final do Zero One Encrypt.

Usar o aplicativo. Não se aplica.

Fonte: Os autores.

Ambiente dos Clientes Computador do usuário ou computador da empresa que tenha o JRE instalado.

Perfis dos Envolvidos

Page 12: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1876

As principais pessoas envolvidas nesse projeto estão listadas abaixo. Desenvolvedor e Analista

Quadro 5 – Perfil do envolvido Desenvolvedor e Analista. Descrição Pessoas responsáveis pelo desenvolvimento do

software. Tipo Especialista. Responsabilidades Desenvolver um software que atenda às

necessidades do usuário, pesquisando novas tecnologias e garantindo a qualidade do seu produto.

Critérios de Sucesso Segurança e integridade da informação.

Envolvimento Revisor de Requisitos. Produtos Liberados O software. Comentários/Problemas Informações colocadas de maneira incorreta.

Fonte: Os autores. Usuário

Quadro 6 – Perfil do usuário Descrição Pessoa que utiliza o software.

Tipo Usuário primário. Responsabilidades Fazer uso dos benefícios oferecidos pelo software. Critérios de Sucesso Inserção de um único arquivo ou pasta por vez no

sistema. Envolvimento Contato direto com o software. Produtos Liberados Nenhum. Comentários/Problemas Seleção de mais de um arquivo ou pasta por vez.

Fonte: Os autores. Principais Necessidades dos Envolvidos ou dos Clientes

Quadro 7 - Principais Necessidades dos Envolvidos ou dos Clientes.

Fonte: Os autores. Restrições

O programa será compatível com Java Runtime Environment (JRE). O software deverá está pronto até dia 20/06/2016.

Especificação dos Requisitos ER aF. ZOE.001

Quadro 8 – Quadro de Especificação do Requisito ER aF.ZOE.001 ER aF. ZOE.001 Criptografar

Descrição O software deverá criptografar o arquivo ou pasta requerida pelo ator.

Descrição do risco Risco Prioridade Não seleção do arquivo ou pasta. Médio Médio Seleção de mais de um arquivo ou pasta por vez Médio Alta Não gerar a senha para criptografia do arquivo ou pasta.

Baixo Baixa

Não criptografar o arquivo ou pasta.

Alto Alta

Usuário envolvido

Qualquer usuário.

Fonte: Os autores.

Necessidade Prioridade Preocupações Solução Atual Soluções Propostas

Mensagens de difusão.

Alta Disponibilidade, confidencialidade e

integridade das informações.

Não existe. O uso da criptografia para proteger as informações contra pessoas não autorizadas.

Page 13: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1877

ER aF. ZOE.002

Quadro 9 – Quadro de Especificação do Requisito ER aF.ZOE.002 ER aF. ZOE.002 Decriptografar

Descrição O software deverá decriptografar o arquivo ou pasta requerida pelo ator.

Descrição do risco Risco Prioridade Não seleção do arquivo ou pasta a ser decriptografada.

Baixo Baixa

Inserir a senha errada ou não inserir a senha para decriptografar o arquivo ou pasta.

Médio Baixa

Não encontrar o arquivo ou pasta. Alto Alta Usuário

envolvido Qualquer usuário.

Fonte: Os autores. ER aF. ZOE.003

Quadro 10 – Quadro de Especificação do ER aF.ZOE.003 ER aF.ZOE.003

Selecionar Arquivo

Descrição O software deverá permitir que o ator escolha o arquivo a ser criptografado ou decriptografado.

Descrição do risco Risco Prioridade Não escolher um arquivo. Médio Médio

Selecionar mais de um arquivo por vez Médio Médio

Usuário envolvido

Qualquer usuário.

Fonte: Os autores. ER aF. ZOE.004

Quadro 11 – Quadro de Especificação do Requisito ER aF.ZOE.004 ER aF.ZOE.004 Selecionar Pasta

Descrição O software deverá permitir que o ator escolha a pasta a ser criptografada ou decriptografada.

Descrição do risco Risco Prioridade Não seleção da pasta. Baixo Baixa

Seleção de mais de uma pasta por vez. Alto Alta Usuário

envolvido Qualquer usuário.

Fonte: Os autores. ER aF.ZOE.005

Quadro 12 – Quadro de Especificação do RequisitoER aF.ZOE.005 ER aF. ZOE.005 Definir Senha

Descrição O software deve permite o usuário definir uma senha para efetuar a criptografia e decriptografia do arquivo ou pasta.

Descrição do risco Risco Prioridade Inserção de senha incorreta. Médio Baixa

Esquecimento da senha. Alto Alto Usuário envolvido Qualquer usuário.

Fonte: Os autores. ER aF. ZOE.006

Quadro 13 – Quadro de Especificação do Requisito ER aF. ZOE.006 ER aF. ZOE.006 Gerar Hash

Descrição O software deverá gerar o hash de um arquivo ou pasta. Descrição do risco Risco Prioridade

Não se aplica -- -- Usuário envolvido Qualquer usuário.

Fonte: Os autores.

Page 14: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1878

Descrição dos Casos de Uso e Atores

Casos de Usos Criptografar arquivo

Este caso de uso é responsável por

efetuar a criptografia no arquivo selecionado pelo usuário.

Criptografar pasta

Este caso de uso é responsável por

efetuar a criptografia na pasta selecionada pelo usuário.

Decriptografar Este caso de uso é responsável por

decriptografar o arquivo ou pasta gerado pelo processo de criptografia. Descrição Atores Usuário

Este ator é qualquer pessoa que fará uso do aplicativo, será responsável pela seleção do arquivo ou pasta que será criptografado e decriptografado. Diagrama Geral de Caso de Uso

Figura 16 – Diagrama Geral de Caso de Uso

Fonte: Os autores.

Detalhamento dos Casos de Uso UC [01] – Criptografar Arquivo

Quadro 14 - Fluxo de Eventos do Caso de Uso Criptografar Arquivo Nome da Use Case Criptografar arquivo

Descrição O software recebe o arquivo e senha definida pelo usuário e efetua a criptografia.

Requisitos Associados

ER aF. ZOE.001

Pré Condições Software inicializado. O usuário ter selecionado a opção “Criptografar Arquivo”.

Pós Condições Arquivo criptografado. Atores Usuário

Fluxo Principal [FP01]

Page 15: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1879

Ações Recebidas Ações Realizadas 1. O software exibe a tela para seleção do

arquivo a ser criptografado. 2. O usuário informa um único arquivo por

vez. 3. O software exibe uma janela para inserção da senha.

4. O usuário insere a senha. 5. O software gera uma chave com o hash da senha. 6. O software associa a chave gerada ao arquivo selecionado. 7. O software realiza o processo de criptografia do arquivo. 9. “O software salva o arquivo criptografado com a extensão ”.cript” na mesma pasta do arquivo original 8. O software exibe a informação que o arquivo foi criptografado com sucesso.

Fluxo Exceção [FE01] 1. O software exibe a tela para seleção do

arquivo a ser criptografado. 2. O usuário seleciona mais de um arquivo por vez.

3. O software volta ao passo 1 do fluxo principal.

Fonte: Os autores. UC [02] – Criptografar Pasta

Quadro 15 - Fluxo de Eventos do Caso de Uso Criptografar Pasta

Nome da Use Case Criptografar Pasta

Descrição O software recebe a pasta e senha definida pelo usuário e efetua a criptografia.

Requisitos Associados

ER aF. ZOE.002

Pré Condições Software inicializado. O usuário ter selecionado a opção “Criptografar Pasta”.

Pós Condições Pasta criptografada. Atores Usuário

Fluxo Principal [02] Ações Recebidas Ações Realizadas

1. O software exibe a tela seleção da pasta a ser criptografada.

2. O usuário informa uma única pasta por vez.

3. O software exibe a tela para inserção da senha.

4. O usuário insere a senha. 5. O software gera uma chave com o hash da senha. 6. O software associa a chave gerada à pasta selecionada. 7. O software compacta a pasta. 8. O software realiza o processo de criptografia da pasta. 9. “O software gera um arquivo com a extensão ”.cript” no mesmo local da pasta original. 10. O software exibe a informação que a pasta foi criptografada com sucesso.

Fluxo Exceção [FE02] 1. O software exibe a tela para seleção da pasta

a ser criptografada. 2. O usuário seleciona mais de uma pasta 3. O software volta ao passo 1 do fluxo principal.

Fonte: Os autores. UC [03] – Decriptografar Arquivo

Quadro 16 - Fluxo de Eventos do Caso de Uso Decriptografar Arquivo

Page 16: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1880

Nome da Use Case Decriptografar. Descrição O software decriptografa o arquivo para sua recuperação e

verifica hash. Requisitos Associados

ER aF. ZOE.001; ER aF. ZOE.003;

Pré Condições Software inicializado. Ter um arquivo previamente criptografado. Senha disponível.

Pós Condições O software deverá decriptografar o arquivo selecionado. Atores Usuário

Fluxo Principal [FP03] Ações Recebidas Ações Realizadas

1. O usuário seleciona a opção “decriptografar arquivo ou pasta”.

2. O software exibe a tela para seleção do arquivo.

5. O usuário seleciona o arquivo criptografado. 6. O software exibe a tela para inserção da senha (já definida pelo usuário e associado ao arquivo).

7. O usuário fornece a senha e clica em “OK”. 8. O software valida a senha 9. O software compara as informações de hash. 10. O software cria uma pasta no mesmo local do arquivo criptografado nomeada com o mesmo nome do arquivo original, acrescido da palavra “DEC” com o arquivo decriptografado salvo nela. 11. O software exibe a informação que o arquivo foi decriptografado com sucesso. 12. O software exibe a informação que as informações de hash do arquivo coincidem.

Fluxo Exceção [FE03] Ações Recebidas Ações Realizadas

1. O usuário fornece uma senha inválida. 2. O software valida a senha. 3. O software compara as informações de hash. 4. O software exibe a informação que a senha é inválida. 5. O software informa que os hash são inválidos. 6. O software volta ao passo 6 do fluxo principal.

Fonte: Os autores. UC [04] – Decriptografar Pasta

Quadro 17 - Fluxo de Eventos do Caso de Uso Decriptografar Pasta Nome da Use Case Decriptografar Pasta.

Descrição O software decriptografa a pasta para sua recuperação e verifica hash.

Requisitos Associados

ER aF. ZOE.001; ER aF. ZOE.004;

Pré Condições Software inicializado. Ter uma pasta previamente criptografada. Senha disponível.

Pós Condições O software deverá decriptografar a pasta selecionada. Atores Usuário

Fluxo Principal [FP04]

Ações Recebidas Ações Realizadas 1. O usuário seleciona a opção “decriptografar pasta ou arquivo”.

2. O software exibe a tela para seleção da pasta.

3. O usuário seleciona a pasta criptografada. 4. O software exibe a tela para inserção da senha (já definida pelo usuário e associado à pasta).

5. O usuário fornece a senha. 6. O software valida a senha. 7. O software compara as informações de hash. 8. O software cria uma nova pasta no mesmo local da pasta criptografada nomeada com o mesmo nome da pasta original, acrescida da palavra “DEC”.

Page 17: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1881

9. O software exibe a informação que a pasta foi decriptografada com sucesso. 10. O software exibe a informação que as informações de hash da pasta coincidem.

Fluxo Exceção [FE04] Ações Recebidas Ações Realizadas

1. O usuário fornece a senha uma senha inválida e clica em “OK”.

2. O software valida a senha. 3. O software compara as informações de hash. 4. O software exibe a informação que a senha é inválida. 5. O software informa que os hash são inválidos. 6.O software volta ao passo 6 do fluxo principal.

Fonte: Os autores. Diagrama Geral de Estados

Figura 17 – Diagrama Geral de Estado de Arquivo

Fonte: Os autores.

Page 18: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1882

Figura 18 – Diagrama Geral de Estado de Pasta

Fonte: Os autores.

Classes de Análise

Detalhamento das Classes de Análise Classe de Fronteira – Tela Principal

Page 19: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1883

Interação do sistema com os atores. Responsável por apresentar as opções de criptografar arquivo, criptografar pasta e decriptografar arquivo ou pasta. Classe de Controle de Arquivo

Responsável por todo controle lógico de execução do aplicativo realizando os processos de criptografar arquivo, criptografar pasta e decriptografar. Diagrama Geral de Classe

Figura 19 – Diagrama Geral de Classe

Fonte: Os autores

Diagrama de Classe com Fronteira e Entidade Figura 20 – Diagrama de Classe com Fronteira e Entidade

Fonte: Os autores.

Page 20: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1884

Diagrama de Sequência Criptografar Arquivo

Figura 21 – Diagrama de Sequência Criptografar Arquivo

Fonte: Os autores.

Diagrama de Sequência Criptografar Pasta

Figura 22 – Diagrama de Sequência Criptografar Pasta

Page 21: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1885

Fonte: Os autores

Diagrama de Sequência Decriptografar

Page 22: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1886

Figura 23 – Diagrama de Sequência Decriptografar

Fonte: Os autores

CONCLUSÃO Nos últimos anos, o valor da segurança

da informação vem sendo tratado com mais freqüência e preocupação que anos atrás, tanto para empresas que lidam com informações valiosas, comércios ou ate mesmo a informação pessoal.

Além de apresentar uma visão ampla

sobre a importância da segurança de dados, este

trabalho apresenta também uma alternativa para manter esses dados em segurança. Tem-se aqui a oportunidade de fixar e abordar vários termos a respeito de segurança da informação, assim como seus pilares (confidencialidade, integridade e disponibilidade). A experiência obtida vai muito além do uso de um software de criptografia, agregou conhecimento acerca do ciclo de desenvolvimento de um produto, documentação do mesmo, análise das necessidades do usuário

Page 23: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1887

e a importância de uma ferramenta para a maior segurança das informações.

Abordando importância da segurança da informação de maneira simples e coerente, o trabalho reforça a necessidade da segurança nos dias atuais e proteção dos dados do usuário, através do software de criptografia Zero One Encrypt.

O software gerado dispõe de funções para criptografar e decriptografar arquivos e pastas, fazendo uso da criptografia simétrica, garantindo assim a confidencialidade e disponibilidade das informações. Apresenta também a função de verificação de hash, garantindo a integridade das informações. DEDICATÓRIA

Dedico este trabalho a Deus, que me manteve firme durante toda essa jornada. Dedico também à minha mãe, Raimunda, e à minha avó, Maria (in memorian) que, por mais difícil que fossem as circunstâncias, sempre me deram todo apoio e força necessária para seguir em frente. (Camila) Dedico aos meus pais, que sempre me apoiaram, nunca deixando faltar nada. Também dedico a Deus que sempre me deu forças para não desistir, e um agradecimento especial a todos aqueles que acreditaram em mim. (Rodrigo) REFERÊNCIAS ALVARENGA, Luiz Gonzaga. Criptografia Clássica e Moderna. 1 ed. 2010. Disponível em: <https://issuu.com/marcioalvesdelima/docs/criptografia_cl__ssica_e_moderna_-_>. Acesso em: 13 Abr. 2016, 14:33.

ANICHE, Maurício. Revisando a Orientação a Objetos: encapsulamento no Java, 2012.Disponível em: <http://blog.caelum.com.br/revisitando-a-orientacao-a-objetos-encapsulamento-no-java/>. Acesso em: 04 Mar. 2016, 17:25.

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISSO/IEC 27001: Tecnologia da Informação: Técnicas de Segurança: sistema de gestão da informação: requisitos. Rio de Janeiro, 2006.

ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISSO/IEC 27002: Tecnologia da Informação: Técnicas de Segurança: código de prática para a gestão de segurança da informação. Rio de Janeiro, 2005.

BRAZ, Christian Cleber Masdeval. Introdução à Linguagem Java. Disponível em: <http://www-

usr.inf.ufsm.br/~cassel/minicursos/java/java.pdf>.Acesso em: 27 Abr. 2016 13:24.

CARDOSO, Caique: UML na prática: do problema ao sistema. Rio de Janeiro: Ciência Moderna, 2003.

CARTILHA DE ESTUDOS, RESPOSTA E TRATAMENTO DE INCIDENTES DE SEGURANÇA NO BRASIL, CERT.BR. Cartilha de Segurança para Internet. São Paulo, 2012. Disponível em: <http://cartilha.cert.br/criptografia/>Acesso em: 03 Mar. 2016, 11:31.

CHIARAMONTE, R. Barros; MORENO, E. Dawid; PEREIRA, F. Dacêncio. Criptografia em Software e Hardware. São Paulo: Novatec, 2005. Disponível em: <http://pt.slideshare.net/edmoreno/livro-criptografia-em-hw-e-sw-isbn-8575220691>. Acesso em: 03 Mar. 2016, 12:12

FARINELLI, Fernanda. Conceitos Básicos de Programação Orientada a Objetos, 2007. Disponível em: <http://www.marcelohsantos.com.br/aulas/downloads/apostilas/Apostila_Java_B.pdf>. Acesso em: 04 Mar. 2016, 8:35.

FILHO, Antonio Mendes da Silva. Engenharia de Software – Essencial para próximas décadas. Disponível em:<http://www.periodicos.uem.br/ojs/index.php/EspacoAcademico/article/view/13587/7061 25/05>. Acesso em 25 Mar. 2016, 20:26.

GARCIA, Vagner Gonçalves de Almeida. Classes, Objetos, Atributos e Métodos em Java. Disponível em: <http://fabrica.ms.senac.br/2015/03/classes-objetos-atributos-e-metodos-em-java/>. Acesso em: 04 Mar. 2016, 16:30.

GUEDES, Gilleanes T. A. UML 2 – Guia Prático, 2ª Ed. São Paulo: Novatec Editora Ltda, 2014. Disponível em: <https://issuu.com/novateceditora/docs/capitulo9788575223857>. Acesso em: 13 Abr. 2016, 12:33.

MACORATTI, José Carlos. Polimorfismo – Conceitos e utilização. Disponível em: <http://imasters.com.br/desenvolvimento/visual-basic/programacao-orientada-objetos-em-10-licoes-praticas-parte-08/?trace=1519021197&source=single>. Acesso em: 04 Mar. 2016, 17:17.

MADEIRA, Marcelo de Melo. ENTENDENDO O DIAGRAMA DE CASOS DE USO, 2007. Disponível em: <https://celodemelo.wordpress.com/2007/03/17/e

Page 24: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1888

ntendedo-o-diagrama-de-casos-de-uso/>. Acesso em: 13 Abr. 2016, 09:21. OLIVEIRA, Ronielton Rezende. Criptografia simétrica e assimétrica: os principais algoritmos de cifragem. Disponível em: <http://www.ronielton.eti.br/publicacoes/artigorevistasegurancadigital2012.pdf> Acesso em:02 Mar. 2016, 12:21.

PALMEIRA, Thiago Vinícius Varallo. Abstração, Encapsulamento e Herança: Pilares da POO em Java Disponível em: <http://www.devmedia.com.br/abstracao-encapsulamento-e-heranca-pilares-da-poo-em-java/26366>. Acesso em: 05 Mar. 2016, 11:20. PIMENTEL, Andrey Ricardo. PROJETO DE SOFTWARE USANDO A UML, 2015. Disponível em: <http://www.inf.ufpr.br/andrey/ci167/apostilaUml.pdf> Acesso em: 09 Abr. 2016, 10:50.

PINTO, Pedro. Criptografia simétrica e assimétrica. Sabe a diferença? Disponível em:<http://pplware.sapo.pt/tutoriais/networking/criptografia-simetrica-e-assimetrica-sabe-a-diferenca/>. Acesso em: 04 Mar. 2016, 10:17. RICARTE,Ivan Luiz Marques. O que é um objeto?Disponível em:<http://www.dca.fee.unicamp.br/cursos/PooJa

va/objetos/conceito.html>. Acesso em: 04 Mar. 2016, 16:40. SCRIPTCASE BRASIL. Os 4 Pilares da programação Orientada a Objetos. Disponível em:<http://www.scriptcase.com.br/blog/4-pilares-programacao-orientada-a-objetos/>. Acesso em 04 Mar. 2016,16:52.

SILVA, Alberto M. R. da Silva; VIDEIRA, Carlos A. Escaleira. UML – Metodologias e Ferramentas CASE, 1ª Ed. Portugal: Centro Atlântico, 2001. Disponível em: <http://www.cesarkallas.net/arquivos/livros/informatica/UML_Metodologias_e_Ferramentas_CASE_portugues_.pdf>. Acesso em: 12 Abr. 2016, 16:04.

SOMMERVILLE, Ian. Engenharia de Software. 9.ed. São Paulo: Pearson Prentice Hall, 2011.

TERRA, Ricardo. UML, 2009. Disponível em:<http://professores.dcc.ufla.br/~terra/public_files/2009_apostila_uml.pdf>. Acessoem: 09 Abr. 2016, 10:44.

VALE, Christiano Rodarte. Criptografia MD5. Disponível em: <http://www.devmedia.com.br/criptografia-md5/2944>.Acesso em: 26 Abr. 2016, 15:07.

APÊNDICE - A

Na tela principal do Zero One Encrypt é disponibilizado as funções Criptografar Arquivo, Criptografar Pasta e Decriptografar Arquivo ou Pasta.

Figura 24 – Tela Principal

Fonte: Os autores.

Page 25: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1889

Após selecionar uma das funções, criptografar arquivo, criptografar pasta, decriptografar arquivo ou pasta, o software apresenta uma tela para seleção do arquivo ou pasta.

Figura 25 – Tela de Seleção de Arquivo e Pasta.

Fonte: Os autores.

Após a seleção do arquivo ou pasta a ser criptografada ou decriptografada, o software apresenta a

tela para inserção da senha.

Figura 26 – Tela Inserir Senha

Fonte: Os autores.

As telas a seguir informam ao usuário se o arquivo ou pasta foram criptografados e decriptografados

com sucesso.

Figura 27 – Mensagem arquivo criptografado com sucesso

Fonte: Os autores.

Page 26: TSI DESENVOLVIMENTO DE SOFTWARE ZERO ONE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simétrica, ou chave privada, e a criptografia assimétrica ou chave

Simpósio de TCC e Seminário de IC , 2016 / 1º 1890

Figura 28 – Mensagem arquivo decriptografado com sucesso

Fonte: Os autores.

A tela a seguir informa ao usuário que o hash corresponde ao arquvo.

Figura 29 – Mensagem hash compatível.

Fonte: Os autores

As próximas telas são apresentadas ao usuário quando a senha inserida para decriptografar é inválida e quando o hash não corresponde ao arquivo original.

Figura 30 – Senha Inválida

Fonte: Os autores.

Figura 31 – Informações de hash incompatíveis

Fonte: Os autores.