Kryptografisk mangel - Cryptographic nonce

Typisk klient-server-kommunikasjon under en ikke-basert autentiseringsprosess som inkluderer både en server og en ikke-klient

I kryptografi er et nonce ( tall en gang ) et vilkårlig tall som bare kan brukes én gang i en kryptografisk kommunikasjon. Det er ofte et tilfeldig eller pseudo-tilfeldig tall utstedt i en autentiseringsprotokoll for å sikre at gammel kommunikasjon ikke kan gjenbrukes i replay-angrep . De kan også være nyttige som initialiseringsvektorer og i kryptografiske hashfunksjoner .

Definisjon

Et nonce er et vilkårlig tall som bare brukes en gang i en kryptografisk kommunikasjon, i ånden til et nonce -ord . De er ofte tilfeldige eller pseudo-tilfeldige tall. Mange nonces inkluderer også et tidsstempel for å sikre nøyaktig aktualitet, selv om dette krever klokkesynkronisering mellom organisasjoner. Tillegg av en klient nonce (" cnonce ") bidrar til å forbedre sikkerheten på noen måter som implementert i godkjenning av fordøyelsesadgang . For å sikre at en nonce bare brukes én gang, bør den være tidsvariant (inkludert et passende finkornet tidsstempel i verdien), eller genereres med nok tilfeldige biter for å sikre en sannsynlig ubetydelig sjanse for å gjenta en tidligere generert verdi. Noen forfattere definerer pseudo-tilfeldighet (eller uforutsigbarhet) som et krav for en nonce.

Bruk

Godkjenning

Godkjenningsprotokoller kan bruke nonces for å sikre at gammel kommunikasjon ikke kan gjenbrukes i replay -angrep . For eksempel brukes nonces i autentisering av HTTP -fordelingstilgang for å beregne en MD5 -oversikt over passordet . De nonces er forskjellig hver gang 401 -autentiseringsforespørsel responskode er presentert, og dermed gjøre omspillingsforsøk praktisk talt umulig. Scenariet med å bestille produkter over Internett kan gi et eksempel på nytten av nonces i replay -angrep. En angriper kan ta den krypterte informasjonen og - uten å måtte dekryptere - kunne fortsette å sende en bestemt ordre til leverandøren, og derved bestille produkter om og om igjen under samme navn og kjøpsinformasjon. Nonce brukes til å gi en gitt melding originalitet, slik at hvis selskapet mottar andre bestillinger fra samme person med samme nonce, vil det forkaste dem som ugyldige bestillinger.

Et nonce kan brukes for å sikre sikkerhet for en strømkryptering . Når den samme nøkkelen brukes til mer enn én melding og deretter brukes en annen nonce for å sikre at nøkkelstrømmen er forskjellig for forskjellige meldinger kryptert med den nøkkelen; ofte brukes meldingsnummeret.

Hemmelige nonce-verdier brukes av Lamport-signaturordningen som en signer-side-hemmelighet som selektivt kan avsløres for sammenligning med offentlige hash for opprettelse og bekreftelse av signaturer.

Initialiseringsvektorer

Initialiseringsvektorer kan bli referert til som nonces, ettersom de vanligvis er tilfeldige eller pseudo-tilfeldige.

Hashing

Nonces brukes i proof-of-work-systemer for å variere inngangen til en kryptografisk hashfunksjon for å oppnå en hash for en bestemt input som oppfyller visse vilkårlige betingelser. Ved å gjøre det blir det langt vanskeligere å lage en "ønskelig" hash enn å bekrefte den, og flytte arbeidsbyrden til den ene siden av en transaksjon eller et system. For eksempel ble bevis på arbeid ved bruk av hashfunksjoner betraktet som et middel for å bekjempe spam via e-post ved å tvinge e-postavsendere til å finne en hash-verdi for e-posten (som inkluderte et tidsstempel for å forhindre forhåndsberegning av nyttige hash for senere bruk) som hadde et vilkårlig antall ledende nuller, ved å hasche samme input med et stort antall verdier til en "ønskelig" hash ble oppnådd.

På samme måte kan bitcoin blockchain hashing -algoritmen innstilles på en vilkårlig vanskelighetsgrad ved å endre nødvendig minimum/maksimal verdi for hasj, slik at antallet bitcoins som tildeles for nye blokker ikke øker lineært med økt nettverksberegningskraft når nye brukere blir med. Dette oppnås på samme måte ved å tvinge bitcoin -gruvearbeidere til å legge til nonce -verdier til verdien som hashes for å endre hash -algoritmeutgangen. Ettersom kryptografiske hash -algoritmer ikke lett kan forutsies basert på deres input, gjør dette blockchain hashing og muligheten for å bli tildelt bitcoins noe av et lotteri, der den første "gruvearbeideren" som finner en nonce som leverer en ønskelig hash blir tildelt bitcoins .

Se også

Referanser

Eksterne linker

  • RFC  2617 - HTTP -autentisering: Grunnleggende og Digest Access -godkjenning
  • RFC  3540 - Robust eksplisitt varsling om overbelastning (ECN) Signalering med nonces
  • RFC  4418 - UMAC: Godkjenningskode for meldinger ved bruk av Universal Hashing
  • Web Services Security