SSL/Crypto mit Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Ich beschäftige mich gerade mit Python und SSL/Kryptographie. Ich finde aber keine Ansprechende Library.

Was ich können muss ist:
- RSA Schlüsselpaare erstellen
- Mit diesen sichere Sockets öffnen (Client/Server)
- Validierung der Publickeys , Eine Hierarchie Brauche ich hier nicht
- Nachrichten (Keys/Hashes) mit den Keys verschlüsseln/Signieren
- AES/Rijndael oder Blowfish Implementierung wäre ein Pluspunkt

Das ganze soll in einem Dienst verwendet werden sollte also relativ Stabil/Sicher sein. Memoryleaks kann ich nicht brauchen. OpenSSL oder GNUTLS als Basis wäre toll.

Die SSL unterstützung von CPython ist nicht zu gebrauchen. Nicht nur weil Zertifikats validierung und Serversockets fehlen (Was das ganze eigentlich nutzlos macht).

PyOpenSSL wird seit ewigkeiten nicht mehr gewartet und ist sehr unvollständig.

M2Crypto basiert auf SWIG (eeek), und scheint, wenn man dem Echo im Netz so glaub ziemliche Probleme mit Memoryleaks und ähnlichem zu haben. Wirkt auf mich nicht wirklich stabil/vertrauendswürdig.

TLSLite wirkt nicht wirklich fertig und wird als "From Scratch" Implementierung vermutlich noch so einige Sicherheitstechnische Probleme haben. Auch weiss ich nicht wie es da mit der Wartung aussieht.

Ansonsten habe ich nichts gefunden, von ein paar Baustellen und Gräbern mal abgesehen ;)

Hat da irgend jemand einen Typ für mich? Bin nun schon seit langem am suchen und habe nicht wirklich etwas gefunden. Notfalls könnte ich es aber mit einer Kombination aus PyOpenSSL und pycrypto (nicht mehr ganz sicher was den Namen angeht) auch zusammen basteln.

Gruss,
Jonas
Zuletzt geändert von veers am Montag 4. Juni 2007, 18:28, insgesamt 2-mal geändert.
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Müssen die Endpunkte der Pythonserver & Client sein?
Sonst wär ich nämlich relativ faul und würde einen ipsec Tunnel bauen.

lgherby
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

thelittlebug hat geschrieben:Müssen die Endpunkte der Pythonserver & Client sein?
Sonst wär ich nämlich relativ faul und würde einen ipsec Tunnel bauen.

lgherby
Ja. Das ganze muss tief in die Anwendung integriert sein ;)

SSH wäre eventuell eine alternative. Da gibt es ja eine Implementierung als Teil von Twisted und Paramiko. Sehen beide recht gut aus. Ich vermute aber dass ich mit SSH einen grösseren Overhead habe. Das ist ziemlich relevant weil grössere Mengen von Daten über Leitungen mit geringer Bandbreite übertragen werden sollen. Müsste ich mir aber noch genau ansehen. Ein weiteres Problem ist das ich nicht wirklich weiss wie SSH auf Protokoll Ebene funktioniert. SSL/TLS habe ich mir bereits (mehr oder weniger) angetan.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Ich habe zu Hause Python Code zum Erstellen und Cracken von RSA Schlüsseln. Du kannst dich des Moduls zum Erstellen bedienen, wenn ich zuhause bin werde ich es mal posten. Habe ich damals mit Hilfe von Wikipedia gemacht, kannst du Theoretisch auch selber aber gemachte Arbeit kann man ja auch teilen ;-)
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Sr4l hat geschrieben:Ich habe zu Hause Python Code zum Erstellen und Cracken von RSA Schlüsseln. Du kannst dich des Moduls zum Erstellen bedienen, wenn ich zuhause bin werde ich es mal posten. Habe ich damals mit Hilfe von Wikipedia gemacht, kannst du Theoretisch auch selber aber gemachte Arbeit kann man ja auch teilen ;-)
RSA ist kein Problem. Nur halte ich es für sehr mutig etwas SSL ähnliches selber zu entwerfen. Wenn ich sehe wie viele wirklich erfahrene Leute damit schon Probleme hatten (SSL < 3, SSH < 2 ...) dann kann ich kaum daran glauben dass ich es auf Anhieb schaffe ;)
(Klar, ich kann auf viel mehr wissen zugreifen als sie damals.)
Antworten