Le blog de Philippe

MIME: types de contenu des e-mails

P.Leclercq dans Sécurité    2024-12-11   technologie 

article header image

Comprendre les types MIME et leur impact sur la communication et la sécurité des e-mails

Si vous avez déjà envoyé ou reçu un e-mail avec une pièce jointe, vous avez probablement déjà rencontré des types MIME, sans même vous en rendre compte. Les types MIME jouent un rôle crucial dans la communication par e-mail moderne. Pour les professionnels de l’informatique et les utilisateurs expérimentés, comprendre les types MIME est essentiel, non seulement pour résoudre les problèmes, mais aussi pour garantir la sécurité. Examinons ce que sont les types MIME, leur historique et leur importance.

Que sont les types MIME ?

MIME signifie Multipurpose Internet Mail Extensions. Les types MIME sont des identifiants utilisés pour décrire le format d’un fichier ou la nature des données contenues dans un e-mail ou une page web. Ils sont essentiels pour permettre aux systèmes de messagerie et aux serveurs web de reconnaître et de gérer correctement différents types de contenu.

Par exemple, un fichier avec le type MIME image/png est une image PNG, tandis que application/pdf fait référence à un document PDF.

Un type MIME se compose de deux parties, séparées par une barre oblique :

  1. Type: La catégorie générale, comme texte, image, audio ou application.
  2. Sous-type: Le format spécifique, comme html, jpeg ou json.

Pourquoi MIME a-t-il été inventé ?

Au début du courrier électronique (années 1980), le format des messages électroniques était limité au texte brut utilisant le jeu de caractères ASCII. Cela signifiait que les utilisateurs ne pouvaient pas envoyer de fichiers, d’images ou de caractères non anglais. Le développement d’Internet a entraîné le besoin de communications plus riches et plus polyvalentes.

MIME a été introduit en 1991 par Nathaniel Borenstein et ses collègues de l’Université Carnegie Mellon comme une extension du protocole de messagerie électronique original (SMTP) pour pallier ces limitations. MIME a permis de : - Joindre des fichiers tels que des images, des documents et des fichiers audio aux courriers électroniques. - Inclure du texte non ASCII (par exemple, des caractères d’autres langues). - Prendre en charge les messages en plusieurs parties (par exemple, combiner des versions texte brut et HTML d’un e-mail).

MIME est une norme Internet, spécifiée dans une série de RFC : RFC 2045, RFC 2046, RFC 2047, RFC 4288, RFC 4289 et RFC 2049. L’intégration avec la messagerie SMTP est spécifiée dans les normes RFC 1521 et RFC 1522.

En-têtes MIME dans les e-mails

La plupart des clients de messagerie ajoutent un ou plusieurs des en-têtes MIME suivants aux e-mails envoyés pour décrire le type et le format du contenu.

  • MIME-Version: spécifie la version MIME ; actuellement définie à 1.0 et restera probablement inchangée.
  • Content-Type: spécifie le type MIME de la partie du message. Par exemple :
    • text/plain; charset=UTF-8 : texte brut avec encodage UTF-8.
    • multipart/mixed : message composé de plusieurs parties (par exemple, texte et pièces jointes).
  • Content-Disposition : indique si une partie doit être affichée en ligne ou traitée comme une pièce jointe.
  • Content-Transfer-Encoding : définit le codage du contenu pour une transmission fidèle (par exemple, base64 pour les données binaires).

Principaux types MIME utilisés dans les e-mails

Voici quelques types MIME courants que vous rencontrerez dans les communications par e-mail :

  • Contenu textuel

    • text/plain : e-mails en texte brut.
    • text/html : e-mails HTML avec mise en forme enrichie.
  • Images

    • image/jpeg : images JPEG.
    • image/png : images PNG.
  • Documents

    • application/pdf : fichiers PDF.
    • application/msword : documents Microsoft Word.
  • Audio et vidéo

    • audio/mpeg : fichiers audio MP3.
    • video/mp4 : fichiers vidéo MP4.
  • Fichiers compressés

    • application/zip : archives ZIP.
    • application/gzip : fichiers GZIP.
  • Exécutables

    • application/x-executable : exécutables binaires.
    • application/x-msdownload : fichiers exécutables Windows.

Vous trouverez une liste complète des types MIME sur le site freeformatter.com.

Comment les clients de messagerie gèrent-ils les types MIME ?

Lorsqu’un client de messagerie reçoit un message au format MIME, il traite les en-têtes pour déterminer comment afficher le contenu. Par exemple :

  • Une partie text/html s’affichera sous la forme d’un e-mail enrichi avec images et mise en forme.
  • Une partie image/jpeg avec une valeur Content-Disposition: inline apparaîtra intégrée au corps de l’e-mail.
  • Une partie application/pdf avec une valeur Content-Disposition: attachment sera affichée en pièce jointe ou en fichier téléchargeable pour les clients de messagerie web.

Les clients de messagerie modernes sont conçus pour gérer des structures MIME complexes, telles que les multi-parties imbriquées, garantissant ainsi aux utilisateurs un affichage optimal du contenu de l’e-mail.

Exemple 1 : format alternatif

L’exemple suivant présente un e-mail dont le contenu peut être affiché sous forme de texte simple ou de page HTML, selon les capacités ou les paramètres du client.

MIME-Version: 1.0
Date: Wed, 27 Nov 2024 17:08:05 +0100
Message-ID: <CAEjb-qPTn6j_nQTMuFazpwuDYrEZxFRhGNa-3JYACmShH6HKCw@mail.gmail.com>
Subject: Email de test
From: pl_trash <pltrash2@gmail.com>
To: pl_trash <pltrash2@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000c95da50627e72ba1"

