Premiss
En hemmelighet må holdes, og en hemmelighet må være forskjellig ved hver port. Disse to kravene er i strid. Å holde hundre adskilte hemmeligheter i sinnet er hinsides presten; å skrive dem inn i et hvelv er å samle hundre brudd i ett. Tidens vanlige svar er den krypterte skatten — én enkelt mester som låser opp et lagret regnskap over enhver annen hemmelighet — men skatten er en ting som eksisterer, og en ting som eksisterer kan kopieres, mistes, synkroniseres over chassiser presten ikke kontrollerer, og kreves under tvang.
Kulten holder en annen disiplin. Kunnskap er guddommelig, men den dypeste kunnskapen er uuttalt — holdt i sinnet, aldri satt inn i noe regnskap som en annen hånd kan nå. Ritusen som her navngis holder bare én hemmelighet. Enhver annen hemmelighet blir ikke lagret, men avledet: smidd på forespørsel fra den holdte mesteren og navnet på anledningen, lest for det øyeblikket den behøves, og deretter borte. Ingenting skrives. Det finnes ingen skatt å bryte.
Denne oppføringen er adoptert, ikke utvidet. Konstruksjonen den adopterer er virkelig og standardisert: S/KEY-systemet for engangspassord fra RFC 2289, med sin itererte hash og sin ordbok av korte ord. Det som legges til den er doktrinen om forseglet, uuttalt kunnskap — lesningen som gjør en innloggingsprotokoll til en ritus av hemmelighold.
De fem egenskapene ved et forseglet ord
En hemmelighet verdig ritusen må tilfredsstille fem betingelser. Det avledede ordet tilfredsstiller dem.
I. Avledet, aldri lagret
Ordet eksisterer ikke før det blir bedt om, og opphører når spørringen er gjort. Det beregnes ved å føre mesteren gjennom en enveis hash gang på gang — som standard hundre ganger — slik at utdataet er bundet til inndataet av en funksjon ingen hånd kan kjøre baklengs. Selv på prestens eget chassis blir ordet aldri inskribert til disk; det holdes bare i arbeidets levende minne, for pusterommet mellom dets smiing og dets bruk. Det finnes ingen fil å gripe, fordi hemmeligheten aldri var en fil.
II. Én mester, mange segl
Navnet på anledningen er frøet. github, bank, archive — hvert navn, foldet sammen med den ene holdte mesteren, gir et helt annet ord. Tusen porter betjenes av én enkelt hemmelighet i sinnet, og hemmelighetene til de portene deler ingen substans som bruddet av én kunne overgi til en annen. Det finnes ingenting å synkronisere mellom chassiser og ingenting å lekke, for det eneste som bæres fra port til port er mesteren, og mesteren bæres aldri i det hele tatt — den huskes.
III. Minneverdig
En hemmelighet presten ikke kan lese høyt er en hemmelighet han ikke kan verifisere, bære eller stole på. Ritusen folder sine sekstifire bits utdata ikke inn i heksadesimal eller inn i det tette alfabetet til base sekstifire, men inn i seks korte ord trukket fra en fast ordbok på to tusen og førtiåtte — tungemålet til S/KEY. Smiingen ross beau week held yoga anti blir uttalt, kopiert og til og med nedskrevet for hånd der en vegg av heks ikke kunne. Dette er minneverdig cant i streng forstand: et vokabular valgt slik at maskinens utdata passerer rent gjennom operatørens munn og øre.
IV. Deterministisk og bærbar
Den samme mesteren og det samme navnet gir det samme ordet, alltid, på ethvert chassis, uten nettverk og uten forutgående tilstand. Ritusen er en ren funksjon, ikke et oppslag; den ber ingenting av en server og beholder ingenting på en disk. Den kan utføres på metallet gjennom en kommandolinje, eller inne i nettleseren gjennom en kompilert modul, og begge taler det identiske ordet fordi begge kjører den identiske konstruksjonen. Ritusen reiser fritt; hemmeligheten reiser aldri i det hele tatt.
V. Trygg for vaktsomme øyne
Fordi mesteren aldri vises og aldri overføres, kan ritusen utføres på et chassis presten ikke stoler på. Det som ses på overflaten er bare det avledede ordet for én port; enveis-hashen forbyr å gå det ordet tilbake til mesteren, og ordet for én port sier ingenting om ordet for den neste. Disiplinen som det kanoniske S/KEY-systemet ble bygget for å tjene — autentisering over en kanal antatt å være overvåket — bevares hel.
Konstruksjonen
Mekanismen er tro mot standarden og enkel å fastslå. Navnet på anledningen føyes til den holdte mesteren, og den sammenføyde verdien føres gjennom SHA-1-hashen seq + 1 ganger, der seq er en sekvensteller som som standard er nittini — hundre runder med hashing i det vanlige tilfellet. Det resulterende digestet foldes ned til sekstifire bits, og de bitsene kodes, elleve om gangen, til seks indekser på den to tusen og førtiåtte-ords ordboken til RFC 2289. Utdataet er de seks ordene.
De samme sekstifire bitsene kan gjengis i andre registre når en port krever dem: camel-case uten mellomrom, bindestrek-føyd, heksadesimal, base sekstifire, eller desimal; med et valgfritt fast prefiks føyd foran, eller avkortet til en påkrevd lengde. Ordformen er standarden og doktrinen; de andre er innrømmelser til porter som avviser den.
Én presisjon skyldes standarden. Det kanoniske S/KEY-systemet bruker sin itererte hash til å bygge en kjede av innloggingspassord, hvert det forrige sitt forbilde, forbrukt ett per autentisering. Ritusen som her navngis adopterer den samme itererte hashen og den samme ord-kodingen, men bøyer dem til et annet embete: en per-anledning avleder, nøklet av navnet på porten, som produserer ett stabilt ord per anledning snarere enn en nedstigende kjede av engangs-innlogginger. Konstruksjonen er S/KEY sin; anvendelsen er ritusens. Den hevdes ikke å være innloggingsprotokollen selv.
Smiingen
Ritusen har en nåværende implementasjon, smidd av presten og navngitt hel — dens avstamning den eldre LesS/KEY, som konstruksjonen nedstammer fra. Navnet er tatt fra vokteren av den norrøne underverdenen, vergen for det som passerer mellom tilstander: en passende skytshelgen for en hemmelighet som aldri holdes, bare passeres gjennom arbeidet for det øyeblikket den brukes.
Kjernen er smidd i Rust og delt uten avvik over to ansikter: en kommandolinje på metallet, og en modul kompilert til WebAssembly for nettleseren, slik at ordet talt på chassiset og ordet talt i nettleseren beviselig er det samme ordet. Arbeidet lagrer ingen hemmelighet. Det det beholder — i nettleserens lokale lager, eller i en enkel katalogfil på metallet — er bare rullen av navn og genereringsregler: hvilke porter som finnes, ved hvilken modus og sekvens hver avledes. Mesteren går aldri inn i den rullen, og det gjør heller ikke noe avledet ord. Etter at modulen er lastet, sendes ingenting over tomrommet; ritusen utføres helt på operatørens eget chassis.
> enc github
ross beau week held yoga anti
Én implementasjon av ritusen står ved kaizenkodo.no/hel, der den kan utføres i enhver nettleser, frakoblet, uten konto og uten overføring.
Doktrinær stilling
Smiingen er arkivert under Oppfinnelsens Hellighet, som tillater et oppfinnsomt verk som hellig snarere enn mistenkelig på fire betingelser. Ritusen arkiveres mot hver av dem.
- Kildebelagt. Avstamningen er erklært og ubrutt: S/KEY-systemet for engangspassord fra RFC 2289, dets itererte hash, og dets standard seks-ords ordbok. Konstruksjonen er ikke oppfunnet, men adoptert fra feltets kanon.
- Forseglet. Konstruksjonen er fastsatt ved test: standardens referansevektorer — en kjent mester og navn som gir kjente ord — er bundet inn i smiingens egen diagnostikk, slik at ethvert avvik fra det kanoniske utdataet fanges før det konsekreres.
- Merket. Denne oppføringen er arkivert i
content/adoptus/, aldri i kanon. Det er prestens egen lesning og prestens egen smiing, navngitt som sådan. - Avgrenset. Standarden er grensen. Ritusen oppfinner ikke en ny hash eller en ny ordbok; den gjenanvender en eksisterende konstruksjon til avledningens embete. Mesterens egen styrke forblir grensen for det hele — ingen avledning kan være sterkere enn hemmeligheten den begynner fra.
Hva som derved adopteres
- Der en hemmelighet må holdes og må være forskjellig ved hver port, er det avledede ordet — smidd fra én mester og portens navn, lagret intetsteds — den kanoniske formen, fremfor den lagrede skatten.
- Seks-ords utdataet behandles som et tilfelle av minneverdig cant: maskinens sekstifire bits gjengitt til et tungemål operatøren faktisk kan tale, i ånden av Lingua-Technis.
- Utførelsen av ritusen på ethvert chassis, frakoblet og uten konto, behandles som en anvendelse av nøklenes disiplin — hemmeligheten påkalles i øyeblikket man setter seg til arbeidet, og avskjediges når arbeidet er gjort.
Hva som ikke hevdes
Ritusen erstatter ikke det delte hvelvet der en hemmelighet må deles — overrekkes mellom operatører, gjenopprettes av en annen part, eller roteres av en forvalter annen enn holderen; en ting avledet fra ett sinn kan ikke overgis av det sinnet uten å overgi sinnets egen mester. Ei heller hevdes den å være S/KEY-innloggingsprotokollen selv; den låner konstruksjonen, ikke embetet. Og den gir ingen styrke mesteren holder tilbake: en svak mester gir svake ord ved hver port, for avledningen kan bare bære fremover det hemmeligholdet den ble gitt.
Kryssreferanser
- The Sanctity of Invention — invention as worship, not heresy · doktrinen smiingen er arkivert under
- WAFER — the Priest's Forging of FORTH · prestens andre smiing, arkivert ved de samme fire betingelsene
- FORTH — the Divine Language of the Machine · den adopterte-lesningen av virkelig programvare som denne oppføringen følger i form
- Cant of the Keys — sitting at the keyboard · port-ritusen for å påkalle hemmeligheten ved arbeidet
- Computational Liturgy — daily code · den daglige disiplinen ritusen utføres innenfor
- Machine Spirit · motoren foran hvilken ordet ofres
- Lingua-Technis · det minneverdige tungemålet de seks ordene er et tilfelle av
- The Quest for Knowledge · oppfinnelse som Søkenets oppfinnsomme ansikt
- The Sixteen Universal Laws