Posta electronica - a comunica, comunicare II

      Īn articolul din luna martie 2001 am vazut ca putem īmparti sistemul de mesagerie electronica īn trei componente:

  1. agentul utilizator - (UA - User Agent) - un program cu care utilizatorul īsi citeste si trimite posta electronica,
  2. server-ul de posta electronica (cutia postala) - locul īn care ajunge e-mail-ul si din care agentul utilizator preia mesajele sosite,
  3. agentii de transfer postal (MTA - Mail Transfer Agent) - un program care preia mesajele de la UA si le transmit catre cutia postala a destinatarului.
      Īn acest articol vom prezenta mai pe larg modalitatile prin care o persoana poate sa-si citeasca posta electronica (User Agent).
      Īn principiu, sunt trei tipuri de acces la cutia postala, functie de serviciile oferite de ISP-ul care gazduieste contul utilizator:
  1. Prin acces direct sau "Remote Acces" la serverul e-mail. Aceasta varianta este mai rar utilizata din cauza strategiilor de securitate impuse de ISP,
  2. Prin utilizarea unor protocoale specializate, cum ar fi POP3 si IMAP,
  3. Acces prin interfata web. Aceasta modalitate capata o pondere din ce īn e mai mare, datorita "exploziei" care o cunoaste www-ul an momentul actual.
Protocolul POP

      Protocolul POP (Post Office Protocol) functioneaza foarte asemanator cu protocolul SMTP (descris pe larg in articolul din luna martie 2001). Īn prezent exista doua versiuni de POP: POP2 si POP3. Cu toate ca suntem tentati, la prima vedere, sa credem ca POP3 este o revizuire (īmbunatatire) o protocolului POP2, cele doua protocoale sunt total diferite, folosind chiar porturi de comunicatie diferite. POP2 este mult mai apropiat de SMTP decāt POP3, comenzile si structura lor fiind mult mai apropiate de comenzile SMTP.
      Protocolul POP3 defineste trei stadii distincte prin care poate trece o sesiune de lucru: autorizare, tranzactie si actualizare. Īn starea de autorizare clientul trebuie sa se autentifice pe server (nume utilizator + parola). Daca aceasta etapa s-a īncheiat cu succes, serverul deschide cutia postala a clientului si sesiunea trece īn starea de tranzactie. Īn aceasta stare, clientul poate cere serverului sa-I ofere anumite date (o lista a mesajelor) sau sa efectueze o anumita actiune (preluarea mesajelor). Cānd serverul termina de executat comenzile clientului, sesiunea POP3 intra īn starea actualizare si conexiunea se īnchide.
      Prezentam mai jos comenzile POP3 necesare pentru o implementare minimala a acestui protocol pe Internet.

USER Cere un nume care identifica utilizatorul

PASS Cere o parola pentru utilizator/server

QUIT Īnchide conexiunea TCP

STAT Serverul returneaza numarul de mesaje din cutia postala si dimensiunea totala a mesajelor

LIST Returneaza ID-urile si dimensiunile mesajelor, afisate linie cu linie (permite un ID ca parametru, caz īn care returneaza dimensiunea mesajului identificat prin ID-ul respectiv)

RETR Preia un mesaj din cutia postala (Necesita un ID de mesaj ca parametru)

DELE Marcheaza un mesaj pentru stergere (Necesita un ID de mesaj ca parametru)

NOOP Serverul returneaza un raspuns pozitiv, dar nu executa nici o actiune

LAST Serverul returneaza cel mai mare numar de mesaj care a fost accesat

RSET Deselecteaza toate mesajele marcate pentru stergere

      Chiar daca acest protocol defineste mai multe comenzi, contine doar doua posibilitati de raspuns:
  1. +OK - folosit pentru un raspuns pozitiv (analog cu ACK - de confirmare)
  2. -ERR - folosit pentru un raspuns negativ (analog cu NAK - operatie esuata)

      Se poate considera ca ambele raspunsuri "au succes", īn sensul ca serverul POP3 a receptionat comanda si a returnat un raspuns.

Protocolul IMAP - (Interactive Mail Access Protocol)

      Este un protocol ceva mai complex decāt POP3, proiectat special pentru utilizatorii care nu-si acceseaza posta, tot timpul, de pe acelasi calculator. (Ex: de pe un PC la serviciu si alt PC acasa).
      Ideea de baza, de la care s-a pornit proiectarea acestui protocol, este ca serverul sa pastreze un "depozit" central de mesaje, accesat de pe orice alt calculator. Cu alte cuvinte IMAP nu face "download" la mesaje, ci le lasa pe server (ca si īn cazul programelor U.A. bazate pe interfata WEB).
      Un alt avantaj IMAP, este posibilitatea accesarii unui mesaj utilizānd atribute (Ex: da-mi primul mesaj de la Cristi). Spre deosebire protocolul POP3 permite accesarea mesajelor doar dupa ID-ul lor. Utilizānd protocolul IMAP, o cutie postala poate fi comparata mai degraba cu un sistem de baze de date, decāt cu o secventa liniara de mesaje.

