Mozilla BrowserID: Mais um mecanismo de login

You can see this post in english too.

Recentemente testei o mecanismo de autenticação lançado pela Mozilla em Julho/2011.

À primeira vista, a idéia é excelente e simples. Oferece uma alternativa fácil de ser implementada, segura, portável e descentralizada. É mais uma alternativa para o OpenID e ao oAuth, com a vantagem de que praticamente todos possuem uma conta de e-mail e por isso lidam com estas de forma muito mais natural.

Em sua proposta, a Mozilla Labs sugere que a autenticação seja de primeiro fator utilizando quaisquer endereço de e-mail do usuário como sua identidade. Reza também que a autenticação seja descentralizada e baseada em servidores de e-mail, ao invés de domínios e websites. Este método libera as aplicações de guardar os atributos de login e senha dos usuários, e os usuários de guardar o usuário/senha para cada serviço na web que utilizem.

A implementação

Implementação
  • A especificação pode ser lida aqui;
  • Utiliza sistema de chaves pública/privada;
  • O navegador do usuário gerencia os artefatos de autenticação localmente (todos acessíveis via DOM com [window|session].localStorage), ou seja, nada relacionado a certificados ou dispositivos de segurança;
  • O pop-up de autententicação é implementado em HTML5.

Prós

Prós
  • Facilidade de implementação;
  • Tempo de vida curta para as chaves pública/privada (são apenas algumas horas);
  • Troca de dados via JSON.

Contras

Contras
  • Ainda é de primeiro fator;
  • Revela o endereço de e-mail do usuário para o website que está autenticando-o. Não é um efeito colateral ou algo não esperado, informar o endereço de e-mail para o website é uma decisão de arquitetura tomada pelo pessoal da Mozilla Labs e explicada por Ben Adida. O OpenID aqui leva vantagem pois não revela os endereços de e-mail do usuário;
  • Não existe uma forma de realizar logout, ele deve ser feito do lado da aplicação invalidando os dados de sessão;
  • A usabilidade do recurso me incomoda em alguns pontos, como disparar um janela pop-up e o processo adotado quando trata-se da primeira vez do usuário.
  • Outro ponto incômodo é sobre a descentralização. Se há mais de um ponto autenticador, como a autenticação funcionará quando o usuário navegar em duas aplicações com pontos autenticadores diferentes?

Conclusão

A idéia é excelente, a minha primeira sensação foi de “É só isso?” de tão simples que é. Apesar de ter apresentado mais contras do que prós sinto que disponibilizaria mais esta forma de login se tivesse a chance. Torço para que existam mais autenticadores para fazer valer o efeito da descentralização.

Só é preciso lembrar que este mecanismo é apenas uma parte do processo: a autenticação. O trabalho de identificação e autorização do usuário ainda deve ser realizado pela aplicação.

Quer testar?

Testei o mecanismo na minha garagem virtual (é sua inauguração também, meus testes poderão ser testados “ao vivo” neste local). Além de minha garagem, a Mozilla oferece o website MyFavoriteBeer onde o login já utiliza este recurso.

Posted in Português | Tagged , , , , | 1 Comment

ZCE 5.3 – Certificação Zend: Minha feliz experiência

You can see this post into english too.

Todos ficaram sabendo que obtive a certificação da Zend (ZCE 5.3). Fiquei bastante feliz com o resultado e com as congratulações recebidas, obrigado gente.

Aplausos!

Aplausos!

Deixarei aqui minha impressão sobre a prova, e sobre o que fiz para obter a certificação.

