Server / Client
-
Hallo Gemeinde,
ich möchte mich mal etwas an die Netzwerkprogramierung ran wagen und ich wollte mal fragen ob mir jemand was im Internet zum lesen empfehlen kann. Ich habe davon nicht so viel Ahnung. Aber hier mal grob was mein Testprogramm mal können soll:
* Server reagiert auf befehle vom Client und sendet das Resultat zurück zum Client
* SSL verschlüsselte Verbindung
* Authorisierung via ein Session-Key (eventuell auch Public Key)
* Algorithmus für den Schlüsselaustausch
* CRC32 Algorithmus für die Pakete die übertragen werden (Checksumme)
* GnuPG-Schnittstelle um daten explicit zu verschlüsseln.
* AES/RSA Verschlüsselungsalgorithmus für die DatenSpäter soll der Server auch als Linux-Daemon laufen. Hierzu würde ich dann auch gerne mal ein Webinterface bauen like as Cups...
Ich denke mal das dass eine flächendeckende Spielwiese werden kann. Natürlich will ich das ganze step by step angehen.
Das ganze soll vorerst mal als reine Konsolen anwendung bestehen. Jedoch weiß ich nicht so richtig wie ich ansetzen soll. Es wäre super wenn jemand was zu lesen hat. Englisch/Deutsch ist egal.
Ich würde das ganze gerne erstmal ohne Frameworks oder externe Libs machen rein C++ jedoch Linux spezifisch. Das einzigste worauf ich zurückgreifen würde wäre OpenSSL. Wenn wer noch eine Idee hat was man noch rein nehmen könnte nur zu
Danke für eure Hilfe.
so long
jd
-
Im Grunde ist ja nur das erste und zweite Netzwerkzeugs, der Rest befasst sich mit Kryptographie.
Du solltest dir folgende Bücher anschauen:
UNIX Network Programming | ISBN: 0131411551
Applied Cryptography | ISBN: 0471117099Ansonsten ist (die englische) Wikipedia ein guter Einstieg und dort gibt es in der Regel auch recht brauchbare Links.
-
für gpg support kannst du gpgme verwenden.
die frage ist, ob ssl nicht fast den gesamten rest deiner anforderungen schon erfüllt.* Authorisierung via ein Session-Key (eventuell auch Public Key)
* Algorithmus für den Schlüsselaustausch
* CRC32 Algorithmus für die Pakete die übertragen werden (Checksumme)
* AES/RSA Verschlüsselungsalgorithmus für die Datendiese punkte werden von ssl schon abgedeckt. willst du das trotzdem noch zusätzlich implementieren? die crc32 prüfung ist zwar sicher nett und auch programmierbar, bringt aber wenig, da ssl die daten schon kryptographisch sicher prüft.
-
Hallo, danke erstmal für eure Hilfe. Die Bücher, sind denke ich mal nicht schlecht, wäre auf jedenfall eine Überlegung wert. Bei CRC32 würde ich das gerne händisch implementieren, da mich das einfach mal interessiert, wie das genau funktioniert. Jedoch werde ich auch den Umfang von SSL nutzen. Ist zwar doppelt gemobbelt, aber ist ja auch nur zu test zwecken nicht für den Produktiv einsatz gedacht. Habe auch einen kleinen Einstieg gefunden, jedoch ist das fast nur Code und kaum erklärt was im Hintergrund so passiert...
http://tldp.org/LDP/LG/issue74/tougher.htmlAber besser als nichts, ich denke mal darauf kann man aufbauen.