한국   대만   중국   일본 
Transport Layer Security ? Wikipedia, a enciclopedia livre Saltar para o conteudo

Transport Layer Security

Origem: Wikipedia, a enciclopedia livre.

O Transport Layer Security ( TLS ), [ nota 1 ] assim como o seu antecessor Secure Sockets Layer ( SSL ), [ nota 2 ] [ 1 ] e um protocolo de seguranca projetado para fornecer seguranca nas comunicacoes sobre uma rede de computadores . [ 2 ] Varias versoes do protocolo encontram amplo uso em aplicativos como navegacao na web , email , mensagens instantaneas e voz sobre IP (VoIP). Os sites podem usar o TLS para proteger todas as comunicacoes entre seus servidores e navegadores web .

O protocolo TLS visa principalmente fornecer privacidade e integridade de dados entre dois ou mais aplicativos de computador que se comunicam. [ 2 ] Quando protegidos por TLS, conexoes entre um cliente (por exemplo, um navegador da Web) e um servidor (por exemplo, wikipedia.org) devem ter uma ou mais das seguintes propriedades:

  • A conexao e privada (ou segura ) porque a criptografia simetrica e usada para criptografar os dados transmitidos. As chaves para essa criptografia simetrica sao geradas exclusivamente para cada conexao e sao baseadas em um segredo compartilhado que foi negociado no inicio da sessao (veja § Handshake TLS ). O servidor e o cliente negociam os detalhes de qual algoritmo de criptografia e chaves criptograficas usar antes que o primeiro byte de dados seja transmitido (ver § Algoritmo abaixo). A negociacao de um segredo compartilhado e segura (o segredo negociado nao esta disponivel para bisbilhoteiros e nao pode ser obtido, mesmo por um invasor que se coloque no meio da conexao) e confiavel (nenhum invasor pode modificar as comunicacoes durante a negociacao sem ser detectado).
  • A identidade das partes em comunicacao pode ser autenticada usando criptografia de chave publica. Essa autenticacao pode ser opcional, mas geralmente e necessaria para pelo menos uma das partes (geralmente o servidor).
  • A conexao e confiavel porque cada mensagem transmitida inclui uma verificacao de integridade de mensagem usando um codigo de autenticacao de mensagem para evitar perda nao detectada ou alteracao dos dados durante a transmissao. [ 2 ]

Alem das propriedades acima, a configuracao cuidadosa do TLS pode fornecer propriedades adicionais relacionadas a privacidade, como sigilo de encaminhamento, garantindo que qualquer divulgacao futura de chaves de criptografia nao possa ser usada para descriptografar as comunicacoes TLS registradas no passado. [ 3 ]

O TLS suporta muitos metodos diferentes para trocar chaves, criptografar dados e autenticar a integridade da mensagem (consulte § Algoritmo abaixo). Como resultado, a configuracao segura do TLS envolve muitos parametros configuraveis ??e nem todas as opcoes fornecem todas as propriedades relacionadas a privacidade descritas na lista acima (consulte § Troca de chave (autenticacao), § Seguranca de codificacao e § Tabelas de integridade de dados).

Tentativas foram feitas para subverter aspectos da seguranca das comunicacoes que o TLS procura fornecer, e o protocolo foi revisado varias vezes para lidar com essas ameacas de seguranca (ver § Seguranca). Os desenvolvedores de navegadores da Web tambem revisaram seus produtos para se defenderem de potenciais pontos fracos de seguranca depois que eles foram descobertos (veja o historico de suporte a TLS / SSL dos navegadores da Web). [ 2 ]

O protocolo TLS compreende duas camadas: o registro TLS e os protocolos de handshake TLS.

O TLS e um padrao proposto pela IETF (Internet Engineering Task Force), definido pela primeira vez em 1999, e a versao atual e o TLS 1.3 definido no RFC 8446 (agosto de 2018). O TLS baseia-se nas especificacoes SSL anteriores (1994, 1995, 1996) desenvolvidas pela Netscape Communications [ 4 ] para adicionar o protocolo HTTPS ao navegador da Web Navigator.