A PROVA

  • Fique calmo, a prova nem é tão difícil! Acho que o único ponto importante é que você deve ser um programador PHP, utilizá-lo no dia-a-dia, e de alguma forma (seja no trabalho ou em seus projetos pessoais) estar em contato com itens como closures, namespaces e OOP;
  • Não deixe questões em branco! Segundo o próprio pessoal da Zend, é melhor errar do que deixar de responder;
  • Com certeza a prova irá além do dia-a-dia da grande maioria dos programadores PHP. Então estude. Matemática binária / hexadecimal / octal é uma ótima pedida;
  • O teste para a versão 5.3 removeu todas as questões referentes às diferenças entre PHP 4 e 5. Então não perca tempo estudando-as;
  • O teste é cheio de armadilhas, coisas como:
    <?php
    $a = function($var)
    {
       $b = "Hello $var";
       return $b;
    }
    $c = $a('Adriano');
    print $c;
    ?>
    são normais. E se acha que este código imprime ‘Hello Adriano’, você tem um problema… rs…;
  • Faça várias leituras nas páginas String functions e Array functions, isso lhe garantirá uns pontos extras na prova;
  • Serão aproximadamente um minuto e 14 segundos por questão. Ganhe tempo lendo as questões conceituais somente uma vez. Utilize o recurso de “flag” que a prova disponibiliza para retornar à questão mais tarde;
  • Você terá um ano para realizar a prova após confirmar a compra do voucher. É bastante tempo, por isso sugiro que faça a compra e marque a prova para forçar-lhe a estudar com uma data limite definida. Todas as instruções para o processo são bem tranquilas (abrir conta no PearsonVue, etc.), apenas certifique-se de que há um centro PearsonVue próximo para realizar a prova.

O PROCESSO ADOTADO

 
Uma breve introdução: Em 2011 tive um grande susto quando comprei o voucher e abri o livro Zend PHP 5.3 Certification Guide: o PHP vai muito além de quase tudo que tinha lido até então. Decidi que deveria ler e testar muito! Foi quando elegi, adquiri e li os livros contidos no final deste post.

Após ver que tinha muito que estudar, esqueci um pouco a prova e decidi que tinha que explorar o PHP, e foi o que fiz. Li os livros, testava os códigos que me pareciam estranhos, fiz muitas (mas muitas!) anotações, e experimentei muito! Admito que foi a fase mais prazerosa de tudo isso. O website do PHP foi o melhor apêndice/anexo durante a leitura dos livros.

Ler os livros me levou muito tempo. Já quase no fim do ano, juntei todas as anotações e rabiscos nos livros e criei um super resumo, agora já com foco para a certificação. Com o resumo pronto, o li novamente. Os pontos em dúvida foram revisitados. Faltando 5 dias para a prova, separei todas as perguntas do livro guia num PDF, respostas em outro e realizei um simulado, permitindo-me somente um minuto e 14 segundos para responder cada questão, e algo entre 10 e 20 questões por dia. A intenção era buscar um “aquecimento” para a prova.

Entre um livro e outro, ouvi os podcasts do PHPSP (sinto muita falta deles!!). O foco deste podcast é PHP, então há dicas valiosas para quem quer fazer a prova. Embora confesso certo desconforto (popular: cagaço!) quando ouvi que o Rafael Dohms não passou na primeira vez que fez o exame. :-

CONCLUSÕES

 
Após essa mega-operação para obter o “The logo”, vi que exagerei na dose desta vez: estudei além do que realmente precisava, mas veja: hoje em dia me sinto um programador muito, mas muito melhor. Só que longe de onde gostaria estar. 😛

The logo - Zend Certified Engineer (PHP 5.3)

"The logo"

Sou recém certificado então não sei de verdade o que ser “ZCE” me trará de bom. Já tive duas boas notícias: ganhei uma licença de Zend Server e outra de Zend Studio por ter passado na prova. Passei a fazer parte de um grupo exclusivo no Linkedin, onde parece que as discussões melhoram de nível. Minha primeira impressão.

Quanto à empregabilidade, torço um pouco o nariz. Compare com uma certificação da Microsoft: você pode competir por uma vaga com uma pessoa que, como você, possui mais de 10 anos de experiência em sistemas. Se você tem um MCSE e ele/ela não, você está à frente. Mas concluir isso implica que a pessoa que realiza a seleção sabe disso. E é aqui que reside minha preocupação: será que os selecionadores e headhunters conhecem a Zend e suas certificações como sabem da Microsoft? Eu duvido. Então se quer se certificar para obter melhor emprego, minha opinião: não sei se funciona. Na dúvida, faça.

Enfim, estou MUITO feliz.

