Quale livello è TLS?

53

TLS sta per " transport security layer". E l' elenco dei numeri di protocollo IP include "TLSP" come "Transport Layer Security Protocol". Queste due cose mi lascerebbero credere che TLS sia un protocollo per il livello di trasporto.

Tuttavia, molte persone sembrano parlare di TLS su TCP. Wikipedia lo elenca come un protocollo "application layer". Ciò è ulteriormente complicato dal fatto che TCP non ha nulla di simile al numero di un protocollo: si occupa solo di pacchetti di byte non elaborati, quindi come si analizza che si sta ricevendo un pacchetto TLS, contro un pacchetto che inizia solo con 0x14 - 0x18 o equivalente?

    
posta Andrew Spott 07.07.2015 - 16:51
fonte

4 risposte

85

Il modello OSI , che categorizza i protocolli di comunicazione in strati successivi, è proprio questo: un modello . È un tentativo di spingere una realtà fisica in scatole etichettate ben definite. Nessuno ha mai garantito che funzioni ...

Storicamente, quel modello è stato costruito e pubblicato quando l'ISO stava spingendo per l'adozione dei propri protocolli di rete . Hanno perso. Il mondo, nel suo complesso, ha preferito utilizzare il molto più semplice TCP / IP . Il "modello" è sopravvissuto alla morte del suo ecosistema iniziale e molte persone hanno provato ad applicarlo a TCP / IP. È anche comunemente insegnato in questo modo. Tuttavia, il modello non corrisponde al protocollo TCP / IP. Alcune cose non rientrano nei livelli e SSL / TLS è uno di questi.

Se guardi i dettagli del protocollo:

  • SSL / TLS utilizza un mezzo di trasporto sottostante che fornisce un flusso bidirezionale di byte. Questo lo metterebbe da qualche parte sopra layer 4.
  • SSL / TLS organizza i dati come record, che possono contenere, in particolare, i messaggi di handshake. I messaggi di handshake sembrano come il livello 5. Ciò metterebbe SSL / TLS al livello 6 o 7.
  • Tuttavia, ciò che SSL / TLS trasmette è "dati dell'applicazione", che è, in effetti, un flusso bidirezionale di byte. Le applicazioni che usano SSL / TLS lo usano davvero come un protocollo trasporto . Quindi utilizzano la propria rappresentazione dei dati, i messaggi e la semantica all'interno di tali "dati dell'applicazione". Pertanto, SSL / TLS non può essere, nel modello OSI, oltre il livello 4.

Pertanto, nel modello OSI, SSL / TLS deve essere nel livello 6 o 7, e, allo stesso tempo , nel livello 4 o inferiore. La conclusione è irrinunciabile: il modello OSI non funziona con SSL / TLS. TLS non è in alcun livello.

(Questo non impedisce ad alcune persone di spingere arbitrariamente TLS in un livello. Poiché non ha alcun impatto pratico - questo è solo un modello - puoi dichiarare concettualmente che TLS è il livello 2, 5 o 17; essere dimostrato falso.)

    
risposta data 07.07.2015 - 17:17
fonte
31

Modello TCP / IP

  1. Link Layer
  2. Livello Internet (IP)
  3. Livello di trasporto
  4. Application

TLS opera tra il livello di trasporto e il livello di applicazione (tipo di). In realtà si limita a racchiudere il traffico Application Layer nella crittografia durante il trasporto.

Lo scambio di chiavi TLS avviene negli strati intermedi. Qui non è proprio il Transport Layer perché cose come numeri di porta e numeri di sequenze sono già presenti sul Transport Layer. È solo l'invio di dati per stabilire protocolli di crittografia in modo che possa avvolgere il livello dell'applicazione.

L'ordinamento IPSec fa la stessa cosa, solo in un livello precedente. La sicurezza IP protegge tutto al di sopra del livello IP. Transport Security protegge tutto al di sopra del Transport Layer. Gli scambi chiave per entrambi sono in un posto strano perché hanno solo bisogno di inviare dati per stabilire il livello sicuro. Molto simile a come ICMP è considerato un protocollo IP, ma contiene ancora dati dopo il livello IP. Questo lo rende Transport Layer? No.

