terça-feira, 24 de novembro de 2009

Política de senhas

Este é um dos posts mais importantes deste blog, senão o mais importante. Para trabalhar seguramente no mundo digital, é imprescindível o uso de "boas senhas" e por boas senhas, subentende-se "senhas seguras e fortes". Ainda não fui claro o suficiente? Certo, vou procurar ser mais claro no decorrer desse artigo. 


1- Senhas que JAMAIS devem ser utilizadas

NUNCA, e quando eu digo NUNCA eu quero dizer na verdade "'NUNCA, NUNCA, NUNCA MESMO" utilize senhas como:

- nomes de pais / filhos / esposas / amigos;
- sobrenomes;
- datas de aniversários;
- números de telefones;
- números de documentos (RG, CPF, etc...);
- placas de automóveis;
- nomes de agremiações esportivas;
- animais de estimação;
- conjuntos musicais;
- nomes dos seus artistas preferidos;
- palavras contidas em dicionários (mesmo as estrangeiras);

Se você é um cara aficcionado por futebol por exemplo, que vive falando que o Grêmio Football Porto Alegrense é seu time do coração, certamente uma das tentativas mais banais de quebrar sua senha seria "gremio". Lembre-se que as pessoas estão sempre sendo observadas. Seria facilitar muito a vida do atacante utilizar senhas desse tipo.


2 - Sobre a quantidade de caracteres das suas senhas

Antes de analisarmos como criar senhas fortes, vamos "viajar" um pouco sobre o comprimento da suas senhas. Imagine a seguinte situação:

O serviço que você irá utilizar na Internet te permite criar uma senha "numérica". Logo:

Senha numérica [0,9] = 10 algarismos possíveis [0,1,2,3,4,5,6,7,8,9]
senha 1 dígito: _         10^1 = 10 possibilidades de criar uma senha
senha 2 dígitos: _ _    10^2 = 100 possibilidades de criar uma senha
senha 3 dígitos: _ _ _  10^3 = 1000 possibilidades de criar uma senha
senha n dígitos:          10^n = "n" possibilidades de criar uma senha

Ou seja, quanto mais caracteres tiver sua senha, mais dificuldade um atacante terá para quebrá-la.

(Note que 10^1 = 10 elevado a 1; 10^2 = 10 elevado a 2; 10^n = 10 elevado a "n")

Agora considere que o serviço que você irá utilizar te permite criar uma senha "alfanumérica" com:
- números [0-9] = [0,1,2,3,4,5,6,7,8,9]   (10 algarismos)
- minúsculas [a-z] = [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]  (26 algarismos)
- maiúsculas [A-Z] = [A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z] (26 algarismos)
- símbolos = !@#$%^&*()-_+=^´[]{}|\:;'<>,.?/   (34 algarismos)

Teríamos então, 96 caracteres possíveis, para criar uma senha. Na prática, se tivermos uma senha com 10 caracteres (o que não é lá assim tão difícil de criar e memorizar como veremos adiante), podemos fazer a relação abaixo:  ( considerando que Cálculo = número de algarismos possíveis ^ número de caracteres da senha):

Conj. caracteres|Algarismos|Cálculo|Combin. possíveis
Números                  10          10^10    10.000.000.000
Maiúsculas               26           26^10   141.167.095.653.376
Minúsculas               26           26^10   141.167.095.653.376
Símbolos                  34           34^10   2.064.377.754.059.780
Núm+Mai                 36           36^10   3.656.158.440.062.980
Núm+Mai+Min          62           62^10   839.299.365.868.340.000
Núm+Mai+Símb        70           70^10   2.824.752.490.000.000.000
Todos                      96           96^10   66.483.263.599.150.100.000

Logo, chegamos a conclusão que quanto maior o conjunto de caracteres que você puder utilizar (números, letras maiúsculas, minúsculas e símbolos), mais seguras elas serão.

Vejamos no item 3 um exemplo.

3 - Criando senhas difíceis de descobrir, porém fáceis de lembrar