LEITURA RECOMENDADA

  • [Indispensável] Zend. Zend PHP 5.3 Certification. Zend Technologies. 155 páginas. Sem ISBN;
  • Shafik D, Ramsey B. Zend PHP 5 Certification. Study Guide. php|architect’s. 259 páginas. ISBN: 0-9738621-4-9;
  • Alshanetsky L. Guide to PHP Security. A step-by-step guide to writing secure and reliable PHP applications. php|architect’s. 197 páginas. ISBN: 0-9738621-0-6;
  • Sweat J. Guide to PHP Design Patterns. A practical approach to design patterns for the PHP4 and PHP5 Developer. php|architect’s. 338 páginas. ISBN: 0-9735898-2-5;
  • [Indispensável] Gutmans A, Bakken S, Rethans D. PHP 5 Power Programming. Bruce Perens’ Open Source series. Prentice Hall. 720 páginas. ISBN: 0-131-47149-X
  • [Indispensável] Williams J, Wichers D. OWASP Top 10 – 2010. The ten most critical web application security risks. Aspect, Mitre, Softtek, WhiteHat. 22 páginas. Sem ISBN.

Até 😉

Posted in Português | Tagged , , , , | 12 Comments

ZCE 5.3 – Zend Certification: My happy experience

Você pode ler este post em português também.

I’m very happy with the result and with the congratulations received, thank you people.

Applause!

Aplausos!

I wrote here my impression about the test, and what I did to get certified.

THE TEST

  • Calm down, take it easy, the test is not so hard! I think the only important point is that you must be a PHP programmer, using it in day to day, and somehow (at work and/or in your personal projects) being in contact with items as closures, namespaces and OOP in general;
  • Do not leave questions empty! According to Zend’s own staff, is better to make mistakes than show indecision;
  • Surely the test will go beyond the day-to-day which the majority of PHP programmers go. So study a lot. Binary / hex / octal math is a great choice;
  • The test for version 5.3 removed the subject “Differences between PHP 4 and 5”. So do not waste your time studying it;
  • The test is full of pitfalls, so some tricks as:
    <?php
    $a = function($var)
    {
       $b = "Hello $var";
       return $b;
    }
    $c = $a('Adriano');
    print $c;
    ?>
    are normal. And if you think this code prints “Hello Adriano” you have a problem… LOL…;
  • Do several readings on Array functions and String functions pages, it will guarantee to you some extra points;
  • There will be approximately one minute and 14 seconds per question. Save time reading the conceptual questions only once. Use the “flag” feature, that allows you to return to a marked question later;
  • You will have one year to perform the test after confirming the purchase of the voucher. It is a long time, so I suggest you make the purchase and schedule the test to force yourself to study with a set deadline. All instructions for the process are very easy (to create an account at PearsonVue, etc.), just make sure that there is a PearsonVue center near to you to perform the test.

THE PROCESS ADOPTED

 
An introduction: In 2011 I had a big scare when I bought the voucher and I opened the book Zend PHP Certification Guide 5.3: PHP is much more than almost anything I had read so far. I decided I should try and read a lot! So I chose, bought and read the books contained at the end of this post.

After seeing that I would have much to study, I forgot the test and I launched a deep PHP exploration. I read the books, I tested the code that seemed weird, I did many (but many!) notes, and I did lots of experiences! I admit it was the coolest stage of this whole thing. The PHP website was the best appendix while reading the books.

The reading of the books took me a long time. Almost at the end of 2011, I put all that notes and scribbles in books together and I created a summary, focused now in ZCE. With the summary ready, I did read it again. The points in doubts were revisited. Five days before the test, I splitted all questions and answers in different PDFs, then I did perform the test as a simulation, allowing me only one minute and 14 seconds to answer each question, doing something between 10 and 20 questions per day. The intention was to do a “warming” towards the test.

Between one and another book, I listened to the PHPSPCast podcasts (only in brazilian portuguese, I miss them!). The focus of this podcast is purely PHP, so there are valuable tips for anyone who wants to get the certification. Although I confess some discomfort when I heard that Rafael Dohms did not pass the first time he performed the exam. :-