Confidentialitatea postei electronice

     Un mesaj, īn drumul sau de la expeditor la destinatar, poate trece pe la un numar foarte mare de calculatoare. Oricare dintre acestea poate sa-l citeasca si/sau sa faca o copie a lui, dreptul la intimitate al mesagerii electronice fiind doar o poveste frumoasa. Acest neajuns al suitei de protocoale TCP/IP a "pus la treaba" mai multe persoane si grupuri de utilizatori care si-au pus problema confidentialitatii mesajelor. Astfel au luat nastere mai multe sisteme de criptare a mesajelor, cum ar fi PGP si PEM.

PGP - Pretty Good Privacy (confidentialitate destul de buna)

      Acest sistem de criptare are drept initiator pe Phil Zimmerman si este un pachet complet de securitate a e-mailului, asigurānd confidentialitate, autentificare, semnatura digitala si compresie. Sistemul este disponibil pe mai toate Sistemele de Operare, fiind distribuit pe Internet, īn mod gratuit (inclusiv toate sursele). Din acest motiv a creat si numeroase controverse. Guvernul Statelor Unite a condamnat PGP ca violeaza legea exportului de munitie, fiind usor disponibil pentru utilizatorii din afara S.U.A.. Aceasta restrictie impusa de guvernul S.U.A. a fost rezolvata prin dezvoltarea versiunilor ulterioare īn afara Statelor Unite. Dar hartuiala nu s-a terminat. Multe institutii nu se īmpaca cu ideea ca prin Internet doi utilizatori pot schimba mesaje fara sa poata fi "supravegheati". Cu toate acestea motto-ul lui Zimmerman nu s-a schimbat: "daca dreptul la confidentialitate este īn afara legii, atunci doar cei aflati īn afara legii vor beneficia de confidentialitate".
      Din aceste motive PGP se bazeaza, īn principal, pe algoritmi (RSA, IDEA, MD5) care au fost minutios analizati si nu au fost proiectati sau influentati de vreo organizatie guvernamentala, pentru a lasa unele "portite".
      Īn figura de mai jos prezentam schematic acest sistem:
      Utilizatorul A trimite lui B un mesaj simplu (notat P). A si B au cheile private (DX) si cheile RSA publice (EX). Sa presupunem ca fiecare stie cheia publica a celuilalt (de chei publice, private, RSA, etc ne vom ocupa īntr-un articol viitor).
      Prin executarea programului PGP, pe calculatorul lui A, mesajul (P) este codificat prin dispersie (hash), utilizānd MD5. Codul rezultat este criptat utilizānd cheia RSA privata a utilizatorului A (DA). Apoi, codul de dispersie criptat, īmpreuna cu mesajul original, sunt concatenate īntr-un singur mesaj P1. Acest mesaj este comprimat īn format ZIP, rezultānd mesajul P1.ZIP.
      Īn acest stadiu, programul PGP cere utilizatorului A sa introduca un sir de caractere orisicare. Viteza de tastare a caracterelor sirului si sirul propriu zis sunt utilizate pentru a genera o cheie de mesaj de tip IDEA de 128 biti (KM). Cheia KM este utilizata īn continuare pentru a cripta P1.ZIP cu IDEA prin metoda de tip reactie cifrata. Īn plus, KM este criptat cu ajutorul cheii publice a lui B (EB). Aceste doua componente sunt apoi concatenate, iar rezultatul, convertit īn baza 64. Mesajul rezultat va contine litere, cifre si simboluri care pot fi usor transmise prin Internet, cu o probabilitate maxima de a ajunge nealterat la destinatie.
      Procesul invers, de decriptare decurge dupa cum urmeaza:
      Mesajul receptionat este mai īntāi reconvertit din baza 64 si decriptat cu cheia RSA privata. Īn urma acestei decriptari se obtine mesajul P1.ZIP. Dupa decomprimarea acestuia, se separa textul simplu de codul cifrat, care mai apoi se decripteaza utilizānd cheia publica a lui A. Daca codul textului clar este identic cu calculul facut cu ajutorul lui MD5, se poate spune cu siguranta ca mesajul este corect si ca provine de la A.

PEM- Privacy Enhanced Mail (posta cu confidentialitate sporita)

      Spre deosebire de PGP, care nu este (īnca) recunoscut ca un standard Internet, PEM este considerat, oficial, standard Internet. Mesajele criptate folosind PEM sunt mai īntāi transformate īntr-o forma canonica, apoi este calculat un cod de dispersie (folosind MD5 sau MD2). Dupa aceasta urmeaza o concatenare a codului rezultat cu mesajul initial, urmānd o criptare folosind DES cu o cheie pe 56 de biti. Utilizarea unei chei pe, doar, 56 de biti este "batator la ochi" si ne duce cu gāndul la initiativa PGP de a evita algoritmi "certificati" de anumite organizatii guvernamentale.