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:
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++):
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:
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++.
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. ;)