CONCLUSIONS

 
After this mega-operation to get the “The logo”, I concluded that I overdid at this time: I studied more than really needed, but look: now I’m a much better programmer than before. And I feel myself far from where I would like to be. 😛

The logo - Zend Certified Engineer (PHP 5.3)

"The logo"

I’m newly certified then I really don’t know what be a “ZCE” will bring to me. But I’ve had good news: I won licenses for Zend Server and Zend Studio with this good result. I became part of an exclusive group on LinkedIn, where the discussions have an improved level. My first impression.

About employability, I twist my nose a little bit. Compare with a Microsoft certification: you can compete for a job position with a person who, like you, has over 10 years of experience in software branch. If you have a MCSE and he/she does not, you are ahead, brother. But this conclusion implies the recruiter which is conducting the selection knows what MCSE is. And here lies my concern: do the recruiters and headhunters know about ZCE as they know about Microsoft certifications? I doubt it. So if you want to get a better job, my opinion: I don’t know if the ZCE will works for it. At doubt, do the exam.

RECOMMENDED READING

  • [Necessary] Zend. Zend PHP 5.3 Certification. Zend Technologies. 155 pages. ISBN unavailable;
  • Shafik D, Ramsey B. Zend PHP 5 Certification. Study Guide. php|architect’s. 259 pages. ISBN: 0-9738621-4-9;
  • Alshanetsky L. Guide to PHP Security. A step-by-step guide to writing secure and reliable PHP applications. php|architect’s. 197 pages. ISBN: 0-9738621-0-6;
  • Sweat J. Guide to PHP Design Patterns. A practical approach to design patterns for the PHP4 and PHP5 Developer. php|architect’s. 338 pages. ISBN: 0-9735898-2-5;
  • [Necessary] Gutmans A, Bakken S, Rethans D. PHP 5 Power Programming. Bruce Perens’ Open Source series. Prentice Hall. 720 pages. ISBN: 0-131-47149-X
  • [Necessary] Williams J, Wichers D. OWASP Top 10 – 2010. The ten most critical web application security risks. Aspect, Mitre, Softtek, WhiteHat. 22 pages. ISBN unavailable.

 
 
See you 😉

Posted in English | Tagged , , , , | 9 Comments

Como configurar rotas estáticas no Fedora

You can see this post in english too.

Rotas. A única forma que eu gosto de vê-las:

Sinais e Rotas

Recentemente tiver que realizar um acerto na tabela de rotas de um servidor. Descobri um jeito mais elegante que o abaixo:

touch /etc/rc.d/rc.local
echo "touch /var/lock/subsys/local" > /etc/rc.d/rc.local
echo "route add default gw 10.10.0.1 eth0" > /etc/rc.d/rc.local
echo "route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.0.1 eth0" > /etc/rc.d/rc.local

No GNU/Linux Fedora, rotas estáticas podem ser adicionadas em arquivos específicos para cada uma de suas interfaces, localizados em /etc/sysconfig/network-scripts/. O nome do arquivo deve obrigatoriamente ter o formato route-ifname. Então se pretende adicionar uma rota à interface eth0, o nome do arquivo deve ser /etc/sysconfig/network-scripts/route-eth0. Isso é importante, pois um erro aqui não produzirá log em lugar algum.

O formato do arquivo é bem simples, os exemplos abaixo valem mais que a explicação:

#Rota para uma rede:
10.1.0.0/16 via 10.2.0.1

#Rota para um host:
10.1.2.3 via 10.0.0.5

É possível testar suas novas rotas utilizando o comando ifup-routes ifname. Ele adiciona as rotas configuradas nos arquivos acima.

 

Até 😉

Posted in Português | Tagged , , , | 1 Comment

How to configure static routes in Fedora

Você pode ver este post em português também.

Routes. The unique way I like to see them:

Signs and routes

Recently I had to do a fix inside the routing table of a server. I’ve found out a better and more elegant way than this usual:

touch /etc/rc.d/rc.local
echo "touch /var/lock/subsys/local" > /etc/rc.d/rc.local
echo "route add default gw 10.10.0.1 eth0" > /etc/rc.d/rc.local
echo "route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.0.1 eth0" > /etc/rc.d/rc.local

