Park Stołeczny, Emanuel Śmigło, 26.11.2012 r. o 10:17
Szyfrowanie korespondencji w ZW

Nowy, darmowy soft
Warszat Abstrakcji ma przyjemność zaprezentować program Szyfrant służący do szyfrowania korespondencji w systemie Złota Wolność. Do utajnienia treści wykorzystywana jest kryptografia asymetryczna i symetryczna, której mechanizm zostanie pokrótce omówiony.

Geneza
Celem projektu jest umożliwienie prywatności komunikacji w ramach panującego systemu. Ze względu na brak regulaminu oraz względnie szeroki dostęp do bazy danych należy przyjąć, że nasza korespondencja może zostać przejrzana w dowolnym momencie. Oczywiście mieszkańcy Księstwa nie są ograniczeni pod względem kanałów komunikacyjnych, ale niektórzy z nas preferują wbudowaną pocztę. Program Szyfrant jest dedykowany wszystkim tym, którzy życzą sobie nieco więcej poufności.

Model komunikacji
Kryptografia klucza publicznego umożliwia wymianę poufnych treści niezabezpieczonymi kanałami. Do komunikacji wykorzystywana jest para kluczy: prywatny i publiczny. Kluczem publicznym możemy podzielić się z każdą osobą, z którą chcemy prowadzić poufną korespondencję, ponieważ służy on wyłącznie do szyfrowania. Klucz prywatny służy do odszyfrowania wiadomości i nie powinniśmy go udostępniać. Dla wyjaśnienia przedstawię jak powinna wyglądać taka komunikacja.

Diuk A chce wysłać baronowi B poufny list. Baron B na prośbę diuka wysyła mu swój klucz publiczny. Diuk A korzystając z klucza publicznego barona B szyfruje list i wysyła go do B. Baron dysponując kluczem prywatnym jest w stanie odczytać wiadomość. Jeżeli kanał A-B miałby być dwustronnie poufny, to szlachcice musieliby się wymienić kluczami publicznymi.

Użycie
Aplikacja jest programem konsolowym co oznacza, że wymaga obsługi z wiersza poleceń (w systemach Windows Start/Programy/Akcesoria/Wiersz polecenia). Jego obsługa nie jest zbyt problematyczna. W celu wygenerowania pary kluczy należy przejść do folderu programu i wydać polecenie:
Kod
Szyfrant.exe -g A4033

A4033 to oczywiście identyfikator mieszkańca autora i należy go zmienić. W tym wypadku zostaną wygenerowane dwa pliki:
- A4033_public.txt - klucz publiczny,
- A4033_private.txt - klucz prywatny.
Następnie wypada coś zaszyfrować, w tym celu korzystamy z jakiegoś prostego edytora tekstu i zapisujemy nasz list - koniecznie w kodowaniu UTF-8 (autor poleca Notepad++):
Kod
Szyfrant.exe -e list.txt A4033_public.txt

Pojawi się komunikat z przydługą nazwą utworzonego pliku tekstowego zawierającego nasz szyfrogram. Możemy skopiować jego treść i wysłać przez pocztę ZW. Jeżeli ktoś nas kocha to może dostaniemy zwrotkę zaszyfrowaną naszym kluczem publicznym, aby ją odczytam należy wydać polecenie:
Kod
Szyfrant.exe -d dziwna_nazwa_pliku.txt A4033_private.txt

Powstanie kolejny plik o dziwnej nazwie, tym razem będzie zawierał jawny tekst do odczytania. Gdyby ktoś zapomniał o argumentach programu to Szyfrant mu je przypomni. Program i źródła są dostępne na stronie Warsztatu Abstrakcji.

Wymagania
Szyfrant wymaga środowiska Microsoft .NET Framework w wersji 2.0 lub nowszej. Praktycznie wszyscy z systemami Windows XP z Service Packiem 3 lub nowszymi nie muszą instalować dodatków. Jest spora szansa, że Szyfrant będzie również działał pod Mono, czyli na Macach i Linuxach, ale autor nie miał okazji tego zweryfikować.

Co dalej?
Autor ma w planach dorobienie prostego interfejsu (międzymordzia) okienkowego dla mniej sprytnych użytkowników. Jeżeli kiedyś pojawi się rozszerzona integracja do Złotej Wolności, która umożliwi wysyłanie wiadomości z poziomu aplikacji to postaram się spłodzić prosty portal do wymiany i zarządzania kluczami publicznymi.

El Konkurs
Kto pierwszy wyśle mi list zaszyfrowany moim kluczem publicznym dostanie 5000 libertów. Klucz trzeba sobie znaleźć samemu.

Nowe horyzonty
- RSA,
- AES,
- Notepad++.
Dotacje
0,00 lt
Nikt jeszcze nie zasponsorował tego artykułu.
Serduszka
0,00 lt
Ten artykuł lubią: Mikołaj Torped, Gauleiter Kakulski, Goglez Pajzano, Igor Żdanow.
Komentarze
Mikołaj Torped
konspira, niah, niah.
Odpowiedz Permalink
P.N.W
Program konsolowy wymagający .NET-a? o___O
Permalink
Emanuel Śmigło
Tak, lub Mono. To jakiś straszny kosmos?
Permalink
P.N.W
Strzelanie z muchy do armaty.
Permalink
Emanuel Śmigło
W takim razie czekam na port napisany w C lub asemblerze. Najlepiej taki napisany w mniej niż 2 godziny o porównywalnej przenośności. ;)
Permalink
Defloriusz Dyman Wander
Za chwilę zaczną znikać ludzie.
Odpowiedz Permalink
Krzysztof von Thorn-Macak
Zastanawiam się ile czasu by mi zajęło wyprodukowanie takiego czegoś pod PHP i zintegrowanie z ZW :)
Odpowiedz Permalink
Misza "JK" Korab-Kaku
bardzo dobry pomysł.
Odpowiedz Permalink
Emanuel Śmigło
@Krzysztof:
Gotowych rozwiązań jest sporo. Mnie ciekawi czas generacji kluczy rzędu 2k bitów na serwerze. Osobiście nie skorzystam z zamkniętej aplikacji dostarczającej kluczy prywatnych. ;)
Permalink

Musisz się zalogować, by móc dodawać komentarze.