Słownik

Czym jest Podpis cyfrowy?

Podpis cyfrowy to schemat kryptograficzny używający klucza prywatnego do generowania podpisu na wiadomości lub dokumencie, który każdy posiadający odpowiedni klucz publiczny może zweryfikować, potwierdzając autentyczność i integralność danych.

Znane również jako: code signing, message signing

Podpisy cyfrowe zapewniają trzy gwarancje: uwierzytelnianie (wiadomość została stworzona przez zadeklarowanego nadawcę), integralność (wiadomość nie była modyfikowana od czasu podpisania) i niezaprzeczalność (podpisujący nie może zaprzeczyć złożeniu podpisu). Te właściwości czynią podpisy cyfrowe prawnie wiążącymi w wielu jurysdykcjach i niezbędnymi w dystrybucji oprogramowania, transakcjach finansowych i weryfikacji tożsamości.

Proces podpisywania polega na najpierw zahaszowaniu wiadomości kryptograficzną funkcją haszującą (jak SHA-256) w celu uzyskania skrótu o stałym rozmiarze, a następnie zaszyfrowaniu tego skrótu kluczem prywatnym podpisującego. Weryfikacja odwraca proces: weryfikator odszyfrowuje podpis kluczem publicznym podpisującego, niezależnie haszuje wiadomość i porównuje oba skróty. Jeśli się zgadzają, podpis jest ważny. Popularne algorytmy to podpisy RSA, ECDSA (Elliptic Curve Digital Signature Algorithm) i EdDSA.

Podpisy cyfrowe różnią się od HMAC, choć oba weryfikują integralność. HMAC używa wspólnego tajnego klucza — obie strony mogą generować i weryfikować kod, więc HMAC nie może zapewnić niezaprzeczalności. Podpisy cyfrowe używają kluczy asymetrycznych, co oznacza, że tylko posiadacz klucza prywatnego może podpisywać, podczas gdy każdy z kluczem publicznym może weryfikować. Ta asymetria umożliwia niezaprzeczalność i czyni podpisy cyfrowe odpowiednimi do scenariuszy publicznej weryfikacji.

Jak Vaulted używa Podpis cyfrowy

Vaulted nie używa podpisów cyfrowych w swoim głównym przepływie szyfrowania, ponieważ model udostępniania jest symetryczny — nadawca i odbiorca dzielą ten sam klucz przez fragment URL i nie ma potrzeby niezaprzeczalności ani publicznej weryfikacji. Certyfikaty TLS zabezpieczające połączenia HTTPS Vaulted polegają jednak na podpisach cyfrowych, by udowodnić tożsamość serwera twojej przeglądarce, a integralność wdrożonego kodu Vaulted jest weryfikowana przez podpisywanie kodu w potoku CI/CD.