25
Simpósio de TCC e Seminário de IC , 2016 / 1º 1789 TSI ICRYPTRAR DESENVOLVIMENTO DE SOFTWARE DE CRIPTOGRAFIA FELIPPE GOMES XAVIER DE MELO PEDRO HENRIQUE PINTO DA SILVA CID BENDAHAM RESUMO Este trabalho tem como finalidade o desenvolvimento de um software de criptografia, que visa preservar a confidencialidade e integridade dos arquivos através da inelegibilidade da informação destinada ao processamento e a mantem resguardada do acesso de terceiros não autorizados. O método de pesquisa utilizado foi baseado nos modelos de referência UML e o PRISM, ambos de grande importância para trabalhar com a modelagem de sistemas. A plataforma que foi utilizada para o desenvolvimento do software, foi o NetBeans IDE, usando como linguagem de programação, o JAVA. Os ganhos obtidos com a realização deste trabalho foram além do resultado que culminou no desenvolvimento do iCryptRar, pois durante a pesquisa e elaboração, foi adquirido um enorme aprendizado na prática da programação e documentação, imprescindíveis para um profissional qualificado. Palavras-chave: Linguagem de programação; Criptografia; Software; UML; PRISM; JAVA, NetBeans IDE; iCryptRar. ABSTRACT This work aims at the development of encryption software, which aims to preserve the confidentiality and integrity of files over the ineligibility of information for the processing and keep sheltered from unauthorized third party access. The research method was based on the UML models and reference PRISM, both very important to work with the system modeling. The platform was used to develop the software, was the NetBeans IDE, using as a programming language, Java. The gains from this work were beyond the results that culminated in the development of iCryptRar because during the research and development, has acquired a huge learning in the practice of programming and documentation, essential for a qualified professional. Keywords: Programming language; encryption; software; UML; PRISM; Java, NetBeans IDE; iCryptRar. INTRODUÇÃO É notório o advento e desenvolvimento das mais variadas tecnologias em todos os aspectos da sociedade atual, necessitando-se, obviamente, de segurança nesses processos. As novas formas de percepção do mundo, aliada ao mercado exigente, pressupõe a necessidade da criação de tecnologias avançadas de segurança, visando à proteção dos dados sensíveis em circulação – informações referentes aos indivíduos e/ou organizações, os quais divulgados poderão causar enormes contratempos. Portanto, o desenvolvimento de programas de criptografia torna-se o grande aliado desse mercado, posto que há enorme necessidade de ferramentas de proteção, como por exemplo, assinaturas digitais e/ou protocolos de autenticação, sempre visando proteger integralmente os dados sensíveis do sistema ou da informação. Esses programas de criptografia lidam diretamente com os pilares fundamentais da segurança da informação, que são: Confidencialidade, Disponibilidade, Autenticidade e Integridade, o que demonstra a importância e necessidade de criação e implantação de soluções informalizadas para lidar com esses aspectos da informação. Este trabalho propõe-se a desenvolver um programa de criptografia que atenda às necessidades latentes de segurança em empresas, assim como para quaisquer indivíduos, os quais possuam um alto volume de dados sensíveis, permitindo-os a protege-las integralmente. Justificativa Enquanto interessados no aprendizado constante das tecnologias apresentadas no mercado atual e estudantes formais de Segurança da Informação, observa-se a necessidade da criação de programas especializados nas técnicas de segurança de dados. Portanto, uma forma de resolver questões de segurança da informação é a criação de um programa de criptografia que garanta a criptografia de arquivos ou pastas, sejam eles de cunho simples ou de alta complexidade e importância. Diariamente são apresentados em jornais de grande circulação, assim como em mídias sociais específicas, notícias de vazamento de fotos comprometedoras de pessoas famosas ou anônimas, ataques cibernéticos a sites institucionais com relevância mundial, desvio de informações bancárias e/ou financeiras e de dados sensíveis de grandes conglomerados empresariais, os quais são “atacados” virtualmente por concorrentes e hackers, entre outros casos. Uma das características dos programas de criptografia é esconder dados embaralhando as informações contidas no arquivo a ser preservado. Para que se consiga tal objetivo, torna-se necessário o desenvolvimento de

TSI ICRYPTRAR DESENVOLVIMENTO DE SOFTWARE DE …nippromove.hospedagemdesites.ws/anais_simposio/arquivos_up/... · simpósio de tcc e seminário de ic , 2016 / 1º 1789 tsi icryptrar

  • Upload
    dinhanh

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

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

TSI ICRYPTRAR ‐ DESENVOLVIMENTO DE SOFTWARE DE CRIPTOGRAFIA

FELIPPE GOMES XAVIER DE MELO PEDRO HENRIQUE PINTO DA SILVA

CID BENDAHAM

RESUMO Este trabalho tem como finalidade o desenvolvimento de um software de criptografia, que visa preservar a confidencialidade e integridade dos arquivos através da inelegibilidade da informação destinada ao processamento e a mantem resguardada do acesso de terceiros não autorizados. O método de pesquisa utilizado foi baseado nos modelos de referência UML e o PRISM, ambos de grande importância para trabalhar com a modelagem de sistemas. A plataforma que foi utilizada para o desenvolvimento do software, foi o NetBeans IDE, usando como linguagem de programação, o JAVA. Os ganhos obtidos com a realização deste trabalho foram além do resultado que culminou no desenvolvimento do iCryptRar, pois durante a pesquisa e elaboração, foi adquirido um enorme aprendizado na prática da programação e documentação, imprescindíveis para um profissional qualificado. Palavras-chave: Linguagem de programação; Criptografia; Software; UML; PRISM; JAVA, NetBeans IDE; iCryptRar. ABSTRACT This work aims at the development of encryption software, which aims to preserve the confidentiality and integrity of files over the ineligibility of information for the processing and keep sheltered from unauthorized third party access. The research method was based on the UML models and reference PRISM, both very important to work with the system modeling. The platform was used to develop the software, was the NetBeans IDE, using as a programming language, Java. The gains from this work were beyond the results that culminated in the development of iCryptRar because during the research and development, has acquired a huge learning in the practice of programming and documentation, essential for a qualified professional. Keywords: Programming language; encryption; software; UML; PRISM; Java, NetBeans IDE; iCryptRar. INTRODUÇÃO

É notório o advento e desenvolvimento das mais variadas tecnologias em todos os aspectos da sociedade atual, necessitando-se, obviamente, de segurança nesses processos.

As novas formas de percepção do

mundo, aliada ao mercado exigente, pressupõe a necessidade da criação de tecnologias avançadas de segurança, visando à proteção dos dados sensíveis em circulação – informações referentes aos indivíduos e/ou organizações, os quais divulgados poderão causar enormes contratempos.

Portanto, o desenvolvimento de

