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
SSL/Crypto mit Python
-
- 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
Sonst wär ich nämlich relativ faul und würde einen ipsec Tunnel bauen.
lgherby
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
Ja. Das ganze muss tief in die Anwendung integriert seinthelittlebug 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
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.
- 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
- veers
- User
- Beiträge: 1219
- Registriert: Mittwoch 28. Februar 2007, 20:01
- Wohnort: Zürich (CH)
- Kontaktdaten:
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 schaffeSr4l 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
(Klar, ich kann auf viel mehr wissen zugreifen als sie damals.)