Meine Herren!
Was macht denn eine Socket-Verbindung für dich aus?
Ja, gute Frage. Erstmal den grundsätzlichen Verbindungsaufbau zwischen zwei über IP-Adressen und einen entsprechend offenen Port definierte Endgeräte (PC, Smartphone, ggfs. "Server"). Um sich dann per TCP oder UDP Pakete zu senden.
Da bist du schon in die erste Stolperfalle gegrubelt. UDP ist ein verbindungsloses Transport-Protokoll, dass eben NICHT mit Sockets arbeitet.
Wenn ich an Sockets denke, denke ich an rohe Protokolle wie TCP. Die Arbeit damit möchte ich eigentlich vermeiden, weil sie a) ein sehr tiefes Verständnis erfordert und b) schon tausendfach erledigt wurde und c) die üblichen Anforderungen bereits in darauf aufbauenden Protokollen implementiert sind.
Danke, irgendwie muss ich mal rauskriegen, was es mit diesem "sehr tiefen Verständnis" auf sich hat.
Ein Socket-Interface zu nutzen, ist keine große Kunst, die Kunst ist es zu entscheiden, ob sich der Einsatz einer so rohen Technik lohnt und sich erstmal umzuzesehen, ob es nicht was passenderes gibt.
Was aber ist mit Smartphones (Messenger-App). Ich habe gehört, dass die (wenn sie nicht im WLAN sind) in Deutschland aus rechtlichen Gründen nicht über eine IP-Adresse verfügen (Angreifbarkeit), finde dazu aber so ohne weiteres nichts bei Google dazu.
Ich weiß nicht, was du da gelesen hast. Die IP-Adresse ist im OSI-Schichten-Modell sehr weit unten angeordnet, wenn man darauf verzichtet muss man wirklich eine ganze Menge Räder neuerfinden und ob die Alternative, dann sicherer ist, bleibt auch noch offen. Aber ich kenne mich in der nativen Smartphone-Entwicklung auch wirklich nicht aus.
Gut, dann müsste man sich mit wohl mit der Aussage: "Verschlüsselungsverfahren nach gängigem Standard, die nach heutigem Kenntnisstand nicht knackbar sind" begnügen.
Dann bist du mit SSL sehr gut bedient. SSL fügt sich fast nahtlos in bestehende Konzepte der Datenübertragung ein, das macht es aus meiner Perspektive so angenehm und es gilt gemein hin als sicher.
so wie ich es verstehe, greift die socketverbindung dabei auf funktionen des betriebssystems zu? macht also einen unterschied, ob eine andwendung zb. auf win läuft, linux, unix, macos oder android etc.pp.???
Fast jede Software greift auf Funktionen des Betriebssystems zurück. Ich verstehe diese Frage deshalb nicht ganz.
Das ging jetzt in die Richtung, wie unkown sie beantwortet hat: https://forum.selfhtml.org/?t=216838&m=1488103. Neben Windows und BSD wäre dann noch meine Frage, wie es mit Android und MacOS steht und was es sonst noch für "relevante" Betriebssysteme gäbe.
Nein, ich wollte eigentlich in eine ganz andere Richtung lenken, als unknown es getan hat. Mit node.js kannst du zum Beispiel auch rohe Sockets programmieren, aber node.js abstrahiert alle Betriebssystem-Abhängigkeiten für dich weg. Ein Node-Programm läuft auf allen Platformen, auf den Node.js läuft. Mit Java verhält es sich ähnlich. Wenn du dich von keiner Betriebssystem-Bibliothek, etwa .NET, abhängig machst, ist der Integrations-Vorgang in andere Systeme kein Beinbruch.
und wo entstehen sicherheitslücken, rein theoretisch?
Das ist nicht pauschal zu beantworten. Sicherheit zieht sich durch alle Schichten einer Software, vom Anwender bis hin zum digitalen Verbindungsaufbau zwischen zwei Rechnern.
Ja, da lande ich dann wohl wieder bei dem "tiefen Verständnis" (s.o.). Wobei das WebRTC-Protokoll, wenn es denn zB. auch für eine Messenger-artige Anwendung für Smartphones tauglich wäre, ja offenbar einen großen Teil der kontrollierbaren Sicherheit abdecken sollte, oder?
Das WebRTC macht seine Aufgabe gut und sicher, die Sicherheit nützt aber nur, wenn andere Software-Komponenten auch mitspielen.
“All right, then, I'll go to hell.” – Huck Finn