O segundo semestre

Durante o mestrado, fui aos poucos me aprofundando no mundo da segurança da informação. Era uma época de transição do Telnet para o SSH. Ao acompanhar essa discussão, descobri o OpenSSH, desenvolvido como parte do OpenBSD. Passei a ler mais sobre o assunto e até a acompanhar as listas de discussão dos desenvolvedores. Nessa época surgiu também a ideia de criar um laboratório para o grupo de criptografia da Unicamp. Conseguimos uma estação SUN meio antiga e eu sugeri instalar OpenBSD nela. Funcionou por um tempo, até termos equipamentos melhores.
Uma das coisas que eu gostaria de ter feito — e que acabou não acontecendo — era participar do desenvolvimento do OpenBSD. Eu não sabia bem como começar, não tinha experiência suficiente para navegar no código-fonte e ainda não entendia como funcionava um processo colaborativo e distribuído de desenvolvimento. O projeto certamente despertou minha curiosidade sobre software seguro, mas não foi ali que consegui praticar isso. É uma pena: acredito que teria aprendido muito se tivesse participado ativamente.
Eu já tinha alguma história com o mundo BSD, então continuei fã do OpenBSD e, alguns anos depois, cheguei a usá-lo em casa. Mas, como dizia meu amigo Sapujo, “Unix no desktop e Windows no servidor são escolhas que exigem uma boa dose de esforço”. E o BSD realmente fazia valer essa máxima.
No segundo semestre do mestrado, cursei uma disciplina de redes de computadores com o professor Paulo Lício. Houve muito aprendizado sobre a estrutura das redes TCP/IP, mas o que mais me marcou foi o foco que ele deu ao DNS, o sistema que permite usar nomes inteligíveis para acessar serviços na internet. O endereço real é um IP, difícil de memorizar; DNS resolve justamente esse problema. É muito mais fácil a gente lembrar de google.com do que lembrar de 192.168.1.153. Além disso, a disciplina tratou de temas como proxies e de aspectos importantes de desenvolvimento seguro. Entre todas as matérias que fiz nas universidades por onde passei, esta talvez tenha sido a que mais me deu bagagem prática para a vida profissional.
Naquele período, enquanto estudava comércio eletrônico, questões de segurança e acompanhava a ascensão da linguagem Java no mercado e no meio acadêmico, acabei combinando uma conversa que tive com meu orientador e ideias que já tinha visto aqui e ali. Isso gerou um dos artigos que mais gostei de escrever. A proposta era juntar a promessa do Java de execução sob demanda com sistemas de pagamento eletrônico para criar um modelo de pay-per-use para software. Ou seja, em vez de pagar uma licença única e cara, como era comum, o usuário pagaria por cada execução do programa, pelo tempo de uso ou uma assinatura. Vale lembrar que ainda não existia o modelo de computação em nuvem: o software seria executado na máquina do usuário, não em um servidor remoto, embora tudo dependesse de conexão à Internet. Cheguei a implementar um protótipo que autenticava o usuário, baixava as classes Java e executava o programa.
Ao final do meu primeiro ano de mestrado, minha vida mudou drasticamente — mas essa é uma estória para outro capítulo.