29 de ago de 2010

METODOLOGIA PARA ELABORAÇÃO DE SENHAS

METODOLOGIA PARA ELABORAÇÃO DE SENHAS
Nilson Mori Lazarin




RESUMO
A convivência com tecnologia se tornou indispensável, somos forçados a manter cadastros digitais em diversos sistemas para que possamos acessar serviços tido como on-line. Esta é uma marcha sem volta e a cada dia a particularidade de um indivíduo está digitalizada. Uma forma de protegermos estas informações é através da senha. Nem sempre a senha criada pelo usuário consegue marcar território frente ao primeiro ataque de um criminoso virtual. Este trabalho aborda a necessidade de senhas confiáveis, apresentando uma metodologia de criação que poderá ser utilizada por qualquer usuário.



Palavras-chave: senha, segurança, autenticação.


1. INTRODUÇÃO






Com o advento do cloud computing1, a possibilidade do usuário manter seus documentos e informações pessoais nas nuvens computacionais lhe trará possibilidades incríveis para os novos tempos, modificando a maneira habitual que utilizamos um computador, pelo menos é o que se espera. Em um único lugar teremos todas as informações de que precisamos, não nos preocuparemos mais com questões pormenores tais como backup que poderá ser realizado automaticamente pelos servidores de hospedagem. Os computadores pessoais, não mais necessitarão de grande capacidade de armazenamento e/ou processamento, pois a execução de aplicativos também estará nas nuvens. Nossos computadores físicos passarão a ser meros meios de conexão entre os mortais e as nuvens, caso tivermos nosso laptop roubado não haverá motivo para pânico pois nossos dados estarão a salvo nas nuvens sob vigilância direta dos doze deuses do olímpicos.
Evidentemente o atrativo é irresistível e com o passar do tempo e a gradativa solidificação desta proposta, tornar-se-á comum sua utilização pelos usuários que necessitam desta maneabilidade ofertada. Transformando-se em ferramenta de possibilidades ao meio empresarial, onde os executivos não necessitaram levar informações sigilosas em computadores portáteis, eliminando assim a possibilidade de casos conhecidos tais como do roubo de um laptop da Petrobras, o qual continha informações importantes sobre reservas de petróleo, conforme Gazeta do Povo – Economia (14 Fev 2008). Tal notícia tomou repercussão nacional devido importância das informações contidas em tal laptop, que provavelmente seria comercializado no mercado negro.
A preocupação exclusiva será evitar o acesso indevido as informações que possam estar neste paraíso computacional, pois o acesso a toda uma vida digital estará protegida por uma par de autenticação2.
A eficácia e a robustez de uma senha protegerá a vida privada de um usuário e informações privilegiadas de determinadas corporações. Diante deste cenário as senhas passam a ter um valor ainda maior, veremos a seguir tópicos que deverão ser levados em consideração para a elaboração de uma senha confiável.








2. DESENVOLVIMENTO
Uma boa senha é alicerce para a segurança neste mundo digital, sendo assim devemos entender seu funcionamento e evoluir rumo a perfeição.

2.1 Sistemática de armazenamento das senhas.
Quando uma senha é cadastrada em qualquer que seja o aplicativo, site ou sistema, a mesma precisa ser armazenada para quer possa ser checada na próxima vez que o usuário informar o par de autenticação. Quando me refiro a ser armazenada, tenha em mente que a senha está dentro de um arquivo ou base de dados, caso algum indivíduo consiga acessar (independente da forma) este arquivo ou base de dados,  ele visualizará a sua senha.
Exatamente isso, ele verá a sua senha! Porém para contornar esse detalhe técnico foram concebidos algoritmos de criptografia, e é claro se você utiliza um bom software, o programador presou por este item. Aquele que conseguir acesso à base de senhas continuará a ver a senha, porém se a mesma estiver criptografada ele não conseguirá decifrá-la.

2.2 Vislumbre aos algoritmos de criptografia.
Existem diversos algoritmos de criptografia proprietários ou abertos, com maior ou menor grau de encriptação. Basicamente na criptografia de senhas são utilizados algoritmos unidirecionais, ou seja, algoritmos que somente encriptam o texto. Isto significa que uma senha ao ser submetida ao processo jamais será convertida no texto que lhe deu origem novamente.
Este resultado da criptografia é chamado hash3 passa a ser armazenado na base de senhas. Cada vez que o usuário acessar o sistema deverá informar seu par de autenticação, o texto informando como senha passa pela criptografia novamente e o seu resultado é comparado com aquele armazenado na base de senhas, caso o resultado seja idêntico o acesso é liberado ao usuário.

2.3 Importância de uma senha bem formada
Como vimos anteriormente o processo de segurança é bem eficaz, porém se o usuário utilizar uma senha frágil, toda esta proteção perde sua finalidade. Assim devemos levar em consideração a complexidade de nossas senhas, pois elas são ameaçadas por vários fatores, merecendo destaque dentro do contexto os seguintes:

2.3.1 Ameaça a senha
a) Brute-Force: Este ataque utiliza a força bruta da técnica de tentativa e erro, onde consiste em tentar todas as possíveis combinações textuais até descobrir a senha correta.

