Me saboto, mas a culpa não é minha.

Hoje consegui cumprir as metas que pus para minha vida pessoal. Foi estranho, então tem algo de errado! Preciso encontrar algum motivo para entender.

Esse é um desabafo, e como é algo pessoal e não tão fácil de resolver eu decidi compartilhar porque alguém pode ter passado ou estar passando por algo parecido.

Gosto de estudar e ensinar o que aprendi, posso resumir que essas são algumas das coisas que mais me dá prazer, mas mesmo gostando de estudar eu acabo me sabotando em estudar. É impressionante, uma vez eu parei de ler um livro porque estava gostando tanto que não queria que ele terminasse e não li o livro todo, o absurdo é que esse livro está na minha estante há 8 anos e toda vez que eu olho para ele sinto uma sensação boa pelo fato de saber que é uma leitura legal e se eu voltar a ler vai ser bom e por outro lado me sinto frustrado por ver que eu já podia ter lido e usufruído do conhecimento para outras coisas relevantes.

Tenho ideias, faço planos, invisto antes de começar e não termino as coisas. Quem já não fez isso, né?

Bom, mas a história não é toda triste. Algo começou a melhorar quando me dediquei com afinco ao tema do “foco”, e comecei a aplicar mudanças no meu dia-a-dia voltadas para melhorar o meu foco nas coisas importantes e que podem dar resultado e diminuir essa sensação de fracasso.

O jogo começa a virar

Algumas leituras me ajudaram no processo, o primeiro livro que li sobre o assunto foi “A tríade do tempo”(Christian Barbosa) autor que deu uma palestra na universidade em que eu estudei e na palestra ele descreveu sua história que em alguns aspectos é semelhante à minha. Porém na época eu não achei que não iria acontecer comigo.

O outro livro que me ajudou muito e que gostei muito de ler foi “A única coisa” (Gary Keller e Jay Papasan), a questão de dar ênfase para as coisas que realmente vão me fazer chegar no objetivo que quero foi muito importante.

E o terceiro e mais importante que li e que me ajudou nesse assunto foi “Salomão, o homem mais rico que existiu” (Steven K. Scott). Nesse há algo de especial, a sabedoria. Algo extremamente rico estava na minha frente e eu demorei a perceber, as muitas aplicações práticas da palavra de Deus e como sou cristão protestante isso tem muito valor para mim. Lembrando que a listagem dos livros não está em ordem de importância, mas cronológica.

O que fiz na prática:

  • Abrir a menor quantidade possível de telas e/ou de abas no navegador.
  • Removi todas as notificações no celular e nos aplicativos do computador, apenas alguns aplicativos eu mantive a notificação no ícone do app, mas nada sonoro ou push notification explodindo na tela.
  • Embora eu goste de trabalhar escutando música às vezes o silêncio facilita mais a concentração quando a tarefa é analisar longos textos, escrever e-mails e algumas outras tarefas pontuais.
  • Acordar cedo, pode parecer clichê, mas é verdade. A partir do momento em que eu me acostumei a acordar cedo e não muito cedo, as 06:00 a minha rotina mudou completamente, consigo planejar as tarefas do dia, adianto algumas coisas do trabalho, consigo ler um pouco e adiantar algumas tarefas diárias de cuidar de casa como tirar o lixo, por roupa para lavar, preparar o almoço.

Isso significa que meu problema foi resolvido e agora sou uma nova pessoa, iluminada com a sabedoria da alta performance? Não, nem perto disso. Mas os resultados que vejo é conseguir terminar de ler os livros que comprei, conseguir terminar os cursos que comecei (online que acho que é mais difícil do que presencial) e esse post aqui ficaria eternamente no rascunho se não fosse essa mudança que custou a acontecer e que ainda é muito pequena.

Não sei se consegui ajudar alguém com esse meu depoimento, mas espero que sirva para que saiba você que se auto sabota não está sozinho, e não precisa continuar assim.

Um abraço,

Wellington Rogati

Autenticação [parte 1]

Introdução