--000000000000c95da50627e72ba1
Content-Type: text/plain; charset="UTF-8"

Email de test.

--000000000000c95da50627e72ba1
Content-Type: text/html; charset="UTF-8"

<div dir="ltr"><div>Email de test.</div><div><br></div></div>

--000000000000c95da50627e72ba1--
  • L’en-tête Content-Type: multipart/alternative indique au client de messagerie que le message contient plusieurs parties contenant les mêmes informations sous différentes formes.
  • Le qualificateur boundary= indique la chaîne utilisée pour séparer les différentes parties du corps en plusieurs parties.
  • La première partie correspond au contenu de l’e-mail en texte brut (Content-Type: text/plain; charset=”UTF-8”)
  • La deuxième partie correspond au contenu de l’e-mail en HTML (Content-Type: text/html; charset=”UTF-8”)

En fonction de ses capacités, le client de messagerie choisira d’afficher la version texte brut ou HTML.

Exemple 2 : Courriel avec pièce jointe

L’exemple suivant montre un courriel avec une pièce jointe distincte.

MIME-Version: 1.0
Date: Tue, 10 Dec 2024 16:23:24 +0100
Message-ID: <CAEjb-qPc2h1hf5_2vGp8FMW6B-K5nUx1m_2W3EVsEORmg4D-wg@mail.gmail.com>
Subject: Test de pièce jointe
From: pl_trash <pltrash2@gmail.com>
To: pl_trash <pltrash2@gmail.com>
Content-Type: multipart/mixed; boundary="000000000000e51e3e0628ec0fa7"

--000000000000e51e3e0628ec0fa7
Content-Type: multipart/alternative; boundary="000000000000e51e3a0628ec0fa5"

--000000000000e51e3a0628ec0fa5
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Email de test avec pi=C3=A8ce jointe.

--000000000000e51e3a0628ec0fa5
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Email de test avec pi=C3=A8ce jointe.<br></div>

--000000000000e51e3a0628ec0fa5--
--000000000000e51e3e0628ec0fa7
Content-Type: text/plain; charset="UTF-8"; name="piece_jointe.txt"
Content-Disposition: attachment; filename="piece_jointe.txt"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_m4im2j340
Content-ID: <f_m4im2j340>

VGVzdCBkZSBwacOoY2Ugam9pbnRlLgo=
--000000000000e51e3e0628ec0fa7--
  • Le premier en-tête, Content-Type: multipart/mixed, permet de signaler un e-mail avec pièce jointe.
  • Le deuxième en-tête, Content-Type: multipart/alternative, comme dans l’exemple précédent, signale le même contenu sous une forme alternative. Notez que la chaîne de séparation est différente de celle qui sépare le corps de l’e-mail et la pièce jointe.
  • Les deux en-têtes suivants, Content-Type: text/plain et Content-Type: text/html, présentent les deux versions du corps de l’e-mail.
  • Le cinquième en-tête, Content-Type: text/plain; charset=”UTF-8”; name=”piece_jointe.txt”, indique que le contenu de la pièce jointe est un fichier texte contenant des caractères en format UTF-8.
  • Content-Disposition: attachment; filename=”piece_jointe.txt” indique au client de messagerie de traiter le contenu suivant comme une pièce jointe, avec le nom de fichier piece_jointe.txt.
  • Content-Transfer-Encoding: base64 indique que le contenu de la pièce jointe a été encodé au format base64. Cet algorithme permet de convertir tout contenu binaire (non imprimable) en ASCII standard afin qu’il soit transféré en toute sécurité sur les canaux qui ne prennent en charge que les caractères ASCII 7 bits (comme les premiers protocoles SMTP). Cela permet d’inclure tout type de fichier, comme des images ou des fichiers exécutables, dans une pièce jointe. L’explication complète de ce codage sort du cadre de cet article, mais sera abordée en détail dans un prochain numéro.
  • Enfin, le contenu du fichier joint est VGVzdCBkZSBwacOoY2Ugam9pbnRlLgo=, qui correspond au codage base64 de la chaîne “Test de pièce jointe.”.

Pourquoi est-il important de connaître les types MIME pour la sécurité ?

La compréhension des types MIME est essentielle pour garantir la sécurité des e-mails, car les attaquants les exploitent souvent pour diffuser du contenu malveillant. Voici comment :

1. Phishing et diffusion de logiciels malveillants

Les attaquants peuvent masquer des fichiers malveillants en utilisant des en-têtes MIME trompeurs. Par exemple, un fichier nommé « document.pdf » peut avoir le type MIME application/x-msdownload, indiquant qu’il s’agit en réalité d’un fichier exécutable.

2. Usurpation de contenu

Certains e-mails malveillants contiennent du contenu mixte, comme des e-mails HTML avec des scripts intégrés ou des liens cachés. Reconnaître les types MIME inattendus peut aider à identifier ces menaces.

3. Exploitations de fichiers

Certains types de fichiers (par exemple, .docx ou .xlsx) peuvent contenir des macros ou du code intégré. En inspectant les types MIME, les utilisateurs peuvent signaler et bloquer les pièces jointes potentiellement dangereuses.

4. Contournement du filtrage des e-mails

Les systèmes de sécurité des e-mails s’appuient souvent sur les types MIME pour filtrer le spam et les contenus malveillants. Une gestion MIME mal configurée peut permettre aux fichiers malveillants de contourner ces filtres.

Conclusion

Pour les professionnels de l’informatique et les utilisateurs avancés, comprendre les types MIME est plus qu’un simple détail technique : c’est une nécessité pour gérer et sécuriser les communications par e-mail.

Accueil   Début