Skip to main content

Como criar senhas seguras

Um recente ataque de um grupo de hackers / crackers organizados resultou no vazamento de 62 mil senhas do writerspace. Isto mostra a fragilidade de alguns sites no que se refere a manter o sigilo e segurança dos dados de seus usuários. Mostra, também, a falta de cuidado de grande parte dos usuários no momento de criarem suas senhas.

123mudar
Senhas fracas são porta de entrada para ataques cibernéticos.

Uma análise das senhas vazadas (em inglês) demonstra que de nada adianta servidores de internet super seguros se o usuário não dá a devida importância à criação de senhas seguras. Utilizar sequências numéricas simples ou palavras de dicionário é um dos erros mais frequentes na criação de senhas. Por exemplo, veja as 5 senhas mais comuns, dentre as 62 mil, reveladas pela análise citada:

  1. "123456" foi utilizada 558 vezes;
  2. "123456789" foi utilizada 181 vezes;
  3. "password" ("senha", em inglês) foi utilizada 132 vezes;
  4. "romance" foi utilizada 88 vezes;
  5. "102030" foi utilizada 68 vezes.

Outros erros comuns são senhas curtas - a análise demonstra que a extensão de senha média é 7.63 caracteres - e a pouca complexidade das mesmas - feitas somente com letras, ou somente com números, etc. Diante disto, compartilho a seguir algumas dicas para criar senhas mais seguras.

Criando senhas seguras

Para garantir a qualidade de senhas podemos seguir os três fatores já expostos:

  1. Randomização: não utilizar sequências numéricas, palavras de dicionário, dados pessoais como data de nascimento, iniciais, etc;
  2. Extensão: senhas razoavelmente seguras devem possuir entre 12 e 14 (em inglês) caracteres. Quanto mais, melhor;
  3. Complexidade: misturar letras (em caixa alta e baixa), números e símbolos.
Ferramentas

O site random.org é útil para criar senhas randômicas. Sua utilização é simples: devemos informar o número de senhas a gerar e a quantidade de caracteres desejada. Para exemplificar, solicitei a geração de 3 com 14 caracteres cada uma. O resultado foi (AVISO: Não as utilize!!!):

Here are your random passwords:

    crXFEf5HW6gwks
    3rKWwFA9hy6mGq
    9Y6PEZFhUSstTw

Creio que a memorização de senhas assim esteja fora de questão, então podemos anotá-las ou, melhor, utilizar um programa para gerenciá-las, como o KeePass.

Conclusão

Embora a ação de hackers / crackers exponha a fragilidade de servidores web, o ponto mais fraco na cadeia de segurança muitas vezes é o próprio usuário. Por isso, não divulgar dados pessoais na internet e criar senhas de qualidade são ações que podem garantir uma navegação mais segura.

Bandas e twitcam

Aviso: Este post foi recuperado miraculosamente do cachê do google. Foi escrito no antigo blog em agosto de 2010.

Dia 03 de agosto de 2010, acompanhei o ensaio, via twitcam, de uma banda chamada Rockafé, de Maringá/PR, que tem por baixista o @thiagohmelo. Ele, além de baixista da banda, também é responsável pela walbatroz, empresa de desenvolvimento de softwares e websites, junto com o Ricardo Silva, vulgo @pensarics.

Músico que sou - bem, toco guitarra, já fiz parte de banda de Heavy Metal (Hail Defender!), posso me considerar músico, não? - interessa-me acompanhar o uso que músicos fazem das tecnologias e das ferramentas sociais - no caso, twitter e twitcam. Basta um computador com acesso à internet, câmera e um microfone para que uma banda ou músico possam divulgar sua obra via rede mundial de computadores.

Estou expondo um caso de uma banda local, que faz covers, mas ainda assim apresenta uma boa qualidade. Há casos de bandas já consagradas (Sepultura, por exemplo) que se utilizam do mesmo expediente para transmitirem seus shows. E todos acabam se beneficiando: o público, que passa a conhecer boas novas bandas, ou assiste àquelas que já conhece e admira; e os músicos, que divulgam seu trabalho e consolidam sua base de fãs.

Além da questão da divulgação do trabalho artístico, ainda fica evidenciado o contato direto que os músicos passam a manter com seus admiradores. Divulga-se não só a música ou shows, mas também eles podem saber o que seus ouvintes pensam sobre sua obra, tendo um feedback que pode estimulá-los a manter e ampliar sua atuação "virtual".

Músicos, bandas e ouvintes fazendo parte de uma comunidade voltada à produção e apreciação musical, ligados pelas ferramentas que hoje em dia são disponibilizadas pela internet. Democratização da arte e da diversão musical. Espero vivenciar mais vezes músicos que possuem sua mentalidade voltada para esta nova forma de divulgação!

