MIME
TCP/IP-pino | |
---|---|
sovelluskerros |
BGP · DHCP · DNS · ESMTP · FTP · HTTP · IMAP · IRC · LDAP · MGCP · NNTP · NTP · POP3 · RPC · RTP · RTSP · SIP · SMTP · SNMP · SOCKS · SSH · Telnet · TLS/SSL · XMPP · (..lisää..) |
kuljetuskerros |
TCP · UDP · QUIC · DCCP · SCTP · RSVP · RIP · ECN |
verkkokerros |
IP (IPv4 ja IPv6) · ICMP (ICMPv6) · IGMP · IPsec |
siirtoyhteyskerros | ARP · IS-IS · NDP · OSPF · L2TP · PPP |
fyysinen kerros |
MIME (lyhenne sanoista Multipurpose Internet Mail Extensions) määrittelee tavan, jolla sähköpostiviestejä pystytään välittämään erilaisia merkistöjä käyttäen, ja jolla viesteihin voidaan sisällyttää liitetiedostoina kuvia tai muita dokumentteja. MIME määrittelee myös kattavan joukon sisältötyyppejä eli MIME-tyyppejä, joita käytetään yleisemminkin mm. HTTP:ssä ilmaisemaan välitetyn datan muotoa.
Ennen MIMEä ei ollut yhtenäistä tapaa kertoa mitä merkistöä sähköpostiviestissä käytettiin ja myös liitteiden koodauksessa oli ongelmia. Yleisimmin käytetty koodaustapa uuencode ei ollut täysin standardoitu ja se käytti myös joitakin merkkejä, jotka saattoivat rikkoontua matkalla.
MIME-viestin koodaus
[muokkaa | muokkaa wikitekstiä]MIME-viestin koodaus ilmoitetaan erikseen datan tyypistä Content-Transfer-Encoding -tiedossa:
- 7bit: viestissä on vain sallittuja ASCII-merkkejä ja rivien pituus on sallituissa rajoissa; merkit saatetaan tulkita muuksi kuin ASCII:ksi Content-Type -tiedon mukaisesti
- 8bit: myös kahdeksanbittisiä merkkejä on mukana, muuten viesti täyttää 7bit-kriteerit
- binary: viesti saattaa sisältää mitä tahansa, mutta viestiä välittävillä palvelimilla on sopimus siitä, mitä saa lähettää ja miten viesti käsitellään
- quoted printable: viesti on muutettu 7-bittiseksi esittämällä muut kuin sallitut merkit "="merkin ja kaksimerkkisen heksadesimaalikoodin yhdistelmällä
- base64: viestissä jokaisen kolmen merkin ryhmä on koodattu neljään sähköpostissa luotettavasti siirtyvään merkkiin
MIME-tyyppi
[muokkaa | muokkaa wikitekstiä]Viestin sisältö tulkitaan Content-Type -tiedon eli MIME-tyypin mukaan. Tällä kuvataan onko kyseessä tekstiä, kuvaa tms. sekä mikä tiedostomuoto on kyseessä. Viesti voi koostua useammasta erityyppisestä osasta. MIME-tyyppi voidaan kuvailla tarkemmin parametrien avulla, esimerkiksi tavallisesta tekstistä kerrotaan käytetty merkistökoodaus: text/plain; charset=iso-8859-1
MIME-tyypit on standardoitu, joten sähköpostiohjelma tai www-selain voi niiden perusteella päätellä, millä apuohjelmalla MIME-koodatun sisällön voi näyttää. Unixeissa tähän on perinteisesti käytetty tiedostoa /etc/mailcap, Unixien työpöytäympäristöillä on omat vastaavat tiedostonsa.
Erikoisia MIME-tyyppejä ovat application/octet-stream, joka tarkoittaa että kyseessä on erittelemätöntä binääridataa (tieto datan tyypistä tai koodauksesta on ollut virheellistä tai tietoa ei koskaan lisätty), ja application/vnd.firma.tiedostomuoto, jossa "firma" huolehtii tiedostomuodon standardoinnista, eikä tiedosta välttämättä ole hyötyä kuin sen koordinoimien ohjelmien kesken.
Tietoturva
[muokkaa | muokkaa wikitekstiä]MIME-tyypillä pystytään kuvailemaan myös sellaisia tiedostomuotoja, joiden käyttämiseen sisältyy tietoturvaan liittyviä ongelmia. Jokainen MIME-liitteen käsittelemiseen määrätty ohjelma pitäisi olla tietoturvan kannalta ajan tasalla ja sitä ajatellen kirjoitettu. Joissakin järjestelmissä ei voida erikseen määritellä, miten tietyntyyppiset paikalliset tiedostot ja samantyyppiset epäluotettavasta lähteestä tulevat tiedostot käsitellään, mikä lisää ongelmaa entisestään.
Varsinkaan tietokoneohjelmia tai ajettavaa ohjelmakoodia mahdollisesti sisältäviä tiedostoja ("makrot" tms.) ei pitäisi ajaa (muuta kuin nk. "hiekkalaatikossa"), ellei niiden alkuperästä ole varmaa tietoa.