web-dev-qa-db-fra.com

TLS et Alert 21 après la poignée de main

Nous avons un client/serveur exécutant TLS v1.0 et continuons à recevoir l'alerte de chiffrement 21 du client après la prise de contact initiale. Ils utilisent un chaînage de blocs de chiffrement et j'ai lu où la longueur de l'entrée de chiffrement de bloc étant différente de celle d'un multiple de la longueur de bloc provoquerait l'alerte de déchiffrement, mais comment\où trouverais-je ces valeurs pour déterminer s'il s'agit bien du vrai? cause de l'alerte?

J'ai joint la séquence de poignée de main ci-dessous ... Merci ... Appréciez-le

Couche de sockets sécurisée

TLSv1 Record Layer: Handshake Protocol: Client Hello ##
    Content Type: Handshake (22)###
    Version: TLS 1.0 (0x0301)
    Length: 254
    Handshake Protocol: Client Hello
        Handshake Type: Client Hello (1)
        Length: 250
        Version: TLS 1.2 (0x0303)
        Random
            GMT Unix Time: Jun 25, 1983 13:56:23.000000000 Eastern Daylight Time
            Random Bytes: 2761896c45978dc3868cd4858d7a3d5749f7218e40f5fd3f...
        Session ID Length: 0
        Cipher Suites Length: 100
        Cipher Suites (50 suites)
        Compression Methods Length: 1
        Compression Methods (1 method)
        Extensions Length: 109
        Extension: ec_point_formats
        Extension: elliptic_curves
        Extension: SessionTicket TLS
        Extension: signature_algorithms
        Extension: Heartbeat

Couche de sockets sécurisée

TLSv1 Record Layer: Handshake Protocol: Multiple Handshake Messages
    Content Type: Handshake (22)
    Version: TLS 1.0 (0x0301)
    Length: 1449
    Handshake Protocol: Server Hello
        Handshake Type: Server Hello (2)
        Length: 77
        Version: TLS 1.0 (0x0301)
        Random
        Session ID Length: 32
        Session ID: 569d341d4d75bc12b41fa995f22fea93a51d14fa1d612e69...
        Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
        Compression Method: null (0)
        Extensions Length: 5
        Extension: renegotiation_info
    Handshake Protocol: Certificate
        Handshake Type: Certificate (11)
        Length: 816
        Certificates Length: 813
        Certificates (813 bytes)
    Handshake Protocol: Server Key Exchange
        Handshake Type: Server Key Exchange (12)
        Length: 540
        Diffie-Hellman Server Params
            p Length: 128
            p: fd7f53811d75122952df4a9c2eece4e7f611b7523cef4400...
            g Length: 20
            g: 9760508f15230bccb292b982a2eb840bf0581cf5
            Pubkey Length: 128
            Pubkey: 73f35da13f584ccb05901f5242f71da41b5f35cc185409a9...
            Signature Length: 256
            Signature: 3b8a31d223c149fb0af62f653be5d61af1297c11c4d6e925...
    Handshake Protocol: Server Hello Done
        Handshake Type: Server Hello Done (14)
        Length: 0

Couche de sockets sécurisée

TLSv1 Record Layer: Handshake Protocol: Client Key Exchange
    Content Type: Handshake (22)
    Version: TLS 1.0 (0x0301)
    Length: 134
    Handshake Protocol: Client Key Exchange
        Handshake Type: Client Key Exchange (16)
        Length: 130
        Diffie-Hellman Client Params
            Pubkey Length: 128
            Pubkey: 76ef1851a1202c19b55aebc2cf830cbb023f15f75d7c963a...
TLSv1 Record Layer: Change Cipher Spec Protocol: Change Cipher Spec
    Content Type: Change Cipher Spec (20)
    Version: TLS 1.0 (0x0301)
    Length: 1
    Change Cipher Spec Message
TLSv1 Record Layer: Handshake Protocol: Encrypted Handshake Message
    Content Type: Handshake (22)
    Version: TLS 1.0 (0x0301)
    Length: 48
    Handshake Protocol: Encrypted Handshake Message

Couche de sockets sécurisée