programas de criptografia torna-se o grande aliado desse mercado, posto que há enorme necessidade de ferramentas de proteção, como por exemplo, assinaturas digitais e/ou protocolos de autenticação, sempre visando proteger integralmente os dados sensíveis do sistema ou da informação.

Esses programas de criptografia lidam

diretamente com os pilares fundamentais da segurança da informação, que são: Confidencialidade, Disponibilidade, Autenticidade e Integridade, o que demonstra a importância e necessidade de criação e implantação de soluções informalizadas para lidar com esses aspectos da informação.

Este trabalho propõe-se a desenvolver

um programa de criptografia que atenda às necessidades latentes de segurança em empresas, assim como para quaisquer indivíduos,

os quais possuam um alto volume de dados sensíveis, permitindo-os a protege-las integralmente. Justificativa

Enquanto interessados no aprendizado

constante das tecnologias apresentadas no mercado atual e estudantes formais de Segurança da Informação, observa-se a necessidade da criação de programas especializados nas técnicas de segurança de dados.

Portanto, uma forma de resolver questões

de segurança da informação é a criação de um programa de criptografia que garanta a criptografia de arquivos ou pastas, sejam eles de cunho simples ou de alta complexidade e importância.

Diariamente são apresentados em jornais

de grande circulação, assim como em mídias sociais específicas, notícias de vazamento de fotos comprometedoras de pessoas famosas ou anônimas, ataques cibernéticos a sites institucionais com relevância mundial, desvio de informações bancárias e/ou financeiras e de dados sensíveis de grandes conglomerados empresariais, os quais são “atacados” virtualmente por concorrentes e hackers, entre outros casos.

Uma das características dos programas

de criptografia é esconder dados embaralhando as informações contidas no arquivo a ser preservado. Para que se consiga tal objetivo, torna-se necessário o desenvolvimento de

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

algoritmos específicos, em sequências próprias, visando à codificação destes arquivos.

Aí reside grande relevância dos

programas de criptografia, garantir a segurança de dados e/ou informações circulantes no grande universo tecnológico. Objetivos Objetivo geral

Desenvolver um aplicativo que criptografa e descriptografa arquivos e pastas, permitindo gerar hash e compará-los. Objetivos específicos Pesquisar bibliografias sobre o assunto. Pesquisar algoritmos criptográficos mais conhecidos. Elaborar a documentação necessária para a análise do aplicativo. Desenvolver o código-fonte do aplicativo (protótipo). Metodologia

Para a elaboração deste trabalho de conclusão de curso, foi necessária uma ampla pesquisa bibliográfica, tendo como ferramentas principais a internet e livros técnicos específicos, os quais foram de suma importância. Através destes recursos, foi possível finalizar com grande propriedade e completeza os assuntos abordados no trabalho.

Os conhecimentos adquiridos ao longo do

curso foram de extrema importância, pois sem a orientação prévia nas disciplinas que antecederam o último semestre, provavelmente não seria possível inicializar os mecanismos de busca. Foi necessário portanto, apreender inicialmente os conteúdos básicos.

Na fase de desenvolvimento do software,

foram executados todos os processos necessários para atingir o objetivo final. No momento do levantamento de requisitos, levou-se em consideração os problemas de segurança que se desejava sanar ao desenvolver o software em questão.

A documentação será apoiada em

modelos de referência, como o difundido UML e o PRISM, ambos de grande importância para trabalhar com a modelagem de sistemas. A plataforma que foi utilizada para o desenvolvimento do software, foi o NetBeans IDE, usando como linguagem de programação, o JAVA. REFERENCIAL TEÓRICO Informação

É sabido que os cuidados com as informações são imprescindíveis. No entanto, devido ao advento da globalização e o aumento exacerbado de equipamentos que envolvem a tecnologia em computadores, essas informações,

principalmente as armazenadas em equipamentos eletrônicos, tornam-se vulneráveis. Observa-se que alguns sistemas operacionais precisam de um aplicativo que assegure a confidencialidade, integridade e disponibilidade das informações. Partindo desse pressuposto, torna-se necessário apresentar em primeiro lugar alguns conceitos de informação. Sobre isso, Dantas (2011) assevera que a informação configura-se por dados que passam por processamentos, tendo em vista a utilização dos mesmos de uma forma compreensiva. Assim, depreende-se que a informação é o processamento dos dados que são organizados de forma coerente com vistas ao entendimento do usuário final e esses dados apresentam-se em diferentes formas:

[...] informações são: os documentos, relatórios, livros, manuais, correspondências, patentes, informações de mercado, código de programação, linhas de comando, arquivo de configuração, planilha de remuneração de funcionários, plano de negócios de uma empresa, etc. (DANTAS, 2011, p. 22). Portanto, o processo de compreender e utilizar acertadamente a informação para os mais diversos fins é, sem dúvida, relevante e, segundo Ferreira (2003) a informação funciona como qualquer um outro ativo, pois caracteriza-se como valor organizacional. Segurança da informação Após se entender o conceito de informação, torna-se imprescindível assimilar a importância de Segurança da Informação, ou seja:

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 os riscos ao negócio, maximizar os retornos sobre os investimentos e as oportunidades de negócio. ABNT NBR ISO/IEC 27002 (2005, p. X).

É recorrente na área de Tecnologia da Informação a assertiva de que quando se trata do processo de proteger a informação, deve-se atender a três pilares básicos: confidencialidade, integridade e disponibilidade. Sobre isso a ABNT dispõe: “[...] confidencialidade - propriedade de que a informação não esteja disponível ou revelada a indivíduos, entidades ou processos não autorizados”. E [...] disponibilidade propriedade de estar acessível e utilizável sob demanda por uma entidade autorizada.” ABNT NBR ISO/IEC 27001 (2006, p. 2), e a referida norma ainda afirma que [...] integridade - propriedade de salvaguarda da exatidão e completeza de ativos”. Para a norma da ABNT NBR ISO/IEC 27001 (2006, p. 3).

Acerca da confidencialidade e integridade depreende-se que estes pilares

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

garantem ao usuário que os dados armazenados em seus equipamentos não sejam alterados sem a permissão do mesmo ou sem o seu conhecimento. Orientação a objetos O censo comum da área de TI conceitua orientação a objetos como uma forma de organização do mundo concreto como uma coleção de objetos que encorparam estruturas de dados e um conjunto de operações que fazem a manipulação destes.

Vale ressaltar ainda sobre orientação a

objetos a citação de Sommerville (2003) que assevera: “O projeto orientado a objetos é uma estratégia de projeto em que os projetistas de sistemas pensam em termos de ‘coisas’, em vez de operações ou funções.” (SOMMERVILLE, 2003, p. 221).

No entanto, para que os objetos sejam

