Willkommen zur Vorstellung von
Extensible Messaging and Presence Protocol
(früher Jabber von „(daher-)plappern“)
Erweiterbares Nachrichten- und Anwesenheitsprotokoll
OFFENER STANDARD
DEZENTRAL
ERWEITERBAR
FLEXIBEL
SICHERHEIT
VERSCHLÜSSELUNG
Was Bietet XMPP?
OFFENER STANDARD
DEZENTRAL
XMPP Netzwerk Aufbau
Clients bei verschiedenen XMPP Servern
Server - Server Kommunikation
Clients in Multi-User-Chat (MUC)
Server - Server Kommunikation
Ähnlichkeiten mit E-Mail
ERWEITERBAR
FLEXIBEL
Erweiterungen (XEPs)
Erweiterbar - mithilfe der Leistung von XML kann jeder benutzerdefinierte Funktionen auf den Kernprotokollen aufbauen.
Flexibel - XMPP-Anwendungen, die über IM hinausgehen, umfassen Netzwerkmanagement, Content-Syndizierung, Tools für die Zusammenarbeit, Dateifreigabe, Spiele, Remote-Systemüberwachung, Webdienste, leichtgewichtige Middleware, Cloud Computing und vieles mehr.
ERWEITERBAR
# Ein Empfänger
echo 'Hallo Welt!' | sendxmpp -t -r echobot -u echobot -j fr32k.de:63034 -p 123 picard@fr32k.de
# MUC
echo 'Hallo Welt!' | sendxmpp -t -r echobot -c linux-whv@chat.ffnw.de -u echobot -j fr32k.de:63034 -p 123 picard@fr32k.de
Beispiel: Terminal
ERWEITERBAR
import pyxmpp
from pyxmpp.jabber.client import JabberClient
class EchoBot(JabberClient):
def __init__(self, jid, passwd):
tls = pyxmpp.streamtls.TLSSettings(require=True, verify_peer=False)
JabberClient. __init__(self, pyxmpp.jid .JID(jid), passwd, tls_settings=tls,
auth_methods=["sasl : PLAIN"])
def message(self, stanza):
if stanza.get_type() == "chat" and stanza.get_body() != None :
m = pyxmpp.message.Message(stanza, to_jid=stanza.get_from(),
from_jid=stanza.get_to())
self.stream.send(m)
def session_started( self ):
JabberClient.session_started(self)
self.stream.set_message_handler("normal", self.message)
bot = EchoBot("echobot@fr32k.de/test", "123" )
bot.connect()
try:
while 1: bot.loop(1)
except KeyboardInterrupt: bot.disconnect()
Beispiel: Python
SICHERHEIT
VERSCHLÜSSELUNG
SASL und TLS sind Kern bestandteil der XMPP Spezifikationen
Ende-zu-Ende-Verschlüsselung
OpenPGP, Off-the-Record Messaging (OTR) & Omemo.
Durch Perfect Forward Secrecy(PFS) wird außerdem erreicht, dass bei Verlust von privaten Schlüsseln vorherige Traffic Mitschnitte nicht entschlüsselt werden können.
Client-zu-Server- & Server-zu-Server-Verschlüsselung
Client A
Server A
Server B
Client B
XMPP Installation
PC: Gajim
==> https://gajim.org
Android: Conversations
==> https://conversations.im
IOS: ChatSecure
==> https://chatsecure.org
Link Sammlung
https://xmpp.org/
https://de.wikipedia.org/wiki/OMEMO
https://de.wikipedia.org/wiki/Off-the-Record_Messaging
https://de.wikipedia.org/wiki/Perfect_Forward_Secrecy
https://github.com/xsf
https://de.wikipedia.org/wiki/OpenPGP
https://gajim.org
https://conversations.im
https://chatsecure.org
Multi-User-Chat (MUC)
linux-whv@chat.ffnw.de
Linux Wilhelmshaven und Umland
Danke
Ende
Willkommen zur Vorstellung von XMPP
By picardtux
Willkommen zur Vorstellung von XMPP
Erweiterbares Nachrichten- und Anwesenheitsprotokoll
- 1,960