TLSv1 Record Layer: Change Cipher Spec Protocol: Change Cipher Spec
    Content Type: Change Cipher Spec (20)
    Version: TLS 1.0 (0x0301)
    Length: 1
    Change Cipher Spec Message

Couche de sockets sécurisée

TLSv1 Record Layer: Handshake Protocol: Encrypted Handshake Message
    Content Type: Handshake (22)
    Version: TLS 1.0 (0x0301)
    Length: 48
    Handshake Protocol: Encrypted Handshake Message

Couche de sockets sécurisée

client-> serveur

TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 32
    Encrypted Application Data: 50c0d7383385d5ea8aa08c9a489904b20fb508a1b53ec017...
TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 480
    Encrypted Application Data: 18ad9fa298268b2da260c4873075d8116554d3067659a0f6...

Couche de sockets sécurisée

serveur-> client

TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 352
    Encrypted Application Data: a425edb24ceb1fab0516b7cf64e18d571db0f222e606d1a7...

Couche de sockets sécurisée

client-> serveur

TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 32
    Encrypted Application Data: 4952a32d5ca081870f74397b4b45d8af9017938b92db648a...
TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 480
    Encrypted Application Data: 3a97d944ddabc997a965cc75ed946aa0dd4b13e525f44aff...

Couche de sockets sécurisée

serveur-> client

TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 32
    Encrypted Application Data: 47f3838b409d33cfd039f51e432e7675095f6f724ba7c728...
TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 352
    Encrypted Application Data: 8bd4f772427b1bf25901b3cc59cff003d83b02bd11421e62...

Couche de sockets sécurisée

client-> serveur

TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 32
    Encrypted Application Data: 1a0750299f160c207a88d6d6b2bc794373b7d45ae845129f...
TLSv1 Record Layer: Application Data Protocol: http
    Content Type: Application Data (23)
    Version: TLS 1.0 (0x0301)
    Length: 480
    Encrypted Application Data: 094956aa5f580d500d9402bc84696748f6c008d8f75bcafc...

Couche de sockets sécurisée

client-> serveur

TLSv1 Record Layer: Encrypted Alert
    Content Type: Alert (21)
    Version: TLS 1.0 (0x0301)
    Length: 32
    Alert Message: Encrypted Alert
7
IT_Andy

C'est un mélange

Ceci n'est PAS AlertDescription 21.

Au lieu de cela, il s’agit de ContentType 21 .

  enum {
      change_cipher_spec(20), alert(21), handshake(22),
      application_data(23), (255)
  } ContentType;

Et maintenant? Donc, nous savons que cela IS une alerte, mais bon quel genre? Un champ AlertDescription fait un octet de large . Alors, lequel est-ce? Et malheureusement, la réponse est….

Alert Message: Encrypted Alert

... Nous ne savons tout simplement pas. C'est crypté.

Q: Mais ne pourrons-nous pas simplement déchiffrer ce dump de paquets si nous utilisons la clé privée pour le certificat?
R: Non. Cette connexion utilisait une suite de chiffrement éphémère (à savoir Cipher Suite: TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)). Elle est donc sécurisée ( ) et la clé de chiffrement en bloc de la session ne peut pas être reconstruit à partir de la clé privée du certificat.

Prenez une nouvelle trace.

Prenez une autre trace, mais cette fois, assurez-vous de pouvoir la déchiffrer par la suite. Pour ce faire, ayez la clé privée prête et forcez une suite non sécurisée (tout ce qui ne contient pas de nom DHE ou ECDHE) ou demandez à votre logiciel de sauvegarder la clé de session quelque part. ( Chrome et Firefox peuvent le faire. )

9
StackzOfZtuff

... nous avons un client/serveur exécutant TLS v1.0 et continuons à recevoir l'alerte de chiffrement 21 du client après la prise de contact initiale ...

Il semble que le client est en panne et qu’il doit être mis à niveau.

Selon RFC 5246, le protocole TLS (Transport Layer Security) version 1.2 , l'alerte 21 est decryption_failed_RESERVED . Et le sens de l'alerte:

decryption_failed_RESERVED
Cette alerte a été utilisée dans certaines versions antérieures de TLS et peut avoir
A autorisé certaines attaques contre le mode CBC [CBCATT]. Il doit
NE PAS être envoyé par des implémentations conformes.

4
jww