b) Engenharia Social: Esta é uma técnica muito mais inteligente, pois explora falhas nas pessoas que, quando não treinadas, podem ser facilmente manipuladas pelo engenheiro social.

2.3.2 Fortalecendo uma senha
Embora seja recomendado ao usuário no ato do cadastramento de uma senha, que ele utilize caracteres especiais, maiúsculas, minúsculas e números, porém não lhe é apresentam metodologia para a criação racional da senha.
Com este fator em mente elaborei esta metodologia para melhor compreensão. Dividida em sete níveis de complexidade que vão do totalmente desaconselhável até o nível de segurança desejado.

a) Nível 01 – Segurança ineficaz
Este nível deve ser totalmente erradicado, aquele que utilizar senhas deste patamar deverá mudar imediatamente. 
Senhas de nível 01, são compostas de:

i.nome do usuário;
ii.nome de cônjuge, filhos e outros parentes próximos;
iii.apelidos pessoais ou de familiares próximos;
iv.nome invertido ou sobrenome;
v.nome da cidade, bairro ou mora, estuda ou trabalha.

Abaixo apresento o resultado do teste de força de uma senha nível 1, que obteve 4% de robustez no teste. 
A senha utilizada foi um nome próprio: nilson.


b) Nível 02 – Segurança ainda nula
Este nível apresenta uma falsa sensação de segurança, pois utilizam-se de informações pessoais sujeitas a serem descobertas através de engenharia social.
Senhas de nível 02, são compostas de:

i.data de nascimento, casamento, namoro, etc;
ii.número de documentos pessoais;
iii.sequências numéricas;
iv.números de telefone;
v.data de nascimento de filhos, pais, cônjuge, etc;

Abaixo apresento o resultado do teste de força de uma senha nível 2, que obteve 12% de robustez no teste. 
A senha utilizada foi uma possível data de nascimento: 251279


c) Nível 03 – Pequeno grau de segurança
Este nível compreende combinações de maiúsculas e minúsculas, começa a mostrar alguma segurança, porém nem todos os sistemas ou softwares onde efetuamos o cadastro da senha são case sensitive4.
Senhas de nível 3, são compostas de:

i.palavras diversas;
ii.locais conhecidos;
iii.nome e sobrenome;
iv.nome de pessoas distantes;

Abaixo apresento o resultado do teste de força de uma senha nível 3, que obteve 19% de robustez no teste. 
A senha utilizada foi um nome e sobrenome combinadas com maiúsculas e minúsculas: NilsoMori


d) Nível 04 – Segurança básica
Este nível utiliza-se de características do nível anterior, adicionando informações numéricas diversas. Quanto a técnica de brute-force são senhas relativamente seguras, porém são frágeis a ataques de engenharia social.
Senhas de nível 4, são compostas de:

i.locais e datas;
ii.apelidos e ano corrente;
iii.nome de mês e ano de datas pessoais;
iv.nome de pessoas e ano de nascimento;
v.nome de rua e número de casa;

Abaixo apresento o resultado do teste de força de uma senha nível 4, que obteve 41% de robustez no teste. 
A senha utilizada foi um nome, sobrenome e ano de nascimento, combinadas com maiúsculas e minúsculas: NilsonMori84

e) Nível 05 – Segurança razoável
A partir deste nível implementamos uma característica criptográfica rudimentar, muito utilizada em criptografia do tipo lápis-papel. Utilizaremos o conceito de tabela de substituição, a qual deverá ser adaptada a experiência de cada usuário, recomendo a substituição de algumas vogais, consoantes e alguns números para caracteres especiais, com isto diminuímos a capacidade de êxito em investidas de engenharia social.


Cada indivíduo deverá criar sua própria tabela de substituição e com o tempo passará a dominar tal forma de escrita. Após consolidar sua própria tabela, teste a nova escrita com pequenas palavras, conforme exemplo abaixo.


Desta forma, a senha pode ser anotada em papiros sem o risco de ser descoberta por outro indivíduo. É de suma importância que a tabela de substituição seja decorada pelo usuário, pois assim além da impossibilidade de outrem desvendar a senha, facilitará a transcrição do texto no momento da autenticação.
Deste modo, além de todas as beneficies citadas, caso outrem visualize a digitação da senha, dificilmente conseguirá assimilar qual é a palavra digitada, devido à utilização dos caracteres especiais.
O nível cinco consiste em senhas com maiúsculas, minusculas e caracteres especiais, conforme tabela de substituição. Lembrando novamente que a tabela deve ser individualmente criada, de maneira que o usuário tenha total domínio da mesma e seu uso passe a ser constante.
Senhas de nível 5, são compostas de:

i.nome e sobrenome;
ii.nome de rua;
iii.nome de cidades;
iv.nome de objetos pessoais;
v.apelidos e etc.

Abaixo apresento o resultado do teste de força de uma senha nível 5, que obteve  60% de robustez no teste. 
A senha utilizada foi um nome, sobrenome, combinadas com maiúsculas e minúsculas e caracteres de substituição: NilsonMori >>> N1ls0nM0r1