classificados, há a necessidade de uma concepção de classes. Objetos, classes, atributos e operações Para Cardoso, Objeto é um conceito que existe no mundo real [...], ou seja, objeto é tudo aquilo com que podemos nos relacionar ou que se relacionam entre si, de uma agulha a um vaso, de uma nuvem a uma vaca, o mundo real é repleto de objetos diferentes e com diferentes formas de relacionamentos. (CARDOSO, 2003, p. 6).

Uma classe é o modelo ou esquema a partir do qual os objetos são criados. Pense nas classes como uma faca de cortar bolo. Os objetos são os próprios bolos. Ao construir um objeto a partir de uma classe, diz-se que você criou uma instância de classe. (HORSTMANN, 2010, p. 52). A figura 1 representa uma Classe e seus objetos.

Figura 1 – Classe e objetos.

Fonte: Os autores.

Para Cardoso (2003, p. 7), atributos e métodos são definidos da seguinte forma: “Atributos: é onde são armazenados os dados do objeto. Como no caso da classe vaca, podemos exemplificar o nome, a idade, a produção média de leite, entre outras”.

Operações: é o comportamento do objeto. Normalmente, o termo operação é usado, porém, algumas vezes, pode ser chamado de serviço ou, atividade. Na classe vaca temos, por exemplo, as seguintes operações: dar leite, pastar, ruminar, entre outras. (CARDOSO, 2003, p. 7).

Figura 2: Atributos e operações.

Fonte: os autores.

Relacionamentos Os objetos e classes podem possuir relacionamentos entre si, facilitando a fluidez de todo o sistema através de métodos que os conectem.

Propõe Cardoso (2003), acerca dos relacionamentos que:

[...]os objetos se relacionam entre si e,

como o que fazemos é modelar os objetos, é muito importante que os objetos possuam operações que permitam o relacionamento. Imagine um objeto da classe fazendeiro que possui uma operação chamada retirar leite, que é executado quando o fazendeiro se relaciona com o objeto da classe vaca, ou seja, é importante que o modelo comtemple a operação produzir leite para a classe vaca, caso contrário, este relacionamento não será possível. [...] (CARDOSO, 2003, p. 7). Herança Para Cardoso (CARDOSO, 2003, p. 8), herança é definida da seguinte forma:

Uma classe pode possuir um relacionamento de herança com outra classe. Nestes casos, dizemos que a classe “mãe” é menos especializada, ou seja, mais genérica e a classe “filha” é mais especializada. Este relacionamento é conhecido como “é um tipo” ou “é do tipo”; por exemplo, “vaca é um tipo de mamífero”; portanto, podemos dizer que a classe vaca possui um relacionamento de herança com a classe mamífero, ou também, que a classe vaca é derivada da classe mamífero. A representação de um relacionamento de herança é feito através

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

de uma seta que vai da classe filha para a classe mãe [...]

Ainda sobre herança, Guedes (GUEDES, 2008, p. 43) assegura que: [...] Herança é uma das características mais poderosas e importantes da Orientação a Objetos. Isso é devido ao fato de a Herança permitir o reaproveitamento de atributos e métodos, otimizando o tempo de desenvolvimento, além de permitir a diminuição das linhas de código, bem como facilitar futuras manutenções.

Figura 3: Herança entre classes.

Fonte: Os autores.

Agregação, composição e dependência Existem outras opções de relacionamento além das já citadas. Agregação, composição e dependência.

Para Cardoso (2003, p. 8) “Outras formas

de relacionamento são agregação, composição ou dependência. Estes relacionamentos são semelhantes, diferenciando em relação a intensidade.”

Um relacionamento de composição existe

quando uma classe é composta por outra, de tal forma que a parte que compõe não existe, se não existir o todo, ou seja, “a parte não vive sem o todo”; é o caso, por exemplo, de uma vaca ser composta por chifres, cascos, rabo, úbere, entre outras coisas que se retiramos algumas destas partes, elas não fazem sentido sem o todo. (CARDOSO, 2003, p. 8).

“A agregação é semelhante, porem a

parte vive sem o todo, ou seja, se não existir o todo, a parte continuará existindo.” (CARDOSO, 2003, p. 8).

A figura 4 ilustra um exemplo de composição e agregação, respectivamente.

Figura 4 – Composição e agregação entre classes.

Composição Agregação

Fonte: os autores.

“Já uma dependência é quando uma classe depende de outra, porem isto ocorre esporadicamente durante a vida dos objetos”. (CARDOSO, 2003, p. 9). Multiplicidade No que diz respeito ao conceito de multiplicidade, Cardoso (2003) assevera que é

um relacionamento onde objetos de uma determinada classe se conectam a objetos de uma outra diferente. Um professor (1) pode possuir uma ou mais turmas para lecionar. A figura 5 exemplifica o relacionamento entre a classe Professor e a classe Turma.

Figura 5 - Multiplicidade.

Fonte: os autores.

Engenharia de software [...]é uma disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de

especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação. (SOMMERVILLE, 2003, p. 5).

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

A seguir, as etapas da Engenharia de Software em cascata:

Figura 6 – Etapas da Engenharia de Software.

Fonte: Sommerville, Ian (2003).

Modelo prático para o Desenvolvimento de Software Orientado a objetos (PRISM)

O PRISM foi o modelo escolhido como ferramenta para desenvolver a documentação do software iCryptRar com o intuito de simplificar as manutenções futuras. Para Cardoso (2003), o modelo PRISM facilita o desenvolvimento do projeto, pois, é realizado em etapas desde a análise do problema (início) ao sistema (final). Após o término do projeto, torna-se mais simples as manutenções, uma vez que a implementação do PRISM destaca a visualização clara de cada ciclo através dos diagramas.

O PRISM propõe uma forma de

desenvolvimento criada principalmente do prisma do desenvolvedor, apresentando, de forma clara, a sequência do trabalho a ser desenvolvido, ou seja, onde começa e onde termina o trabalho e quais são as etapas a serem seguidas. (CARDOSO, 2003, p. 71). Java Java é uma linguagem de programação e plataforma computacional lançada

pela primeira vez pela Sun Microsystems em 1995. Existem muitas aplicações e sites que não funcionarão, a menos que você tenha o Java instalado, e mais desses são criados todos os dias. O Java é rápido, seguro e confiável. De laptops a datacenters, consoles de games a supercomputadores científicos, telefones celulares à Internet, o Java está em todos os lugares! (ORACLE, 2016).

Somente o conceito de Java não será o suficiente para explicar como de fato um programa chega até a interface do usuário. É necessária a existência de um interpretador. O JVM – Java Virtual Machine, segundo Frota (2013):

JVM é uma máquina virtual, como seu

próprio nome já diz. E uma das funcionalidades dela é de servir como interpretador para o Java. Resumindo, o funcionamento é bem simples. Você escreve o código em um arquivo .java, compila, e é gerado um arquivo .class, esse arquivo .class é conhecido como bytecode. A JVM irá ler/interpretar esse bytecode e executá-lo.

