Kryptografisk nonce - Cryptographic nonce

Typisk klient-server-kommunikation under en nonce-baseret godkendelsesproces , der omfatter både en server-nonce og en klient-nonce

I kryptografi er et nonce ( nummer én gang ) et vilkårligt tal, der kun kan bruges én gang i en kryptografisk kommunikation. Det er ofte et tilfældigt eller pseudo-tilfældigt nummer, der er udstedt i en godkendelsesprotokol for at sikre, at gammel kommunikation ikke kan genbruges i replay-angreb . De kan også være nyttige som initialiseringsvektorer og i kryptografiske hashfunktioner .

Definition

Et nonce er et vilkårligt tal, der kun bruges en gang i en kryptografisk kommunikation i ånden af ​​et nonce -ord . De er ofte tilfældige eller pseudo-tilfældige tal. Mange nonces inkluderer også et tidsstempel for at sikre nøjagtig aktualitet, selvom dette kræver ur -synkronisering mellem organisationer. Tilføjelsen af ​​en klient nonce (" cnonce ") hjælper med at forbedre sikkerheden på nogle måder som implementeret i godkendelse af fordøjelsesadgang . For at sikre, at et nonce kun bruges én gang, bør det være tidsvariant (inklusive et passende finkornet tidsstempel i dets værdi) eller genereret med nok tilfældige bits til at sikre en sandsynligt ubetydelig chance for at gentage en tidligere genereret værdi. Nogle forfattere definerer pseudo-tilfældighed (eller uforudsigelighed) som et krav for en nonce.

Anvendelse

Godkendelse

Godkendelsesprotokoller kan bruge nonces til at sikre, at gammel kommunikation ikke kan genbruges i replay -angreb . For eksempel bruges nonces i HTTP -godkendelsesadgangsgodkendelse til at beregne en MD5 -opsamling af adgangskoden . Nonces er forskellige hver gang 401 -godkendelsesudfordringens svarkode præsenteres, hvilket gør afspilningsangreb praktisk talt umuligt. Scenariet med at bestille produkter over internettet kan give et eksempel på nytten af ​​nonces i replay -angreb. En angriber kunne tage de krypterede oplysninger og - uden at skulle dekryptere - kunne fortsætte med at sende en bestemt ordre til leverandøren og derved bestille produkter igen og igen under samme navn og indkøbsoplysninger. Nonce bruges til at give 'originalitet' til en given besked, så hvis virksomheden modtager andre ordrer fra den samme person med samme nonce, vil den kassere dem som ugyldige ordrer.

En nonce kan bruges til at sikre sikkerhed for en strømkryptering . Hvor den samme nøgle bruges til mere end én besked, og derefter bruges en anden nonce til at sikre, at nøglestrømmen er forskellig for forskellige meddelelser, der er krypteret med denne nøgle; ofte bruges meddelelsesnummeret.

Hemmelige nonce-værdier bruges af Lamport-signaturordningen som en underskriftssidehemmelighed, der selektivt kan afsløres til sammenligning med offentlige hash til oprettelse og verifikation af signaturer.

Initialiseringsvektorer

Initialiseringsvektorer kan omtales som nonces, da de typisk er tilfældige eller pseudo-tilfældige.

Hashing

Nonces bruges i proof-of-work-systemer til at variere input til en kryptografisk hash-funktion for at opnå en hash for et bestemt input, der opfylder visse vilkårlige betingelser. Derved bliver det langt vanskeligere at oprette en "ønskelig" hash end at verificere den og flytte arbejdsbyrden til den ene side af en transaktion eller et system. Eksempelvis blev bevis på arbejde ved hjælp af hashfunktioner betragtet som et middel til at bekæmpe spam ved at tvinge e-mailsendere til at finde en hashværdi til e-mailen (som inkluderede et tidsstempel for at forhindre forudberegning af nyttige hash til senere brug), der havde et vilkårligt antal førende nuller ved at hasche det samme input med et stort antal værdier, indtil der blev opnået en "ønskelig" hash.

På samme måde kan bitcoin blockchain -hashing -algoritmen indstilles til en vilkårlig vanskelighed ved at ændre den påkrævede minimum/maksimumværdi for hash, så antallet af bitcoins, der tildeles for nye blokke, ikke stiger lineært med øget netværksberegningseffekt, når nye brugere tilmelder sig. Dette opnås ligeledes ved at tvinge bitcoin -minearbejdere til at tilføje nonce -værdier til den værdi, der er hash for at ændre hash -algoritmens output. Da kryptografiske hash -algoritmer ikke let kan forudsiges baseret på deres input, gør dette blockchain -hashing og muligheden for at blive tildelt bitcoins til noget af et lotteri, hvor den første "minearbejder" til at finde en nonce, der leverer en ønskelig hash, tildeles bitcoins .

Se også

Referencer

eksterne links

  • RFC  2617 - HTTP -godkendelse: Grundlæggende og Digest Access -godkendelse
  • RFC  3540 - Robust eksplicit meddelelse om overbelastning (ECN) Signalering med nonces
  • RFC  4418 - UMAC: Godkendelseskode for meddelelser ved hjælp af Universal Hashing
  • Web Services sikkerhed