Frage

Ich plane, Pycrypto für ein Projekt zu verwenden, und ich möchte wissen, ob Pycrypto sicher und zuverlässig genug ist, um sie zu verwenden. Wie kann ich sicherstellen, dass Pycrypto Daten gemäß den verschiedenen Verschlüsselungsalgorithmen wie RSA und AES korrekt verschlüsselt?

War es hilfreich?

Lösung

Es hängt davon ab, ob.

Einige Teile von Pycrypto sind wirklich gut. Zum Beispiel wurde die API für Crypto.Random (eingeführt in Pycrypto 2.1) als ziemlich narrensicher gestaltet, und der zugrunde liegende Algorithmus, den sie verwendet (Fortuna), wurde ebenfalls als ziemlich narrensicher ausgelegt.

Andere Teile sind nur Implementierungen von Krypto-Primitiven auf niedriger Ebene, also funktioniert es, aber Sie müssen wissen, was Sie tun, um sie richtig zu verwenden. Zum Beispiel implementiert Crypto.publickey.rsa nicht den vollständigen RSA PKCS#1 -Standard (woran die meisten Leute über "RSA" sprechen). Es implementiert nur die grundlegende RSA -Primitive (M^e mod n und c^d mod n), und Sie müssen immer noch Ihre eigene PKCS#1 -Implementierung bereitstellen.

Der beste Weg, um sicherzustellen, dass PyCrypto Ihre Daten korrekt verschlüsselt (ohne den Quellcode zu lesen, was ich jeder er ermutige), besteht darin, ein Standardprotokoll und/oder ein Nachrichtenformat zu verwenden und zu testen, ob Ihr Code mit anderen Implementierungen unterbrochen wird. Wenn Sie Ihr eigenes Nachrichtenformat erstellen (das Sie wahrscheinlich sowieso nicht tun sollten), müssen Sie sehr vorsichtig sein, um sicherzustellen, dass Pycrypto tatsächlich alles tut, was Sie glauben.

Haftungsausschluss: Ich bin der aktuelle Pycrypto -Betreuer, daher sollten meine Meinungen nicht als unabhängige Überprüfung angesehen werden.

Aktualisieren: Pycrypto v2.5 und später enthalten jetzt die ordnungsgemäßen RSA -PKCS#1 -Verschlüsselung und Signaturimplementierungen. Weitere Informationen finden Sie in der API -Dokumentation für crypto.cipher.pkcs1_oaep und Crypto.signature.pkcs1_PSS.

Andere Tipps

Beachten Sie, dass ich auch kein Experte für Krypto bin. Trotzdem habe ich mir den Pycrypto -Code auf Github und ihre Mailingliste kurz angesehen. Eines der Dinge, die mir das Vertrauen geben, ist, dass es gute, Expertenbeiträge zur Codebasis gibt. Die Entwickler erkennen Unsicherheiten an und arbeiten daran, sie zu korrigieren.

Wenn Sie einen bestimmten Anwendungsfall haben, den Sie sicher implementiert werden müssen, schauen Sie sich ihren Code an und fragen Sie auf der Liste. Da sie C/C ++ - Bibliotheken für die Arbeit in vielen Fällen zu nutzen scheinen, können Sie den Ruf der Basisbibliotheken direkt überprüfen.

Nein. PyCrypto ist nicht mehr unter aktiver Entwicklung und die Kryptographie -Bibliothek sollte stattdessen verwendet werden.

Quelle: https://github.com/dlitz/pycrypto/issues/173

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top