Figura 7 – Compilação de código Java em uma JVM.

Fonte: os autores.

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

UML A UML – Unified Modeling Language ou Linguagem de Modelagem Unificada – é uma linguagem visual utilizada para modelar softwares baseados no paradigma de orientação a objetos. É uma linguagem de modelagem de propósito geral que pode ser aplicada a todos os domínios de aplicação. Essa linguagem tornou-se, nos últimos anos, a linguagem-padrão de modelagem adotada internacionalmente pela indústria de engenharia de software. Deve ficar bem claro, porém, que a UML não é uma linguagem de programação, e sim uma linguagem de modelagem, uma notação, cujo objetivo é auxiliar os engenheiros de software a definirem as características do sistema, tais como seus requisitos, seu comportamento, sua estrutura lógica, a dinâmica de seus processos e até mesmo suas necessidades físicas em relação ao equipamento sobre o qual o sistema deverá ser implantado. Tais características podem ser definidas por meio da UML antes do software começar a ser realmente desenvolvido. Além disso, cumpre destacar que a UML não é um processo de desenvolvimento de software e tampouco está ligada a um de forma exclusiva, sendo totalmente independente, podendo ser utilizada por muitos processos de desenvolvimento diferentes ou mesmo da forma que o engenheiro considerar mais adequada. (GUEDES, 2011, p. 19)

De acordo com Macêdo (2012), a UML é composta por muitos por muitos elementos de modelo que representam as diferentes partes de um sistema de software. Os elementos UML são usados para criar diagramas, que representam uma determinada parte, ou um ponto de vista do sistema.

Macêdo (2012) ainda afirma que os

objetivos da UML são: “especificação,

documentação, estruturação para sub-visualização e maior visualização lógica do desenvolvimento completo de um sistema de informação.”

Macêdo (2012) assevera a existência de

duas categorias de diagramas. O diagrama estrutural (estática) e o comportamental (dinâmica).

Estrutural: estática

Diagrama de Classes Diagrama de Objetos Diagrama de Componentes Diagrama de Implantação Comportamental: dinâmica Diagrama de Casos de Usos Diagrama de Sequencia Diagrama de Atividades Diagrama de Estados Diagrama de Colaboração Diagrama de Casos de Uso O diagrama de casos de uso é o diagrama mais geral e informal da UML, utilizado normalmente nas fases de levantamento e análise de requisitos do sistema, embora venha a ser consultado durante todo o processo de modelagem e possa servir de base para outros diagramas. Apresenta uma linguagem simples e de fácil compreensão para que os usuários possam ter uma ideia geral de como o sistema irá se comportar. Procura identificar os atores (usuários, outros sistemas ou até mesmo algum hardware especial) que utilizarão de alguma forma o software, bem como os serviços, ou seja, as funcionalidades que o sistema disponibilizará aos atores, conhecidas nesse diagrama como casos de uso. (GUEDES, 2011, p. 30-31).

A figura 8 ilustra um modelo de diagrama de casos de uso.

Figura 8 – Diagrama de Casos de Uso.

Fonte: os autores.

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

Diagrama de Classe O diagrama de classes é provavelmente o mais utilizado e é um dos mais importantes da UML. Serve de apoio para a maioria dos demais diagramas. Como o próprio nome diz, define a

estrutura das classes utilizadas pelo sistema, determinando os atributos e métodos que cada classe tem, além de estabelecer como as classes se relacionam e trocam informações entre si. (GUEDES, 2011, p. 31).

A figura 9 ilustra um modelo de diagrama de Classe.

Figura 9 – Diagrama de Classe.

Fonte: os autores.

Diagrama de Sequência O diagrama de sequência é um diagrama comportamental que preocupa-se com a ordem temporal em que as mensagens são trocadas entre os objetos envolvidos em um determinado processo. Em geral, baseia-se em um caso de uso definido pelo diagrama de mesmo nome e apoia-se no diagrama de classes para determinar

os objetos das classes envolvidas em um processo. Um diagrama de sequência costuma identificar o evento gerador do processo modelado, bem como o ator responsável por esse evento, e determina como o processo deve se desenrolar e ser concluído por meio da chamada de métodos disparados por mensagens enviadas entre os objetos. (GUEDES, 2011, p. 33).

A figura 10 representa o Diagrama de Sequência.

Figura 10 – Diagrama de Sequência.

Fonte: Guedes, Giulleanes (2011).

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

Criptografia Criptografia é o processo de codificar uma mensagem de maneira a ocultar seu conteúdo. A criptografia moderna inclui vários algoritmos de segurança para cifrar e decifrar mensagens baseados no uso de segredos chamados chaves. Uma chave de criptografia é um parâmetro usado em um algoritmo de criptografia de tal maneira que a criptografia não possa ser revertida sem o conhecimento da chave. (COULOURIS; DOLLIMORE; KINDBERG; BLAIR, 2013, p. 473). De acordo com Pisa (2012), a criptografia

é um conjunto de técnicas para esconder informação de acesso não autorizado. O objetivo da criptografia é transformar um conjunto de informação legível, como um e-mail, por exemplo, em um emaranhado de caracteres impossível de ser compreendido. Criptografia simétrica ou chave privada Stallings (2006, p. 17) define o conceito de criptografia simétrica como: “[...] uma forma de criptossistema em que a criptografia e a decriptografia são realizadas usando a mesma chave. Ela também é conhecida como criptografia convencional.”

A figura 11 representa o processo de criptografia simétrica.

Figura 11 – Criptografia simétrica.

Fonte: Stallings, William (2008).

De acordo com a Cert.br (2012, p. 68),

acerca do conceito de criptografia de chave simétrica: [...]também chamada de criptografia 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. Casos nos quais a informação é codificada e decodificada por uma mesma pessoa não há necessidade de compartilhamento da chave secreta. Entretanto, quando estas operações envolvem pessoas ou equipamentos diferentes, é necessário que a chave secreta seja previamente combinada por meio de um canal de comunicação seguro (para não comprometer a confidencialidade da chave). Exemplos de métodos criptográficos que usam chave simétrica são: AES, Blowfish, RC4, 3DES e IDEA.

O AES foi o algoritmo criptográfico escolhido para o desenvolvimento do software iCrypRar para criptografia simétrica.

De acordo com Stallings (2008), o algoritmo AES tem a seguinte definição:

O padrão de criptografia avançado (AES – Advanced Encryption Standard) foi publicado pelo NIST (National Institute of Standards and Technology) em 2001. O AES é uma cifra em bloco simétrica cujo objetivo é substituir o DES como padrão aprovado para uma grande variedade de aplicações.

