Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROTOCOLOS DE REDE E CRIPTOGRAFIA 3 UNIDADE SER_DIGSEC_CRIPTO_UNID3.indd 75 24/09/2020 16:00:04 Objetivos da unidade Tópicos de estudo Entender os protocolos seguros de camada de transporte de rede TCP/IP; Analisar o uso de protocolo de aplicação segura em rede TCP/IP; Identificar os principais conceitos dos protocolos seguros, como SSL/TLS, HTTPS, SSH e PGP. Protocolos para transporte seguro: SSL/TLS, HTTPS, SSH Mecanismos de criptografia Protocolo SSL/TLS Protocolo HTTPS Protocolo SSH Protocolos na camada de apli- cação: PGP CRIPTOGRAFIA APLICADA 76 SER_DIGSEC_CRIPTO_UNID3.indd 76 24/09/2020 16:00:04 Protocolos para transporte seguro: SSL/TLS, HTTPS, SSH A era da internet propiciou às pes- soas a realização de diversas ativida- des por meio de comunicação eletrô- nica digital, popularizando termos, como e-mail, e-commerce, entre ou- tros. Com a facilidade que todas essas novas interações trouxeram para as transações pessoais e comerciais, a necessidade de segurança no tráfego nos dados tornou-se item fundamen- tal, a fi m de garantir a integridade e confi dencialidade das informações en- volvidas nessas transações. A fi m de estabelecer segurança e criptografi a no tráfego das informações, alguns protocolos de rede foram desenvolvidos para auxiliar nos controles de segurança dos componentes de infraestrutura de TI e as aplicações relaciona- das à comunicação. Entre esses protocolos, podemos ter os padrões ligados ao encaminhamento dos dados, como SSL/TLS, além de padrões ligados às aplica- ções, como o HTTPS, o SSH e o PGP. Mecanismos de criptografia Na prática, muitos recursos utilizam os protocolos de comunicação se- gura para garantir algum nível de integridade e confidencialidade duran- te uma comunicação. Uma das formas mais conhecidas de aplicação dos conceitos dos protocolos de criptografia em uma comunicação segura é o certificado digital, utilizado para garantir autenticidade, confidenciali- dade e integridade no acesso e comunicação entre sistemas na Internet, sendo um tipo de registro relacionado a uma identidade virtual (igual ao CPF, por exemplo). Na Figura 1, vemos um exemplo de informações sobre um certifi cado digital utilizado para comunicação segura por meio de um navegador web: CRIPTOGRAFIA APLICADA 77 SER_DIGSEC_CRIPTO_UNID3.indd 77 24/09/2020 16:00:10 CRIPTOGRAFIA APLICADA 78 SER_DIGSEC_CRIPTO_UNID3.indd 78 24/09/2020 16:00:36 Figura 1. Exemplo de informações de certificado digital. Fonte: CERT.BR. Acesso em 16/9/2020. Como podemos verificar na Figura 1, o certificado digital possui diversos cam- pos que viabilizam uma identidade virtual, utilizando, para isso, padrões de infor- mações presentes nos cabeçalhos de protocolos de criptografia, como o SSL, por exemplo. Além disso, o certificado utiliza o padrão de comunicação segura via o protocolo HTTPS, para garantir a confidencialidade e autenticidade das informa- ções, garantidas pela autoridade certificadora responsável pelo certificado. Sobre o funcionamento do processo de criptografia nos protocolos de co- municação segura, um conceito base para a codificação das mensagens é o uso de algoritmos para realizar esse processo. Um dos mecanismos mais conhe- cidos é o uso de chaves, codificando a informação de forma a garantir que a mensagem continue autêntica, confidencial e íntegra. A chave atua com um valor específico sobre a cifragem, permitindo que os algoritmos de criptografia possam atender várias conexões simultâneas, sendo que o algoritmo utilizado define a forma como os dados serão encriptados. O Diagrama 1 mostra, de uma forma geral, o funcionamento da comunica- ção com a utilização do método de chaves para criptografia da comunicação: CRIPTOGRAFIA APLICADA 79 SER_DIGSEC_CRIPTO_UNID3.indd 79 24/09/2020 16:00:50 DIAGRAMA 1. ILUSTRAÇÃO DA CRIPTOGRAFIA POR CHAVES QUADRO 1. PRINCIPAIS MÉTODOS DE CRIPTOGRAFIA Fonte: FERREIRA; CAROLINE; MACEDO, 2018. (Adaptado). No Diagrama 1, podemos perceber que a mensagem produzida pelo reme- tente é encriptada por meio do uso do algoritmo de criptografia utilizado para a codificação, com a chave auxiliando o processo de geração da mensagem cifrada. Toda a informação é encaminhada, de forma criptografada, para o des- tinatário da informação, que deve utilizar o mesmo algoritmo de criptografia definido pelo remetente, além de possuir uma chave para descodificar a infor- mação cifrada, para, assim, ter acesso à informação original. Sobre os métodos de encriptação mais comuns, podemos visualizar os prin- cipais métodos de algoritmos utilizados pelos protocolos de comunicação se- gura, no Quadro 1: Método Descrição Principais algoritmos Chave Simétrica. Nesse método, a chave para codificação definida pelo remetente da informação cifrar a mensagem é a mesma utilizada pelo destinatário para o processo de descriptografia da informação cifrada, sendo a chave compartilhada entre o emissor e o destinatário. DES, 3DES, AES, Blowfish. Chave Assimétrica. Nesse método (também conhecido como criptografia de chave pública), é definido um par de chaves ao invés de uma chave ser compartilhada entre o emissor e o receptor: a chave pública, que deve estar presente nos destinos da informação criptografada; e a chave privada, que é mantida de forma segura pelo responsável da mensagem ou da comunicação. As partes da comunicação têm uma chave para encriptar a comunicação (pública), e uma chave utilizada para desencriptar à informação (privada). RSA, DAS. Mensagem plana Mensagem plana Mensagem criptografada Interceptor Internet Chave da remetente Chave do destinatário Remetente Destinatário Algoritmo de criptografia Algoritmo de decriptação CRIPTOGRAFIA APLICADA 80 SER_DIGSEC_CRIPTO_UNID3.indd 80 24/09/2020 16:00:50 Protocolo SSL/TLS O SSL (sigla para Secure Socket Layer, em inglês) é um protocolo que surgiu na década de 1990 para implementação de segurança para comunicação em rede, largamente adotado na internet para a proteção do transporte de dados nas apli- cações, tais como navegadores web, e-mail e comunicação de voz sobre IP (VoIP). Na atualidade, o SSL foi incorporado em outro padrão de protocolo de co- municação segura, o TLS (sigla para Transport Layer Security, em inglês), que foi o padrão desenvolvido na década de 2000 para se tornar o padrão para segu- rança em transações gerais pela web. CURIOSIDADE Devido ao fato de o TLS ser uma continuação do SSL, em muitos materiais é comum a referência adotada ser ao protocolo SSL/TLS. De um modo geral, no histórico de atualizações e melhorias de segurança dos protocolos, desde o seu lançamento, o SSL teve três versões, sendo a úl- tima delas a 3.0. O TLS só possui uma única versão (versão 1), que contempla atualizações e melhorias ao longo de tempo em releases específi cos, sendo a primeira delas (1.0) uma atualização direta para o SSL 3.0. A versão mais atual do TLS é a 1.3, porém a versão 1.2 do TLS ainda é adotada, em sua maioria, nas conexões seguras realizadas através dos principais protocolos da internet. O formato do protocolo SSL/TLS encapsula, em seu cabeçalho, os protoco- los da camada de aplicação da pilha TCP/IP, além de atuar diretamente com um protocolo da camada de transporte (geralmente com o protocolo TCP). No que diz respeito à criptografi a aplicada nas informações, o padrão utilizado varia tanto entre encriptação via chaves simétricas quanto via chaves assimétricas. Para os agentes envolvidos na comunicação (cliente e servidor), o algo- ritmo utilizado é reconhecido por meio de um processo de negociação de códigos realizado de forma interna no SSL/TLS. Esse processo é conhecido como CipherSuite. No Diagrama 2, são exibidas as camadas de protocolos do modelo TCP/IP e como o SSL/TLS se posiciona com os seus protocolos internos, por meio do qual encapsula os protocolos de aplicação (HTTP, SMTP, FTP, entre outros):CRIPTOGRAFIA APLICADA 81 SER_DIGSEC_CRIPTO_UNID3.indd 81 24/09/2020 16:00:50 DIAGRAMA 2. CAMADAS DE PROTOCOLOS TCP/IP E O SSL/TLS Conforme podemos visualizar no Diagrama 2, a estrutura básica do proto- colo SSL/TLS é composta por duas camadas de protocolos internos, denomina- dos como handshaking protocols e o record protocol. No caso, em uma aborda- gem das camadas da pilha TCP/IP é possível interpretar que o SSL/TLS irá atuar na camada de aplicação, quase interligada à camada de transporte. Cada uma das camadas dos sub-protocolos SSL/TLS é responsável por uma função na segurança da comunicação: • Record protocol: é a camada mais baixa na pilha de rede, realiza o encap- sulamento de todos os dados e os envia de forma segura durante a comunica- ção, garantindo também uma configuração opcional de compressão de dados; • Handshaking protocols: é a camada mais alta na pilha de rede, onde é realizada a negociação dos algoritmos e chaves de criptografia, além da auten- ticação entre as partes envolvidas (cliente e servidor). Por ser orientado à conexão, utilizando o processo de handshake na comu- nicação segura, o SSL/TLS utiliza o protocolo TCP como protocolo da camada de transporte. Com isso, após o handshake da sessão TCP realizada, o TLS inicia o seu próprio processo de handshake para estabelecer uma sessão de trans- porte confiável. Todo o controle do processo é realizado no cabeçalho do pro- tocolo SSL/TLS pelos campos do cabeçalho da camada dos handshake protocols, sendo que durante o processo são trocados diversos pacotes entre o cliente e o servidor para tornar a comunicação aceita entre ambas às partes. SSL/TLS Handshaking protocols Record protocol TCP IP HTTP/SMTP/... CRIPTOGRAFIA APLICADA 82 SER_DIGSEC_CRIPTO_UNID3.indd 82 24/09/2020 16:00:50 No Diagrama 3, podemos identificar as principais etapas relacionadas ao processo do TLS handshake, em uma conexão entre um cliente e servidor: DIAGRAMA 3. O PROCESSO DE HANDSHAKE DO SSL/TLS Fonte: Cloudflare. Acesso em: 16/09/2020. No Diagrama 3, podemos verificar o procedimento geral de um handshake via TLS, em que o cliente e o servidor trocam diversas informações, tais como: a ver- são de TLS utilizada, o tipo de algoritmo de criptografia utilizado, a autenticidade do servidor (via certificado digital e chave pública assimétrica) e a troca de chaves de criptografia simétrica, para a cifragem após a conexão estabelecida. Todos es- ses dados são fornecidos em etapas, logo após o TCP handshake (em azul): 1. O cliente envia uma mensagem denominada Client Hello, incluindo as suas próprias informações gerais do TLS, dentre elas a versão do protocolo e o tipo de cifra suportado na comunicação, além de um identificador randômico; 2. O servidor responde com uma mensagem Server Hello, na qual envia as suas informações gerais do TLS, dentre elas a versão do protocolo e o tipo de cifra suportado na comunicação, além do seu próprio identificador randômico; Cliente Servidor SYN ACK Clientehelllo ClienteKeyExchange ChangeCipherSpec Finished ChangeCipherSpec Finished ServerHello Certificate ServerHelloDone SYN ACK TCP 50 m s TLS 110 m s CRIPTOGRAFIA APLICADA 83 SER_DIGSEC_CRIPTO_UNID3.indd 83 24/09/2020 16:00:50 3. O cliente, então, realiza o processo de autenticação, no qual verifi ca a autenticidade do certifi cado enviado pelo servidor e a checagem da autoridade certifi cadora responsável pela emissão. Após essa confi rmação, o cliente utiliza a chave pública enviada pelo servidor para encriptar uma sequência de bytes gerada, que será a senha dessa comunicação. Com isso, somente com a chave privada armazenada no servidor a senha será descriptografada; 4. A partir do momento em que todas as informações de autenticação são troca- das, tanto o cliente quanto o servidor irão validar esses dados. Com tudo em ordem, o cliente envia a mensagem de fi nalização do handshake, com o servidor respondendo com uma mensagem própria, da mesma forma, fazendo a fi nalização do handshake; 5. Com o handshake do TLS completo, a comunicação irá persistir no uso das informações de criptografi a utilizadas, até a fi nalização da sessão. Protocolo HTTPS A maior parte dos serviços e sites disponibilizados via web é, geralmen- te, disponibilizado para acesso por parte dos usuários por meio do pro- tocolo HTTP, associado a um site ou aplicação hospedados em um servi- dor web. Quando solicitamos acesso a um endereço na internet por meio de um navegador, essa aplicação solicita os dados da página, para exibi-los da forma adequada para o usuário solici- tante da requisição, carregando o con- teúdo de um determinado site, sendo processado pelo servidor web. Para garantir a comunicação segura dos dados das páginas web, o HTTP utiliza a extensão de segurança para o próprio protocolo, incorporando a estrutura do SSL/TLS às requisições realizadas. Com isso, os dados das conexões entre o cliente e o servidor trafegam em um fl uxo criptografado, garantido por essa extensão do HTTP denominada HTTPS (sigla para Hyper Text Transfer Protocol Secure, em inglês), sendo, portanto, o HTTPS uma implementação adicional do HTTP. CRIPTOGRAFIA APLICADA 84 SER_DIGSEC_CRIPTO_UNID3.indd 84 24/09/2020 16:00:56 DIAGRAMA 4. FORMATO PADRÃO DE UMA URI Para entender a estrutura do HTTPS, é necessário saber como a comunica- ção via HTTP é realizada. Em geral, o acesso aos conteúdos por meio do proto- colo HTTP são realizados por um formato denominado URI (sigla para Uniform Resource Identifier, em inglês). A URI é o formato mais comum utilizado durante a consulta a um conteúdo na web por meio de uma string, geralmente associa- da ao formato, como vemos no exemplo do Diagrama 4: De acordo com o Diagrama 4, podemos verificar como a URI é estruturada, seguindo o padrão para acesso de um determinado conteúdo web. Vejamos a descrição para os principais itens presentes na especificação de uma URI: • Esquema: o protocolo a ser usado durante a requisição, sendo quase sempre especificado como http: ou https:; • Autoridade: o servidor onde está sendo executado o serviço HTTP (com a requisição sendo feita por um nome, por meio do protocolo DNS ou direta- mente pelo endereço IP); • Path: os diretórios e arquivos, em forma hierárquica, dos conteúdos dis- poníveis no servidor web; • Query: parâmetros que as aplicações web localizadas no servidor es- peram durante as requisições para o funcionamento. No caso de envio de parâmetros do tipo query, após a identificação de um caracter ?, o exemplo citado no Diagrama 4 está mais associado ao método de requisição HTTP do tipo GET, por manter todos os dados na própria URI. Já o método POST usa um formato de segurança por obscuridade, ocultando a query no corpo da requisição HTTP. Na Figura 2, podemos verificar a estrutura das informações dos cabeça- lhos HTTP de envio e resposta, cujo conteúdo pode ser criptografado por meio do uso da extensão segura, por meio do HTTPS: http://www.algumsite.com.br/conteudo?consulta=valor Esquema Autoridade QheryPath CRIPTOGRAFIA APLICADA 85 SER_DIGSEC_CRIPTO_UNID3.indd 85 24/09/2020 16:00:56 Figura 2. Exemplo de cabeçalho HTTP. Fonte: Apache Traffic Server. Acesso em: 16/09/2020. Cabeçalho HTTP Exemplo de requisição Registro de requisição GET http://wwwRockyDawg.com/HTTP/1.0 Cabeçalho MIME Proxy-Connections: Keep-Alive Data: Segunda-feira, 14 de dezembro de 2009 04:15:01 GMT User-Agent: Mozilla/5.0 (en) Content-Location: http://d.com/index.html Accept: image/gif, */* Content-Length: 7931 Accept-Charset: isso/8859-1 Content-Type: text/html Proxy-Connection: close Campos MIME Campos MIME Cabeçalho MIME HTTP/1.0 200 OK Registro de resposta Cabeçalho HTTP Exemplo de resposta Na Figura 2, podemos verificar o padrão de envio do cabeçalho HTTP a partir do cliente, contendo as informações de requisição, com a URI e o método utilizado (no caso, o GET) e os dadossobre o conteúdo consultado (por meio do cabeçalho do tipo MIME, contendo dados sobre o navegador de origem, os tipos de arquivos e padrões de caracteres). O servidor responde com um cabeçalho indicando a ver- são do HTTP (no caso 1.0) junto com um código de status de OK para a requisição, com o cabeçalho MIME de resposta indicando as informações por parte do servi- dor (data/hora da consulta, localização, tamanho e tipo de conteúdo). Para implementação do SSL/TLS por meio do protocolo HTTP, é possível utilizar formatos de programas no servidor web, os quais provêm os meca- nismos de cifra e chaves necessários para estabelecer a configuração de uma comunicação segura. DICA Uma das principais ferramentas para implementação do protocolo SSL/TLS é o OpenSSL, que disponibiliza bibliotecas para uso de criptografia de uso geral. CRIPTOGRAFIA APLICADA 86 SER_DIGSEC_CRIPTO_UNID3.indd 86 24/09/2020 16:00:56 O funcionamento da autenticação na sessão HTTP com o SSL/TLS, geral- mente, funciona da seguinte maneira: • Quando o usuário se conecta pesquisando por uma URI iniciada pelo forma- to https://, o servidor web retorna um certifi cado digital para o navegador. As in- formações do certifi cado são de responsabilidade da entidade responsável pela emissão dele, sendo essa entidade identifi cada como autoridade certifi cadora; • A máquina de onde o usuário iniciou a comunicação já possui uma cópia de certifi cados válidos de todas as principais autoridades certifi cadoras reco- nhecidas como confi áveis, por meio das quais a autenticidade das informações fornecidas pelo certifi cado do servidor web é comprovada, após a verifi cação do handshake do SSL/TLS; • A partir dessa verifi cação, o navegador pode aceitar o certifi cado, de for- ma automática, iniciando, assim, a criptografi a da conexão (o navegador tam- bém poderá notifi car o usuário se o certifi cado não for confi ável, deixando a decisão de confi ar no documento por parte do cliente). Para obter o certifi cado de uma autoridade certifi cadora, o admi- nistrador do site deve gerar uma requisição de certifi cado, envian- do o arquivo com as informações para a entidade. A emissora irá realizar a assinatura e validação da requisição, emitindo o arquivo do certifi cado que valida a autenticidade das informações. Protocolo SSH Em um sistema operacional, o shell é a interface de acesso para o usuário fi nal es- pecifi car comandos e executar aplicações, conversando diretamente com o kernel. Para utilizar uma interface de comandos via rede em um sistema operacional é possível especifi car um protocolo que irá realizar a conexão entre o cliente e o servidor, em que é necessário o acesso via shell. O formato de acesso remoto pelo shell de comandos é muito útil para um ad- ministrador de sistema. Ele o usa para a execução de tarefas de gerenciamento, aplicações, processos automatizados, entre outros. Porém, a segurança é algo fundamental no tráfego dessas informações via rede, pelo fato de que a execução de comandos remotos, muitas vezes, envolve processos críticos na infraestrutura de TI de uma empresa. CRIPTOGRAFIA APLICADA 87 SER_DIGSEC_CRIPTO_UNID3.indd 87 24/09/2020 16:00:56 O primeiro formato de protocolo para acesso via shell de forma remota, executado sobre TCP/IP, não oferecia uma arquitetura de segurança padrão para as conexões, permitindo a quebra de confidencialidade do tráfego de da- dos, por meio de espionagem das informações enviadas. CURIOSIDADE O protocolo Telnet (sigla para Terminal Network, em inglês) foi o primeiro modelo de protocolo para acesso remoto adotado em larga escala. O protocolo SSH (sigla para Secure Shell, em inglês) implementa a cripto- grafia via TCP/IP para acesso remoto, tanto para a execução de comandos quanto para a transferência de arquivos. Como o SSH possui uma suíte com aplicativos multiplataforma utilizados para realizar a conexão entre um clien- te e servidor, é comum associar o nome SSH somente às ferramentas de aces- so, e não ao protocolo. A versão mais atual do protocolo SSH é conhecida como SSH-2 (versão 2), contendo melhorias relacionadas à segurança, implementadas desde a pri- meira versão (denominada como SSH-1). Sobre a arquitetura do protocolo, em si, ele é formado por uma pilha de camadas de funcionalidades específi- cas, para cada função necessária para a conexão remota, conforme podemos verificar no Diagrama 5: DIAGRAMA 5. CAMADAS DO PROTOCOLO SSH IP TCP SSH-TRANS SSH-AUTH SSH-CONN SSH CRIPTOGRAFIA APLICADA 88 SER_DIGSEC_CRIPTO_UNID3.indd 88 24/09/2020 16:00:56 Como podemos visualizar no Diagrama 5, na abordagem das camadas da pilha TCP/IP, é possível interpretar que o SSH irá atuar na camada de aplicação. A estrutura básica do protocolo SSH é composta por três camadas internas de outros protocolos, denominados como SSH-TRANS, SSH-AUTH e SSH-CONN. Cada uma das camadas dos sub-protocolos SSH é responsável por uma fun- ção na segurança da conexão remota: • SSH-TRANS: essa camada implementa a segurança no encaminhamento da conexão por meio da troca de informações de segurança entre o cliente e o servidor envolvidos na comunicação (no mesmo formato do SSL/TLS). Como funções principais, a SSH-TRANS é responsável pela autenticidade do servidor, a integridade dos dados trafegados, a confidencialidade das informações da conexão, além de possível compressão do tráfego; • SSH-AUTH: essa camada implementa a autenticação do cliente em rela- ção ao servidor, de uma forma muito similar ao SSL/TLS, por meio do envio de informações de identificação, como o login do usuário, o nome reconhecido do servidor e o método de autenticação. Como método de autenticação, o SSH pode utilizar formatos específicos, sendo os mais comuns por uma senha defi- nida na base de dados de usuário, utilizada pelo servidor remoto ou por meio de um par de chaves compartilhadas (geralmente do tipo assimétricas, porém sendo possível utilizar chaves simétricas também), sem a necessidade de uma senha específica (opção muito utilizada para automatização de rotinas e aces- so em provedores na nuvem, por exemplo); • SSH-CONN: essa camada entra em cena após ser totalmente estabelecido o canal seguro entre o cliente e o servidor, possibilitando o uso de diversas aplicações para o tráfego de dados via SSH, como a execução de comandos, transferência de arquivos e encaminhamento de porta, por exemplo. Dentro da especificação de uma sessão via o protocolo SSH, o canal seguro pode trazer a execução de aplicações nos seguintes formatos: • Tipo session: o formato mais comum e base de funcionamento do SSH. Esse tipo é utilizado para execução remota de um programa, seja um shell de comandos no sistema operacional, um executável ou um utilitário para transferência de arquivos (também denominado como secure copy); CRIPTOGRAFIA APLICADA 89 SER_DIGSEC_CRIPTO_UNID3.indd 89 24/09/2020 16:00:56 • Tipo x11: esse formato refere-se ao padrão de protocolo denominado X Window System, utilizado para exibição de interface gráfica por meio de rede no SSH. Com isso, é possível executar aplicações que carregam um ambiente gráfico associado, como aplicativos de área de trabalho, por exemplo; • Tipos forwarded-tcpip e direct-tcpip: apesar de serem dois tipos diferen- tes de canal seguro, ambos implementam uma forma avançada de utilização do protocolo SSH para criptografia de tráfego de dados: o túnel seguro para algu- ma aplicação TCP/IP que não utilize comunicação segura. Com isso, outros pro- tocolos TCP/IP podem utilizar o SSH como uma VPN, para trafegar informações de forma criptografada em uma rede não-confiável, garantindo a confidencia- lidade e integridade das informações. A diferença entre os tipos está em rela- ção a origem do túnel no encaminhamento da porta TCP/IP: o forwarded-tcpip implementa o encaminhamento de porta no lado remoto da conexão, enquan- to o direct-tcpip implementao encaminhamento no lado local da conexão. Na Figura 3 temos uma ilustração geral do funcionamento do encaminha- mento de portas através do SSH: Figura 3. Ilustração do port forwarding do SSH. Fonte: SSH.COMb. Acesso em: 16/09/2020. SSH SSH Aplicação Servidor de aplicação Servidor SSH Na Figura 3, podemos identificar que a conexão entre o cliente e o servidor é estabelecida por meio do protocolo SSH, garantindo a criptografia do trans- porte dos dados. A aplicação no lado cliente irá utilizar o canal seguro via SSH para estabelecer a conexão com o servidor da aplicação no lado remoto, por meio da porta TCP/IP correspondente (por exemplo, um cliente de banco de da- dos conectando via internet em um servidor de banco de dados sem utilização de criptografia). Todo o tráfego vindo da aplicação cliente irá ser enviado dire- tamente ao servidor SSH, que irá encaminhar para o servidor de aplicação real. CRIPTOGRAFIA APLICADA 90 SER_DIGSEC_CRIPTO_UNID3.indd 90 24/09/2020 16:00:56 Dentre as aplicações principais disponíveis para a utilização do protocolo SSH, podemos destacar em plataforma Unix/Linux o OpenSSH, que implementa tanto a ferramenta cliente (programa ssh) quanto a ferramenta relacionada ao servidor (programa sshd). Já em ambiente Windows, dentre as principais utili- zadas podemos destacar a interface cliente do Putty, utilizada para conectar-se na porta TCP/IP de um servidor SSH remoto. EXPLICANDO A porta padrão na qual o servidor SSH aguarda por requisições vindas dos clientes do protocolo SSH é a 22 do tipo TCP. Na Figura 4, podemos ver um exemplo de execução da ferramenta Putty, para acessar um servidor SSH a partir de uma máquina com sistema operacio- nal Windows: Figura 4. Interface do Putty. Fonte: SSH.COMa. Acesso em: 16/09/2020. Na Figura 4, podemos verificar que o Putty possui toda a interface para aces- so via SSH de forma bastante intuitiva para o usuário, devendo ser especifica- das as informações gerais para a realização da conexão IP do servidor e com a porta do serviço SSH, além de configurações adicionais para customização da CRIPTOGRAFIA APLICADA 91 SER_DIGSEC_CRIPTO_UNID3.indd 91 24/09/2020 16:01:09 sessão de login remoto. Através do Putty, inclusive, é possível realizar, nas opções avançadas, a confi guração para utilizar sessões de canal seguro para o padrão x11 e a criação de encaminhamento de porta (SSH tunnel). Protocolos na camada de aplicação: PGP O PGP (sigla para Pretty Good Privacy, em inglês) foi um padrão de software desenvolvido no início da década de 1990, que trouxe a criptografi a para um formato mais próximo do usuário fi nal, quando o padrão de encriptação era mais utilizado no meio governamental e militar. A ideia principal do PGP é possibilitar a criptografi a em arquivos armazena- dos em um computador pessoal ou mesmo em mensagens de e-mail, atuan- do, também, como assinatura digital para conteúdo. Basicamente, por meio do PGP a criptografi a é realizada com base nas funcionalidades de autenticação, compressão, confi dencialidade e compatibilidade com e-mail. O PGP utiliza como base o padrão aberto criado para encriptação de dados com método de chave assimétrica, denominado OpenPGP. No Diagrama 6, podemos visualizar, de um modo geral, como funciona o processo de criptografi a e descriptografi a por PGP: PROCESSO DE DESCRIPTAÇÃO PROCESSO DE ENCRIPTAÇÃO Arquivo bruto Encriptar arquivocom chave pública Chave pública Arquivo encriptado E-mail ou FTP E-mail ou FTP Arquivo encriptado Chave privada Descriptar arquivo com chave privada Arquivo bruto DIAGRAMA 6. FLUXOGRAMA DA CRIPTOGRAFIA COM PGP Fonte: Go Anywhere. Acesso: 16/09/2020. CRIPTOGRAFIA APLICADA 92 SER_DIGSEC_CRIPTO_UNID3.indd 92 24/09/2020 16:01:09 No Diagrama 6, podemos verifi car que o arquivo padrão é encriptado com uma chave pública, e o arquivo criptografado é enviado por meio de protocolos padrão, como o e-mail ou FTP. No destino, o arquivo recebido é decifrado pela chave privada do receptor da mensagem, retornando o conteúdo ao seu original. Uma das principais aplicações do PGP é a implementação em código aberto do software GnuPG (sigla para GNU Privacy Guard, em inglês). Na Figura 5, po- demos ver um exemplo de funcionamento do GnuPG: Figura 5. Interface do GnuPG. Fonte: GnuPG. Acesso em: 16/09/2020. Na Figura 5, podemos visualizar a exibição da chave utilizada por um de- terminado usuário do GnuPG, com a qual ele pode assinar ou encriptar arquivos (por meio da chave pública) ou decifrar ar- quivos (com a chave privada). Com o identifi cador da chave (key ID) e o e-mail do usuário é possível utilizar a mesma chave para ambas às funcionalidades de criptografi a. CRIPTOGRAFIA APLICADA 93 SER_DIGSEC_CRIPTO_UNID3.indd 93 24/09/2020 16:01:32 Sintetizando Vimos, nessa unidade, os principais aspectos sobre os protocolos de segurança e criptografia em TCP/IP, destacando a importância deles no tráfego seguro dos dados em rede, ou ao executar aplicações em uma má- quina, garantindo os pilares da confidencialidade, integridade e autentici- dade das informações envolvidas em uma comunicação. Existem alguns mecanismos que fazem uso, na prática, desses proto- colos de comunicação segura como, por exemplo, o uso de identidades no mundo virtual no formato de certificados digitais, os quais conferem au- tenticidade e veracidade sobre quem está participando na comunicação. Dentre os métodos utilizados para garantir a criptografia das informa- ções, estão os protocolos que utilizam como base algoritmos de encripta- ção: simétricos, em que a chave para criptografar e decifrar a informação é a mesma, devendo ser compartilhada por meio de um canal seguro entre as partes; ou assimétricos, no qual existem duas chaves, a pública e a pri- vada, para a cifragem é utilizada a chave pública e para descodificação a chave privada. O protocolo SSL/TLS atua como dos principais protocolos utilizados para a criptografia de dados trafegados sobre TCP/IP, atuando com a crip- tografia das sessões utilizadas durante uma conexão. Ele é reconhecido por essa nomenclatura devido ao fato de o TLS ser uma continuação do protocolo SSL, mantendo sua estrutura, porém trazendo melhorias de se- gurança. Em sua arquitetura, o SSL/TLS possui camadas internas de pro- tocolo, o record protocol e o handshaking protocol, que garantem o esta- belecimento do canal seguro para comunicação (o TLS handshake). Uma das principais implementações do SSL/TLS é a extensão segura para o protocolo HTTP, por meio do uso do HTTPS nas conexões via URI, fazendo com que o cabeçalho das requisições e respostas do protocolo web sejam encriptadas na comunicação. O protocolo SSH é utilizado por padrão para acesso remoto em siste- mas para a execução de comandos, transferência de arquivos, sistema gráfico ou encaminhamento de portas, tudo isso em um canal seguro de criptografia. Para isso, o protocolo possui camadas adicionais que cuidam CRIPTOGRAFIA APLICADA 94 SER_DIGSEC_CRIPTO_UNID3.indd 94 24/09/2020 16:01:32 do processo de canal seguro (o SSH-TRANS, SSH-AUTH e SSH-CONN), uti- lizando aplicações como o OpenSSH ou Putty. Além disso, na camada de aplicação, o protocolo PGP é uma das implementações de criptografia a ser aplicado em arquivos e mensagens de e-mail. CRIPTOGRAFIA APLICADA 95 SER_DIGSEC_CRIPTO_UNID3.indd 95 24/09/2020 16:01:33 Referências bibliográficas ALVARENGA, L. G. Criptografia clássica e moderna. 1. ed. Joinville: Clube dos Autores, 2010. APACHE TRAFFIC SERVER. HTTP headers. Disponível em: <https://docs.traffi- cserver.apache.org/en/latest/developer-guide/plugins/http-headers/index. en.html>. Acesso em: 16 set. 2020. CERT.BR - Centro de Estudos, Respostas e Tratamento de Incidentes de Segu- rança do Brasil. Criptografia. Disponível em: <https://cartilha.cert.br/cripto- grafia/>. Acesso em: 16 set. 2020. CLOUDFLARE. What is a TLS handshake.Disponível em: <https://www.cloud- flare.com/learning/ssl/what-happens-in-a-tls-handshake/>. Acesso em: 16 set. 2020. FERREIRA, F.; CAROLINE, S.; MACEDO, W. IPsec - segurança na camada de rede. GTA/UFRJ - Grupo de Teleinformática e Automação, Rio de Janeiro, [s. a.], [s. n.], 2018. Disponível em: <https://www.gta.ufrj.br/ensino/eel878/re- des1-2018-1/trabalhos-vf/ipsec/#referencias>. Acesso em: 16 set. 2020. FOROUZAN, B. A.; FEGAN, S. C. Protocolo TCP/IP. 3. ed. Porto Alegre: AMGH, 2009. GNUPG. GPA screenshots. Disponível em: <https://gnupg.org/related_softwa- re/gpa/screenshots.html>. Acesso em: 16 set. 2020. GO ANYWHERE. Open PGP encryption. Disponível em: <https://www.goany- where.com/managed-file-transfer/encryption/open-pgp>. Acesso em: 16 set. 2020. GOYAL, D. et al. (Org.) Design and analysis of security protocol for commu- nication. 1. ed. Hoboken: John Wiley & Sons, 2020. LUCAS, M. W. PGP & GPG: email for the practical paranoid. 1. ed. [s. l.]: No Starch Press, 2006. MELO, S. et al. BS7799: da tática à prática em servidores Linux. 1. ed. Rio de Janeiro: Alta Books, 2007. MOLINARI, W. Desconstruindo a web: as tecnologias por trás de uma requisi- ção. 1. ed. São Paulo: Casa do Código, 2016. NAKAMURA, E. T.; GEUS, P. L. Segurança de redes em ambientes cooperati- vos. 1. ed. São Paulo: Novatec, 2007. CRIPTOGRAFIA APLICADA 96 SER_DIGSEC_CRIPTO_UNID3.indd 96 24/09/2020 16:01:33 OPPLIGER, R. SSL and TLS: theory and practice. 1. ed. [s. l.]: Artech House, 2009. SSH.COMa. How to use Putty on Windows. Disponível em: < https://www.ssh. com/ssh/putty/windows/>. Acesso em: 16 set. 2020. SSH.COMb. SSH tunnel. Disponível em: <https://www.ssh.com/ssh/tunne- ling/>. Acesso em: 16 set. 2020. CRIPTOGRAFIA APLICADA 97 SER_DIGSEC_CRIPTO_UNID3.indd 97 24/09/2020 16:01:33
Compartilhar