terça-feira, 19 de agosto de 2014

Proteja sua senha do Ghost com criptografia


No post anterior, ensinei a instalar o Ghost na nuvem. Hoje abordarei uma configuração importante após finalizar o processo de instalação. Cada vez que você digita sua senha para ter acesso ao painel administrativo de seu blog, o navegador envia essa senha para o seu servidor, para que ele autentique seu acesso ao sistema. Se você não utiliza nenhuma criptografia nesse processo, seu navegador irá enviar a senha em formato texto puro (“plain text”), o que significa que, qualquer um poderá ver sua senha, caso esteja utilizando uma técnica chamada de “sniffing”. Isso é particularmente problemático caso esta pessoa esteja na mesma rede que você, principalmente em locais com acesso wifi público, como cafeterias, lan-houses, etc.

Por isso mesmo, é essencial ativar a criptografia SSL/TLS na tela de login de seu site Ghost, fazendo com que o envio da senha ocorra de forma criptografada. Para isso, você precisará de um certificado SSL. Há diversos fornecedores no mercado e os preços variam bastante. Na prática, todos eles fornecem o mesmo nível de segurança, independente de quem tenha vendido o certificado para você. O maior diferencial se encontra nas classes (1, 2, 3) dos certificados que podem ser adquiridos.

Há também a possibilidade de criar um certificado auto-assinado ou mesmo de adquirí-lo sem nenhum custo em instituições como a CaCert. O único problema é que alguns navegadores não possuem o certificado raiz da CaCert instalado por padrão, o que faz com que o navegador exiba aquela tela de “site inseguro”, ao acessar uma página com “https” com esses certificados. O mesmo acontece com os certificados auto-assinados.

Exemplo de aviso no Chrome
Exemplo de certificado inseguro no Chrome
Exemplo de aviso no Firefox
Exemplo de alerta de certificado no Firefox

No meu caso, optei por utilizar SSL apenas na tela de login, de forma a proteger o envio da senha sem comprometer a carga no servidor. Como não temos o objetivo de utilizar o certificado para checar a autenticidade do site, não haveria problema em utilizar um certificado autoassinado ou emitido pela CaCert. No nosso caso, um certificado classe 1 é mais do que suficiente, e normalmente permite sua utilização nas versões nossodominio.com.br e www.nossodominio.com.br.
Também não abordarei aqui a criação do certificado, mas sua instalação e configuração no Ghost. Mãos há obra!

Instalação do certificado


A está altura você já deve ter 2 arquivos (um do certificado e outro da chave) com diferentes extensões: meusite.crt e meusite.pem. Nomeie os arquivos de forma a identificar para qual site eles pertencem, isso será útil caso você tenha mais de um site instalado no mesmo servidor.

Crie a pasta /etc/nginx/ssl e salve os arquivos nela. Eu costumo utilizar sftp por considerar mais simples e seguro do que um ftp convencional. Depois que os arquivos estiverem salvos nesta pasta, é hora de habilitar o tráfego https no Nginx.

  • Abra o arquivo de configuração com o editor da sua preferência (eu costumo usar o vim, mas você pode usar o nano):
    vim /etc/nginx/sites-available/default
  • Encontre a seção entitulada “HTTPS server” que encontra-se toda comentada.
  • Retire os # do início da linha e edite as configurações de forma que elas fiquem semelhantes ao exemplo abaixo:


server {
    listen 443 ssl;
    server_name SEUDOMINIO.com.br www.SEUDOMINIO.com.br;
    root html;
    index index.html index.htm;

    ssl_certificate /etc/nginx/ssl/SEU_CERTIFICADO.crt;
    ssl_certificate_key /etc/nginx/ssl/SUA_CHAVE.pem;

    ssl_session_timeout 15m;

    ssl_protocols SSLv3 TLSv1.2;
    ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
    ssl_prefer_server_ciphers on;

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass       http://127.0.0.1:2368;
    }
}


Atente à substituição do endereço do seu domínio no campo server_name e no nome dos arquivos .pem e .crt que você salvou no diretório /etc/nginx/ssl. Eu também me limitei a utilizar apenas as versões mais recentes dos protocolos SSL e TLS. Agora basta reiniciar o Nginx:

# sevice nginx restart

Configuração do Ghost


Depois de configurado nosso servidor web, é a vez de dizermos ao Ghost que ele deve utilizar o protocolo https para a tela de login. Fazemos isso editando o arquivo config.js que no nosso caso, encontra-se na pasta /var/www. Par isso basta acrescentar a opção forceAdminSSL: true, dentro da seção production.

Depois de salvar o arquivo, reinicie o Ghost. Ao acessar a URL seudomínio.com.br/ghost você verá que a requisição será redirecionada para o tráfego HTTPS e o navegador normalmente exibirá um cadeado ao lado do endereço. Pronto! Sua tela de login já está bem mais segura do que anteriormente.

domingo, 3 de agosto de 2014

O Garoto da Internet: a história de Aaron Swartz

Acabei de assistir o documentário "The Internet's Own Boy", que tem como tema a história de Aaron Swartz e seu fim trágico. O filme é muito interessante e faz com que você entenda toda a comoção em torno de sua morte.

Aaron foi um garoto prodígio que aprendeu a ler com 3 anos de idade, tornou-se um dos autores da especificação do RSS aos 14 anos, contribuiu com o Creative Commons aos 16, fundou o Reddit, virou um ativista político, tendo estado inclusive diretamente ligado ao combate aos projetos das leis SOPA e PIPA, vindo a tirar a própria vida aos 27 anos.

Como foi amplamente divulgado na época de sua morte, ele estava sendo acusado por diversos crimes ligados a sua tentativa de baixar um banco de dados de artigos acadêmicos que cobrava pelo acesso aos dados.

