Twórcy frameworka GNUnet, zaprojektowanego do budowy zabezpieczonych, zdecentralizowanych sieci P2P, które nie mają pojedynczego punktu awarii i mogą zagwarantować prywatność informacji użytkowników, zaprezentowali pierwszą wersję biblioteki libgnunetchat 0.1.0. Biblioteka ta ułatwia korzystanie z technologii GNUnet i usługi GNUnet Messenger do tworzenia zabezpieczonych aplikacji czatowych.
Libgnunetchat zapewnia oddzielny poziom abstrakcji nad GNUnet Messenger, obejmujący typowe funkcje stosowane w komunikatorach. Programista może skupić się na tworzeniu interfejsu graficznego z wykorzystaniem wybranego przez siebie zestawu narzędzi GUI, nie martwiąc się o komponenty związane z organizacją działania czatu i interakcją między użytkownikami. Klienty tworzone na bazie libgnunetchat pozostają ze sobą kompatybilne i mogą się ze sobą komunikować.
Aby zapewnić poufność i ochronę przed przechwytywaniem wiadomości, stosowany jest protokół CADET (Confidential Ad-hoc Decentralized End-to-End Transport), który umożliwia całkowicie zdecentralizowaną interakcję między grupą użytkowników przy użyciu szyfrowania end-to-end przesyłanych danych. Użytkownicy mają możliwość wysyłania wiadomości i plików. Dostęp do wiadomości w plikach mają tylko uczestnicy grupy. Do koordynacji interakcji między uczestnikami zdecentralizowanej sieci można stosować rozproszoną tabelę haszującą (DHT) lub specjalne punkty wejścia.
Oprócz Messengera w libgnunetchat stosowane są także następujące usługi GNUnet:
- GNS (GNU Name System, całkowicie zdecentralizowana i odporna na cenzurę alternatywa dla DNS) do określania opublikowanych wpisów w publicznych stronach czatu (lobbie), otwierania czatu oraz wymiany danych logowania.
- ARM (Automatic Restart Manager) do automatyzacji uruchamiania wszystkich usług GNUnet, niezbędnych do działania.
- FS (File Sharing) do bezpiecznego pobierania, wysyłania i organizowania wspólnego dostępu do plików (wszystkie informacje przesyłane są wyłącznie w zaszyfrowanej formie, a stosowanie protokołu GAP nie pozwala śledzić, kto umieścił i pobrał plik).
- IDENTITY do tworzenia, usuwania i zarządzania kontami, a także do weryfikacji parametrów innego użytkownika.
- NAMESTORE do lokalnego przechowywania książki adresowej i informacji o czatach oraz do publikowania wpisów na stronach czatów, dostępnych przez GNS.
- REGEX do publikacji informacji o uczestnikach, co pozwala na szybkie stworzenie publicznego czatu grupowego na określony temat.
Główne możliwości pierwszej wersji libgnunetchat:
- Zarządzanie kontami (tworzenie, przeglądanie, usuwanie) oraz możliwość przełączania między różnymi kontami podczas pracy.
- Możliwość zmiany nazwy konta i aktualizacji klucza.
- Wymiana kontaktów przez publiczne strony czatów (lobbie). Informacje o użytkowniku mogą być uzyskiwane zarówno w formie tekstowego linku, jak i w postaci kodu QR.
- Kontakty i grupy mogą być zarządzane oddzielnie, możliwe jest przypisanie różnych pseudonimów do różnych grup.
- Możliwość wysłania zapytania i otwarcia bezpośredniego czatu z każdym uczestnikiem z książki adresowej.
- Abstrakcja widoków użytkownika i czatu w celu uproszczenia opakowania w pożądany interfejs.
- Wsparcie dla wysyłania wiadomości tekstowych, plików i organizacji współdzielenia plików.
- Wsparcie dla wysyłania potwierdzenia odczytu wiadomości oraz możliwość sprawdzenia statusu odbioru wiadomości.
- Możliwość automatycznego usuwania wiadomości po określonym czasie.
- Elastyczne możliwości zarządzania plikami w czacie, na przykład, można zorganizować wyświetlanie miniatury zawartości, pozostawiając samą zawartość w zaszyfrowanej formie.
- Możliwość podłączenia obsługiwaczy do śledzenia wszystkich operacji (ładowanie, wysyłanie, usuwanie z indeksów).
- Wsparcie przyjmowania zaproszeń do dołączania do nowych czatów.
Dodatkowo warto wspomnieć o wydaniu gotowego komunikatora GNUnet Messenger 0.7, który oferuje interfejs oparty na GTK3. GNUnet Messenger kontynuuje rozwój graficznego klienta cadet-gtk, przetłumaczonego na bibliotekę libgnunetchat (funkcjonalność cadet-gtk jest podzielona na uniwersalną bibliotekę i nakładkę z interfejsem GTK). Program wspiera tworzenie czatów i grup czatowych, zarządzanie książką adresową, wysyłanie zaproszeń do dołączenia do grup, przesyłanie wiadomości tekstowych i nagrań głosowych, organizację wspólnego dostępu do plików oraz przełączanie się między wieloma kontami. Dla miłośników wiersza poleceń osobno rozwija się konsolowy komunikator oparty na libgnunetchat, który obecnie znajduje się w początkowej fazie rozwoju.


Źródło: opennet.ru
