Słownik

Czym jest Nonce?

Nonce (number used once) to unikalna, zazwyczaj losowa lub sekwencyjna wartość używana dokładnie raz w operacji kryptograficznej, zapewniająca, że identyczne wejścia dają różne wyjścia, zapobiegając atakom odtwarzania i analizie wzorców.

Znane również jako: number used once, cryptographic nonce

Jeśli szyfrujesz ten sam tekst jawny tym samym kluczem bez nonce, za każdym razem otrzymujesz identyczny szyfrogram. Atakujący obserwujący wiele wiadomości mógłby wykryć wzorce — identyczne szyfrogramy zdradzają, że ta sama wiadomość została wysłana, nawet bez jej odszyfrowania. Nonce eliminuje ten problem, wprowadzając unikalną wartość do każdej operacji szyfrowania, zapewniając, że ten sam tekst jawny zaszyfrowany tym samym kluczem zawsze daje inny szyfrogram.

Wymagania bezpieczeństwa dla nonce różnią się w zależności od algorytmu. Niektóre algorytmy (jak AES-GCM) wymagają, by nonce nigdy nie był ponownie używany z tym samym kluczem — ponowne użycie może katastrofalnie skompromitować zarówno poufność, jak i uwierzytelnianie. Dla tych algorytmów losowe nonce muszą być wystarczająco duże, by przypadkowe kolizje były pomijalnie mało prawdopodobne. Losowy 96-bitowy nonce (jak używany w AES-GCM) zapewnia wystarczającą odporność na kolizje dla do około 2^32 szyfrowania pod jednym kluczem.

Nonce pojawiają się w protokołach kryptograficznych pod różnymi nazwami. W AES-GCM nazywane są wektorami inicjalizacji, w uwierzytelnianiu wyzwanie-odpowiedź to wyzwania, a w blockchain — nonce wydobycia. Wspólnym mianownikiem jest unikalność: wartość nie może się powtórzyć w kontekście, w którym jest używana.

Jak Vaulted używa Nonce

Każdy sekret zaszyfrowany przez Vaulted używa unikalnego losowego 12-bajtowego (96-bitowego) nonce, generowanego przez kryptograficznie bezpieczny generator liczb losowych Web Crypto API. Ten nonce służy jako wektor inicjalizacji dla szyfrowania AES-256-GCM. Jest przechowywany obok szyfrogramu na serwerze i przekazywany odbiorcy do deszyfrowania. Ponieważ Vaulted generuje też unikalny klucz dla każdego sekretu, para klucz-nonce jest zawsze unikalna.