O filme mostra como um sistema judiciário perverso pode distorcer a democracia e ter consequências trágicas sobre a vida de indivíduos simples como Aaron, eu, você ou qualquer um de nós. A obra me fez refletir sobre como a deterioração das nossas instituições políticas está sendo capaz de produzir um desgaste sobre os fundamentos sobre os quais construímos a nossa sociedade e a própria democracia e do quão perigoso isso pode ser. Ao menos o fato dos incidentes que resultaram na trágica morte  de Aaron terem dado origem ao próprio documentário e a lei Aaron Swartz que reformou uma lei caduca de 1986, a qual foi responsável pela maior parte dos crimes pelos quais ele foi acusado, mostra que a sociedade americana, ao menos busca formas de mitigar e resolver os problemas e as injustiças que deste fato ocorreram.

Isso me fez pensar no que aconteceria caso essa história tivesse ocorrido aqui, onde mesmo depois de toda pressão popular que tivemos pela aprovação da lei da Ficha Limpa, ainda não conseguimos sua aplicação prática de fato, sendo somos obrigados a aceitar interpretações e argumentos jurídicos que só beneficiam aqueles que possuem uma longa ficha corrida e que deveriam estar bem longe do centro do poder, mas que contraditoriamente lá se encontram.

O filme pode ser baixado legalmente nas redes bittorrent ou assistido online através do Vimeo. Se você gostar e quiser agradecer os realizadores, pode fazer uma doação.


Além disso, me chamou a atenção o "Guerrilla Open Access", um manifesto em prol do livre acesso ao conhecimento que Aaron escreveu em 2008 e que eu desconhecia. Pensei em traduzir seu conteúdo, por achá-lo muito eloquente, porém uma rápida busca me revelou algumas fontes já traduzidas. Reproduzo aqui então a versão que encontrei no site BaixaCultura, pois acredito que o conteúdo do manifesto devesse ser lido pelo maior número de pessoas possível:


“Informação é poder. Mas, como todo o poder, há aqueles que querem mantê-lo para si mesmos. A herança inteira do mundo científico e cultural, publicada ao longo dos séculos em livros e revistas, é cada vez mais digitalizada e trancada por um punhado de corporações privadas. Quer ler os jornais apresentando os resultados mais famosos das ciências? Você vai precisar enviar enormes quantias para editoras como a Reed Elsevier.

Há aqueles que lutam para mudar esta situação. O Movimento Open Access tem lutado bravamente para garantir que os cientistas não assinem seus direitos autorais por aí, mas, em vez disso, assegura que o seu trabalho é publicado na internet, sob termos que permitem o acesso a qualquer um. Mas mesmo nos melhores cenários, o trabalho deles só será aplicado a coisas publicadas no futuro. Tudo até agora terá sido perdido.

Esse é um preço muito alto a pagar. Obrigar pesquisadores a pagar para ler o trabalho dos seus colegas? Digitalizar bibliotecas inteiras mas apenas permitindo que o pessoal da Google possa lê-las? Fornecer artigos científicos para aqueles em universidades de elite do Primeiro Mundo, mas não para as crianças no Sul Global? Isso é escandaloso e inaceitável.

“Eu concordo”, muitos dizem, “mas o que podemos fazer? As empresas que detêm direitos autorais fazem uma enorme quantidade de dinheiro com a cobrança pelo acesso, e é perfeitamente legal – não há nada que possamos fazer para detê-los. Mas há algo que podemos, algo que já está sendo feito: podemos contra-atacar.

Aqueles com acesso a esses recursos – estudantes, bibliotecários, cientistas – a vocês foi dado um privilégio. Vocês começam a se alimentar nesse banquete de conhecimento, enquanto o resto do mundo está bloqueado. Mas vocês não precisam – na verdade, moralmente, não podem – manter este privilégio para vocês mesmos. Vocês têm um dever de compartilhar isso com o mundo.  E vocês têm que negociar senhas com colegas, preencher pedidos de download para amigos.

Enquanto isso, aqueles que foram bloqueados não estão em pé de braços cruzados. Vocês vêm se esgueirando através de buracos e escalado cercas, libertando as informações trancadas pelos editores e as compartilhando com seus amigos.

Mas toda essa ação se passa no escuro, num escondido subsolo. É chamada de roubo ou pirataria, como se compartilhar uma riqueza de conhecimentos fosse o equivalente moral a saquear um navio e assassinar sua tripulação. Mas compartilhar não é imoral – é um imperativo moral. Apenas aqueles cegos pela ganância iriam negar a deixar um amigo fazer uma cópia.

Grandes corporações, é claro, estão cegas pela ganância. As leis sob as quais elas operam exigem isso – seus acionistas iriam se revoltar por qualquer coisinha. E os políticos que eles têm comprado por trás aprovam leis dando-lhes o poder exclusivo de decidir quem pode fazer cópias.

Não há justiça em seguir leis injustas. É hora de vir para a luz e, na grande tradição da desobediência civil, declarar nossa oposição a este roubo privado da cultura pública.

Precisamos levar informação, onde quer que ela esteja armazenada, fazer nossas cópias e compartilhá-la com o mundo. Precisamos levar material que está protegido por direitos autorais e adicioná-lo ao arquivo. Precisamos comprar bancos de dados secretos e colocá-los na Web. Precisamos baixar revistas científicas e subi-las para redes de compartilhamento de arquivos. Precisamos lutar pela Guerilla Open Access.

Se somarmos muitos de nós, não vamos apenas enviar uma forte mensagem de oposição à privatização do conhecimento – vamos transformar essa privatização em algo do passado. Você vai se juntar a nós?

Aaron Swartz

Julho de 2008, Eremo, Itália.

Comente clicando!