MIME (Extensions de correu Internet multipropòsit)


Index

1. Introducción

2. Funcionament de MIME

3. Altres consideracions

4. Conclusions

5. Fonts


1. Introducció

MIME és un estàndard desenvolupat des de 1991 per IETF (Internet Engineering Task Force) que ha adquirit molta importància sobre tot en els clients de correu a l’hora de transmetre texts incompatibles via e-mail. Inclòs s’arriba a dir que cap programa de correu electrònic es pot considerar complet si no suporta MIME.

MIME permet l’intercanvi a traves d’Internet de diferents tipus d’arxius de manera transparent per a l’usuari, sense importar quin sigui el tipus de codificació ni el format de l’arxiu en qüestió (facilitant l’intercanvi de text entre màquines amb idiomes i alfabets diferents p.ex.). Bàsicament, MIME son una sèrie de convencions que milloren l’enviament i la recepció d’arxius, ja siguin executables, vídeo, so, etc.. de contingut binari, proporcionant format als arxius, classificant-los segons el seu tipus i establint quin tipus de codificació s’ha d’utilitzar per a cada un d’ells.

Existeixen unes taules establertes per l’organisme anomenat IANA (Internet Assigned Numbers Authority) que indiquen quina codificació s’ ha d’utilitzar per a cada tipus d’arxiu. La necessitat de crear aquestes taules ve donada per la gran varietat de formats diferents d’arxius que es poden transmetre. La versatilitat de MIME ens ofereix la possibilitat de crear nous tipus MIME, fins i tot eliminar-los, encara que només podrem eliminar aquells tipus que hagin estat creats de nou. Els tipus ja existents no es poden eliminar.

Index


2. Funcionament de MIME

El protocol de correu electrònic SMTP és dels més utilitzats, però posseeix una sèrie de limitacions que MIME intenta solucionar des del punt de vista de la compatibilitat més que de la elegància. El disseny del protocol SMTP fa que només pugui utilitzar caràcters amb codificació ascii amb 7 bits (anglés). MIME, per la seva banda, permet que s’utilitzin altres caràcters de manera compatible amb les restriccions que imposa haver de treballar amb 7bits de codificació ascii que imposa el protocol SMTP.

Algunes limitacions de SMTP que MIME soluciona:

En la capçalera d’un missatge MIME podem diferenciar cinc camps que passem a explicar:

MIME- Version

El número de versió indica que el missatge acompleix amb les especificacions MIME i el diferencia dels missatges anteriors que no les acompleixen i que, per tant, no tenen aquest camp.

Content-Type

Especifica el tipus i el subtipus de dades que porta el cos del missatge, i també la representació d’origen d’aquestes dades. Aquest camp te aquesta forma: Content-Type: tipus/subtipos ;parmetre=valor ;parmetre=valor. En el cas que aquest camp no existeixi, llavors el seu valor per defecte serà text/plain.

Existeixen els següents tipus diferents:

'text/plain:' el tipus de dades que conté és text pla. Els caràcters per defecte son US-ascii

'image:' imatges estàtiques que requereixen un display gràfic. Pot tenir dos subtipus: jpeg o gif.

'video:' Imatges dinàmiques amb la possibilitat d’incloure só sincronitzat i necessitarà d’una estació multimedia per poder reproduir-ho. Te subtipus mpeg.

'audio:' só reproduïble amb un hardware adequat. Subtipus: basic

'message:' contingut del cos configurat segons indica l’estàndard RFC 822

'aplication:' en aquest tipus formen part tots aquells altres tipus que no es poden englobar a dins d’altres categories. Les dades que porta el cos han de ser processades per algun programa de aplicació.

Una altra característica dels missatges MIME és que poden tenir diferents parts en el contingut de tipus diferents, cada part amb les seves subparts que , a la vegada, poden ser multiparts, donat que el format dels missatges MIME pot ser recursiu.

Content-Transfer-Encoding

Aquest camp indica de quina manera s’han de codificar les dades per a que siguin transportables per a qualsevol protocol de transferència (ja que, per exemple, les dades d’un missatge de SMTP només s’accepten si son dades de 7 bits US-ascii amb línies inferiors a 1000 caràcters). De fet, estem obligats a codificar les dades en aquest format de línies curtes de 7 bits.

Per especificar el camp de codificació es fa el següent:

encoding := "Content-Transfer-Encoding" ":" mechanism

mechanism := "7bit" / "8bit" / "binary" / "quoted-printable" / “base64" / on els mecanismes son els tipus de codificació que poden ser emprats.

