PROTOCOLO HTTPS
HYPERTEXT TRANSFER PROTOCOL
SECURE
HTTPS – O que é?
• Https é um protocolo que trabalha numa
subcamada do http.
• Tem requisitos de funcionalidade
• Criptografia
• Continua em Evolução / Transformação /
Desenvolvimento
Https
• Quais as vantagens do HTTPS em
comparação com o HTTP?
Segurança
Confidencialidade
Exemplo de uma comunicação segura Cliente - Servidor
A informação ao este
encriptada não será de
facil leitura ou lógica
Como é estabelecida a
Comunicação
Como Sei se estou
Seguro?
Podemos verificar se uma ligação é
segura da seguinte forma
1 - Através da Nomenculatura
Sites / Portais com Acesso seguro utilizam
nomenculatura https://
2- Verificação do Certificado
Que Protocolos Utiliza
HTTPS?
SSL Secure Socket Layer ( Camada de Sockets Segura )
TLS Transport Layer Security ( Segurança da Camada de Transporte )
Mas o HTTPS tem tambem que cumprimir certos requisitos entre cliente e Servidor
1- O usuário confia que o navegador implementa corretamente HTTPS com autoridades de certificação pré-instaladas adequadamente;
2 - O usuário confia que as autoridades verificadoras só irão confiar em páginas legítimas, que não possuem nomes enganosos;
3- A página acessada fornece um certificado válido, o que significa que ele foi assinado por uma autoridade de certificação confiável;
4 - O certificado identifica corretamente a página (por exemplo, quando o navegador acessa "https://exemplo.com", o certificado recebido
é realmente de "Exemplo Inc." e não de alguma outra entidade).
5- Ou o tráfego na internet é confiável, ou o usuário crê que a camada de encriptação do protocolo TLS/SSL é suficientemente segura
contra escutas ilegais (eavesdropping).
HTTPS ( Chave de Encriptação )
Para Haver comunicação entre o cliente e o Servidor, é
necessário Gerar uma Chave de Encriptação.
A mesma divide-se em duas Fases
1ª Fase
1º Computadores tem ambos que
concordar com a encriptação
2º Cliente envia uma mensagem com
Key RSA, Cipher e HAsh , Versão do
certificado SSL e o Numero Aleatório.
3º Servidor retorna a mensagem ao
cliente indicando ( Eu Escolha esta
Chave, esta crifra e estes metodos de
hash), o cliente diz isto é o que consigo
fazer, ambos acordo em estabelecer
conexão.
2ª Fase
-Servidor envia o certificado para o cliente, no qual
consta a data de validade, com especificações de
cifragem, então o cliente indica vamos como a encriptar
para o servidor.
-Ambos os computador calculam um chave secreta
Master, usada para encriptar as comunicações.
- Servidor indica vamos começar a encriptar, identifica
novamente as definicoes de cifragem, e indica ok
vamos começar.
Exemplificação Gráfica
Exemplificação Gráfica
Exemplificação Gráfica
Exemplificação Gráfica
Exemplificação Gráfica
• Apartir deste momento as comunicações
entre cliente e servidor estão segura
Protocolo Criptográficos
TLS
Https utiliza protocolo SSL ou TLS para criptografar a
comunicação de dados.
O TLS / SSL utiliza esta camada para
encapsular todas as mensagens do protocolo
Campo
Tamanho
Uso
Protocolo
1 byte
Indica qual protocolo da
camada superior está
contido na mensagem
deste registro
Versao
2 bytes
O maior e menor número
da especificação de versão
SSL / TLS que essa
mensagem obedece
Comprimento
2 bytes
O Comprimento da
mensagem do protocolo
da camada superior
n bytes
Até 16384 bytes de
mensagem da camada
superior. Mais de uma
mensagem podem estar
contidas em um registro,
desde que provenham do
mesmo protocolo superior
Mensagens dos Protocolos
Protocolo Criptográficos
TLS - Erros
Objectivo é sinalizar um erro ou uma situação não esperada na conexão.
O protocolo de alerta define dois campos: um nível de segurança e uma descrição do alerta
Valor
Nome
0 CloseNotify
Significado
A parte emissora do alerta
indica explicitamente que está
fechando a conexão; Este
alerta possui sempre nível de
segurança de Warning
10 UnexpectedMessage
A parte emissora indica que
recebeu uma mensagem não
esperada. Alerta fatal.
20 BadRecordMAC
A parte emissora indica que
recebeu uma mensagem para
a qual o MAC falhou. Alerta
Fatal.
30 DecompressionFailure
A parte emissora indica que
recebeu dados que não pôde
descomprimir. Alerta Fatal.
40 HandShakeFailure
A parte emissora indica que não foi
capaz de negociar um conjunto de
configurações necessárias para a
conexão. Alerta Fatal.
41 NoCertificate
O cliente indica que não possui
certificado para atender ao pedido de
Certificaterequest emitido pelo
servidor.
42 BadCertificate
A parte emissora indica que recebeu
um certificado corrompido.
43 UnsupportedCertificate
A parte recebeu um certificado de tipo
não suportado.
44 CertificateRevoked
A parte emissora recebeu um
certificado revogado pela entidade que
o certificou.
45 CertificateExpired
A parte emissora recebeu um
certificado já expirado.
46 CertificateUnknown
A parte emissora recebeu um
certificado com erros que não puderam
ser identificados.
47 IllegalParameter
A parte emissora indica que recebeu
no handshake um parâmetro ilegal.
Protocolo Criptográficos
SSL
É um protocolo criptográfico que confere segurança de comunicação na Internet para
serviços como email (SMTP), navegação por páginas (HTTP) e outros tipos de
transferência de dados.
A primeira versão foi desenvolvida pela Netscape em 1994. O SSL versão 3.0 foi
lançado em 1996, e serviu posteriormente de base para o desenvolvimento do TLS
versão 1.0, um protocolo padronizado da IETF originalmente definido pelo RFC 2246.
Grandes instituições financeiras como Visa, MasterCard, American Express, entre
outras, aprovaram o SSL para comércio eletrônico seguro na Internet.
Protocolo Criptográficos
SSL – Algoritmos
DES - Data Encryption Standard, é um algoritmo de criptografia usado pelo governo americano.
DSA - Digital Signature Algorithm, parte do padrão de autentificação digital usado pelo governo americano.
KEA - Key Exchange Algorithm, um algoritmo usado para a troca de chaves pelo governo americano.
MD5 - Message Digest Algorithm, algoritmo de criptografia digest.
RC2 e RC4 - Rivest Encryption Ciphers, desenvolvido pela RSA Data Security.
RSA - Algoritmo de chave pública para criptografia e autentificação.
RSA Key Exchange - Algoritmo para troca de chaves usado em SSL baseado no algoritmo RSA.
SHA-1 - Secure Hash Algorithm, função hash usada pelo governo americano.
SKIPJACK - Algoritmo de chave simétrica implementado no hardware Fortezza.
Triple-DES - é o DES aplicado três vezes
Historia e Evolução
SSL / TLS
1)SSL 1.0, 2.0 and 3.0
The SSL protocolo desenvolvido pela Netscape.[6] Versao 1.0 nunca foi disponibilizado a versao 2.0 foi
disponibilizada em Fevereiro 1995 but "contained a number of security flaws which ultimately led to the
design of SSL version 3.0." SSL versiao3.0, disponibilizada em 1996.
Novas versoes de SSL/TLS foram basedas no SSL 3.0. O esquisso do SSL 3.0 foi publicado em 1996 pela
IETF com documento historico no RFC 6101.
2) TLS 1.0
TLS 1.0 definido no RFC 2246 em Janueiro de 1999 como sendo upgrade of SSL Version 3.0.
“As stated in the RFC, "the differences between this protocol and SSL 3.0 are not dramatic, but they
are significant to preclude interoperability between TLS 1.0 and SSL 3.0. " TLS 1.0 does include a means by
which a TLS implementation can downgrade the connection to SSL 3.0, thus weakening security.”
3) TLS 1.1 definido no RFC 4346 em Abril 2006. É um update do TLS versão 1.0. Diferenças significativas que
incluem:
• Added protection against Cipher block chaining (CBC) attacks.
The implicit Initialization Vector (IV) was replaced with an explicit IV.
Change in handling of padding errors.
•
Support for IANA registration of parameters.
Historia e Evolução
SSL / TLS
4) TLS 1.2
TLS 1.2 defenido RFC 5246 em Agosto 2008. Baseado nas especificações TLS 1.1 As Maiores
diferenças incluem
• The MD5-SHA-1 combination in the pseudorandom function (PRF) was replaced with SHA-256, with
an option to use cipher-suite specified PRFs.
• The MD5-SHA-1 combination in the Finished message hash was replaced with SHA-256, with an
option to use cipher-suite specific hash algorithms. However the size of the hash in the finished
message is still truncated to 96-bits.
• The MD5-SHA-1 combination in the digitally signed element was replaced with a single hash
negotiated during handshake, defaults to SHA-1.
• Enhancement in the client's and server's ability to specify which hash and signature algorithms they
will accept.
• Expansion of support for authenticated encryption ciphers, used mainly for Galois/Counter Mode
(GCM) and CCM mode of Advanced Encryption Standard encryption.
• TLS Extensions definition and Advanced Encryption Standard CipherSuites were added.
TLS 1.2 defenido posteriormente no RFC 6176 em March 2011 removendo a compatibilidade com SSL
tais como sessões TLS nunca negoceiam o uso de sockets do SSL versão 2.0.
Https com Futuro?
Empresas como o Google apostam em aplicações que utilizam https.
Erros mais frequentes com SSL
Download

Apresentação