| (20 revisões intermediárias por 2 usuários não estão sendo mostradas) | |||
| Linha 17: | Linha 17: | ||
''Porque é interessante desenvolver este projeto?'' Alternativa Open Source para a seguraça de dados, uma área em que é de máxima importancia não estar vinculado a nenhuma grande empresa estadunidense, uma vez que o extinto truecrypt teve de ser descontinuado por utilizar algoritmos que foram desenvolvidos pela agência de segurança nacional americana, alvo de crescentes acusações de implantação de portas em todos os programas a ela vinculados e aprovados, para obtenção de dados. | ''Porque é interessante desenvolver este projeto?'' Alternativa Open Source para a seguraça de dados, uma área em que é de máxima importancia não estar vinculado a nenhuma grande empresa estadunidense, uma vez que o extinto truecrypt teve de ser descontinuado por utilizar algoritmos que foram desenvolvidos pela agência de segurança nacional americana, alvo de crescentes acusações de implantação de portas em todos os programas a ela vinculados e aprovados, para obtenção de dados. | ||
''Porque deve usar a tecnologia escolhida?'' A tecnologia Open Source é que garantirá a personalização pelos usuários através de algoritmos auxiliares garantindo assim a unicidade e segurança de cada solução. | ''Porque deve usar a tecnologia escolhida?'' A tecnologia Open Source é que garantirá a personalização pelos usuários através de algoritmos auxiliares garantindo assim a unicidade e segurança de cada solução. | ||
''Porque usar o hardware específico?'' Não é de primeira necessidade, excepto se o usuário do sistema desejar deixar de criptografar dados que já foram processados, como arquivos já gravados num disco rígido, e passe a proteger dados que estão em processamento, o que aumentaria exponencialmente o processamento requerido pelo software e portanto hardware mais robustos serão necessário. O mesmo vale para grande quantidade de informação - geralmente superiores a 500 Gb por processo, de criptografar ou descriptografar, de uma só vez. | ''Porque usar o hardware específico?'' Não é de primeira necessidade, excepto se o usuário do sistema desejar deixar de criptografar dados que já foram processados, como arquivos já gravados num disco rígido, e passe a proteger dados que estão em processamento, o que aumentaria exponencialmente o processamento requerido pelo software e portanto hardware mais robustos serão necessário. O mesmo vale para grande quantidade de informação - geralmente superiores a 500 Gb por processo, de criptografar ou descriptografar, de uma só vez. | ||
''Porque usar o sistema específico?'' Sistema específico também não é necessário, porém a segurança do usuário ficará prejudicada se o utilizar em sistemas manufaturados por grandes empresas, como Windows e MAC OS. | ''Porque usar o sistema específico?'' Sistema específico também não é necessário, porém a segurança do usuário ficará prejudicada se o utilizar em sistemas manufaturados por grandes empresas, como Windows e MAC OS. | ||
== Who == | == Who == | ||
| Linha 26: | Linha 28: | ||
''Quem pode se beneficiar deste projeto?'' Qualquer que esteja disposto a ler a documentação do projeto e do programa depois de finalizado. | ''Quem pode se beneficiar deste projeto?'' Qualquer que esteja disposto a ler a documentação do projeto e do programa depois de finalizado. | ||
''Quem poderá operar o sistema?'' Idem. Usuários mais experientes e mais bem treinados terão uma ferramenta poderosa de criptografia, uma vez que pode implementar níveis secundários de proteção através de algoritmos pessoais. | ''Quem poderá operar o sistema?'' Idem. Usuários mais experientes e mais bem treinados terão uma ferramenta poderosa de criptografia, uma vez que pode implementar níveis secundários de proteção através de algoritmos pessoais. | ||
''Quem deverá participar do desenvolvimento do sistema?'' Um grupo restrito de programados, no máximo três caso o tempo de execução seja restrito. Isso dará mais garantia sobre a confiabilidade do programa, uma vez que diminuí a chance de códigos corruptos que possibilitariam descriptografar dados alheios sem a devida chave. | |||
== Where == | == Where == | ||
| Linha 34: | Linha 37: | ||
''Onde os dados serão inseridos?'' Em alguma unidade de armazenamento offline que o usuário desejar: discos rígidos, partições, pen-drives, mídias graváveis como CD e DVD. | ''Onde os dados serão inseridos?'' Em alguma unidade de armazenamento offline que o usuário desejar: discos rígidos, partições, pen-drives, mídias graváveis como CD e DVD. | ||
''Onde os dados serão externalizados, publicados?'' Na mesma unidade de origem. | ''Onde os dados serão externalizados, publicados?'' Na mesma unidade de origem. | ||
''Onde esta aplicação poderá ser usada?'' Em computadores pessoais e possívelmente em servidores, o que aumentaria a capacidade de processamento e o volume de informações, conforme a necessidade de quem utilizar. | ''Onde esta aplicação poderá ser usada?'' Em computadores pessoais e possívelmente em servidores, o que aumentaria a capacidade de processamento e o volume de informações, conforme a necessidade de quem utilizar. | ||
''Onde os dados serão armazenadas?'' Discos rígidos e unidades de armazenamento portáteis. | ''Onde os dados serão armazenadas?'' Discos rígidos e unidades de armazenamento portáteis. | ||
''Onde o software deverá ser hospedado?'' Sendo Open Source, o arquivo exercutável, assim como sua documentação, no SourceForge, o que facilitaria sua popularização. | ''Onde o software deverá ser hospedado?'' Sendo Open Source, o arquivo exercutável, assim como sua documentação, no SourceForge, o que facilitaria sua popularização. | ||
== When == | == When == | ||
''Em quanto tempo pretende desenvolver o sistema?'' Um mês. | ''Em quanto tempo pretende desenvolver o sistema?'' Um mês. | ||
''Quais serão as fases e em quanto tempo cada uma?'' | ''Quais serão as fases e em quanto tempo cada uma?'' | ||
1) Desenvolvimento e análise do algoritmo - 1 semana | 1) Desenvolvimento e análise do algoritmo - 1 semana | ||
2) Codificação - 1 semana | 2) Codificação - 1 semana | ||
3) Teste de segurança e funcionalidade 1 semana e meia | |||
3) Teste de segurança e funcionalidade - 1 semana e meia | |||
4) Documentação e Publicação - 3 dias | 4) Documentação e Publicação - 3 dias | ||
''Qual o tempo de resposta do dispositivo ou do sistema?'' Depende da quantidade de informações ( arquivos) a serem criptografados. | ''Qual o tempo de resposta do dispositivo ou do sistema?'' Depende da quantidade de informações ( arquivos) a serem criptografados. | ||
''Quanto tempo para responder a uma entrada?'' Antes da execução final do processo, o programa deverá rodar assim como qualquer executável simples, ou seja, quase sem problemas de processamento, uma vez que suas janelas servirão somente para se definir opções do processo. | ''Quanto tempo para responder a uma entrada?'' Antes da execução final do processo, o programa deverá rodar assim como qualquer executável simples, ou seja, quase sem problemas de processamento, uma vez que suas janelas servirão somente para se definir opções do processo. | ||
== How == | |||
''Como será dividido o desenvolvimento do sistema?'' Nas mesmas etapas citadas no tópico anterior. | |||
''Como será feita a entrada e saída de dados?'' Através de discos rígidos, assim como suas partições, e unidades de armazenamento portáteis. | |||
''Funcionalidades:'' | ''Funcionalidades:'' | ||
Receber informações sobre qual unidade a ser criptografada, assim como a direção de seus arquivos. | Receber informações sobre qual unidade a ser criptografada, assim como a direção de seus arquivos. | ||
Receber o diretório de onde os dados serão copiados | |||
Receber o possível algoritmo pessoal que o usuário deseja | Receber o diretório de onde os dados serão copiados enquanto são criptografados. | ||
Receber o possível algoritmo pessoal que o usuário deseja implementar. | |||
Escolher um dos algoritmos disponíveis em sua biblioteca. | Escolher um dos algoritmos disponíveis em sua biblioteca. | ||
Executar o processo de criptografia de dados, enquanto exibe o progresso e tempo estimado para o término da ação. | |||
Finalizar o processo e encerrar o programa. | |||
== How much == | == How much == | ||
| Linha 74: | Linha 91: | ||
''Quanto deverá custar cada parte e todo o sistema?'' Caso a iniciativa do open source seja atendida, somente tempo dedicado de cada envolvido e não em unidade monetária. | ''Quanto deverá custar cada parte e todo o sistema?'' Caso a iniciativa do open source seja atendida, somente tempo dedicado de cada envolvido e não em unidade monetária. | ||
''Quantas pessoas deverão ser usadas (Equipe) ?'' De 1 programador, além de um supervisor de códigos que gerenciará o projeto, caso o software seja desenvolvido de maneira comercial. | ''Quantas pessoas deverão ser usadas (Equipe) ?'' De 1 programador, além de um supervisor de códigos que gerenciará o projeto, caso o software seja desenvolvido de maneira comercial. | ||
''Quanto custa cada profissional?'' 4.300 /programador para o trabalho , caso não se obtenha programadores da comunidade open source. | ''Quanto custa cada profissional?'' 4.300 /programador para o trabalho , caso não se obtenha programadores da comunidade open source. | ||
''Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?'' Sem custo. | ''Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?'' Sem custo. | ||
== DFD == | |||
[[Mídia:DFD02-douglas.png]] | |||
==DER== | |||
[[Arquivo:DER01-douglas.png]] | |||
[[Arquivo:DER02-douglas.png]] | |||
==DD== | |||
'''Criptografando dados''' | |||
---- | |||
Ao se iniciar o programa, uma tela apresentará ao usuário um formulário ao qual deve preencher e guardar o arquivo gerado com suas informações numa unidade de armazenamento, como uma pen-drive, que passará a ser utilizada como token para descriptografar, e somente assim, os arquivos que esse está prestes a criptografar. Este deve dar permissão de administrador do sistema para que o programa acesse os dados de hardware, como o serial number da unidade (SNUnidadeDestino) que quer armazenar os dados após o término do processo e seu endereço (EndDestino).O usuário deve informar se quer ou não utilizar um algoritmo secundário, e seu endereço. '''O arquivo gerado em EndToken não pode ser modificado com informações do usuário''', um requisito de segurança do programa. '''Não é possível criptografar duas vezes dados diferentes utilizando o mesmo arquivo.''' | |||
Então os arquivos são processados para o endereço EndDirCopia, e só então copiados, após o término, para a unidade final, endereço EndDestino, juntamente com os dados do arquivo de informações para futura comparação (MD5 do arquivo de informações). Fim de execução. | |||
'''Descriptografando dados''' | |||
---- | |||
O programa é iniciado, a opção de descriptografar é escolhida, o usuário escolhe qual o endereço EndToken do arquivo de informações respectivo ao dado que deseja descriptografar. O programa compara com a informação contida nos dados dos arquivos criptografados,através do MD5 do arquivo de informações, se idênticos, o processo de descriptografar se inicia. Os dados são salvos na unidade. Fim de execução. | |||
* '''CadInfoUser e Cad Arquivos''' – Diretório que será utilizado para armazenar os dados que são inicialmente inseridos pelo usuário antes de criptografar seus dados. | |||
IDUser – Chave primária inteira para cada usuário e diferente cada para arquivo; | |||
Nome – Nome do usuário para exibição; | |||
Login – Login do usuário com caracteres e números; | |||
Senha – Senha do usuário com caracteres e números; | |||
EndDestino – Endereço de destino dos arquivos após processo terminado ; | |||
SNUnidadeDestino – Serial Number da unidade de destino; | |||
IDArquivo – ID de cada arquivo a ser criptografado; | |||
EndArquivo – Endereço de cada arquivo a ser localizado; | |||
DataNasc – Data de Nascimento do usuário, a fim melhorar a segurança do MD5 gerado sobre o arquivo de informações; | |||
EndDirCopia – Endereço o qual os arquivos serão copiados enquanto são processados ( criptografados ou descriptografados); | |||
EndToken – Endereço que o arquivo de informações será salvo na unidade removível - Token; | |||
AlgoritmoSec – Resposta do usuário se deseja usar um algoritmo próprio S – Sim e N-Não; | |||
EndAlgoritmoUser – Endereço do Algoritmo, caso o usuário desejar imprelemtálo, senão campo vazio; | |||
Md5 – Hash MD5 gerado pelo programa após terminada a inserção de dados; | |||
* '''CadDescriptografar –''' Diretório qual são copiados os dados do arquivo de informações anteriormente gerados para que os processos para descriptografar tenha acesso a dados importantes a sua execução. | |||
EndDestino – Endereço de destino dos arquivos após processo terminado; | |||
EndDirCopia – Endereço o qual os arquivos serão copiados enquanto são processados ( criptografados ou descriptografados); | |||
EndToken – Endereço que o arquivo de informações será salvo na unidade removível - Token; | |||
Md5 – Hash MD5 gerado pelo programa após terminada a inserção de dados, o qual será comparado com a informação contida nos dados criptografados; | |||
== Novas Funcionalidades == | |||
* Autenticador de tokens - Autentica um pen-drive utilizado como token sem precisar iniciar o processo para criptografar ou descriptografar nada, podendo então criar cópias de pen-drives, assim como cópias de chaves, para os casos em que mais de uma pessoa tenha acesso ao mesmo arquivo. | |||
* Opção de criptografar em tempo real - Criptografa os dados de unidades de disco rígido ( partições ) enquanto o sistema está em execução, assim como é possível no Bitlocker. | |||
* Opção para criar cópias de partições inteiras em somente um arquivo e então dividí-lo de acordo com a necessidade do usuário, utilizada quando é feito um backup de partições inteiras sem precisar consultar os arquivos separadamente. | |||
* Módulo integrado para esteganografia - Chaves podem ser compartilhadas através de imagens, para quando um usuário precisa enviá-la a outro por meio da internet, mas não quer correr o risco de enviar o arquivo somente, por isso oculta a chave em uma image. Para maior segurança, o arquivo não é simplesmente criptografado junto a imagem e sim várias vezes, com vários algoritmos distintos, um sobre o outro. | |||
* Estimativa de tempo - O programa estima quanto tempo levará até o final do processo baseado no tamanho do arquivo e poder de processamento do hardware. | |||
* Modo Offline - A opção permite que o usuário escolha se desconectar totalmente, desligando todos os dispositivos para conexão com internet, bluetooth, etc no momento do processamento. Após o término desse, todos os arquivos gerados durante o processo são excluídos e um processo fictício é executado para sobrescrever nos arquivos anteriores. Após essa estapa, o sistema é obrigado a reiniciar, para obrigar a apagar os dados da memória que podem ainda estar disponíveis. | |||
<br> | |||
<br> | |||
== Diagrama de Classes == | |||
<br> | |||
[[Arquivo:Ddc.png]] | |||
== Diagrama de Casos de Uso == | |||
<br> | |||
[[Arquivo:Casosduso.png]] | |||
== Detalhamento dos Casos de Uso == | |||
<br> | |||
'''Identificação do Caso de Uso:''' UC1 | |||
'''Nome do Caso de Uso:''' Obter permissão de Administrador para a opção Offline | |||
'''Sumário:''' Este caso permite que o usuáro tenha acesso a funções destinadas ao super usuário. | |||
'''Ator:''' Usuário | |||
'''Pré-condições:''' Usuário ter selecionado a opção Offline antes de iniciar o processo de criptografia | |||
'''Pós-condições:''' | |||
'''Seqüência de Eventos''' | |||
'''''' '''''' | |||
{| class="wikitable" | |||
|- | |||
!Ação do Ator!!Resposta do Sistema | |||
|- | |||
|1. Usuário seleciona a opção Offline e inicia a criptografia ||2. O sistema pede ao sistema operacional que lhe dê permissão de super-usuário. | |||
|- | |||
|3. O usuária aceita a requisição que cada sistema lhe fará ||4. O sistema dá inicio ao processo de captura de informações de hardware e de conexão | |||
|} | |||
'''Identificação do Caso de Uso:''' UC2 | |||
'''Nome do Caso de Uso:''' Obter informações de hardware | |||
'''Sumário:''' Este caso permite que o sistema tenha as variáveis necessárias para calcular o tempo necesário para realizar a operação de criptografia | |||
'''Ator:''' Usuário | |||
'''Pré-condições:''' Usuário ter selecionado a opção Offline e ter acesso de Administrador (UC1) | |||
'''Pós-condições:''' | |||
'''Seqüência de Eventos''' | |||
'''''' '''''' | |||
{| class="wikitable" | |||
|- | |||
!Ação do Ator!!Resposta do Sistema | |||
|- | |||
|1. Usuário obtém acesso de Administrador ||2.O sistema pede dados de processamento de hardware, como memória disponível, vídeo, e processador, adaptador de rede, Mac Address, etc | |||
|- | |||
| ||3. O sistema armazena nas variáveis correspondentes esses valores retornados. | |||
|- | |||
| ||4. O sistema calcula o tempo estimado baseado em padrões de processamento comuns a época de quando for lançado e manda o valor para a Progress Bar | |||
|- | |||
| ||7. O sistema desativa o adaptador de rede (Bloquear Rede) e inicia o processo de Criptografia | |||
|} | |||
'''Identificação do Caso de Uso:''' UC3 | |||
'''Nome do Caso de Uso:''' Criptografar | |||
'''Sumário:''' Este é o caso de uso principal para qual é destinado a aplicação: Criptografar dados | |||
'''Ator:''' Usuário | |||
'''Pré-condições:''' Usuário ter selecionado a opção Criptografar e ter acesso de Administrador | |||
'''Pós-condições:''' | |||
'''Seqüência de Eventos''' | |||
'''''' '''''' | |||
{| class="wikitable" | |||
|- | |||
!Ação do Ator!!Resposta do Sistema | |||
|- cm | |||
|1. Usuário obtém acesso de Administrador e escolhe a opção de Criptografar ||2.O sistema pede o diretório do arquivo a ser criptografado | |||
|- | |||
| 3.Usuário digita o diretório ||4. Sistema pede o diretório de destino e o endereço da chave | |||
|- | |||
| 5. Usuário digita os dois endereços ||6. O sistema valida a chave | |||
|- | |||
| ||7. O sistema começa a Criptografia de acordo com o algoritmo do usuário | |||
|- | |||
| ||8. O sistema termina o processo e checa a integridade dos dados. | |||
|- | |||
| ||9. Se os dados estão perfeitos, são gravador no diretório de destino. | |||
|- | |||
| ||10. Mensagem de sucesso e Fim de execução. | |||
|} | |||
'''Identificação do Caso de Uso:''' UC4 | |||
'''Nome do Caso de Uso:''' Descriptografar | |||
'''Sumário:''' Este é o caso de uso secundário para qual é destinado a aplicação: Descriptografar dados | |||
'''Ator:''' Usuário | |||
'''Pré-condições:''' Usuário ter selecionado a opção Descriptografar e ter acesso de Administrador | |||
'''Pós-condições:''' | |||
'''Seqüência de Eventos''' | |||
'''''' '''''' | |||
{| class="wikitable" | |||
|- | |||
!Ação do Ator!!Resposta do Sistema | |||
|- cm | |||
|1. Usuário obtém acesso de Administrador e escolhe a opção de Descriptografar ||2.O sistema pede o diretório do arquivo a ser descriptografado | |||
|- | |||
| 3.Usuário digita o diretório ||4. Sistema pede o diretório de destino dos arquivos inalterados e o endereço da chave | |||
|- | |||
| 5. Usuário digita os dois endereços ||6. O sistema valida a chave | |||
|- | |||
| ||7. O sistema começa a descriptografar os dados de acordo com o algoritmo do usuário | |||
|- | |||
| ||8. O sistema verifica a integridade dos dados. | |||
|- | |||
| ||9. Se os dados perfeitos, então gravar no endereço de destino. | |||
|- | |||
| ||10. Mensagem de Sucesso e Fim de Execução. | |||
|} | |||
= Protótipo = | |||
<br> | |||
Edição atual tal como às 01h28min de 13 de fevereiro de 2015
What
Qual o nome do seu projeto? Cryptum.
Qual o objetivo deste projeto? Promover uma alternativa open source para criptografia de dados.
Quais os maiores desafios, na sua opinião, para se realizar este trabalho? Manter um equilibrio entre confiabilidade do programa - como por exemplo a criação de backdoors - e a utilidade - a qual podemos verificar se realmente criptografa como se pretende enquanto é facil de ser utilizado.
Quais os conhecimentos básicos que devemos ter para se implementar este projeto? Algoritmos para embaralhar dados, utilização de chaves e hashs, conhecimentos sobre Algebra Linear- principalmente manipulação e inversão de matrizes, e ainda conhecimento do conjunto de bibliotecas Crypto++.
Quais soluções similares existem no mercado? Além de projetos de pequenas empresas de software desenvolvidos principalmente para usuários com sistemas e problemas específicos, temos no mercado o BitLocker disponibilizado pela empresa Microsoft Corporation.Descontinuado Truecrypt.
Why
Porque é interessante desenvolver este projeto? Alternativa Open Source para a seguraça de dados, uma área em que é de máxima importancia não estar vinculado a nenhuma grande empresa estadunidense, uma vez que o extinto truecrypt teve de ser descontinuado por utilizar algoritmos que foram desenvolvidos pela agência de segurança nacional americana, alvo de crescentes acusações de implantação de portas em todos os programas a ela vinculados e aprovados, para obtenção de dados.
Porque deve usar a tecnologia escolhida? A tecnologia Open Source é que garantirá a personalização pelos usuários através de algoritmos auxiliares garantindo assim a unicidade e segurança de cada solução.
Porque usar o hardware específico? Não é de primeira necessidade, excepto se o usuário do sistema desejar deixar de criptografar dados que já foram processados, como arquivos já gravados num disco rígido, e passe a proteger dados que estão em processamento, o que aumentaria exponencialmente o processamento requerido pelo software e portanto hardware mais robustos serão necessário. O mesmo vale para grande quantidade de informação - geralmente superiores a 500 Gb por processo, de criptografar ou descriptografar, de uma só vez.
Porque usar o sistema específico? Sistema específico também não é necessário, porém a segurança do usuário ficará prejudicada se o utilizar em sistemas manufaturados por grandes empresas, como Windows e MAC OS.
Who
Quem pode se beneficiar deste projeto? Qualquer que esteja disposto a ler a documentação do projeto e do programa depois de finalizado.
Quem poderá operar o sistema? Idem. Usuários mais experientes e mais bem treinados terão uma ferramenta poderosa de criptografia, uma vez que pode implementar níveis secundários de proteção através de algoritmos pessoais.
Quem deverá participar do desenvolvimento do sistema? Um grupo restrito de programados, no máximo três caso o tempo de execução seja restrito. Isso dará mais garantia sobre a confiabilidade do programa, uma vez que diminuí a chance de códigos corruptos que possibilitariam descriptografar dados alheios sem a devida chave.
Where
Onde os dados serão inseridos? Em alguma unidade de armazenamento offline que o usuário desejar: discos rígidos, partições, pen-drives, mídias graváveis como CD e DVD.
Onde os dados serão externalizados, publicados? Na mesma unidade de origem.
Onde esta aplicação poderá ser usada? Em computadores pessoais e possívelmente em servidores, o que aumentaria a capacidade de processamento e o volume de informações, conforme a necessidade de quem utilizar.
Onde os dados serão armazenadas? Discos rígidos e unidades de armazenamento portáteis.
Onde o software deverá ser hospedado? Sendo Open Source, o arquivo exercutável, assim como sua documentação, no SourceForge, o que facilitaria sua popularização.
When
Em quanto tempo pretende desenvolver o sistema? Um mês.
Quais serão as fases e em quanto tempo cada uma?
1) Desenvolvimento e análise do algoritmo - 1 semana
2) Codificação - 1 semana
3) Teste de segurança e funcionalidade - 1 semana e meia
4) Documentação e Publicação - 3 dias
Qual o tempo de resposta do dispositivo ou do sistema? Depende da quantidade de informações ( arquivos) a serem criptografados.
Quanto tempo para responder a uma entrada? Antes da execução final do processo, o programa deverá rodar assim como qualquer executável simples, ou seja, quase sem problemas de processamento, uma vez que suas janelas servirão somente para se definir opções do processo.
How
Como será dividido o desenvolvimento do sistema? Nas mesmas etapas citadas no tópico anterior.
Como será feita a entrada e saída de dados? Através de discos rígidos, assim como suas partições, e unidades de armazenamento portáteis.
Funcionalidades:
Receber informações sobre qual unidade a ser criptografada, assim como a direção de seus arquivos.
Receber o diretório de onde os dados serão copiados enquanto são criptografados.
Receber o possível algoritmo pessoal que o usuário deseja implementar.
Escolher um dos algoritmos disponíveis em sua biblioteca.
Executar o processo de criptografia de dados, enquanto exibe o progresso e tempo estimado para o término da ação.
Finalizar o processo e encerrar o programa.
How much
Quanto deverá custar cada parte e todo o sistema? Caso a iniciativa do open source seja atendida, somente tempo dedicado de cada envolvido e não em unidade monetária.
Quantas pessoas deverão ser usadas (Equipe) ? De 1 programador, além de um supervisor de códigos que gerenciará o projeto, caso o software seja desenvolvido de maneira comercial.
Quanto custa cada profissional? 4.300 /programador para o trabalho , caso não se obtenha programadores da comunidade open source.
Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)? Sem custo.
DFD
DER
DD
Criptografando dados
Ao se iniciar o programa, uma tela apresentará ao usuário um formulário ao qual deve preencher e guardar o arquivo gerado com suas informações numa unidade de armazenamento, como uma pen-drive, que passará a ser utilizada como token para descriptografar, e somente assim, os arquivos que esse está prestes a criptografar. Este deve dar permissão de administrador do sistema para que o programa acesse os dados de hardware, como o serial number da unidade (SNUnidadeDestino) que quer armazenar os dados após o término do processo e seu endereço (EndDestino).O usuário deve informar se quer ou não utilizar um algoritmo secundário, e seu endereço. O arquivo gerado em EndToken não pode ser modificado com informações do usuário, um requisito de segurança do programa. Não é possível criptografar duas vezes dados diferentes utilizando o mesmo arquivo. Então os arquivos são processados para o endereço EndDirCopia, e só então copiados, após o término, para a unidade final, endereço EndDestino, juntamente com os dados do arquivo de informações para futura comparação (MD5 do arquivo de informações). Fim de execução.
Descriptografando dados
O programa é iniciado, a opção de descriptografar é escolhida, o usuário escolhe qual o endereço EndToken do arquivo de informações respectivo ao dado que deseja descriptografar. O programa compara com a informação contida nos dados dos arquivos criptografados,através do MD5 do arquivo de informações, se idênticos, o processo de descriptografar se inicia. Os dados são salvos na unidade. Fim de execução.
- CadInfoUser e Cad Arquivos – Diretório que será utilizado para armazenar os dados que são inicialmente inseridos pelo usuário antes de criptografar seus dados.
IDUser – Chave primária inteira para cada usuário e diferente cada para arquivo;
Nome – Nome do usuário para exibição;
Login – Login do usuário com caracteres e números;
Senha – Senha do usuário com caracteres e números;
EndDestino – Endereço de destino dos arquivos após processo terminado ;
SNUnidadeDestino – Serial Number da unidade de destino;
IDArquivo – ID de cada arquivo a ser criptografado;
EndArquivo – Endereço de cada arquivo a ser localizado;
DataNasc – Data de Nascimento do usuário, a fim melhorar a segurança do MD5 gerado sobre o arquivo de informações;
EndDirCopia – Endereço o qual os arquivos serão copiados enquanto são processados ( criptografados ou descriptografados);
EndToken – Endereço que o arquivo de informações será salvo na unidade removível - Token;
AlgoritmoSec – Resposta do usuário se deseja usar um algoritmo próprio S – Sim e N-Não;
EndAlgoritmoUser – Endereço do Algoritmo, caso o usuário desejar imprelemtálo, senão campo vazio;
Md5 – Hash MD5 gerado pelo programa após terminada a inserção de dados;
- CadDescriptografar – Diretório qual são copiados os dados do arquivo de informações anteriormente gerados para que os processos para descriptografar tenha acesso a dados importantes a sua execução.
EndDestino – Endereço de destino dos arquivos após processo terminado;
EndDirCopia – Endereço o qual os arquivos serão copiados enquanto são processados ( criptografados ou descriptografados);
EndToken – Endereço que o arquivo de informações será salvo na unidade removível - Token;
Md5 – Hash MD5 gerado pelo programa após terminada a inserção de dados, o qual será comparado com a informação contida nos dados criptografados;
Novas Funcionalidades
- Autenticador de tokens - Autentica um pen-drive utilizado como token sem precisar iniciar o processo para criptografar ou descriptografar nada, podendo então criar cópias de pen-drives, assim como cópias de chaves, para os casos em que mais de uma pessoa tenha acesso ao mesmo arquivo.
- Opção de criptografar em tempo real - Criptografa os dados de unidades de disco rígido ( partições ) enquanto o sistema está em execução, assim como é possível no Bitlocker.
- Opção para criar cópias de partições inteiras em somente um arquivo e então dividí-lo de acordo com a necessidade do usuário, utilizada quando é feito um backup de partições inteiras sem precisar consultar os arquivos separadamente.
- Módulo integrado para esteganografia - Chaves podem ser compartilhadas através de imagens, para quando um usuário precisa enviá-la a outro por meio da internet, mas não quer correr o risco de enviar o arquivo somente, por isso oculta a chave em uma image. Para maior segurança, o arquivo não é simplesmente criptografado junto a imagem e sim várias vezes, com vários algoritmos distintos, um sobre o outro.
- Estimativa de tempo - O programa estima quanto tempo levará até o final do processo baseado no tamanho do arquivo e poder de processamento do hardware.
- Modo Offline - A opção permite que o usuário escolha se desconectar totalmente, desligando todos os dispositivos para conexão com internet, bluetooth, etc no momento do processamento. Após o término desse, todos os arquivos gerados durante o processo são excluídos e um processo fictício é executado para sobrescrever nos arquivos anteriores. Após essa estapa, o sistema é obrigado a reiniciar, para obrigar a apagar os dados da memória que podem ainda estar disponíveis.
Diagrama de Classes
Diagrama de Casos de Uso
Detalhamento dos Casos de Uso
Identificação do Caso de Uso: UC1 Nome do Caso de Uso: Obter permissão de Administrador para a opção Offline Sumário: Este caso permite que o usuáro tenha acesso a funções destinadas ao super usuário. Ator: Usuário Pré-condições: Usuário ter selecionado a opção Offline antes de iniciar o processo de criptografia Pós-condições:
Seqüência de Eventos ' '
| Ação do Ator | Resposta do Sistema |
|---|---|
| 1. Usuário seleciona a opção Offline e inicia a criptografia | 2. O sistema pede ao sistema operacional que lhe dê permissão de super-usuário. |
| 3. O usuária aceita a requisição que cada sistema lhe fará | 4. O sistema dá inicio ao processo de captura de informações de hardware e de conexão |
Identificação do Caso de Uso: UC2 Nome do Caso de Uso: Obter informações de hardware Sumário: Este caso permite que o sistema tenha as variáveis necessárias para calcular o tempo necesário para realizar a operação de criptografia Ator: Usuário Pré-condições: Usuário ter selecionado a opção Offline e ter acesso de Administrador (UC1) Pós-condições:
Seqüência de Eventos ' '
| Ação do Ator | Resposta do Sistema |
|---|---|
| 1. Usuário obtém acesso de Administrador | 2.O sistema pede dados de processamento de hardware, como memória disponível, vídeo, e processador, adaptador de rede, Mac Address, etc |
| 3. O sistema armazena nas variáveis correspondentes esses valores retornados. | |
| 4. O sistema calcula o tempo estimado baseado em padrões de processamento comuns a época de quando for lançado e manda o valor para a Progress Bar | |
| 7. O sistema desativa o adaptador de rede (Bloquear Rede) e inicia o processo de Criptografia |
Identificação do Caso de Uso: UC3 Nome do Caso de Uso: Criptografar Sumário: Este é o caso de uso principal para qual é destinado a aplicação: Criptografar dados Ator: Usuário Pré-condições: Usuário ter selecionado a opção Criptografar e ter acesso de Administrador Pós-condições:
Seqüência de Eventos ' '
| Ação do Ator | Resposta do Sistema |
|---|---|
| 1. Usuário obtém acesso de Administrador e escolhe a opção de Criptografar | 2.O sistema pede o diretório do arquivo a ser criptografado |
| 3.Usuário digita o diretório | 4. Sistema pede o diretório de destino e o endereço da chave |
| 5. Usuário digita os dois endereços | 6. O sistema valida a chave |
| 7. O sistema começa a Criptografia de acordo com o algoritmo do usuário | |
| 8. O sistema termina o processo e checa a integridade dos dados. | |
| 9. Se os dados estão perfeitos, são gravador no diretório de destino. | |
| 10. Mensagem de sucesso e Fim de execução. |
Identificação do Caso de Uso: UC4 Nome do Caso de Uso: Descriptografar Sumário: Este é o caso de uso secundário para qual é destinado a aplicação: Descriptografar dados Ator: Usuário Pré-condições: Usuário ter selecionado a opção Descriptografar e ter acesso de Administrador Pós-condições:
Seqüência de Eventos ' '
| Ação do Ator | Resposta do Sistema |
|---|---|
| 1. Usuário obtém acesso de Administrador e escolhe a opção de Descriptografar | 2.O sistema pede o diretório do arquivo a ser descriptografado |
| 3.Usuário digita o diretório | 4. Sistema pede o diretório de destino dos arquivos inalterados e o endereço da chave |
| 5. Usuário digita os dois endereços | 6. O sistema valida a chave |
| 7. O sistema começa a descriptografar os dados de acordo com o algoritmo do usuário | |
| 8. O sistema verifica a integridade dos dados. | |
| 9. Se os dados perfeitos, então gravar no endereço de destino. | |
| 10. Mensagem de Sucesso e Fim de Execução. |
Protótipo