Codificació 7bit

Es la codificació per defecte. Ve a dir que no s’ha fet cap codificació i que el texte correspon a línies de text ascii inferiors a 1000 caracters i que han de finalitzar cada linea amb els caracters de retorn de línia i de nova línia.

Codificació 8 bit

Aquesta codificació també correspon a línies curtes, suficientment per el transport SMTP i amb caràcters finals de retorn i nova línia, però amb la possibilitat d’incloure caràcters que no pertanyen al codi ascii. El seu ús no és molt recomanable ja que no asseguren que el transport SMTP sigui segur i només és possible en agents que suportin extensions SMTP per al transport MIME de 8 bits.

Codificació Quoted-printable

Aquest tipus de codificació té com objectiu intentar mantenir un esquema eficient i robust i, alhora, que sigui llegible al màxim quan es trobi codificat. Utilitza US-ASCII de 7 bit i afegeix alguns caràcters menys usuals de 8 bits (cas del Espanyol-castellà).

Com hem dit, els caràcters de 7 bits es poden codificar en ascii. En canvi, existeixen casos especials que anem a comentar:

Codificació base64

Quan no és necessari que les dades que enviem es llegeixin, es a dir, que les dades no siguin texte, es interessant utilitzar aquesta codificació. Consisteix en considerar el text com un flux de bits, els anem separant en grups de 3 bytes (24 bits) i posteriorment els separem cada 6 bits per transformar-los a caràcters fiables que es puguin enviar sense problema (recordem que només existeixen 73 caràcters fiables (a-A z-Z 0-9), per tant, cada cadena 6 bits representaran un caràcter entre 64 caràcters fiables que despres enviarem).

Finalment afegirem 2 bits a cada cadena de 6 bits per completar els 4 bytes de sortida. En resum, transformem caràcters d ‘entrada de3 bytes en una codificació de 4 bytes de sortida, on cada un caracter fiable d’entre una base de 64 caracters fiables.

Ho veurem millor de maneaa gràfica:

Codificació binary

Indica que poden existir caràcters que no formin part del codi ascii, així com també poden aparèixer línies massa llargues (amb més de 1000 caràcters) per a poder ser transportades via SMTP. Només és utilitzable en la capçalera d’una part externa del cos d’un missatge MIME.

Index


3. Altres consideracions

Es possible convertir texts d’una codificació a una altra. Per exemple, podem passar d’un text codificat en base 64 a un altre en format binary, o un text binary a un altre amb codificació Quoted-Printable.

També afegir que tots els punts anteriorment explicats, fan referència al cos dels missatges. Les capçaleres dels missatges MIME s’han de codificar en US-ascii. Per tant, les capçaleres que hagin d’incloure text que pugui ser llegit, s’haurà de fer amb caràcters procedents de l’anglès.

Index


4. Conclusions

A banda de la gran utilitat d’aquest protocol classificador de tipus, i dela facilitat de conversió entre diferents formats que aporta,recentment s’han trobat una sèrie de vulnerabilitats que podrienderivar en que pirates informatics puguin evitar la verificació delcontingut de les dades que enviïn, saltar-se la protecció de certsantivirus o, fins i tot llançar atacs de denegació de servei.

Aquests forats deseguretat procedeixen de l’utilització de certs caràcters (espais,cometes...) no estàndard, permetent que s’eviti la comprovació delcontingut de les dades i afectant a tot tipus de software, des declients de correu electrònic, passant per antivirus i ,fins i tot,navegadors web.

Corsaire és el nom de laconsultora de seguretat que ha descobert aquestes vulnerabilitats.Aquesta empresa ja ha comunicat el seu “descobriment” a diferentsvenedors per a que es coordinin per solucionar el problema. De fet,vàries companyies com apple, HP, MessageLabsi Mozilla ja han solucionat aquests problemes en els seus productes.D’altres pensen prendre mesures en pròximes versions del seu software.

Index


5. Fonts

http://ditec.um.es/laso/docs/tut-tcpip/3376fm.html

http://es.wikipedia.org/wiki/MIME

http://www.zator.com/Internet/N_16.htm

http://www.mundopc.net/ginformatico/m/mime.php

http://www.adrformacion.com/cursos/winxp/leccion1/tutorial8.html

http://www.eroad.cl/foro/index.php?showtopic=180

http://gulcr.org/MensajesHTML

http://www.rfc-es.org/rfc/rfc2045-es.txt

http://manic.cs.umass.edu/~cs591/jslides.cgi?slide=104&hilite=1

Index