Wie werden getrennte Signaturen verwendet, um die Integrität und Authentizität einer Datei zu überprüfen?

5

Mir ist bekannt, dass die getrennte Signatur vom privaten Schlüssel des Unterzeichners generiert wird und dass Sie den öffentlichen Schlüssel des Unterzeichners verwenden, um die heruntergeladene Datei zu überprüfen.

z.B.

gpg --verify package_name.asc

Die Signatur wird mithilfe des öffentlichen Schlüssels des Unterzeichners überprüft. Wie funktioniert das? gpg wissen, dass die Signatur zum heruntergeladenen Paket gehört? Fehlt mir etwas?

user3247608
quelle
Bei wem auch immer für diese Frage abgestimmt wurde, ich sehe nicht ein, wie weit diese Frage zu weit gehen würde.
Jens Erat
@JensErat Die Frage fragt nach Details zu den inneren Abläufen einer bestimmten Software und befasst sich nicht mit einem bestimmten Problem oder Problem, das behoben werden kann. Dies macht es nicht besonders gut für SU.
music2myear

Antworten:

4

Suchen der Datei für eine getrennte Signatur

gpg prüft automatisch getrennte Signaturen gegen denselben Dateinamen, ohne .asc oder .sig Erweiterung. Bilden man gpg:

--verify
  Assume  that  the first argument is a signed file or a detached signature and
  verify it without generating any output. With  no  arguments,  the  signature
  packet  is  read from STDIN. If only a sigfile is given, it may be a complete
  signature or a detached signature, in which case the signed stuff is expected
  in a file without the ".sig" or ".asc" extension.  With more than 1 argument,
  the first should be a detached signature and  the  remaining  files  are  the
  signed  stuff.  To  read  the  signed stuff from STDIN, use '-' as the second
  filename.  For security reasons a detached signature cannot read  the  signed
  material from STDIN without denoting it in the above way.

Somit, gpg --verify package_name.asc erwartet, dass die signierte Datei als verfügbar ist package_name. Wenn dies nicht der Fall ist (oder an einem anderen Ort), geben Sie auch den Pfad zu dieser Datei an:

gpg --verify detached_siganture.asc signed_file

Ist es die richtige Datei?

OpenPGP erwartet nicht, dass der Dateiname (oder eine andere Kennung) in der Signatur gespeichert wird. Aber: Die Signatur ist die Hash-Summe der signierten Datei, die mit dem privaten Schlüssel des Unterzeichners verschlüsselt ist, sodass sie mit seinem öffentlichen Schlüssel entschlüsselt werden kann. Wenn die entschlüsselte Hash-Summe nicht mit der der zur Überprüfung verwendeten Datei übereinstimmt, wissen Sie, dass die Datei nicht mit der signierten Datei übereinstimmt (kann jedoch nicht feststellen, ob es sich um eine falsche Datei handelt, wenn Sie eine falsche Datei auswählen oder manipuliert wurde ).

Jens Erat
quelle
Ich habe gpg (GnuPG) 1.4.21 und in seinem Handbuch heißt es: "Hinweis: Wenn die Option --batch nicht verwendet wird, kann gpg davon ausgehen, dass ein einzelnes Argument eine Datei mit einer getrennten Signatur ist und es versucht Eine passende Datendatei finden, indem bestimmte Suffixe entfernt werden. Es wird dringend davon abgeraten, eine getrennte Signatur mit dieser Verlaufsfunktion zu überprüfen. Geben Sie immer auch die Datendatei an. "
Yaroslav Nikitenko