Webkryptering API
Web Cryptography API är World Wide Web Consortiums (W3C) rekommendation för ett lågnivågränssnitt som skulle öka säkerheten för webbapplikationer genom att tillåta dem att utföra kryptografiska funktioner utan att behöva komma åt rånyckelmaterial. Detta agnostiska API skulle utföra grundläggande kryptografiska operationer, såsom hashing , signaturgenerering och verifiering och kryptering samt dekryptering från en webbapplikation.
Beskrivning
Den 26 januari 2017 släppte W3C sin rekommendation för ett webbkrypterings-API som kan utföra grundläggande kryptografiska operationer i webbapplikationer. Detta agnostiska API skulle använda JavaScript för att utföra operationer som skulle öka säkerheten för datautbyte inom webbapplikationer . API:et skulle tillhandahålla ett lågnivågränssnitt för att skapa och/eller hantera offentliga nycklar och privata nycklar för hashning , generering av digitala signaturer och verifiering samt kryptering och dekryptering för användning med webbapplikationer.
Webkrypterings-API:et kan användas för en mängd olika användningsområden, inklusive:
- Tillhandahålla autentisering för användare och tjänster
- Elektronisk signering av dokument eller kod
- Skydda integriteten och sekretessen för kommunikation och digitalt datautbyte
Eftersom webbkrypterings-API:n är agnostisk till sin natur kan den användas på vilken plattform som helst . Det skulle tillhandahålla en gemensam uppsättning gränssnitt som skulle tillåta webbapplikationer och progressiva webbapplikationer att utföra kryptografiska funktioner utan behov av tillgång till rånyckelmaterial. Detta skulle göras med hjälp av SubtleCrypto-gränssnittet, som definierar en grupp metoder för att utföra ovanstående kryptografiska operationer. Ytterligare gränssnitt inom Web Cryptography API skulle möjliggöra nyckelgenerering, nyckelhärledning och nyckelimport och -export.
Vision för att använda webbkrypterings-API
W3C:s specifikation för Web Cryptography API fokuserar på den gemensamma funktionalitet och funktioner som för närvarande finns mellan plattformsspecifika och standardiserade kryptografiska API:er kontra de som är kända för bara ett fåtal implementeringar. Gruppens rekommendation för användning av webbkrypterings-API:t kräver inte att en obligatorisk uppsättning algoritmer måste implementeras. Detta beror på medvetenheten om att kryptografiska implementeringar kommer att variera bland överensstämmande användaragenter på grund av myndighetsföreskrifter , lokala policyer , säkerhetspraxis och immateriella rättigheter .
Det finns många typer av befintliga webbapplikationer som Web Cryptography API skulle vara väl lämpade att använda med.
Multi-faktor autentisering
Idag anses multifaktorautentisering vara en av de mest tillförlitliga metoderna för att verifiera identiteten för en användare av en webbapplikation, såsom internetbank. Många webbapplikationer är för närvarande beroende av denna autentiseringsmetod för att skydda både användaren och användaragenten. Med Web Cryptography API skulle en webbapplikation ha förmågan att tillhandahålla autentisering inifrån sig själv istället för att behöva förlita sig på transportlagerautentisering till hemligt nyckelmaterial för att autentisera användaråtkomst. Denna process skulle ge en rikare upplevelse för användaren.
Webkrypterings-API:et skulle tillåta applikationen att lokalisera lämpliga klientnycklar som tidigare skapats av användaragenten eller som hade förhandstillverkats av webbapplikationen. Applikationen skulle kunna ge användaragenten möjligheten att antingen generera en ny nyckel eller återanvända en befintlig nyckel i händelse av att användaren inte redan har en nyckel kopplad till sitt konto. Genom att binda denna process till Transport Layer Security som användaren autentiserar genom, kan multifaktorautentiseringsprocessen ytterligare förstärkas genom härledning av en nyckel som är baserad på den underliggande transporten.
Skyddat dokumentutbyte
API:t kan användas för att skydda känsliga eller konfidentiella dokument från obehörig visning från en webbapplikation, även om de tidigare har tagits emot säkert. Webbapplikationen skulle använda webbkrypterings-API:et för att kryptera dokumentet med en hemlig nyckel och sedan slå in det med offentliga nycklar som har associerats med användare som är behöriga att se dokumentet. Efter att ha navigerat till webbapplikationen skulle den auktoriserade användaren få dokumentet som hade krypterats och skulle bli instruerat att använda sin privata nyckel för att påbörja uppackningsprocessen som skulle tillåta dem att dekryptera och visa dokumentet.
Molnlagring
Många företag och privatpersoner är beroende av molnlagring . För att skydda sig kanske fjärrtjänstleverantören vill att deras webbapplikation ger användarna möjlighet att skydda sina konfidentiella dokument innan de laddar upp sina dokument eller annan data. Web Cryptography API skulle tillåta användare att:
- Välj att välja en privat eller hemlig nyckel
- Få en krypteringsnyckel från deras nyckel om de vill
- Kryptera deras dokument/data
- Ladda upp deras krypterade dokument/data med hjälp av tjänsteleverantörens befintliga API:er
Elektronisk dokumentsignering
Möjligheten att elektroniskt signera dokument sparar tid, ökar säkerheten för viktiga dokument och kan fungera som juridiskt bevis på att en användare accepterar ett dokument. Många webbapplikationer väljer att acceptera elektroniska signaturer istället för att kräva skriftliga signaturer. Med webbkrypterings-API:et skulle en användare uppmanas att välja en nyckel som skulle kunna genereras eller förhandstillverkas specifikt för webbapplikationen. Nyckeln kan sedan användas under signeringsoperationen.
Skydda dataintegritet
Webbapplikationer cachelagrar ofta data lokalt, vilket gör att data riskerar att äventyras om en offlineattack skulle inträffa. Web Cryptography API tillåter webbapplikationen att använda en publik nyckel som distribueras inifrån sig själv för att verifiera datacachens integritet .
Säkra meddelanden
Web Cryptography API kan förbättra säkerheten för meddelandehantering för användning i off-the-record (OTR) och andra typer av meddelandesigneringsscheman genom användning av nyckelavtal. Meddelandets avsändare och den avsedda mottagaren skulle förhandla fram delad kryptering och MAC-nycklar (message authentication code) för att kryptera och dekryptera meddelanden för att förhindra obehörig åtkomst.
JSON Object Signing and Encryption (JOSE)
Webcryptography API kan användas av webbapplikationer för att interagera med meddelandeformat och strukturer som definieras under JOSE Working Group. Applikationen kan läsa och importera JSON Web Signature (JWK)-nycklar, validera meddelanden som har skyddats genom elektronisk signering eller MAC -nycklar och dekryptera JWE-meddelanden.
Överensstämmelse med Web Cryptography API
W3C rekommenderar att leverantörer undviker att använda leverantörsspecifika proprietära tillägg med specifikationer för Web Cryptography API. Detta beror på att det skulle kunna minska interoperabiliteten för API:t och bryta upp användarbasen eftersom inte alla användare skulle kunna komma åt det specifika innehållet. Det rekommenderas att när en leverantörsspecifik tillägg inte kan undvikas, bör leverantören prefixa den med leverantörsspecifika strängar för att förhindra kollision med framtida generationer av API:s specifikationer.