Frage:
Welche kryptografischen Algorithmen gelten nicht als sicher?
Olivier Lalonde
2010-11-12 05:08:33 UTC
view on stackexchange narkive permalink

Welche kryptografischen Algorithmen gelten nicht als sicher, sind aber dennoch weit verbreitet und in Standardbibliotheken verfügbar? Geben Sie gegebenenfalls eine sichere Alternative an.

Ich stimme dafür, diese Frage als nicht zum Thema gehörend zu schließen, da die Antworten sehr schnell veraltet sein werden. Wir hoffen, die Antworten ändern zu können, um allgemeinere Anleitungen zur Ermittlung der neuesten Ratschläge zu kryptografischen Standards zu erhalten.
Neun antworten:
AviD
2010-11-12 05:12:20 UTC
view on stackexchange narkive permalink

Dies sind die häufigsten:

  • MD5 - Verwenden Sie SHA512
  • SHA1 - Verwenden Sie SHA512 (Beachten Sie, dass dies nicht wirklich unsicher ist, aber das Alter und den Willen anzeigt in den nächsten Jahren zerbrechlich sein ....)
  • DES / 3DES - Verwenden Sie AES
  • Noch interessanter wäre der Kontext, in dem diese als unsicher gelten und in dem sie ihre Arbeit gut machen.
    @Jorn, Ich würde sagen, dass mit Ausnahme von SHA1 (das für ein paar gute Jahre noch für unkritische Systeme gut genug ist) kein Grund besteht, diese (MD5 / DES / 3DES) jemals in einem kryptografischen Kontext zu verwenden. Besonders 3DES, da AES schneller ist! Obwohl ich gesehen habe, dass MD5 in einem nicht sicherheitsrelevanten Kontext verwendet wird, ähnlich einer inhaltsabhängigen GUID ... oder so ähnlich.
    Wenn Sie ein sehr schwaches eingebettetes Gerät haben, können Sie einen schwächeren Algorithmus für niedrigwertige und / oder zeitkritische Informationen verwenden (benötigen die Daten schnell und die Daten altern sehr schnell). Das Problem ist, dass die meisten scheinbar unschuldigen Informationen tatsächlich auf schändliche Weise verwendet werden können. Es ist einfacher, (derzeit) unzerbrechliche Verschlüsselung zu verwenden.
    @rox0r, Selbst auf einem schwachen eingebetteten Gerät ist AES ressourcenschonender als 3DES. Das einzige Problem sind ältere Plattformen, die keine moderne Verschlüsselung unterstützen.
    Guter Rat, obwohl SHA256 vorerst schneller, kürzer und auch in Ordnung ist. Siehe http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html und beachten Sie, dass die Sicherheit von Hash-Funktionen immer noch wenig verstanden wird und es auch theoretische Bedenken hinsichtlich SHA512 gibt. Es gibt einen großen Hash-Wettbewerb, der von NIST durchgeführt wird, um die Forschung anzuregen und möglicherweise 2012 festzulegen, was als SHA-3 bezeichnet wird. Http://en.wikipedia.org/wiki/NIST_hash_function_competition
    @nealmcb, das sind gute Punkte. Obwohl SHA3 nicht wirklich relevant ist und auch nach der Spezifikation noch einige Zeit nicht relevant sein wird ...
    @avid Danke. Und Sie haben Recht mit SHA-3 - mein Punkt bei der Erwähnung war, zu unterstreichen, dass selbst die Experten mit unserem Wissen über Hash-Funktionen im Vergleich zu z. Verschlüsselung, und diese Umstellung auf sha256 oder sha512 wird wahrscheinlich nicht so lange unser Rat sein.
    @nealmcb - Sie haben natürlich Recht, aber für die nächsten 3-5 Jahre wird SHA512 immer noch der Hash der Wahl sein. Und selbst nachdem SHA3 weit verbreitet ist, wird SHA512 immer noch "akzeptabel" sein. (SHA256 auch, aber 512 mehr).
    @avid, Der RFC für UUIDs enthält bereits Anweisungen zum Erstellen inhaltsabhängiger GUIDs ;-)
    aww, cmon, @Graham - du weißt, das ist nicht wirklich das, was ich meinte ... schlechte Wortwahl, habe nur versucht, es zu erklären ...
    Wenn Sie sich auf einem 32-Bit-Server befinden, ist der Leistungsunterschied zu guten Implementierungen von sha256 (224) und sha512 (384) deutlicher als auf einem 64-Bit-Server. Es gibt immer noch einen Unterschied, da sha256 64 Runden hat, sha512 80 Runden. (für jeden 512- bzw. 1024-Bit-Datenblock). Interessanterweise sind sha224 und sha384 etwas langsamer als ihre Gegenstücke, da sie dieselben Berechnungen durchführen und dann einen Teil des Ergebnisses entfernen. ([hier ist es in Python] (http://code.google.com/p/slowsha/source/browse/slowsha.py))
    nealmcb
    2010-12-23 05:50:15 UTC
    view on stackexchange narkive permalink

    Ende 2010 hat die US-Regierung diese Algorithmen aufgrund von Empfehlungen der sehr versierten Mitarbeiter von NIST abgelehnt:

    • SHA-1
    • 1024-Bit RSA oder DSA
    • 160-Bit-ECDSA (elliptische Kurven)
    • 80/112-Bit-2TDEA (Dreifach-DES mit zwei Schlüsseln)

    MD5 nie war ein akzeptabler Algorithmus für die Verwendung durch die Regierung, zusammen mit vielen anderen älteren Algorithmen.

    Für die Sicherheit bis zum Jahr 2030 empfehlen sie mindestens SHA-224, 2048 Bit für RSA oder DSA, 224-Bit EDCSA und AES-128 oder 3-Tasten-Triple-DES verwendet werden.

    Dies ist seit mehreren Jahren in Arbeit. Siehe diesen Beitrag und die NIST-Dokumente, auf die er verweist: http://securitymusings.com/article/1587/algorithm-and-key-length-deprecation

    Update: Ein weiterer prägnanter und nützlicher Ratschlag ist Cryptographic Right Answers von Colin Percival.

    Thomas Pornin
    2011-04-29 01:30:58 UTC
    view on stackexchange narkive permalink

    Unsichere, aber weit verbreitete kryptografische Algorithmen umfassen:

    • Hash-Funktionen: MD4, MD5, (SHA-1) (MD2 ist ebenfalls unsicher, aber nicht weit verbreitet; SHA-1 ist es nur "geschwächt"; MD4 und MD5 werden auch häufig in Situationen verwendet, in denen kein kryptografischer Widerstand erforderlich ist, sodass dies kein Problem darstellt.

    • symmetrische Verschlüsselung: DES (56-Bit-Schlüssel) ), RC4 (Nicht-Zufälligkeit - aber die meisten Sicherheitsprobleme mit RC4 liegen in der Verwendung, nicht aufgrund des Algorithmus selbst), der Stream-Verschlüsselung im Zip-Archivformat (neuere Zip-Dienstprogramme verwenden AES)

    • asymmetrische Verschlüsselung: RSA mit einem zu kurzen Schlüssel (dh 768 Bit oder weniger), RSA mit falschem Auffüllen (z. B. ISO 9796-1), Diffie-Hellman-Modulo eine zu kleine Primzahl (768 Bit) oder weniger) (Diffie-Hellman ist nicht wirklich ein asymmetrischer Verschlüsselungsalgorithmus, sondern ein Schlüsselvereinbarungsalgorithmus - aber die meisten Verwendungen der asymmetrischen Verschlüsselung sind wirklich verschleierte Schlüsselvereinbarungen)

    • digitale Signaturen : RSA mit einem zu kurzen Schlüssel (dh 768 Bit oder weniger)

    • viele (zu viele) handgemachte Algorithmen von Menschen, die sich selbst überfordert haben; Ein Paradebeispiel ist CSS, die Verschlüsselung für DVD

    Sichere Alternativen: SHA-256 für Hashing (SHA-512, wenn Sie den gleichen Fetisch wie die US Army haben, und / oder wenn Sie die Leistung auf 32-Bit-Systemen beeinträchtigen möchten), AES für symmetrische Verschlüsselung. Betrachten Sie für eine Schlüsselübereinstimmung ECDH (Diffie-Hellman über eine elliptische Kurve) mit einer der Standard-NIST-Kurven (z. B. P-224, K-233 oder B-233 - aber P-256 wird weiter unterstützt). Verwenden Sie für asymmetrische Verschlüsselung RSA mit einem ausreichend großen Schlüssel (1024 Bit für kurzfristige Sicherheit, vorzugsweise 1536 oder 2048 Bit) und PKCS # 1 -Padding (v1.5 "old-style" ist in Ordnung, aber OAEP ist feiner). Berücksichtigen Sie für Signaturen ECDSA (gleiche Kurven wie für ECDH) oder RSA mit einem ausreichend großen Schlüssel und PKCS # 1-Padding (v1.5 oder PSS). Entwerfen Sie niemals Ihren eigenen Algorithmus (oder, wenn Sie dies tun, glauben Sie niemals , dass er sicher ist).

    Die meisten Sicherheitsprobleme liegen jedoch nicht in der Wahl des Algorithmus, sondern in der Art und Weise, wie sie verwendet werden. WEP verwendet RC4, aber RC4 ist keine der zahlreichen Schwächen von WEP. Sony hat die PlayStation 3 mit ECDSA geschützt, das sicher ist, aber den Zufallsgenerator verpfuscht hat, was zu einem katastrophalen Fehler geführt hat (Belichtung mit privaten Schlüsseln ...).

    yfeldblum
    2011-05-04 04:00:51 UTC
    view on stackexchange narkive permalink

    Der Kontext ist wichtig. Sicher für was ? Wie wird etwas verwendet?

    Zum Beispiel:

    • AES-256 ist "sicher". Bis Sie sich entscheiden, einen Datenstrom mit blockstrukturierten Daten mit AES-256 im EZB-Modus zu verschlüsseln.
    • AES-256 ist "sicher". Bis Sie mehrere Nachrichten im CBC-Modus verschlüsseln, jedoch mit demselben Schlüssel und derselben IV.
    • AES-256 ist "sicher". Bis Sie eine Implementierung verwenden, deren Timing mit den Bits des Schlüssels oder der Daten variiert.
    Die Kommentare von Justice sind wirklich wichtig (obwohl ein bisschen knapp - @Justice, hätten Sie Ihre Punkte ein bisschen besser erklären können oder zumindest einen Link zu einer Diskussion dieser Themen enthalten können)
    Habe dort ein paar Wikipedia-Links festgehalten.
    Henri
    2010-11-12 18:26:12 UTC
    view on stackexchange narkive permalink

    Obwohl diese Frage bereits beantwortet wurde, fehlen mir viele Antworten.

    • RC2, RC4
    • MD4 (in einigen Bibliotheken noch verfügbar)

    Darüber hinaus hängt es von der Verwendung und dem Zweck ab des Algorithmus. DES zu brechen ist nicht schwer, aber ziemlich teuer. Überlegen Sie, wer Ihre Angreifer sind und wie viel Geld und Aufwand sie ausgeben können, um die Sicherheit zu brechen?

    Tate Hansen
    2010-11-12 06:06:10 UTC
    view on stackexchange narkive permalink

    Die folgenden Links können Ihnen schnell bei der Auswahl der richtigen Methode und Schlüssellänge für Ihre Sicherheitsanforderungen helfen (wodurch unsichere Methoden vermieden werden):

    " Diese Website implementiert mathematische Formeln und fasst Berichte bekannter Organisationen zusammen, sodass Sie die Mindestsicherheitsanforderungen für Ihr System schnell bewerten können. Sie können auch alle diese Techniken einfach vergleichen und finden Sie die geeignete Schlüssellänge für Ihr gewünschtes Schutzniveau. "

    tylerl
    2011-04-29 13:23:50 UTC
    view on stackexchange narkive permalink

    Offensichtlich gibt es so viele kaputte Algorithmen wie Programmierer, die selbst entwickelte Verschlüsselungssysteme schreiben, aber im Großen und Ganzen sind diese auf ein bestimmtes Softwarepaket beschränkt. Einige "Passwortschutz" -Schemata für Dokumente und Archive kommen als Beispiele in den Sinn.

    Aber der einzige allgemeine Verschlüsselungsalgorithmus (kein Hashing-Algorithmus, wie andere ihn auflisten), der für den normalen Gebrauch als "defekt" angesehen wird, weil RC4 ist ein Fehler im Algorithmus (und nicht in der Schlüssellänge), der immer noch weit verbreitet und akzeptiert ist.

    Beachten Sie, dass der Hauptgrund dafür, dass RC4 trotz seiner bekannten Mängel bestehen bleibt, darin besteht, dass die Sicherheitsanfälligkeit durch Auswerfen der ersten K-Ausgabe verringert werden kann. Außerdem ist es die einzige weit verbreitete Stream-Verschlüsselung, und viele Programmierer wissen nicht, dass Sie eine Blockverschlüsselung mithilfe eines geeigneten Blockverkettungsmodus in eine Stream-Verschlüsselung umwandeln können.

    Ich bin mir nicht sicher, wie weit verbreitet es ist, aber ein Fragesteller hier plante, TEA zu implementieren, bis er von den Problemen damit hörte. http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm
    @nealmcb: TEA wurde (falsch) in der Xbox (nicht in der Xbox 360) verwendet, daher wurde es weit verbreitet eingesetzt. Microsoft hat TEA als Hash-Funktion verwendet, und TEA ist als Hash-Funktion viel schlechter als bereits als Block-Chiffre.
    Ich habe TEA nicht aufgelistet, da es in Krypto-APIs nicht allgemein verfügbar ist. Der Hauptvorteil ist, dass es einfach in Hardware zu implementieren ist.
    stiabhan
    2014-12-29 06:16:03 UTC
    view on stackexchange narkive permalink

    RC4 wird wahrscheinlich am besten vermieden. Die unsachgemäße Verwendung war die Ursache für die Probleme in WEP, was darauf hindeutet, dass es selbst für Experten schwierig ist, das Richtige zu finden. Um es richtig zu verwenden, müssen Sie einen ausreichend großen Schlüssel (mindestens 128 Bit) auswählen, Schlüssel und IV auf sichere Weise mischen (z. B. Hashing im Gegensatz zur Verkettung) und den ersten Teil des Schlüsselstroms verwerfen, um Angriffe mit schwachen Schlüsseln zu vermeiden (256) mindestens Oktette).

    Bradley Kreider
    2011-05-03 01:28:22 UTC
    view on stackexchange narkive permalink

    Verwenden einer Blockchiffre wie Blowfish oder AES im Modus EZB (Electronic Code Book).

    Ich glaube nicht, dass er das behauptet hat. Ich analysiere es als Blowfish / EZB und AES / EZB, die größtenteils nutzlos sind.
    Danke, @Bruno. Du hast recht und ich habe mich geirrt. Ich habe meinen Kommentar gelöscht, in dem ich @rox0r, missverstanden und die Antwort bearbeitet habe, um zu versuchen, klarer zu werden, falls jemand anderes sie genauso liest wie ich.


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
    Loading...