Criptografia assimétrica A criptografia assimétrica contorna o problema da distribuição de chaves através do uso de chaves públicas. A criptografia de chaves públicas foi inventada em 1976 por Whitfield Diffie e Martin Hellman a fim de resolver o problema da distribuição de chaves. Neste novo sistema, cada pessoa tem um par de chaves chamadas: chave pública e chave privada. A chave pública é divulgada enquanto que a chave privada é deixada em segredo. Para mandar uma mensagem privada, o transmissor cifra a mensagem usando a chave pública do destinatário pretendido, que deverá usar a sua respectiva chave privada para conseguir recuperar a mensagem original. (MORENO, PEREIRA E CHIARAMONTE, 2005, p. 37).

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

A figura a seguir ilustra com propriedade um exemplo de criptografia assimétrica:

Figura 12 – Criptografia assimétrica.

Fonte: SOBRAL, (2012).

Como exemplos de algoritmos de criptografia assimétrica, é possível citar: DSS (Digital Signature Standard) ElGamal RSA (Rivest, Shamir e Adleman) Diffie-Hellman

Hash De acordo com a cartilha do Cert.Br (2012, p. 69), o hash é uma função de resumo, um “[...] Método criptográfico que, quando aplicado sobre uma informação, independentemente do tamanho que ela tenha, gera um resultado único e de tamanho fixo[...]”.

A figura 13 ilustra a função hash.

Figura 13 – Função Hash.

Fonte: ROSSY, (2010).

O algoritmo definido para exercer a função de resumo (hash) no software iCryptRar foi o MD5.

MD5 • O algoritmo MD5 [Rivest 1992a] usa quatro passagens, cada uma aplicando uma de quatro funções não lineares em cada um dos 16 segmentos de 32 bits de um bloco de texto de origem de 512 bits. O resultado é um resumo de 128 bits. O MD5 é um dos algoritmos mais eficientes atualmente disponíveis. (COULOURIS; DOLLIMORE; KINDBERG; BLAIR, 2013, p. 499).

Com base nas informações citadas, o hash (função de resumo) garante a integridade dos arquivos através de um algoritmo matemático. ANÁLISE DO PROGRAMA Documento de Visão Finalidade

A finalidade deste documento é coletar,

analisar e definir as características e necessidades de alto nível do iCryptRar. Ele se concentra nos recursos necessários aos envolvidos e aos usuários-alvo e nas razões que levam a essas necessidades. Os detalhes de como o iCryprtRar atinge essas necessidades, são descritos no caso de uso e nas especificações suplementares. Definições, Acrônicos, e Abreviações

a. JDK – Java Devlopment Kit. b. iCryptRar – Programa criptográfico. c. PRISM – Pratical Software Devlopment Model. d. TI – Tecnologia da Informação.

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

Referências a. Notas de aula; b. MEDEIROS, Ernâni: Desenvolvendo software com UML 2.0. São Paulo - SP: Pearson Makron Books, 2004. c. CARDOSO, Caíque: UML na prática: do problema ao Sistema. Rio de Janeiro - RJ: Editora Ciência Moderna Ltda, 2003. Posicionamento Oportunidade de Negócios

Atualmente o mercado de TI cresce a cada dia em alta velocidade, desenvolvendo facilidades, mas criando desafios aos empreendimentos. Com este crescimento, as vulnerabilidade também aumentam proporcionalmente, e com isso, as empresas que armazenam um grande volume de dados em sua base, entre eles, muitos, dados confidenciais, têm procurado mais segurança, e a garantia da integridade de seus dados. Com base nessas informações, desenvolvemos a aplicação iCryptRar para assegurar a confidencialidade e integridade dos dados.

Descrição do Problema Quadro 1 - Descrição do problema.

O problema O acesso a informações por pessoas não autorizadas. A perda da confidencialidade das informações.

Afeta O usuário proprietário das informações.

Cujo impacto é Roubo, fraudes, divulgação de informações sigilosas sem autorização.

Uma boa solução seria Utilizar um software de criptografia que garanta que apenas o proprietário da informação possua o domínio sobre conteúdo do arquivo.

Fonte: os autores.

Sentença de Posição do Produto

Quadro 2 - Sentença de posição do produto.

Para Qualquer pessoa que armazena informações importantes em seu computador ou transmite arquivos/pastas

Que Necessite garantir a confidencialidade das informações e a integridade dos arquivos e pastas.

O iCryptRar É um software.

Que Criptografa, descriptografa, arquivos ou pastas

Diferente de Programas que não garantem a confidencialidade em situação de utilização transmissão de arquivos e pasta em chaves.

Nosso produto Garantirá a confidencialidade e a integridade das informações.

Fonte: os autores.

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

Escopo do Produto O software tem por finalidade a

codificação de arquivos e pasta para transmissão com confidencialidade e integridade das informações. As funções são criptografar, descriptografar.

Para o processamento de criptografia e

descriptografia será utilizada a senha do usuário para chave, além de uma função de hash para averiguar a integridade do documento.

O software é compatível com qualquer

computador que possua instalado JVM, ou seja,

possua um JRE – Java Runtime Environment instalada. Descrições do Envolvidos e dos Clientes Demografia do mercado

Nos últimos anos, houve um crescimento considerável no desenvolvimento de novas tecnologias em todas as áreas de negócios. Com este crescimento, mais pessoas estão envolvidas direta ou indiretamente, e isto faz com que vigore a necessidade incessante de aprimorar a segurança da informação.

Resumo dos Envolvidos

Quadro 3 – Resumo dos Envolvidos.

Nome Descrição Responsabilidades

Desenvolvedor e analista.

Responsável pelo desenvolvimento do software, pelos métodos criptográficos a serem utilizados para a codificação dos arquivos.

- Documenta o software desenvolvido. - Assegura as correções e atualizações. - Acompanha o andamento do projeto - Recolhe sugestões dos usuários para melhoria do software.

Fonte: os autores.

Resumo dos Clientes

Quadro 4 – Resumo dos Clientes.

Nome Descrição Responsabilidades Envolvido

Usuário Consumidor final do iCryptRar

- Selecionar o arquivo a ser criptografado ou descriptografado.

Não se aplica.

Fonte: os autores.

Ambiente dos Clientes O usuário precisa ter instalado o JRE (JVM) em seu sistema. O Programa não necessita de

interação com outro sistema. Perfis dos Envolvidos

Desenvolvedor e Analista

Quadro 5 – Perfil do Desenvolvedor e Analista.

Descrição Pessoa que analisa, desenvolve e documenta as funcionalidades do Programa.

Tipo Especialista.

Responsabilidades Estar apto a analisar e desenvolver os requisitos exigidos, além de averiguar o funcionamento do software, garantindo seu bom funcionamento e desempenho.

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

Critérios de Sucesso Codificação, descodificação, compactação e descompactação que certificará a segurança da informação.

Envolvimento Corretor de requisitos e/ou desenvolvimento.

Produtos Liberados O software.

Comentários/Problemas Colocação de dados de maneira incorreta.