Update: o Thiago escreveu sobre este ensaio do Rockafé. Os vídeos podem ser vistos em seu perfil do twitcam.

Falha no Dropbox e segurança na Web

O serviço de armazenamento de arquivos Dropbox (link de afiliado) sofreu uma grave falha de segurança no dia 19 de junho de 2011. Durante 4 horas qualquer conta do site pôde ser acessada somente informando-se o email de cadastro, sem a necessidade de informar a senha. Após a falha ter sido descoberta, foi corrigida em 4 minutos. Os proprietários das contas acessadas no período (cerca de 1%) já foram contactados pelos criadores do serviço.

Unplug for safety
Unplug for safety: A solução para segurança na internet é não usar a internet.

Casos assim fazem-nos refletir sobre a segurança de nossos dados na web. Usamos emails, comunicadores instantâneos, buscadores e outros serviços disponibilizados online. Ao utilizá-los, concordamos em fornecer dados pessoais como nome completo, localização, preferências pessoais, etc. Ao trocarmos emails com outras pessoas, enviamos fotos, endereços, telefones e outras informações que, pensamos, só podem ser acessadas pelo destinatário do email.

A verdade é que dificilmente alguma informação colocada na internet estará 100% segura. Você utiliza algum serviço do google (como o gmail) ou da Microsoft (como o Hotmail)? Já leu os termos de serviço destas empresas? Se não, veja o que diz os termos de serviço do Google:

14.3 ESPECIFICAMENTE, O GOOGLE, AS SUAS SUBSIDIÁRIAS E LICENCIADORES NÃO GARANTEM QUE:
[...]
(B) O USO DOS SERVIÇOS SERÁ ININTERRUPTO, PONTUAL, SEGURO E ISENTO DE ERROS;

Agora, os termos de serviço da Microsoft:

Fornecemos o serviço "no estado em que se encontra", "com todas as falhas" e "conforme disponível". Não garantimos a precisão ou a atualidade das informações disponíveis do serviço. Você reconhece que os sistemas de computador e telecomunicações não estão livres de falha, e podem ocorrer períodos eventuais de tempo de inatividade. Não garantimos que o serviço será ininterrupto, atualizado, seguro ou sem erros, ou que não ocorrerá perda de dados. [...]

Declarações semelhantes podem ser encontradas no Facebook, no próprio Dropbox ou em qualquer outro serviço online. E nós concordamos com estes termos cada vez que fazemos um cadastro em um novo site / serviço.

Diante disto, qual solução podemos encontrar para a segurança de nossos dados? Para os paranóicos, com certeza é desplugar-se completamente da internet. Particularmente sugiro: bom senso naquilo que enviamos e compartilhamos na internet, tendo-se sempre em mente que nunca estaremos seguros; e aprender um pouco sobre criptografia de dados.

Blogofile e Git

O Blogofile é um sistema de gerenciamento de conteúdo, desenvolvido em Python e que utiliza a biblioteca Mako para o sistema de templates, podendo ser usado em conjunto com o Git para controle de versão. Ele compila arquivos escritos em diferentes linguagens de marcação - como rst e Markdown, só para citar dois exemplos - para arquivos xHTML válidos. É utilizado para gerenciar sites e blogs, com a vantagem de produzir arquivos estáticos que não dependem de base de dados ou de alguma linguagem instalada no servidor para geração de páginas dinâmicas. Quando utilizado para gerar blogs, utiliza o Disqus como gerenciador comentários.

Instalação em sistemas Debian

Os seguintes passos descrevem a instalação do Blogofile e do Git num servidor remoto, que também deverá ter algum servidor web instalado para servir as páginas xHTML geradas pelo programa.

A instalação do Blogofile pode ser simplificada ao utilizarmos o pacote setuptools, que gerencia a instalação de bibliotecas python. Os seguintes comandos instalam o setuptools, o git e o Blogofile com todas suas dependências:

$ sudo aptitude install setuptools
$ sudo aptitude install git-core
$ sudo easy_install -U blogofile

Com isto feito, podemos iniciar um blog simples numa pasta vazia no diretório $HOME do usuário:

$ mkdir $HOME/blogofile
$ cd $HOME/blogofile
$ blogofile init simple_blog

O comando blogofile init simple_blog cria alguns arquivos e pastas que podem ser editados para criar um site ou blog. Neste último caso, os posts ficam na pasta _posts e devem possuir o formato nome-do-post.linguagem-de-marcação. Após criarmos páginas ou posts, podemos gerar os arquivos estáticos, que ficam armazenados na pasta _site:

