Zadaniem tego skryptu jest pomoc administratorowi sieci lokalnej w wyszukiwaniu dziurawych serwerów w jego własnej sieci (stawianych ad hoc przez użytkowników) i z tego punktu widzenia liczy się funkcjonalność skryptu - nie wystarczy go uruchomić raz (bo jakiś serwer lokalny może być akurat wyłączony i uniknąć w ten sposób skanowania), tylko uruchamiamy go periodycznie, skanując sieć lokalną i interesują nas informacje o niebezpiecznych serwerach lokalnych.
W tym celu należy przeprowadzić typową komunikację SMTP, np:
220 cyber.ict.pwr.wroc.pl ESMTP Sendmail 8.9.3 Mon, 17 Apr 2000 21:00:00 +0200 (MET DST) ehlo okapi.ict.pwr.wroc.pl 250-cyber.ict.pwr.wroc.pl Hello ts@okapi [156.17.42.30], pleased to meet you mail from:W powyższej konwersacji błąd 550 oznacza, że serwer nie jest serwerem otwartym (odrzucił pocztę). Gdyby na próbę wysłania poczty na adres nielokalny odpowiedzią serwera było "250 ..." (tak jak wcześniej dla lokalnego adresu xx@cyber.ict.pwr.wroc.pl>, to uznalibyśmy, że serwer jest otwarty.250 ... Sender ok rcpt to: 250 ... Recipient ok rcpt to: 550 ... User not local, go away
W raporcie należy zdokumentować wszystkie kolejne kroki, na tyle szczegółowo (komendy z parametrami, znaczenie plików, itd. -- analogicznie jak na str. 8 slajdów z wykładu), żeby powtarzając te kroki zgodnie z instrukcją można było jeszcze raz uzyskać dokładnie taką samą konfigurację (tyle, że z nowymi certyfikatami).
Do raportu należy dołączyć wygenerowane certyfikaty (jeśli zostały zabezpieczone hasłami, to także hasła do nich -- wystarczy w opisie/raporcie), plik openssl.conf, konfigurację serwera Apache lub diff względem wersji standardowej, spakowaną zawartość katalogów serwera (klucze, certyfikaty i serwowana strona).
Napisanie w języku C aplikacji klient-serwer używającej SSL do autoryzacji dostępu. W tym celu należy wykorzystać certyfikaty serwera/klienta wygenerowane na poprzednich zajęciach (lub powtórzyć proces, generując nowe) i wzbogacić aplikację o nawiązywanie bezpiecznego połączenia z użyciem SSL i wzajemną weryfikację certyfikatów. Zaimplementować można np. serwer chat pozwalający na połączenie się kilku klientów i przesyłanie kounikatów między nimi, albo tablicę ogłoszeń (klient łączy się z serwerem i odczytuje komunikaty/ogłoszenia pozostawione dla niego lub publicznie, sam może kasować swoje ogłoszenia i wysyłać nowe - do konkretnego innego klienta lub do wszystkich (publicznie)).
Najbardziej istotny jest aspekt weryfikacji toższamości klienta za pomocą certyfikatu oraz samo ustanowienie bezpiecznej/szyfrowanej komunikacji za pomocą SSL -- w miarę możliwości nie tylko za pomocą parametrów domyślnych, ale także np. z wyborem konkretnej metody szyfrowania.