Mijenjanje datuma primljenog emaila: istina ili mit?

7 min

Pitanje koje svi postavljaju (i zašto skriva dvije potpuno različite situacije)

Ukucajte "promijeniti datum primljenog emaila" u Google. Naći ćete desetke niti na Microsoft Q&A forumima, Reddit threadove, pitanja na Quori. Zahtjev je jasan, ali razlozi iza njega radikalno se razlikuju ovisno o tome tko pita.

Ima onih koji žele krivotvoriti datum, retrospektivno, iz razloga koje radije ne zamišljamo. I ima IT administratora koji su, nakon IMAP migracije, vidjeli da svi njihovi emailovi prikazuju isti dan (dan migracije), i žele jednostavno vratiti prave datume. Te dvije situacije nemaju ničeg zajedničkog, ali dijele isti upit u tražilici.

Ovaj članak odgovara na obje. Spoiler: u prvom slučaju, promjena nije zaista moguća na neotkriveni način. U drugom, potpuno je legitimna i točno to radi Redate.io.

Prvo: što je zapravo "datum" emaila?

Email ne sadrži jedan datum. Sadrži ih nekoliko, pohranjenih na različitim mjestima, pod kontrolom različitih entiteta.

Zaglavlje Date: (RFC 2822)

To je datum koji klijent pošiljatelja upisuje u poruku u trenutku slanja. Vidljiv je u sirovim zaglavljima u obliku:

Date: Mon, 14 Oct 2024 09:32:11 +0200

Ovo zaglavlje dio je tijela poruke. Tehnički se može izmijeniti ako pristupite sirovoj datoteci. Ali "tehnički" je ovdje ključna riječ.

Zaglavlja Received:

Svaki poslužitelj za e-poštu kroz koji email prolazi dodaje vlastito zaglavlje Received: s vremenskom oznakom. Ta zaglavlja tvore kronološki lanac, od pošiljateljevog poslužitelja do Vaše sandučice. (Inače, ako ste ikad pokušali čitati sirova zaglavlja emaila, znate da to nije baš lako štivo. Desetak redova tehničkih metapodataka, poredanih od najnovijeg prema najstarijem.)

IMAP INTERNALDATE

To je najvažniji metapodatak za razumijevanje zašto neke izmjene nemaju vidljivog učinka. INTERNALDATE je atribut pohranjen na strani IMAP poslužitelja, neovisno o sadržaju poruke. Njega većina email klijenata koristi za sortiranje emailova po mapama. Outlook ga koristi. Gmail također. Apple Mail, u većini slučajeva, isto.

INTERNALDATE nije u poruci. Nalazi se u bazi podataka poslužitelja. Ne možete ga izmijeniti uređivanjem .eml datoteke na svom disku.

Što se zapravo dogodi kad lokalno izmijenite email

Uređivanje .eml datoteke

Tehnički, .eml datoteka je tekstualna datoteka. Možete je otvoriti u uređivaču, promijeniti redak Date:, snimiti. Ako tu datoteku uvezete natrag u lokalni email klijent, prikazani datum može se promijeniti, ovisno o klijentu.

Ali evo što se ne mijenja:

  • INTERNALDATE na IMAP poslužitelju (ostaje netaknut)
  • Zaglavlja Received: koja su dodali posredni poslužitelji
  • Logovi isporuke kod Googlea, Microsofta, ili Vašeg pružatelja usluge
  • DKIM potpis, ako ga je poruka imala

Rezultat: na Vašem lokalnom uređaju možda vidite drugačiji datum. Iz Outlooka spojenog na Exchange Online, ili Gmaila u pregledniku, ništa se nije promijenilo.

Promjena sistemskog sata

Neki forumi predlažu izmjenu sata radne stanice kako bi se "zavarao" email klijent. To ne funkcionira. Outlook i Gmail ne čitaju sistemsko vrijeme za prikaz datuma primljenih emailova. Čitaju INTERNALDATE s poslužitelja, ili zaglavlja poruke. Lokalni sat nigdje ne sudjeluje u tom procesu.

Manipulacija putem Thunderbirda

Thunderbird nudi više fleksibilnosti od većine klijenata. Uz ekstenzije ili izravnom manipulacijom profila (mbox datoteke, .msf datoteke), neki pokušavaju izmijeniti prikaz datuma. To može funkcionirati u samom Thunderbirdu, za emailove pohranjene lokalno u POP3 načinu. Ali čim je Thunderbird spojen putem IMAP-a, resinkronizira se s poslužiteljem. "Ispravak" nestaje pri sljedećoj sinkronizaciji.

DKIM: nevidljiva barijera o kojoj nitko ne govori

Većina emailova poslanih od 2018. potpisana je DKIM-om (DomainKeys Identified Mail). DKIM potpis u zaglavljima izgleda ovako:

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
  d=example.com; s=default;
  h=Date:From:To:Subject:Message-ID;
  bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
  b=ABC123...

Polje h= navodi zaglavlja pokrivena potpisom. U gornjem primjeru, Date je potpisan. Ako izmijenite zaglavlje Date: poruke, DKIM provjera ne uspijeva. Bilo koji poslužitelj za e-poštu, bilo koji forenzički alat za analizu, može otkriti izmjenu ponovnim izračunom potpisa.

