Obsah
Časová náročnost kapitoly: 15 minut
V
této kapitole jsou řešení nebo návody na vyřešení úloh zadané v
průběhu celé kapitoly zabývající se protokolem IMAP. Tato kapitola
slouží k ověření správnosti myšlenek a zvolených postupů.
Zadání:
Jaký je zásadní rozdíl
mezi protokoly POP3 a IMAP?
Řešení:
Zásadní
rozdíl je možnost pracovat se zprávami na straně serveru, klient může
zprávy přesouvat mezi složkami, editovat zprávy, ukládat, načítat.
Protokol POP3 složí pouze k načtení zpráv ze serveru.
Zadání:
Jaká jsou pravidla pro syntaxi
požadavků na server a odpovědí serveru? Napište obecně podle těchto
pravidel dotaz a odpověď.
Řešení:
Požadavky
musí být označeny unikátním identifikátorem, za identifikátorem
následuje příkaz následovaný parametry
Příklad:
identifikator prikaz
parametry
(A001
AUTHENTICATE KERBEROS_V4)
identifikator=A001
prikaz=AUTHENTICATE
parametry=KERBEROS_V4
Odpovědi musí být označeny unikátním
identifikátorem (pokud vystupují jako neoznačené znakem (*)), za
identifikátorem následuje stavový kód, dále jsou data
Příklad: identifikator
kod data
(* OK
KerberosV4 IMAP4rev1 Server)
identifikator=*
kod=OK
data=KerberosV4
IMAP4rev1 Server
Zadání:
Vymyslete sekvenci
příkazů, kterou zjistíte možnosti IMAP serveru a následně regulérně
pomocí příkazu protokolu IMAP ukončíte TCP spojení se serverem. Svou
myšlenku ověřte pomocí klienta služby Telnet a vysvětlete odpověď,
která vám přišla.
Řešení:
Příkazem
CAPABILITY můžeme zjistit informace o možnostech serveru
Příkazem LOGOUT se odhlásíme od schránky,
server ukončí TCP spojení
Příklad
odpovědí získaných pomocí klienta služby TELNET:
Odpověď
na příkaz a047 CAPABILITY
*
CAPABILITY IMAP4rev1 AUTH=KERBEROS_V4
a047
OK CAPABILITY completed
Odpověď na
příkaz A023 LOGOUT
* BYE IMAP4rev1
Server logging out
A023 OK LOGOUT
completed
Zadání:
Jaký je rozdíl mezi
příkazy LOGIN a AUTHENTICATE? V jakém stavu protokolu IMAP je možno
je použít, do jakého stavu protokol IMAP přejde v případě úspěšného
provedení příkazu, v jakém bude v případě chyby? Pokuste se použitím
programu ETHEREAL odchytit a vyhodnotit komunikaci mezi serverem a
klientem v případě přihlášení ke schránce pomocí LOGIN a
AUTHENTICATE. Která metoda je bezpečnější?
Řešení:
Použitím příkazu LOGIN odesíláme
údaje hesla a uživatelského jména v nešifrované podobě, tudíž jsou
snadno zachytitelná a zneužitelná.
Příkaz
AUTHENTICATE využívá šifrovacích mechanismů
V
případě úspěchu přechází protokol do stavu autentizovaného, jinak
zůstává ve stavu neautentizovaném.
Zadání:
Vymyslete sekvenci
příkazů, která zjistí zprávu a její jednoznačný identifikátor
označíte zprávu jako vymazanou, odstraníte ji, zkontroluje, zda je
odstraněna a přejděte do stavu autentizovaného. Předpokládáme, že
protokol je ve vybraném stavu.
Řešení:
Příkazem
UID SEARCH vyhledáme zprávy a jejich jednoznačné identifikátory
Příkazem STORE s pomocí nastavení
vlastností zprávy ji označíme jako smazanou
Příkazem
EXPUNGE vymažeme zprávu označenou jako smazanou
Příkazem
UID SEARCH vyhledáme podle jednoznačného identifikátoru zprávu, pokud
ji nenalezneme, je smazaná
Příkazem CLOSE
přejdeme do stavu autentizovaného