Boas-vindas ao curso de Node.js: criptografia e tokens JWT. Sou João Manoel. Sejam bem-vindos à Alura.
Neste curso vamos dar os primeiros passos sobre as considerações que precisamos ter enquanto desenvolvemos uma aplicação que possui alguns requisitos de segurança em Node.js.
Neste curso, abordaremos:
Caso você se encaixe no perfil e vai continuar com o curso, vamos começar!
Nesta aula comentaremos um pouco sobre a origem e história da criptografia.
Sempre foi de interesse de algumas partes manter certas informações acessíveis somente para um número limitado de pessoas ou equipes. Não permitindo que determinadas informações fossem compreensíveis para todos.
Um cenário em que isso acontecia bastante era em guerras, em que haviam tropas e comandantes. Por exemplo, vamos supor que temos as tropas azuis e vermelhas, adversárias, sendo interesse da tropa azul enviar para seus aliados alguma informação que não pode ser lida pela tropa vermelha.
Simulando como uma carta essa informação, ela seria enviada de uma tropa azul para outra tropa azul, sem nenhum imprevisto. Mas sempre existiram espiões ou agentes que faziam parte da tropa adversária que poderiam pegar essa mensagem e interceptar, decifrando e descobrindo o plano.
Isso não era de interesse da tropa azul, o ideal é somente a própria tropa entender a mensagem que estava sendo enviada, mesmo quando interceptada. Este é um dos contextos e casos que usavam a criptografia.
Podemos imaginar que temos duas linhas, ambas com todas as letras do alfabeto. Vamos escolher uma das linhas e deslocar horizontalmente para algum dos lados e adaptar para quais letras estariam nessa posição.
A | B | C | D | E | F | ... | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|
A | B | C | D | E | F | ... | X | Y | Z |
Como exemplo, podemos deslocar a segunda linha 3 posições para a direita. Dessa forma, alinhamos a letra "A" da segunda linha com a letra "C" da primeira. Ou seja, a primeira linha começará com "A", "B", "C" e assim por diante até "Z"; já a segunda linha começará na terceira posição, com "C", "D", "E" e seguindo até "B".
A | B | C | D | E | F | ... | X | Y | Z | ||
---|---|---|---|---|---|---|---|---|---|---|---|
C | D | E | F | ... | X | Y | Z | A | B |
Realinhando as linhas para iniciarem na mesma posição, a primeira começando com "A" e a segunda com a letra "C", pegamos a mensagem escrita com o alfabeto normal e substituímos cada letra pela correspondente na segunda linha.
A | B | C | D | E | F | ... | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|
⇩ | ⇩ | ⇩ | ⇩ | ⇩ | ⇩ | ⇩ | ⇩ | ⇩ | ⇩ |
C | D | E | F | G | H | ... | Z | A | B |
Na mensagem trocamos todas as letras "A" pela letra "C", todas as letras "B" pela "D" e assim por diante. Com isso, fazemos o que chamamos de cifra, criando uma mensagem final que a princípio parece letras escritas aleatoriamente e sem significado, mas ao lermos conhecendo o mecanismo por trás, conseguimos entender. Então, pegar as letras da segunda linha e substituir pelas da primeira para descobrir o significado da informação.
A | B | C | D | E | F | ... | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|
⇧ | ⇧ | ⇧ | ⇧ | ⇧ | ⇧ | ⇧ | ⇧ | ⇧ | ⇧ |
C | D | E | F | G | H | ... | Z | A | B |
Para isso, é preciso saber qual o alfabeto utilizado para cada um e o deslocamento usado. Logo, conhecendo o mecanismo é possível desvendar e ter de volta a informação.
Porém, quando esse procedimento era descoberto pelo adversário, era preciso desenvolver outra forma de transformar essa informação em algo que não fosse facilmente lida.
Então, foram sendo desenvolvidas máquinas mecânicas para realizarem o trabalho de embaralhar a mensagem, depois foram avançando e se tornando mais complexas, incorporando elementos eletrônicos, como os computadores eletromecânicos até os computadores digitais e eletrônicos de hoje em dia. Estes são desenvolvidos e possuem uma capacidade superior de processamento de palavras ou informações muito maiores do que os que existiam na origem dessas tecnologias.
A partir do comentado no vídeo anterior, surgiu a área de estudo conhecida como criptografia.
A palavra criptografia vem do grego, em que kryptós significa algo escondido e gráphein se refere ao que é escrito. Logo, é a forma de escrever alguma informação de maneira oculta. Sendo uma área de estudo completa, em que há várias vertentes que procuram resolver esses temas e problemas.
Mas como relacionamos criptografia com o nosso cotidiano? Visto que parece um cenário bem distante quando pensamos em contextos como as guerras. Como vamos adaptar o que é estudado em criptografia para os dias atuais, em desenvolvimento de aplicações, por exemplo?
Precisamos lembrar que diariamente lidamos com informações sensíveis, como as mensagens que trocamos com amigos, os e-mails enviados para o trabalho, senhas do banco e das redes sociais, dados bancários que possuem a informação do valor recebido e das contas pagas.
Outra informação sensível é a localização do celular ou do dispositivo conectado, que não é de interesse que todos acessem esse dado por questões de segurança. Os dados pessoais também são dados sensíveis que em alguns casos são solicitados, como condição médica, CPF, RG, entre outras. Ou seja, são dados que queremos deixar no sigilo na medida do possível.
Mas temos uma questão, os computadores apenas realizam as instruções e não possuem a capacidade de alterar esses comandos. Então, a criptografia hoje em dia conta com estruturas bem definidas que ao serem implementadas evitam o acesso de terceiros. Existem algoritmos e processos para impedir que qualquer pessoa consiga visualizar todas as informações disponíveis.
Vamos discutir também dois conceitos importantes para o controle de acesso à informação. O primeiro é a autorização imagine haver algum tipo de controle de acesso que é necessário ter uma autorização para passar.
Exemplificando, é como se tivesse uma placa "entrada permitida apenas para funcionários" em que você deve se identificar para conseguir acesso.
Temos também o conceito de autenticação, imagine que você possui agora uma carteirinha informando ser um funcionário. Isso comprova que você é quem está notificando ser.
Por exemplo, a carteira de identidade, é uma autenticação que confirma que determinado número corresponde a matrícula no sistema de alguma entidade. São dois conceitos diferentes, mas importantes para esse curso, visto que usaremos bastante.
O curso Node.js: criptografia e tokens JWT possui 170 minutos de vídeos, em um total de 67 atividades. Gostou? Conheça nossos outros cursos de Node.JS em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.