f) Nível 06 – Segurança considerável
Após habituado a uma tabela de substituição própria, passamos a usar palavras que não tenham qualquer relação conosco.
Senhas de nível 6, são compostas de:

i.palavras aleatórias;
ii.palavras com erro de ortografia.

Abaixo apresento o resultado do teste de força de uma senha nível 6, que obteve  70% de robustez no teste. 
A senha utilizada foi uma palavra aleatória, combinada com maiúsculas e minúsculas e caracteres de substituição: Ameixas >>> Am&1x@s


g) Nível 07 – Segurança desejada
Este nível de senhas é recomendado para o uso diário. 
Senhas deste nível são formadas por:

i.palavras compostas;
ii.pequenas frases;
iii.palavras complexas.

Abaixo apresento o resultado do teste de força de uma senha nível 7, que obteve  100% de robustez no teste. 
A senha utilizada foi uma palavra composta, combinada com maiúsculas e minúsculas e caracteres de substituição: Toque Mágico >>> T0qu&M@g1c0.


2.3.3 Método de avaliação
As senhas criadas nos sete níveis foram submetidas a uma avaliação de segurança através do The Password Meter5, este sistema avalia questões relevantes na criação de senhas, tais como.

a)quantidade de caracteres utilizados na senha, recomenda-se no mínimo oito caracteres;
b)utilização de maiúsculas e minúsculas, intercaladas entre elas, não é recomendado uma sequência de maiúsculas ou de minúsculas;
c)utilização de números, é sugerido que fiquem intercalados entres as letras, para evitar sequências que façam sentido ou referente datas e números de documentos;
d)utilização de caracteres especiais, pois os tais dificultam a descoberta da senha por meios de ataque de força bruta.

Podem ser encontrados diversos outros sistemas para métrica de senhas na internet, uma pequena busca trará ótimos resultados.
Recomendo que usem tais mecanismos para testar as senhas criadas a partir desta metodologia, avaliando assim se suas senhas estão em padrão aceitável.


3. CONCLUSÃO

A senha é uma das formas de identificação do mundo virtual. E tem uma grande importância. “Uma senha (password) na Internet, ou em qualquer sistema computacional, serve para autenticar o usuário, ou seja, é utilizada no processo de verificação da identidade do usuário, assegurando que este é realmente quem diz ser.” (CERT.br. Cartilha de Segurança para Internet, 2006, p. 2).
Muitas vezes o usuário não consegue idealizar catástrofes que possam acontecer devido o empréstimo de sua senha para outrem. Quando alguém lhe solicita sua senha pode estar com as melhores intenções, porém em outro momento tal pessoa pode utilizar sua senha para benefício próprio sem seu consentimento. 
Caso seja necessário o empréstimo de seu login para determinada atividade por uma terceira pessoa, primeiramente mude a senha para nível 3, e após o uso determinado mude novamente a senha para nível 7. Jamais informe suas senhas de nível 5 em diante, pois assim outrem passará a conhecer sua tabela de substituição facilitando uma possível tentativa de desvendar sua senha. Utilize senhas distintas para cada tipo de sistema, pois caso sua senha seja revelada através de técnicas de keylogger6 ou outro método você apenas terá comprometida parte de suas informações. Por fim mude suas senhas regularmente, assim teremos um nível de segurança satisfatório.
Um ditado popular diz “mulher, arma e cavalo de andar, nada de emprestar”, pois bem, adicionaremos neste contexto a senha por ter igual particularidade.


REFERÊNCIAS


MITNICK, Kevin D; William L. Simon. O elo mais fraco da segurança. In: ______. A arte de enganar: Ataque de Hackers: Controlando o Fator Humano na Segurança da Informação. Tradução: Kátia Aparecida Roque; revisão técnica: Olavo José Anchieschi Gomes. São Paulo: Pearson Education do Brasil, 2003. p. 3-9.

CERT.br. Conceitos de Segurança. In: ______. Cartilha de Segurança para Internet, versão 3.1 / CERT.br. São Paulo: Comitê Gestor da Internet no Brasil, 2006. p. 1-12.

HINZ, Marco A. M. História e fundamentos da criptografia. In: ______. Um estudo descritivo de novos algoritmos de criptografia. Pelotas: Universidade Federal de Pelotas, 2000. p.  14-15.


-------------------------------------------------------------
[1]Conceito de computação em nuvem, referindo-se a utilização de servidores disponíveis na internet, podendo ser acessados de qualquer parte do planeta.

[2]Credenciais de acesso, par formado por usuário mais senha.

[3]Sequência de bits gerada em hexadecimal através de algoritmos de dispersão.

[4]Sensível ao tamanho, referindo-se a maiúsculas e minúsculas na definição de variáveis.

[5]Aplicação projetada para avaliar a complexidade de uma senha, disponíveis em http://www.testedesenha.com.br.

[6]Praga virtual tipo spyware, cuja finalidade é monitorar todas as teclas digitadas pela vítima.




Um comentário: