@Lwojtow:
Od początku mi się wydawało, że XMPP rozwiązuje sporo kwestii i tym bardziej się zastanawiałem czemu nie jest używany częściej.
Gdyby email powstał dzisiaj, to by było z nim podobnie niestety... Dzisiaj się nie liczy, to aby usługa była szeroko dostępna, ale zarabianie na niej sporej kasy. No i rozwiązania zabetonowane, bez federacji łatwiej podsłuchiwać ;)
Wiem, że Cisco kupiło Jabbera ale co było potem? I czemu firmy jawnie odchodzą od Jabbera, nawet jeśli chodzi o komunikację wewnętrzną, na jednym serwerze?
Tak jak pisałem, to oni kupili prawa tylko do znaku towarowego czy nazwy Jabber. Cały protokół jest ustandaryzowany i wolny i ma nazwę XMPP.
W pkt 4 chodziło mi o to, że chciałbym aby to działało jak email: mam oddelegowaną pocztę z mojej domeny do jakiegoś dostawcy (tzn MX w dns, konfiguracja klientów). Mogę zmienić na innego dostawcę w każdej chwili.
Działa to analogicznie, masz rekordy SRV:
host -t srv _xmpp-server._tcp.404.city
_xmpp-server._tcp.404.city has SRV record 0 1 5269 xmpp.404.city.
host -t srv _xmpp-client._tcp.404.city
_xmpp-client._tcp.404.city has SRV record 0 1 5222 xmpp.404.city.
W dowolnej chwili zmieniasz rekord i on wskazuje na odpowiedni adres IP. Jeszcze lepiej, to pewnie można postawić jakiegoś load-balancera, na którym będzie zrobione sterowanie, i wtedy nie musisz czekać na propagację dnsów.
W pkt 7: Interesowałem się kiedyś PGP i serwerami kluczy, ale z tego co widziałem to też każdy wymyśla koło na nowo. Dystrybucja kluczy (zakładam szyfrowanie asymetryczne) musi się odbywać "automagicznie".
XMPP jak najbardziej obsługuje szyfrowanie po OpenPGP, jednak to rozwiązanie ma jedną ważną wadę...nie obsługuje wstecznego bezpieczeństwa. Chodzi o to, że ktoś mając dostęp do klucza prywatnego i zaszyfrowane wiadomości jest w stanie poznać całą historię korespondencji.
W przypadku OMEMO (https://xmpp.org/extensions/xep-0384.html), który bazuje na szyfrowaniu z Signala masz to zapewnione, bo dla każdej wiadomości jest tworzony oddzielny klucz. W dużym skrócie każdy user ma parę klucz publiczny-prywatny i na jego podstawie generowane są te takie klucze sesyjne. Klucze są trzymane na serwerze w nodzie podprotokołu pubsub i każdy chętny może zaszyfrować do nich wiadomość nawet jak jesteś offline. Po szczegóły odsyłam do XEPa z OMEMO.
Jedyny problem to potwierdzenie, że osoba A, to osoba A. Czyli pobierasz klucz publiczny Mariana z urządzenia na smartfonie i jakby potwierdzasz, że to jego urządzenie. No ale w przypadku openPGP też trzeba zweryfikować czy klucz należy do tej osoby, bo inaczej to niby prowadzisz bezpieczną komunikację, ale nie masz pewności czy ta osoba to na pewno ta osoba ;)
Edit: co chcę osiągnąć? Przede wszystkim to chciałbym skończyć z przenoszeniem konta z FB -> whatsapp -> signal -> i kto wie co następne. Chciałbym komunikator, gdzie mogę odpalić swój serwer (jak email) a jak mi się nie chce, to za parę złotych na miesiąc mogę to oddelegować do dostawcy. Tak naprawdę to zależy mi na prywatności, niezależności i żeby już nigdy nie wysyłać do wszystkich znajomych informacji, że od teraz nie używam X, jestem dostępny na Y.
W tym celu nie musisz pisać własnego komunikatora, tylko ściągasz dostępny i wybierasz serwer - ewentualnie sam stawiasz. Ja mam własną domenę na Conversations.im, bo nie chcę się zajmować administracją serwera.