Fonte: os autores.

Usuário

Quadro 6 – Perfil do Usuário.

Tipo Usuário final.

Responsabilidades Usuário comum das funções do software.

Critérios de Sucesso Capacidade de introduzir dados válidos no sistema.

Envolvimento Interatividade com o sistema.

Produtos Liberados Nenhum.

Comentários/Problemas Inserção de dados incompatíveis.

Fonte: os autores.

Principais necessidades dos Envolvidos ou dos Clientes

Quadro 7 – Principais necessidades dos Envolvidos ou dos Clientes.

Necessidade Prioridade Preocupações Solução Atual

Soluções Propostas

Alta Garantir ao dono a confidencialidade, integridade e disponibilidade desses ativos.

Nenhuma. O emprego de criptografia para resguardar contra pessoas não autorizadas, encriptando as informações.

Fonte: os autores.

Restrições Para a devida execução do iCryptRar, é necessário a instalação do JRE.

Especificação dos Requisitos

ER. aF. iCryptRar.001

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

ER. aF. iCryptRar.001 Selecionar arquivo/pasta.

Descrição O Programa deverá permitir ao usuário selecionar qualquer arquivo ou pasta a ser criptografado ou descriptografado.

Descrição do Risco Risco Prioridade

Não escolher um arquivo. Baixo Baixa

Usuário Envolvido Usuário administrativo do setor.

Fonte: os autores.

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

ER. aF. iCryptRar.002

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

ER aF. iCript002 Inserir senha para criptografa e descriptografar.

Descrição

O Programa permitirá ao usuário, informar uma senha que será usada para criptografar e descriptografar arquivos e pastas.

Descrição do risco Risco Prioridade

Não inserir senha corretamente Medio Baixa

Usuário Envolvido

Usuário administrativo do setor.

Fonte: os autores.

ER. aF. iCryptRar.003

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

ER. aF. iCryptRar.003 Criptografar

Descrição O programa executará o processo de criptografia do arquivo ou pasta.

Descrição do Risco Risco Prioridade

Selecionar o arquivo ou pasta diferente do desejado.

Baixo Baixa

Não inserir a senha antes do processo criptográfico

Baixo Baixa

Não gerar o produto após processamento.

Alto Alta

Usuário Envolvido Usuário administrativo do setor.

Fonte: os autores.

ER. aF. iCryptRar.004

Quadro 11 – Quadro de Especificação do Requisito ER. aF.iCrypt.004

ER. aF. iCryptRar.004 Descriptografar

Descrição O programa executará o processo de descriptografia do arquivo ou pasta.

Descrição do Risco Risco Prioridade

Selecionar incorretamente o arquivo ou pasta a ser descriptografado.

Baixo Baixa

Não inserir a senha antes do processo de descriptografia ou inserir senha errada.

Medio Baixa

Não encontrar o arquivo Alto Alta

Usuário Envolvido Usuário administrativo do setor.

Fonte: os autores.

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

ER. aF. iCryptRar.005

Quadro 12 – Quadro de Especificação do Requisito ER. aF.iCrypt.005

ER. aF. iCryptRar.005 Gerar Hash

Descrição O Programa deverá ser capaz de gerar o hash de um arquivo ou pasta para posterior descriptografia.

Descrição do Risco Risco Prioridade

Não se aplica. - -

Usuário Envolvido Usuário administrativo do setor.

Fonte: os autores.

ER. aF. iCryptRar.006

Quadro 13 – Quadro de Especificação do Requisito ER. aF.iCrypt.006

ER. aF. iCryptRar.006 Verificar Hash

Descrição O Programa deverá ser capaz de verificar o hash de um arquivo ou pasta para assim, determinar se a integridade do arquivo permanece intacta.

Descrição do Risco Risco Prioridade

Inserir hash inválido ou de outro arquivo.

Médio Médio

Usuário Envolvido Usuário administrativo do setor.

Fonte: os autores.

Descrição dos Casos de Uso e Atores Casos de Uso Selecionar arquivo Este caso de uso será responsável pela captação do arquivo a ser criptografado ou descriptografado ou gerar hash. Selecionar pasta Este caso de uso será responsável pela captação do pasta a ser criptografado ou descriptografado ou gerar hash. Inserir senha Este caso de uso será responsável por exigir do usuário que seja informada uma senha que garantirá a segurança do arquivo ou pasta criptografado. Verificar senha Este caso de uso será responsável por permitir a inserção da senha pelo usuário, com o propósito de comprovar, que a senha é realmente aquela utilizada no processo inicial de criptografia.

Criptografar Este caso de uso é responsável por executar o processo criptográfico em um arquivo ou pasta previamente selecionado pelo usuário. Descriptografar Este caso de uso é responsável por executar o processo de descriptografia do arquivo ou pasta previamente criptografado pelo programa. Descriptografar pasta Este caso de uso é responsável pelo processamento de descriptografia do arquivo criptografado. Descriptografar arquivo Este caso de uso é responsável pelo processamento de descriptografia do arquivo criptografado. Descrição dos Atores Usuário Este ator é qualquer usuário que desejar utilizar o Programa. Será responsável por indicar o(s) arquivo(s) ou pasta(s) a ser(em) criptografado(s) ou descriptografado(s).

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

Diagrama Geral de Caso de Uso Figura 14 – Diagrama Geral de Casos de Usos.

Fonte: os autores.

Detalhamento dos Casos de Uso

UC[01] - Selecionar Arquivo/ Pasta

Quadro 14 - Fluxo de Eventos de Caso de Uso Selecionar arquivo ou pasta.

Nome da Use Case Selecionar arquivo ou pasta

Descrição Selecionar um único arquivo para efetuar o processo inicial de criptografia ou descriptografia.

Requisitos Associados ER. aF. iCryptRar.003, ER. aF. iCryptRar.004, ER. aF. iCryptRar.005, ER. aF. iCryptRar.006

Pré Condições O programa deve estar aberto na tela principal. O arquivo deve estar armazenado em algum local para o início do processamento.

Pós Condições O Programa deverá armazenar e gerar o arquivo ou pasta sem falhas.

Atores Usuário

Fluxo Principal

Ações Recebidas Ações Realizadas

1. O usuário inicia o programa 2. O programa exibe as funcionalidades de criptografia de pasta, arquivo e descrioptografia de pasta , arquivos.

3. O usuário seleciona a função arquivo ou pasta para executar a função de criptografia.

4. O programa exibe o campo Selecionar arquivo ou pasta para que o mesmo seja processado.

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

5. O usuário seleciona o arquivo ou pasta para o processamento que solicitou.

6. O arquivo e salvo na memória o mesmo mostra o caminho do arquivo ou pasta na tela

Fonte: os autores.

UC[02] - Criptografar Arquivo

Quadro 15 - Fluxo de Eventos do Caso de Uso Criptografar Arquivo.

