Forum: PC-Programmierung Verschlüsseln UND Signieren


von Frank (Gast)


Lesenswert?

Hallo MC-Gemeinde,

ich beschäftige mich grad mit HTTPS und habe eine kleine 
Verständnisfrage:

Warum muss ich bei Public-Key-Verfahren eine Nachricht verschlüsseln UND 
signieren?

Angenommen, ich habe einen lesbaren Klartext. Wenn ich den mit meinem 
privaten Schlüssel verschlüssele und der Empfänger kennt sicher meinen 
öffentlichen Schlüssel, dann kommt bei ihm wieder lesbarer Klartext 
raus. Es wäre also offenkundig, dass die Nachricht A) nicht verändert 
wurde und B) wirklich von mir stammt. Denn ohne den korrekten 
öffentlichen Schlüssel käme kein sinnvoller Text raus.

In diesem Fall brauche ich also keine Signatur, die Verschlüsselung 
reicht.

Eine Signatur bräuchte ich aber, wenn die Originalnachricht kein 
sinnvoller Text wäre, z.B. eine Musikdatei. Da ist nicht offensichtlich, 
dass die Nachricht unverfälscht ist.

Stimmt die Argumentation so?

von Stefan F. (Gast)


Lesenswert?

Bist su sicher, daß es hier um HTTPS geht, nicht um Emails?

> Warum muss ich bei Public-Key-Verfahren eine Nachricht
> verschlüsseln UND signieren?

Warum glaubst du das zu müssen?

In meinem EMail Programm (Thunderbird mit Enigmail) habe ich z.B. zwei 
Button, einen zum Verschlüsseln und einen zum Signieren. Beide kann ich 
unabhängig voneinander verwenden.

von Jan H. (j_hansen)


Lesenswert?

Frank schrieb:
> Warum muss ich bei Public-Key-Verfahren eine Nachricht verschlüsseln UND
> signieren?

Musst du doch nicht.

Das "Public" in "Public-Key" bedeutet "öffentlich". Also "jeder" kann 
mit dem öffentlichen Schlüssel etwas verschlüsseln und dir schicken. Nur 
du kannst es entschlüsseln, mit deinem privaten Schlüssel.
Wenn du jetzt wissen möchtest, ob Hinz oder Kunz dir die Nachricht 
geschickt hat, dann müssen sie diese signieren.

von Peter II (Gast)


Lesenswert?

Frank schrieb:
> ich beschäftige mich grad mit HTTPS und habe eine kleine
> Verständnisfrage:
schön

> Angenommen, ich habe einen lesbaren Klartext. Wenn ich den mit meinem
> privaten Schlüssel verschlüssele und der Empfänger kennt sicher meinen
> öffentlichen Schlüssel
so wird das aber nicht gemacht. Die Nachricht wir mit dem Öffentlichen 
Schlüsseln vom Empfänger verschlüsselt damit weis der Empfänger nicht 
wer die Nachricht geschickt hat.

> Warum muss ich bei Public-Key-Verfahren eine Nachricht verschlüsseln UND
> signieren?

bei https werden die Nachrichten nicht Signiert. Die Daten werden nur 
AES (oder ähnlich) verschlüsselt. Beim Schlüsselaustausch werden 
Zertifikate geprüft, diese sind Signiert.


Besser ist es sich SMIME anzuschauen, dort kann man Nachrichten 
Verschlüsseln und/oder Signieren.
Also
  Verschlüsseln + Signatur
  nur Verschlüsseln
  nur Signieren

von Peter II (Gast)


Lesenswert?

Nachtrag:

Frank schrieb:
> Angenommen, ich habe einen lesbaren Klartext. Wenn ich den mit meinem
> privaten Schlüssel verschlüssele und der Empfänger kennt sicher meinen
> öffentlichen Schlüssel

Wenn es so gemacht wird, ist die Verschlüsselung sinnlos. Dann dein 
öffentlicher Schlüssel ist ja Öffentlich - damit kann jeder die 
Nachricht lesen.

von Felix U. (ubfx)


Lesenswert?

Peter II schrieb:
>> Warum muss ich bei Public-Key-Verfahren eine Nachricht verschlüsseln UND
>> signieren?
>
> bei https werden die Nachrichten nicht Signiert. Die Daten werden nur
> AES (oder ähnlich) verschlüsselt. Beim Schlüsselaustausch werden
> Zertifikate geprüft, diese sind Signiert.
Das stimmt so nicht. Natürlich ist eine Signatur nach dem Aushandeln 
eines symmetrischen Schlüssels nicht mehr notwendig. Vorher aber, und 
das ist genau die Phase wo Public-Key Verfahren zum Einsatz kommen, 
braucht man natürlich Signaturen. Konkret bei der Verifikation des 
Serverzertifikats.


Frank schrieb:
> Angenommen, ich habe einen lesbaren Klartext. Wenn ich den mit meinem
> privaten Schlüssel verschlüssele und der Empfänger kennt sicher meinen
> öffentlichen Schlüssel, dann kommt bei ihm wieder lesbarer Klartext
> raus. Es wäre also offenkundig, dass die Nachricht A) nicht verändert
> wurde und B) wirklich von mir stammt. Denn ohne den korrekten
> öffentlichen Schlüssel käme kein sinnvoller Text raus.

Was ein sinnvoller Text ist, liegt immer im Auge des Betrachters. Was 
mancherorts im Internet verzapft wird, könnte jedenfalls kein 
Algorithmus als lesbaren Text erkennen. Grundsätzlich findet eine 
Überprüfung ob etwas richtig oder falsch entschlüsselt wurde, mit einer 
Prüfsumme oder einem Hash statt. Das funktioniert dann bei Musikdateien 
genau wie bei Texten.

Der Grund, dass man eine Signatur braucht liegt eben darin, dass man bei 
asymmetrischen Verfahren immer nur eins von beidem erreicht:
-Verschlüsselt man mit dem public key, ist die Nachricht vor Mitlesern 
geschützt. Die Authentizität lässt sich aber nicht feststellen, weil 
jeder die Nachricht mit dem öffentlichen Schlüssel hätte verschlüsseln 
können.
-Verschlüsselt man mit dem private key ("Signieren"), weiß man sicher 
wer es verschlüsselt hat, aber dafür kann es jeder lesen.

In der Realität bildet man einen Hash über die Nachricht, und 
verschlüsselt den dann mit dem Private Key. Das ist dann die Signatur.

von Toxic (Gast)


Lesenswert?


von T.roll (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.