Uma boa política para criar suas senhas, é montar uma frase que você irá se lembrar, usando apenas as primeiras letras das palavras. Dessa maneira, a frase:  Meu vizinho João, 87, gosta bastante de limonada. vira MvJ,87,gbdl. Note que essa senha é de fácil memorização, utiliza números, letras maiúsculas, minúsculas,  símbolos, possui 12 caracteres de comprimento (além de não ser uma palavra que se encontre em um dicionário). Logo, 96 possibilidades em 12 posições, resultam em 612.709.757.329.767.363.772.416 combinações possíveis para alguém tentar quebrar essa senha por força bruta.

Para termos uma idéia do que isso significa, vamos considerar o simpatico IBM Blue Gene L, cuja foto segue abaixo.


Este "monstrinho" tem memória RAM de 32.000 GB e 65.536 processadores. Seu recorde de processamento é de 280,6 teraflops (280,6 trilhões de cálculos por segundo). Situa-se no Lawrence Livermore National Laboratory na California, Estados Unidos e é utilizado em projetos de produtos nucleares. O tempo estimado para o Blue Gene L quebrar a senha MvJ,87,gbdl. é de 69 anos, 141 dias, 22 horas, 58 minutos e 53 segundos ;o). Isso é claro, se você tiver acesso a uma máquina como essa e beneficiar-se de todo o seu poder de processamento.
Neste exemplo a questão crucial é: qualquer senha pode ser quebrada pelo método de força bruta (testando-se todas as possibilidades possíveis), pois como afirmei anteriormente, 100% de segurança não existe, principalmente quando o processo depende de seres humanos para ser funcional (uso de senhas, por exemplo); o problema é descobrir a senha em tempo hábil para poder beneficiar-se dela. Se alguém conseguir descobrir sua senha daqui há 69 anos, convenhamos que isto é tempo suficiente para você já tê-la trocado certo? ;o).


 4 - Tenha uma política pessoal de senhas

Aqui seguem algumas questões importantes que devem ser consideradas no uso de suas senhas.

- Uma das vantagens dos sistemas biométricos é que você não pode emprestar um dedo ou um olho para terceiros, logo, o processo é mais seguro (apesar da biometria também ter problemas de segurança inerentes ao seu uso). Para uma boa política pessoal de senhas, tenha em mente que de nada adianta uma empresa investir pesado em segurança e educar/incentivar os usuários a criarem boas senhas se você a emprestará para Fulano e Beltrano fazerem compras com seu cartão ou utilizarem suas credenciais de acesso. Lembre-se, assim como olhos e dedos, as senhas são pessoais e intransferíveis (a não ser que você seja doador ;o)).

- Evite pedir ajuda a pessoas que não estão envolvidas no processo. Assim como você não pede ajuda a pessoas estranhas nos caixas eletrônicos (ou pelo menos não deveria pedir), procure sempre o administrador da rede ou profissional responsável em caso de dúvidas ou extravio de sua senha.

- Altere suas senhas com certa regularidade. De 6 em 6 meses para tarefas pessoais é uma boa pedida. Algumas empresas que trabalham com missões críticas exigem alterações com menor intervalo. Mas seja qual for o seu caso, é importante criar este hábito para evitar transtornos futuros.

- Se o serviço em questão permitir, procure utilizar senhas de no mínimo 10 dígitos e alfanuméricas;


P.S.1: apesar de ser óbvio, ressalto que a senha MvJ,87,gbdl. deixa de ser uma senha segura por ter sido utilizada como exemplo nesse artigo. Não use-a.
P.S.2: você pode conferir a lista dos computadores mais rápidos do mundo em: www.top500.org
P.S.3: a estimativa de tempo de quebra da senha pelo Blue Gene L foi calculada utilizando-se o software "Password Recovery Time Simulator", que é um programa que permite definir a capacidade de processamento de um computador e descobrir em quanto tempo em média uma determinada senha possa ser quebrada pelo método de força bruta. Esse software pode ser baixado em: http://superdownloads.uol.com.br/redir.cfm?softid=30795

Nenhum comentário:

Related Posts Plugin for WordPress, Blogger...