Nome da Use Case Criptografar Arquivo

Descrição O programa recebe o arquivo, o mesmo receberá uma senha para a confidencialidade e a integridade das informações contidas nos arquivos, para a execução da criptografia de arquivo.

Requisitos Associados ER. aF. iCryptRar.002, ER. aF. iCryptRar.001, ER. aF. iCryptRar.005

Pré Condições O programa deve esta aberto na tela principal O arquivo deve estar armazenado em algum local para o início do processamento de criptografia de arquivo

Pós Condições Arquivo criptografado.

Atores Usuário

Fluxo Principal

Ações Recebidas Ações Realizadas

1. O usuário com o programa inicializado. 2. O programa exibe as funcionalidades de criptografia de pasta, arquivo e de descriptografia de arquivo e pasta

3. O usuário seleciona a operação “Arquivo” para executar a função de criptografia.

4. O programa exibe a tela “Abrir” para que o usuário escolha o arquivo a ser criptografado.

5. O usuário seleciona um único arquivo e confirma.

6. O programa volta à tela principal e exibe a operação “Processar”.

7. O usuário escolhe a operação “Processar”. 8. O programa exibe a tela para inserção de senha.

9. O usuário informa a senha. 10. O usuário insere a senha novamente para

confirmação e escolhe a operação “ok”.

11. O programa exibe a tela “Salvar” para que o usuário escolha o local onde o arquivo será salvo.

12. O usuário escolhe o local onde o arquivo será salvo e confirma.

13. O programa exerce o processo criptográfico e exibe a tela com a mensagem de êxito: “Arquivo/Pasta criptografado com sucesso”.

Fluxo Exceção

Ações Recebidas Ações Realizadas

1. O usuário informa a senha e na confirmação, insere uma senha diferente.

2. O programa exibe a mensagem: “As senhas são diferentes.”.

3. O usuário seleciona a operação “ok”. 4. O programa volta ao passo 8 do fluxo principal.

5. O usuário, no ato de inserção da senha, cancela ou confirma a operação sem inserir uma senha.

6. O programa exibe exibe a mensagem: “É necessário informar uma senha.”.

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

7. O usuário seleciona a operação “ok”. 8. O programa volta ao passo 6 do fluxo principal.

9. O usuário, no ato de inserção da senha, deixa os campos em branco.

10. O programa exibe a mensagem: “É necessário informar uma senha.”.

11. O usuário seleciona a operação “ok”. 12. O programa volta ao passo 6 do fluxo principal.

Fonte: os autores.

UC[03] - Criptografar Pasta

Quadro 16 - Fluxo de Eventos do Caso de Uso Criptografar Pasta.

Nome da Use Case Criptografar Pasta.

Descrição O programa recebe a pasta, o mesmo receberá uma senha para a confidencialidade e a integridade das informações contidas na pasta para a execução da criptografia de pasta.

Requisitos Associados ER. aF. iCryptRar.002, ER. aF. iCryptRar.001, ER. aF. iCryptRar.005

Pré Condições - O programa deve esta aberto na tela principal. - A pasta deve estar armazenada em algum local para o início do processamento de criptografia de pasta.

Pós Condições Pasta criptografada.

Atores Usuário.

Fluxo Principal

Ações Recebidas Ações Realizadas

1. O usuário com o programa inicializado. 2. O programa exibe as funcionalidades de criptografia de pasta, arquivo e de descriptografia de pasta e arquivo.

3. O usuário seleciona a operação “Pasta” para executar a função de criptografia.

4. O programa exibe a tela “Abrir” para que o usuário escolha a pasta a ser processada e criptografada.

5. O usuário seleciona uma única pasta e confirma.

6. O programa volta à tela principal e exibe a operação “Processar”.

7. O usuário seleciona a operação “Processar”.

8. O programa exibe a tela para inserção de senha.

9. O usuário informa a senha. 10. O usuário insere a senha novamente

para confirmação e escolhe a operação “ok”.

11. O programa exibe a tela “Salvar” para que o usuário escolha o local onde a pasta será salva.

12. O usuário escolhe o local onde o arquivo será salvo e confirma.

13. O programa exerce o processo criptográfico e exibe a tela com a mensagem de êxito: “Arquivo/Pasta criptografado com sucesso.”.

Fluxo Exceção

Ações Recebidas Ações Realizadas

1. O usuário insere a senha e na confirmação, insere uma diferente.

2. O programa exibe a mensagem: “As senhas são diferentes.”.

3. O usuário seleciona a operação “ok”. 4. O programa volta ao passo 8 do fluxo principal.

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

5. O usuário, no ato de inserção da senha, cancela ou confirma a operação sem inserir uma senha.

6. O programa exibe exibe a mensagem: “É necessário informar uma senha.”.

7. O usuário seleciona a operação “ok”. 8. O programa volta ao passo 6 do fluxo principal.

9. O usuário, no ato de inserção da senha, deixa os campos em branco.

10. O programa exibe a mensagem: “É necessário informar uma senha.”.

11. O usuário seleciona a operação “ok”. 12. O programa volta ao passo 6 do fluxo principal.

Fonte: os autores.

UC[04] - Descriptografar Arquivo/Pasta

Quadro 17 - Fluxo de Eventos do Caso de Uso Decriptografar Arquivo ou pasta.

Nome da Use Case Descriptografar Arquivo ou pasta .

Descrição É realizado o processo inverso da criptografia, para recuperar o arquivo ou pasta criptografado.

Requisitos Associados ER. aF. iCryptRar.002, ER. aF. iCryptRar.001, ER. aF. iCryptRar.006

Pré Condições Incluir um arquivo criptografado.

Pós Condições O programa deve apresentar o arquivo descriptografado.

Atores Usuário.

Fluxo Principal

Ações Recebidas Ações Realizadas

1. O usuário com o programa inicializado. 2. O programa exibe as funcionalidades de criptografia de pasta, arquivo e de decriptografia de arquivo e pasta.

3. O usuário seleciona a operação “Pasta/Arquivo” para descriptografar.

4. O programa exibe a tela “Abrir” para que o usuário escolha a pasta a ser processada e descriptografada.

5. O usuário seleciona um único arquivo ou pasta a ser descriptografado e confirma.

6. O programa volta à tela principal e exibe a operação “Processar”.

7. O usuário seleciona a operação “Processar”.

8. O programa exibe a tela para inserção da senha.

9. O usuário insere a senha escolhida no momento do processo criptográfico.

10. O programa compara a senha e valida. 11. O programa exibe a tela “Abrir”, onde o

usuário escolherá o destino do arquivo ou pasta a ser descriptografado.

12. O usuário escolhe o destino do arquivo ou pasta a ser descriptografado e confirma.

13. O programa exerce o processo descriptográfico e exibe a tela com a mensagem de êxito: “Arquivo/Pasta descriptografado com sucesso.”.

