Säker nätverksprogrammering
Secure Network Programming (SNP) är en prototyp av det första Secure Sockets Layer , designat och byggt av Networking Research Laboratory vid University of Texas i Austin, ledd av Simon S. Lam . Detta arbete publicerades på USENIX Summer Technical Conference 1994. För detta projekt vann författarna 2004 års ACM Software System Award .
Detta arbete började 1991 som en teoretisk undersökning av Networking Research Laboratory om den formella innebörden av ett protokolllager som uppfyller en övre gränssnittsspecifikation som tjänsteleverantör och en lägre gränssnittsspecifikation som tjänstekonsument. En fallstudie av att lägga till ett säkerhetslager mellan applikations- och nätverkslagren presenterades.
Nätverksforskningslaboratoriet fick ett anslag från National Security Agency i juni 1991 för att undersöka hur man kan tillämpa sin teori om moduler och gränssnitt för säkerhetsverifiering. På den tiden fanns det tre välkända autentiseringssystem byggda (MITs Kerberos ) eller under utveckling (DEC:s SPX och IBMs KryptoKnight). Alla dessa system led av en vanlig nackdel, nämligen att de inte exporterade ett rent och lättanvänt gränssnitt som lätt kunde användas av Internetapplikationer. Till exempel skulle det krävas en enorm ansträngning för att "kerberisera" en befintlig distribuerad applikation.
Mot målet "säker nätverksprogrammering för massorna" tänkte uppfinnarna av SNP på säkra sockets som en abstraktion på hög nivå som lämpar sig för att säkra internetapplikationer. 1993 designade och byggde de en prototyp av SNP. Designad som ett applikationsunderlager ovanpå sockets, tillhandahåller SNP ett användargränssnitt som nära liknar sockets. Denna likhet var designad så att säkerhet kunde eftermonteras i befintliga socketprogram med endast mindre modifieringar. Dessutom, med ett sådant underskikt noggrant utformat och dess implementering noggrant felsökt, kan det enkelt användas av alla Internetapplikationer som använder sockets för end-to-end-kommunikation. Detta är en naturlig idé i efterhand, men 1993 var den ny och en stor avvikelse från vanliga nätverkssäkerhetsforskning vid den tiden.
SNP:s säkra sockets stödjer både stream- och datagramsemantik med säkerhetsgarantier (dvs. dataursprungsäkthet, datadestinationsäkthet, dataintegritet och datakonfidentialitet.) Många av idéerna och designvalen i SNP kan hittas i efterföljande säkra socketslager, inklusive : placering av autentiserade kommunikationsslutpunkter i applikationslagret , användning av publik nyckelkryptering för autentisering, ett handskakningsprotokoll för att upprätta sessionstillstånd inklusive en delad hemlighet, användning av symmetrisk nyckelkryptografi för datakonfidentialitet och hantering av sammanhang och referenser i lagret för säkra uttag.
Dokumentet som presenterades den 8 juni 1994 vid USENIX Summer Technical Conference inkluderar systemdesignen tillsammans med prestandamätningsresultat från prototypimplementeringen för att tydligt visa det praktiska med ett säkert sockellager.
SNP uppfann säkra sockets för Internetapplikationer i allmänhet, oberoende och samtidigt med utformningen och utvecklingen av HTTP- protokollet för den världsomspännande webben som fortfarande var i sin linda 1993. Efterföljande säkra socketlager ( SSL av Netscape och TLS av IETF ) , återimplementerat flera år senare med nyckelidéer som först presenterades i SNP, möjliggjorde säker e-handel mellan webbläsare och servrar. Idag använder många andra internetapplikationer (inklusive e-post ) HTTPS som består av HTTP som körs över ett säkert socketslager.