Imagino que você já pensou em e-mail e senha, e não tem nada de errado nisso, aliás você está lendo um texto através da internet. Mas o que vou trazer de conteúdo por aqui é algo um pouco mais amplo do que isso, então vou começar com algumas definições básicas sobre esse assunto. Iniciando pelo significado, depois falarei sobre os tipos até chegar no básico da autenticação que é através do mais comum ID/E-mail e senha. Nos próximos artigos vou falar sobre armazenamento de senhas, algoritmos de encriptação, boas práticas para desenvolvedores e usuários. De acordo com que o conteúdo for avançando vou fazendo algumas correlações com outros assuntos como engenharia social e alguns exemplos de crimes cibernéticos e como mitigar o risco de ser uma vítima.

O que é autenticação?

De forma simples é um recurso que usamos para proteger/restringir o acesso à alguma informação, então no caso da internet se temos alguma informação que pertence à alguém a autenticação é o que identifica o dono dessa informação. Vamos à um exemplo real, uma pessoa tem uma conta em uma rede social na qual faz postagens e para acessar essa rede social ela informa algo que só ela sabe (a senha) e assim a rede social permite o acesso.

Mas de forma genérica a “autenticação” tem um sentido mais amplo do que o exemplo da internet na rede social, é a forma de provar que algo é autêntico. Se você quiser ir mais a fundo na etimologia da palavra vai fundo veja dicionários, wikipedia etc. Mas o objetivo aqui é falar sobre internet, software e o que faz parte do mundo da tecnologia.

Tipos de autenticação

Assim como um crachá para desbloquear uma catraca, porta, elevador fazem parte de um sistema de segurança, a impressão digital, uma assinatura, voz, reconhecimento de íris também são utilizados como um dos fatores de autenticação em diversos contextos.

Para contextualizar nosso ambiente cibernético vou citar os tipos mais usados e comuns, para isso separei em 3 maneiras de se compor um método de autenticação que é: algo que você sabe, tem e é.

  • Algo que você sabe: A primeira coisa que vem a mente é claro, a senha. Sim ela é a mais comum, mas você também sabe seu ID (se não for público pode ser útil) no sistema XPTO, também sabe seus dados cadastrados nesse sistema como alguma pergunta secreta, qual é o e-mail ou dispositivo de recuperação, etc.
  • Algo que você tem: Essa não é tão óbvia, mas espero que seja em breve. Muitos sistema hoje já oferecem o multi fator de autenticação, que na prática é fornecer uma forma a mais de garantir que o acesso é autêntico e para isso você pode querer receber uma mensagem SMS com um código para confirmar o acesso em um número de celular de sua posse, tal código também pode ser enviado para um e-mail, ou ser gerado por um aplicativo ou dispositivo específico para isso. Essas opções são muito boas.
  • Algo que você é: Essa é tranquila, já é muito comum fazermos muita coisa com desbloqueio por impressão digital no celular ou por reconhecimento facial ou de íris. Na verdade existem muitas outras maneiras disponíveis hoje para autenticação por biometria, é claro que cada uma em um dado contexto possível, aplicável e viável.

ID ou E-mail e Senha

Um sistema básico de autenticação normalmente utiliza dois dados, um é o identificador que pode ser um número por exemplo usuário: 543, uma sequência de letras aleatórias por exemplo usuário: abcd ou um combinado de ambos podendo ter outros tipos de caracteres como usuário: user123. Cada sistema pode utilizar uma abordagem de acordo com o contexto do domínio do software, o importante é que esse identificador seja único, ou seja, não pode ter outro usuário cadastrado no sistema com o mesmo identificador do contrário a autenticação fica impossibilitada. Uma das estratégias mais comuns é utilizar o endereço de e-mail para essa finalidade, porque ao mesmo tempo o e-mail é uma forma de comunicação e também um excelente identificador único, assim o sistema pode utilizar essa informação para validação se o usuário tem acesso à caixa de entrada daquela conta de e-mail facilitando outras etapas como reset de senha ou recuperação de conta.