Fluxo Exceção

Ações Recebidas Ações Realizadas

1. O usuário deixa em branco ou insere a senha diferente da escolhida no momento do processo criptográfico e

2. O programa exibe a mensagem “Senha informada não corresponde ao arquivo.”.

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

confirma.

3. O usuário seleciona a operação “ok”. 4. O programa volta ao passo 6 do fluxo principal.

5. O usuário, no ato de inserção da senha, cancela ou confirma a operação sem inserir uma senha.

6. O programa exibe exibe a mensagem: “É necessário informar uma senha.”.

7. O usuário seleciona a operação “ok”. 8. O programa volta ao passo 6 do fluxo principal.

Fonte: os autores.

Diagrama Geral de Estado

Figura 15 - Diagrama Geral de Estado.

Fonte: os autores.

Classes de Análise

Detalhamento das Classes de Análise

Classe de Fronteira – Tela Principal iCryptRar Interação do programa como os atores. Responsável por apresentar as opções criptografar pasta e

arquivos, descriptografar pasta e arquivos. Classe de Controle Arquivo

Responsável pelo o controle da lógica de execução do programa por realizar os processos criptografar, descriptografar, gerar hash e verificar hash.

Diagrama Geral de Classe

Figura 16 - Diagrama de Classe Arquivo.

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

Fonte: os autores.

Diagrama de Classe com Fronteira e Entidade

Figura 17 - Diagrama de Classes de Análise com Fronteira e Entidades.

Fonte: os autores.

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

Diagrama de Sequência

Diagrama de Sequência Criptografar arquivo

Figura 18 - Diagrama de sequência criptografar arquivo.

Fonte: os autores.

Diagrama de Sequência Criptografar pasta

Figura 19 - Diagrama de sequência criptografar pasta.

Fonte: os autores.

Diagrama de Sequência descriptografar arquivo/pasta

Figura 20 - Diagrama de sequência descriptografar arquivo/pasta.

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

Fonte: os autores.

CONCLUSÃO

O uso da tecnologia da informação tanto em extensão quanto em proporção vem de maneira nítida aumentando com o passar dos anos, atingindo não somente o âmbito profissional, mas também atividades de rotinas pessoais, tendo em vista a segurança de dados pessoais e interesses individuais de mantê-las seguras. Visto então a necessidade atual, apresenta-se como uma das soluções para os usuários, o iCryptRar.

A referida ferramenta foi desenvolvida com a linguagem de programação JAVA que é, por sua vez, bastante utilizada nos dias de hoje e, com isso, foi utilizado um algoritmo para verificar a integridade das informações, podendo assegurar que os dados contidos estão inalterados preservando suas propriedades originais. Também foram vivenciados desafios ao longo deste projeto com intensa aquisição de conhecimento para aplicar no cotidiano profissional. REFERÊNCIAS ASSOCIAÇÃO BRASILEIRA DE NORMAS TECNICAS. ABNT NBR ISO/IEC 27001: Tecnologia da informação – Técnicas de segurança – Sistemas de gestão de segurança da informação – Requisitos. Rio de Janeiro, 2006.

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

CARDOSO, Caíque. UML na prática: do problema ao sistema. Rio de Janeiro – RJ: Editora Ciência Moderna Ltda., 2003.

CERT.br. Cartilha de Segurança para Internet, São Paulo, Comitê Gestor da Internet no Brasil, 2012.

COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim; BLAIR, Gordon. SISTEMAS DISTRIBUIDOS: Conceitos e projetos – 5ª Edição. Porto Alegre. Bookman, 2013.

DANTAS, Marcus Leal. Segurança da

informação: uma abordagem focada em gestão de riscos. Olinda – PE: Livro Rápido, 2011.

FERREIRA, Fernando Nicolau Freitas. Segurança da informação. RJ: Ciência moderna, 2003. p. 1.

FROTA, Handerson. Introdução a JVM – Java Virtual Machine. Disponível em: < http://www.handersonfrota.com.br/introducao-a-jvm-java-virtual-machine/ > Acesso em: 16 de junho de 2016.

GUEDES, Gilleanes T. A. UML 2: uma abordagem prática. São Paulo – SP: Novatec Editora, 2011. GUEDES, Gilleanes T. A. UML: uma abordagem prática. São Paulo – SP: Novatec Editora, 2008.

HORSTMANN, Cay S. Core Java, volume I: fundamentos / Cay S. Horstmann, Gary Cornell. São Paulo – SP: Pearson Prentice Hall, 2010.

MACÊDO, Diego. Introdução a UML e seus diagramas. Disponível em: < http://www.diegomacedo.com.br/introducao-a-uml-e-seus-diagramas/ > Acesso em: 16 de junho de 2016.

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

ORACLE. O que é a Tecnologia Java e porque preciso dela? Disponível em: < http://java.com/pt_BR/download/faq/whatis_java.xml >. Acesso em: 16 de junho de 2016.

PISA, Pedro. O que é criptografia? Disponível em: < http://www.techtudo.com.br/artigos/noticia/2012/06/o-que-e-criptografia.html > Acesso em: 16 de junho de 2016.

ROSSY, Ythalo. Criptografia digital. Disponível em: < https://yross.wordpress.com/2010/07/13/criptografia-digital/ > Acesso em: 17 de junho de 2016.

SOBRAL, Fábio. Certificação digital - Como garantir a segurança na transmissão ou no armazenamento da informação? Disponível em: < http://biblioo.info/certificacao-digital/ > Acesso em: 17 de junho de 2016.

APÊNDICE – A

A tela principal do programa apresenta as seguintes funções: criptografar pasta e arquivo,

descriptografar pasta e arquivo. E a mesma função descriptografar confere a integridade do arquivo.

Figura 21 - Tela Principal.

Fonte: os autores.

Ao selecionar algumas das opções criptografar pasta, arquivo e descriptografar: o programa

apresenta a tela seleção de arquivos e pasta.

Figura 22 - Tela de seleção de arquivos e pasta.

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

Fonte: os autores.

Após selecionar função de criptografar pasta, arquivo ou descriptografar, o programa exibirá a tela

para inserção de senha.

Figura 23 - Tela Inserir senha.

Fonte: os autores.

As telas abaixo informam ao usuário se o processo de criptografar pasta, arquivo ou descriptografar

foi finalizado com sucesso ou não.

Figura 24 - Mensagem informando que a pasta ou arquivo foi criptografada com sucesso.

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

Fonte: os autores.

Figura 25 - Mensagem informando que a pasta ou arquivo foi descriptografado com sucesso.

Fonte: os autores.

Figura 26 – Mensagem informando que a senha informada não corresponde ao arquivo.

Fonte: os autores.

Figura 27 – Mensagem informando que as senhas são diferentes.

Fonte: os autores.