Descricao [ editar | editar codigo-fonte ]

Aplicacoes cliente-servidor fazem uso do protocolo TLS para se comunicar atraves de uma rede de forma a prevenir a interceptacao e adulteracao da informacao.

Uma vez que aplicacoes podem se comunicar tanto atraves de TLS (ou SSL) como sem ele, e necessario que o cliente sinalize ao servidor para a configuracao de uma conexao TLS. [ 5 ] Uma das maneiras de se obter isso e utilizar numeros de porta diferentes, por exemplo a porta 443 para HTTPS . Outro mecanismo e uma requisicao especifica por parte do cliente ao servidor para uma transicao para a conexao TLS; por exemplo, ao fazer uma requisicao STARTTLS ao utilizar protocolos de email.

Uma vez que o cliente e o servidor concordaram quanto ao uso do TLS, eles negociam uma conexao de estado por meio de um procedimento de handshake . [ 6 ] Os protocolos utilizam um handshake com uma chave publica para estabelecer as configuracoes de criptografia e uma chave de sessao unica compartilhada atraves da qual toda a comunicacao e criptografada utilizando uma chave simetrica . Durante esse handshake, o cliente e o servidor concordam a respeito dos varios parametros necessarios para estabelecer a seguranca da conexao:

  • O handshake e iniciado quando o cliente se conecta a um servidor habilitado para TLS requisitando uma conexao segura e apresentando uma lista de algoritmos suportados ( cifras e funcoes hash ).
  • A partir dessa lista, o servidor seleciona uma cifra e uma funcao hash para as quais tambem tenha suporte e notifica ao cliente a decisao.
  • O servidor entao geralmente apresenta informacoes de identificacao na forma de um certificado digital . O certificado contem o nome do servidor, a autoridade de certificacao (CA) que concedeu o certificado, e a chave publica do servidor.
  • O cliente confirma a validade do certificado antes de continuar.
  • Para gerar as chaves de sessao utilizadas na conexao segura, o cliente:
    • criptografa um numero aleatorio com a chave publica recebida e envia o resultado ao servidor (o unico capaz de descriptografar a mensagem com sua chave privada); ambas as partes entao fazem uso do numero aleatorio para gerar uma chave de sessao unica para a criptografia subsequente dos dados durante a sessao, ou
    • inicia uma troca de chaves de Diffie-Hellman para gerar seguramente uma chave de sessao aleatoria e unica, utilizada para criptografar e descriptografar os dados e que ainda possui a propriedade de foward secrecy : caso a chave privada do servidor seja vazada no futuro, ela e incapaz de descriptografar a sessao atual, mesmo que esta tenha sido interceptada e gravada por um terceiro.

Isso conclui o handshake e inicia a conexao segura, que e criptografada e descriptografada com a chave de sessao ate o fim da conexao. Se qualquer um dos passos acima falhar, o handshake TLS tambem falha e a conexao nao e criada.

Os protocolos TLS e SSL nao se encaixam perfeitamente em nenhuma camada dos modelos OSI ou TCP/IP . [ 7 ] [ 8 ] O TLS e implementado "sobre um protocolo de comunicacao confiavel (por exemplo, o TCP)", o que implica que ele esta acima da camada de transporte. Ele serve para criptografar as camadas superiores, o que normalmente seria funcao da camada de apresentacao. Contudo, as aplicacoes geralmente fazem uso do TLS como se fosse uma camada de transporte, [ 7 ] [ 8 ] mesmo que essas aplicacoes devam controlar ativamente o inicio dos procedimentos de handshake e o gerenciamento dos certificados de autenticacao compartilhados. [ 2 ]

Protocolo TLS

Funcionamento [ editar | editar codigo-fonte ]

