Welche kryptografischen Algorithmen gelten nicht als sicher, sind aber dennoch weit verbreitet und in Standardbibliotheken verfügbar? Geben Sie gegebenenfalls eine sichere Alternative an.
Welche kryptografischen Algorithmen gelten nicht als sicher, sind aber dennoch weit verbreitet und in Standardbibliotheken verfügbar? Geben Sie gegebenenfalls eine sichere Alternative an.
Dies sind die häufigsten:
Ende 2010 hat die US-Regierung diese Algorithmen aufgrund von Empfehlungen der sehr versierten Mitarbeiter von NIST abgelehnt:
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.
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 ...).
Der Kontext ist wichtig. Sicher für was ? Wie wird etwas verwendet?
Zum Beispiel:
Obwohl diese Frage bereits beantwortet wurde, fehlen mir viele Antworten.
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?
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. "
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.
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).
Verwenden einer Blockchiffre wie Blowfish oder AES im Modus EZB (Electronic Code Book).