RSA Signierung

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 50 Antworten in diesem Thema. Der letzte Beitrag () ist von ThuCommix.

    nope, dafür hab ich zu wenig Zeit in meiner Freizeit. Kryptographie ist ein wundervolles, mathematisch-logisches Thema, doch betrieblich und privat habe ich keine Zeit mich darin einzuarbeiten. Ich kann es lediglich anwenden und darauf vertrauen, dass die anderen Kryptologen mit ihren Aussagen bezüglich der Angreifbarkeit von Algorithmen recht haben. Wie die meisten hier von uns auch.

    Edit:
    Ich muss aber sagen, ich war etwas pessimistisch was die Sicherheit von RSA angeht:

    Wikipedia schrieb:

    Mit der Methode des Zahlkörpersiebs wurde im Jahr 2005 von Wissenschaftlern der Friedrich-Wilhelms-Universität Bonn die im Rahmen der RSA Factoring Challenge von RSA Laboratories vorgegebene 200-stellige Dezimalzahl RSA-200 in ihre zwei großen Primfaktoren zerlegt.(Die ersten RSA-Zahlen bis RSA-500 wurden entsprechend der Anzahl der Dezimalstellen benannt, weitere RSA-Zahlen nach der Anzahl der Binärstellen.) Die Faktorisierung begann Ende 2003 und dauerte bis Mai 2005. Unter anderem kam ein Rechnerverbund von 80 handelsüblichen Rechnern an der Universität Bonn zum Einsatz
    ....
    wurde im Dezember 2009 die Zahl RSA-768 faktorisiert
    ....
    Laut Bundesnetzagentur sind für RSA-basierte Signaturen bis Ende 2020 Schlüssel mit einer Mindestlänge von 1976 Bit geeignet (Empfehlung 2048 Bit)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „EaranMaleasi“ ()

    Ich muss jetzt doch nochmal etwas fragen.
    Angenommen wir wollen einen P2P FileTransfer Dienst programmieren (Tcp + SSL) und wir nehmen an, dass es ja sein könnte, dass ein SSL Poodle
    oder ein sonstiger Exploit möglich wäre und lassen jetzt erstmal manuelle Verschlüsselung außenvor, signieren unsere Datenpakete aber zusätzlich.
    Der Client generiert ein neues Schlüsselpaar und signiert mittels Private Key schön seine Pakete. Wie kann ich den Public-Key sicher übermitteln?
    Wenn SSL nichts bringt im Falle eines Angriffs, ist man doch ziemlich geliefert. Wie wird das denn normalerweise gemacht? Der Public-Key muss ja unbedingt übertragen werden,
    da der Empfänger diesen nicht kennt. Es werden also die zu sendenden Daten, die Signatur und der Public-Key gesendet. Der Angreifer wird kein Problem haben einfach alle drei
    Informationen auszutauschen.

    Das lässt mich einfach nicht in Ruhe... Zerbreche mir da schon länger jetzt den Kopf mit.
    Hat da irgendwer einen sinnvollen Lösungsansatz?

    MfG Tim
    musste mal auf Wiki TLS nochmal nachlesen. SSL ist bisserl mehr als nur RSA-Verschlüsselung.
    Da findet ein RSA-verschlüsselter Schlüssel-Austausch symmetrischer Schlüssel statt, denn zur Nachrichtenübermittlung ist RSA zu lahm.
    Und das Mittelmännchen wird abgewehrt durch Zertifikate, also da muss ein geeignetes im Client-Window-Certificate-Store installiert sein. Das mitte Zertifikate ist integraler Bestandteil von TLS.
    Also in der Theorie bleibt mir nichts anderes übrig als ein SSL/TLS Zertifikat zu kaufen für viel Geld und begrenzten Zeitraum nur um damit
    ein wenig rumspielen zu können. Alles andere wäre unsicher oder knackbar? Ich meine, selbst wenn ich den Public Key mit Rijndael/AES verschlüsselt
    übertrage muss der Empfänger die Keys dazu haben, also käme nur Einkompilierung in Frage, was wiederum besonders unsicher ist, da man .Net leicht
    dekompilieren kann und jegliche Geheimschlüssel auf dem Silbertablett serviert?

    Klar zum "rumspielen" langt sowas, aber ich würde schon gern eine SSL/TLS Connection testen.

    ThuCommix schrieb:

    Wenn du nur spielen willst kann man sich glaube ein nicht verifiziertes Zertifikat austellen.
    Ja, mach das.
    Und schreib ein differenziertes, idiotensicheres Tut, wie das im Einzelnen geht, inclusive wie das inne Tcp-Connection zu integrieren ist.
    Da wäre sicherlich nicht nur ich dran interessiert.