Alguns sites utilizam um “apelido” como ID para facilitar a adesão dos usuários, outros utilizam o e-mail como forma rápida de comunicação e alguns vão optar por gerar internamente um ID totalmente aleatório por talvez questões internas ou performance.

Vejamos alguns exemplos:

SiteTipo
TwitterApelido ex: @wrogati
FacebookE-mail ou telefone
InstagramApelido ex: @wrogati

Dentre as abordagens possíveis criar um ID de forma sequencial para cada usuário é definitivamente uma ideia muito ruim. Quando um sistema utiliza essa abordagem ele acaba gerando a possibilidade de facilitar uma etapa que invasores realizam que é a enumeração que consiste em listar os recursos existentes e nesse caso se um determinado sistema utiliza ID sequencial então pode se supor que é possível tentar acessar o conteúdo do usuário 1 e depois o 2 e depois o 3 e assim por diante.

Então qual é a melhor abordagem? Depende. Se um sistema gera um ID para o usuário por exemplo: A93jndBS@3diß0N com certeza será difícil de alguém com má intenção realize a enumeração com sucesso, mas também será muito difícil para o usuário lembrar desse ID. Então a segurança na autenticação deve ser ter um equilíbrio entre a facilidade no acesso e que dificulte a vida dos mal intencionados.

Senhas

Há muito para se falar delas, para alguns é só mais um item a se decorar e para outros é um desafio. Com o passar do tempo as senhas foram se tornando obrigatoriamente mais complexas, isso se deu porque algumas maneiras de se armazenar as senhas foram se tornando obsoletas e outros aspectos como o comportamento dos usuários ganharam maior relevância, um exemplo é saber que há um ranking das senhas mais usadas e acredite se quiser, a senha “123456” tem sido por muitos anos uma dos top 5, então não fica tão difícil para um criminoso “descobrir” a senha de alguém que não cuida dessa informação com zelo.

Senhas Complexas

Então já que os usuários não se preocupam da forma que deveriam com a complexidade das suas senhas então os desenvolvedores de software tiveram que implementar essa complexidade de forma forçada. Se antes no site xpto você podia criar uma conta com a senha “123456” agora não pode mais, será necessário uma senha com no mínimo 8 dígitos não sequenciais e que tenham ao menos uma letra. Então rapidamente o usuário criou a senha “aa654321” matematicamente para um sistema de descoberta de senha utilizando força bruta essa nova senha não representa muito mais esforço.

Percebendo isso o desenvolvedor decidiu que a complexidade da senha deveria ser de no mínimo 8 caracteres com no mínimo 1 letra maiúscula, 1 minúscula e números. Então o usuário definiu a nova senha “Aa654321” que, novamente surtiu quase que o mesmo efeito. Então não satisfeito o desenvolvedor definiu que a senha teria os mesmo requisitos anteriores mas teria que ter adicionalmente ao menos um caractere especial, não poderia ter parte do nome ou conter a data de nascimento parte do telefone, nem números sequenciais independente da ordem (crescente ou decrescente) não poderia conter a data do ano atual, nem o nome do cachorro ou de qualquer animal de estimação ou de qualquer pessoa da família, ou qualquer referência a uma atividade de lazer ou gosto musical.

Pronto agora temos uma boa senha, pena que o usuário nunca irá decorar essa senha. A não ser que ele seja competidor de campeonatos de memorização. Do contrário, ou o usuário tenderá a desistir de usar o sistema (se ele não for obrigado a usar como um sistema interno de uma empresa) ou anotará a senha em todo tipo de lugar desaconselhado por facilitar muito mais que alguém descubra a senha.

O problema é que mesmo que a senha nem fosse tão complicada para se memorizar é muito provável que um usuário comum no século XXI tenha acesso a diversos sistemas e como não há uma convenção sobre o melhor padrão de senhas cada um vai solicitar que o usuário crie a senha de uma forma diferente. Então vai ter o site que permite você criar a senha “123456”, um outro que permita colocar algo como “Joao2021” e um outro que te obrigue a criar quase que um desafio de arranjo matemático.