Inside Fedora GNU/Linux, static routes can be added in specific files for each one of its interfaces. These files are located at /etc/sysconfig/network-scripts/. The filename must match the route-ifname format. So if you want to add a route to the eth0 interface, the filename must be called /etc/sysconfig/network-scripts/route-eth0. It’s an important detail because an error naming in this file isn’t able to produce any error/warning log in anywhere.

The file content is quite simple. The examples below worth more than the explanation:

#Add a route to a network:
10.1.0.0/16 via 10.2.0.1

#Add a route to a host:
10.1.2.3 via 10.0.0.5

After done, is possible to test your new routes using the ifup-routes ifname command. It adds the configured routes to the active routes table.

 

See you 😉

Posted in English | Tagged , , , | 1 Comment

Fedora installed IN the USB stick

Você pode ver este post em português também.

“Long time no see, blog” 😉

Daniel Faraday - Long time no see

Daniel Faraday - Long time no see

For a while I tried to use the XFCE Spin from Fedora as an alternative to continue on GNU/Linux and keep the corporate laptop without changes in your default settings. Upset with the performance of the Live ISO, I decided to do the OS installation directly on the USB stick.

The difference, at performance at all, is impressive. If like me, you do want to have a distro ready to allow you keep working even on a PC other than your own, forget the LIVE versions and install the OS directly on the USB stick. Works like a glove, you will have better impression and will get a better user experience than with the previous option.

The only problem I had was that during this process I discovered what might be a bug in the E6420 Latitude models of Dell: If you disable the hard disk through the BIOS your CD/DVD won’t be able to perform a boot, so it only will be possible from an USB. The strange thing is that only just enabling the hard disk makes the CD/DVD be able to dispatch the boot again. In these situations I like to turn off the hard disk to prevent any unwanted change during the install.Fedora USB Stick

The installation was finally done with two USB sticks: on the first of them I installed a LIVE version, I did the boot with the two USB drives connected and after the whole boot process I used the icon “Install on Hard Disk” to install the OS on the second USB stick. With everything working OK, I enabled the hard disk in BIOS again.

The laptop will keep the programs and settings within the corporate standards and I’m able to work happily in an OS I’m more productive.

 

See you! :-).

Posted in English | Tagged , , , , , | 1 Comment

Fedora instalado NO pendrive

You can see this post in english too.

“Long time no see, blog” 😉

Daniel Faraday - Long time no see

Daniel Faraday - Long time no see

Por um tempo tentei utilizar o XFCE Spin do Fedora como uma alternativa para continuar no GNU/Linux e manter o laptop corporativo sem alterar qualquer configuração padrão. Chateado com a performance, resolvi realizar a instalação do SO diretamente no pendrive.

A diferença de performance impressiona. Se como eu, pretende ter uma distro mais ou menos pronta para permtir a continuidade de seu trabalho mesmo em um PC que não o seu, esqueça as versões LIVE e faça a instalação do SO no pendrive. Funciona como uma luva, vai causar melhor impressão e proporcionar uma experiência de uso bem melhor do que a opção anterior.

O único problema que tive foi que durante este processo descobri o que pode ser um bug nos modelos Latitude E6420 da Dell: Se você desabilitar o HD na BIOS seu drive de CD/DVD não vai ser capaz de realizar boot algum, ou seja, só será possível a partir da USB. O estranho é que o simples fato de ligar o HD novamente torna o drive de CD/DVD capaz disso. Nessas situações eu desligo o HD para prevenir qualquer alteração indesejada durante o processo de instalação.Fedora USB Stick

A instalação foi finalmente possível com dois pendrives: Instalei a versão LIVE em um, realizei o boot com os dois pendrives ligados e ao término do boot utilizei o ícone “Install on Hard Disk” para instalar o SO no segundo pendrive. Com tudo funcionando, liguei o HD na BIOS de novo.

O laptop permanecerá com seus programas e configurações dentro do padrão corporativo e eu poderei trabalhar feliz num SO onde sou mais produtivo.

 

Até! :-).

Posted in Português | Tagged , , , , , | 1 Comment