$ blogofile build

Configuração

Após o processo de instalação no servidor remoto, devemos configurar o git para iniciar um repositório na pasta do blog ou site para que possamos editar os arquivos num computador local. No computador local, podemos configurar o blogofile por meio do arquivo _config.py, criar páginas ou posts, editar o estilo CSS e adicionar imagens para, finalmente, gravar as alterações locais no servidor remoto.

Configurando o Git

A configuração do Git descrita nesta seção possibilita a geração automática de arquivos estáticos após cada push do computador local para o remoto. No computador remoto, devemos inicialmente criar um arquivo de configuração do usuário ($HOME/.gitconfig) com o seguinte conteúdo:

[user]
    name = Nome do usuário
    email = nomedousuario@dominio.com

Agora, podemos iniciar o repositório e adicionar os arquivos:

$ cd $HOME/blogofile
$ git init
$ git add .
$ git commit -m "Commit Inicial"

A parte mais importante do processo é a criação do arquivo post-receive, que deve ser gravado na pasta $HOME/blogofile/.git/hooks/ com o seguinte conteúdo:

#!/bin/sh
unset GIT_DIR
cd $HOME/blogofile
git reset --hard
/usr/local/bin/blogofile build

Também devemos torná-lo executável:

$ chmod +x $HOME/blogofile/.git/hooks/post-receive

Este arquivo será executado após cada push, gravando as mudanças nos arquivos do repositório e chamando o comando blogofile build que cria as páginas estáticas.

Ainda na máquina remota, devemos configurar o git para aceitar as mudanças diretamente no branch MASTER. Este comportamento é aceitável num único repositórios com um único usuário, não devendo ser aplicado em repositórios que possuam mais de um usuário ou que sejam idealizados para possuir vários branches. Para tanto, adicionamos as seguinte linhas no arquivo $HOME/blogofile/.git/config:

[receive]
    denyCurrentBranch = ignore
Configurando o Blogofile

Agora podemos começar a trabalhar na máquina local ao clonarmos o repositório remoto. Com isto, podemos trabalhar localmente e só enviar as mudanças para o computador remoto quando as configurações, páginas ou posts estiverem prontos. Para clonar o repositório remoto:

$ git clone ssh://nome-do-usuário@máquina-remota:porta/caminho-do-repositório

O comando trará todos os arquivos remotos para a máquina local. Podemos, então, configurar o blogofile, editando o arquivo _config.py localmente. Algumas variáveis deste arquivo que podemos personalizar:

# URL do site ou blog
site.url = ""
# Nome do site ou blog
blog.name = "" 
# Descricao do site ou blog
blog.description = "" 
# Zona horaria de Sao Paulo
blog.timezone = "America/Sao_Paulo" 
# numero de posts por pagina
blog.posts_per_page = 5 
# Habilita Permalinks automaticos
blog.auto_permalink.enabled = True 
# Formato do permalink. Neste caso, indicamos para o blogofile que
# desejamos somente o titulo do post no permalink
blog.auto_permalink.path = "/:title" 
# Habilita comentarios do disqus
blog.disqus.enabled = True
# Nome de usuario do disqus
blog.disqus.name = ""
# Desabilita pagina inicial customizada. Util no caso de blogs
# instalados diretamente na raiz do site
blog.custom_index = False

Criando Posts

Podemos criar posts no blogofile utilizando várias linguagems de marcação, como rst, markdown e até mesmo html. É importante que o título do arquivo contenha como "extensão" o nome da linguagem de marcação. O seguinte exemplo contém o código que foi utilizado para criar o primeiro post deste blog (nomeado 1. Primeiro Post.markdown):

---
title: Primeiro Post
categories: Pessoal
date: 2011/06/11 17:10:00
tags: teste, dummy
---
Este é o **primeiro** post deste blog, apenas para servir de template
para os posteriores.
![Hello World](/images/hello.png "Hello World!")

Nele utilizei as variáveis title, categories e date para indicar ao blogofile, respectivamente, o título, a categoria e a data de criação do post. O uso da variável tags é opcional.

Para enviar as mudanças de configuração e algum post:

$ git add _posts/nome-do-post.extensão
$ git commit -a -m "Insere post e configuração do _config.py"
$ git push origin master

Conclusão

O blogofile é um gestor de conteúdo indicado para ser utilizado em servidores de baixos recursos de memória ou processamento, pois cria blogs e sites estáticos que não necessitam de base de dados ou de linguagens de programação para geração de páginas dinâmicas. Além disso, permite a customização tanto das páginas e estilos do site como também da lógica por trás da geração dos conteúdos via modificação ou criação de scripts python.