Modello OSI

Il modello OSI ha un po 'più granularità.

  1. Livello fisico
  2. Livello collegamento dati
  3. Network Layer (IP)
  4. Transport Layer (TCP)
  5. Session Layer (TLS)
  6. Presentation Layer
  7. Application Layer (HTTP)

TLS stabilisce una sessione crittografata. Nel modello OSI è qui che opera TLS. Configura la sua sessione e aggiunge un livello di crittografia per l'Application Layer (HTTP).

Una risposta correlata .

Analisi di TLS

Nella intestazione del protocollo di controllo della trasmissione esiste un campo Offset dei dati . Questo campo rappresenta la dimensione dell'intestazione TCP nelle parole a 32 bit. La dimensione minima per questo valore è 5 (20 byte). Questo è a un offset fisso dall'inizio dell'intestazione TCP. Usando questo valore conoscerai la dimensione del TCP e potrai utilizzarlo per calcolare l'inizio della porzione TLS.

Un record TLS inizia sempre con un tipo di contenuto e quindi con la versione SSL. Ci sono solo 5 diversi tipi di contenuto e 4 diverse versioni di cui preoccuparsi. Quindi, utilizzando i primi 3 byte dei dati che seguono l'intestazione TCP, dovresti essere in grado di determinare se SSL / TLS viene utilizzato.

Avrei eseguito Wireshark sulla tua macchina (non funzionante) e filtrato su "ssl". Quindi vai al link . Sarai in grado di vedere l'intera stretta di mano. Tutti gli strati sono suddivisi per te. Fornirà una buona rappresentazione di come i layer sono costruiti con TLS e sarai in grado di vedere ciascuno dei record TLS.

    
risposta data 07.07.2015 - 17:14
fonte
8

Questa risposta riguarda solo l'aspetto secondario "TLSP" della domanda.

the list of IP protocol numbers includes "TLSP" as "Transport Layer Security Protocol".

Non avevo mai sentito parlare di quel protocollo. Non è il protocollo che utilizzi per visualizzare le pagine HTTPS.

TLSP sembra essere un protocollo molto oscuro. Ed è stato registrato nel 1994-10 . Questo era prima del protocollo che ora comunemente chiamiamo "TLS". Tornato in quel giorno, il protocollo era ancora chiamato "SSL". La prima bozza pubblica per "TLS" è datata due anni dopo, il 1996-11-26.

Vedi questa domanda per i dettagli sulla timeline:

I nomi IANA "[email protected]" come registrante. Quel nome non suona un campanello per me. Anche il sito web bull.se non è più attivo.

Esiste infatti una pagina LinkedIn per uno svedese Christer Öberg che ha lavorato per un Società "Bull" come "soluzioni di sicurezza CTO" nel 1994 . Immagino che sia il tizio che una volta ha presentato la registrazione "TLSP". (E anche che è l'unico in grado di dirti in cosa consistesse realmente "TLSP")

    
risposta data 07.07.2015 - 17:28
fonte
2

TCP ha un numero di protocollo IP: 0x06

TSL / SSL è un protocollo applicativo che indica che alcuni programmi (non il sistema operativo) elaborano i pacchetti. Ad esempio, se un server web accetta le richieste HTTPS, è il server Web che elabora i pacchetti SSL che si trovano all'interno dei pacchetti TCP.

Il protocollo TLSP 0x38 è specifico per Kryptonet. Nessuno ha utilizzato la gestione delle chiavi di Kryptonet per anni.

I pacchetti di comunicazione non vengono elaborati genericamente in base al loro contenuto. Il server si aspetta che i pacchetti siano nel protocollo corretto fin dall'inizio. Ad esempio, se un server SSL è in ascolto su un socket e riceve un pacchetto non SSL, lo ignorerà.

    
risposta data 07.07.2015 - 23:47
fonte

Leggi altre domande sui tag