To nije savršena zaštita (zlonamjerni pošiljatelj kontrolira vlastiti DKIM ključ i može potpisati što želi u trenutku slanja). Ali za email koji je već primljen i potpisan, izmjena zaglavlja Date: ostavlja otkriveni trag.

Serverski logovi: pravi izvor istine

Čak i da Vam pođe za rukom izmijeniti sve vidljive metapodatke emaila (zaglavlja, INTERNALDATE, sve), pružatelji usluga čuvaju vlastite logove.

Google Workspace bilježi svaku poruku u revizijskim logovima Admin konzole. Microsoft 365 isto čini u Centru za usklađenost (Purview). Ti logovi uključuju vremenske oznake isporuke, neovisno o tome što prikazuju klijenti. Odvjetnik, pravna služba, ili tim za IT sigurnost može dohvatiti te podatke. Datum vidljiv u Outlooku ne vrijedi pred sudom niti pri sigurnosnoj reviziji.

Da budemo precizni: čak ni administrator koji ima pristup sandučici putem domenskog delegiranja ne može retroaktivno prepisati te logove. Izvan su dosega korisnika, čak i privilegiranih.

Legitimni slučaj: ispravak nakon migracije

Upravo ste završili migraciju 150 sandučica s Exchange on-premises na Microsoft 365. Sljedećeg ponedjeljka stižu tiketi: "svi moji stari emailovi datirani su prošlim petkom". Datumom migracije.

To je dobro dokumentiran problem, potpuno različit od onoga što smo do sada opisali. Ovdje nitko ne pokušava krivotvoriti ništa. Pravi originalni datumi još uvijek postoje, netaknuti, u zaglavlju Date: svake poruke. Problem je drugdje: alat za migraciju (BitTitan MigrationWiz, CloudM, imapsync, ili neki drugi) ubacio je zaglavlje Received: s datumom migracije na čelo lanca. Outlook, koji se u određenim kontekstima oslanja na najnovija zaglavlja Received: umjesto na INTERNALDATE, prikazuje taj datum umjesto pravog.

U ovom slučaju, "ispravak" se sastoji od uspostave koherentnosti između onoga što poruka govori (originalno zaglavlje Date:, uvijek prisutno) i onoga što poslužitelj misli (INTERNALDATE, postavljen u trenutku migracije). To nije krivotvorenje. To je obnova.

Točno to opisuje zašto emailovi prikazuju krivi datum nakon migracije. I točno to rješava Redate.io.

Zašto "uradi sam" ne funkcionira u velikom obimu

Razumjeti problem je jedna stvar. Ispraviti ga na 40.000 emailova raspodijeljenih po 150 sandučica bez gubitka ijednog, to je sasvim druga stvar.

Skripte koje se nalaze na GitHubu ili Stack Overflowu rade na 20 testnih emailova. U produkciji nailaze na probleme koje autor skripte nije predvidio:

  • Emailovi potpisani S/MIME ili šifrirani PGP-om imaju strukture koje se ne mogu manipulirati kao obične poruke
  • Multipart poruke s nestandardnim MIME granicama uzrokuju greške pri parsiranju
  • Zaglavlja enkodirana prema RFC 2047 (ne-ASCII znakovi u poljima From: ili Subject:) kvare naivne parsere
  • Google i Microsoft API-ji nameću ograničenja brzine (rate limiting): u 3 ujutro za vrijeme batch obrade 30.000 emailova, greška 429 Too Many Requests nije obrađena, skripta staje, i nitko ne zna gdje je stala
  • Nema mehanizma za povrat: ako se poruka ošteti tijekom obrade, ne postoji način za vraćanje na prethodno stanje

Redate.io čuva kopiju svakog originalnog emaila u vidljivoj sigurnosnoj mapi 30 dana. Svaki ispravak se provjerava pojedinačno. Pipeline analize obrađuje stotine potpisa poznatih alata za migraciju, kao i sve rubne slučajeve koje domaća skripta ne bi obradila.

Za više detalja o specifičnostima ovisno o korištenom alatu: BitTitan MigrationWiz i datumi emailova, ili CloudM Migrate: kako popraviti datume e-mailova.

Što se mijenja, a što se nikad ne mijenja

RadnjaPrikaz u lokalnom klijentuINTERNALDATE na poslužiteljuLogovi pružateljaDKIM provjera
Uređivanje .eml datotekePonekad izmijenjenoNeizmijenjenoNeizmijenjenoNeispravno ako je Date: potpisan
Promjena sistemskog sataBez učinkaNeizmijenjenoNeizmijenjenoNeizmijenjeno
Manipulacija Thunderbirdom (IMAP)Privremeno izmijenjenoNeizmijenjenoNeizmijenjenoNeizmijenjeno
Ispravak putem Redate.io (post-migracija)IspravljenoIspravljenoNeizmijenjenoSačuvano

Razlika je jasna. Prva tri retka tablice opisuju površinske ili otkrivene izmjene. Posljednji opisuje legitimni ispravak metapodataka, usklađen s originalnim sadržajem poruke, nakon migracije koja je uvela nekoherentnost.

Ako ste u situaciji opisanoj na dnu tablice, nakon migracije s imapsync, BitTitanom, CloudM-om ili nekim drugim alatom, Redate.io je napravljen za to.

Vaši emailovi prikazuju datum migracije umjesto pravih datuma? Besplatno skenirajte svoje sandučice s Redate.io i vidite točno koliko je emailova zahvaćeno prije nego što se odlučite.

Povezani članci