Entendendo o porque a senha não pode ser muito fácil

Há uma área na Segurança da Informação chamada Engenharia social, e a finalidade dela é explorar o ponto mais fraco de qualquer sistema, o ser humano. Mesmo que os algoritmos de encriptação tenham melhorado muito e os desenvolvedores cada vez mais se preocupam com a segurança dos seus sistemas o fator humano continua sendo o ponto mais fraco. Como no exemplo recente se a senha é muito difícil então o usuário tenderá a escrever num papel e deixar colado no monitor ou na primeira página de um bloco de anotações, então de nada valeu toda complexidade da senha se ela está totalmente exposta, diria que se tornou um “dado público”.

Mas nem sempre o caso é tão óbvio como esse, vamos supor que João (nosso personagem hipotético) criou uma conta num sistema de um Petshop online e no momento de cadastrar a senha ele colocou o nome de seu cachorro Rex e como o sistema exigia números ele colocou o ano atual então a senha ficou “Rex2021”, então um cibercriminoso decidiu invadir a conta de João, ele poderia procurar uma vulnerabilidade conhecida no site, ele poderia tentar todas as senhas possíveis de acordo com aquele ranking que comentei mais cedo, mas como João tem perfil público nas redes sociais ele decidiu dar uma olhada e viu que o nome de seu único animal de estimação é “Rex” então ele tentou manualmente algumas variações e eis que o acesso foi concedido. Obviamente eu reduzi muito o assunto de engenharia social com esse exemplo, há muito mais para se saber mas para o que nos interessa nesse momento esse exemplo serve.

Observe que esse cibercriminoso não precisou de executar nenhuma ferramenta para forçar a entrada na conta de João, ao contrário de que muita gente pensa esse é o tipo de cibercriminoso que não invadiu uma conta de uma pessoa sentado em um lugar escuro usando capús digitando em uma tela preta onde várias linhas de código super difíceis de se entender é o vírus que infectará o sistema da vítima e etc. O invasor simplesmente fez um ataque direcionado e buscou explorar a parte mais vulnerável, nesse caso o João.

“Não tão complicado demais, mas nem tão simples assim” (Charlie Brown Jr.)

Gosto de dizer que as senhas deveriam ser como na música “Champagne e água benta” do Charlie Brown Jr. onde o Chorão canta “Não tão complicado demais, mas nem tão simples assim”, veja, não estou fazendo nenhuma alusão ao que a letra da música toda conta, mas somente achei uma boa frase para trazer para o contexto desse assunto. Não me refiro à complexidade das senhas em si, tecnicamente quanto mais complexas e humanamente incompreensíveis melhor para a segurança da informação, me refiro ao tema “autenticação”. Esse tema precisa, na minha opinião, ser mais difundido porque a segurança dos dados tem cada dia mais importância e saber como usar bem o básico deveria ser uma preocupação de todos os usuários.

Dica prática para usuários

Dado todo o contexto mencionado anteriormente, você já entendeu que o cenário de diferentes sistemas com suas diferentes definições não vai mudar todos para um só padrão ao menos tão cedo. Então a minha dica é não criar suas próprias senhas e sim utilizar um software de cofre de senhas, esse sistema gerará as senhas de forma aleatória e complexa, e quando esse sistema gerar essa senha você adiciona uma palavra que você terá muita facilidade de lembrar, essa palavra que você adicionar no momento do cadastro em um site não deve ser salvo no seu cofre de senhas, dessa forma se algum dia o sistema que guarda sua senha tiver uma vulnerabilidade explorada ou alguém conseguir o acesso ao seu cofre de senhas mesmo assim o invasor não terá sucesso pois não terá a palavra adicional que só você sabe e não foi salvo em lugar nenhum.

Essa dica de adicionar uma palavra a mais ao uso de um cofre de senhas eu peguei do Gabriel Pato no episódio do Groselha Talk.

Nos próximos artigos eu irei mais afundo em outros aspectos desse assunto.