O servidor do site que esta sendo acessado envia uma chave publica ao browser , usada por este para enviar uma chave secreta simetrica, criada aleatoriamente. Desta forma, fica estabelecida a troca de dados criptografados entre dois computadores .Baseia-se no protocolo TCP da suite TCP/IP e utiliza-se do conceito introduzido por Diffie-Hellman nos anos 70 (criptografia de chave publica) e Phil Zimmermann (criador do conceito PGP ).

Historia e desenvolvimento [ editar | editar codigo-fonte ]

A primeira versao foi desenvolvida pela Netscape em 1994. O SSL versao 3.0 foi lancado em 1996 , e serviu posteriormente de base para o desenvolvimento do TLS versao 1.0, um protocolo padronizado da IETF originalmente definido pelo RFC 2246 . Grandes instituicoes financeiras como Visa , MasterCard , American Express , dentre outras, aprovaram o SSL para comercio eletronico seguro na Internet.O SSL opera de forma modular, possui design extensivel e apresenta compatibilidade entre pares com versoes diferentes do mesmo.O SSL executa a autenticacao das 2 partes envolvidas nas comunicacoes (cliente e servidor) baseando-se em certificados digitais .

Seguranca [ editar | editar codigo-fonte ]

Ataques significativos contra TLS/SSL estao listados abaixo.

Em fevereiro de 2015, a IETF emitiu um informativo RFC [ 9 ] resumindo os varios ataques conhecidos contra TLS/SSL.

A Apple corrigiu a vulnerabilidade BEAST implementando a divisao 1/n-1 e ativando-a por padrao no OS X Mavericks, lancado em 22 de outubro de 2013. [ 10 ]

Notas

  1. Em portugues : Seguranca da Camada de Transporte.
  2. Em portugues : Protocolo de Camada Segura de Soquetes.

Ver tambem [ editar | editar codigo-fonte ]

Referencias [ editar | editar codigo-fonte ]

  1. R. Barnes; M. Thomson; A. Pironti; A. Langley (Junho de 2015). ≪Deprecating Secure Sockets Layer Version 3.0≫ (em ingles). Copia arquivada em 28 de marco de 2018  
  2. a b c d e T. Dierks, E. Rescorla (Agosto de 2008). ≪The Transport Layer Security (TLS) Protocol Version 1.2≫ . tools.ietf.org (em ingles) . Consultado em 6 de novembro de 2020  
  3. SSL: Intercepted today, decrypted tomorrow Arquivado em 2013-09-21 no Wayback Machine , Netcraft, 25-06-2013.
  4. A. Freier; P. Karlton; P. Kocher (agosto de 2011). ≪The Secure Sockets Layer (SSL) Protocol Version 3.0≫ . Copia arquivada em 15 de janeiro de 2012  
  5. Lawrence, Scott; Khare, Rohit. ≪Upgrading to TLS Within HTTP/1.1≫ . tools.ietf.org (em ingles) . Consultado em 6 de novembro de 2020  
  6. Archiveddocs. ≪SSL/TLS in Detail≫ . docs.microsoft.com (em ingles) . Consultado em 6 de novembro de 2020  
  7. a b Hooper, Howard (22 de junho de 2012). CCNP Security VPN 642-648 Official Cert Guide: CCNP Sec VPN 642-648 ePub _2 (em ingles). [S.l.]: Cisco Press  
  8. a b ≪What layer is TLS?≫ . Information Security Stack Exchange . Consultado em 6 de novembro de 2020  
  9. ≪Summarizing Known Attacks on Transport Layer Security (TLS) and Datagram TLS (DTLS)≫ . 4 de marco de 2016  
  10. Ristic, Ivan (31 de outubro de 2013). ≪Apple Enabled BEAST Mitigations in OS X 10.9 Mavericks≫ . Consultado em 8 de outubro de 2014 . Copia arquivada em 12 de outubro de 2014  

Ligacoes externas [ editar | editar codigo-fonte ]