Abstract-TLS är möjligen det mest använda protokollet för säker kommunikation, med en 18-årig historia av brister och korrigeringar, allt från dess protokolllogik till dess kryptografiska design, och från Internetstandarden till dess olika implementationer. Vi utvecklar en verifierad referensimplementering av TLS 1.2. Vår kod stöder fullt ut dess wire format, chiffer suites, sessioner och anslutningar, re-handshakes och återupptaganden, varningar och fel, och datafragmentering, som föreskrivs i RFCs; den samarbetar med vanliga webbläsare och servrar. Samtidigt är vår kod noggrant strukturerad för att möjliggöra dess modulära, automatiserade verifiering, från dess huvudsakliga API ner till beräkningsantaganden på dess kryptografiska algoritmer. Vårt genomförande är skrivet i F# och specificerat i F7. Vi presenterar säkerhetsspecifikationer för dess huvudkomponenter, såsom autentiserad strömkryptering för rekordskiktet och nyckeletablering för handskakningen. Vi beskriver deras verifiering med hjälp av F7-typkontrollen. I detta syfte utrustar vi varje kryptografisk primitiv och konstruktion av TLS med ett nytt typat gränssnitt som fångar dess säkerhetsegenskaper, och vi ersätter gradvis konkreta implementationer med idealiska funktioner. Vi skriver slutligen kontrollera protokollet tillstånd maskin, och få exakta säkerhet teorem för TLS, som det genomförs och utplaceras. Vi återkommer också till klassiska attacker och rapporterar några nya.
En annan klass av TLS-sårbarheter härrör från den felaktiga sammansättningen av TLS-underprotokoll för omförhandling, 2REF-varningar, REF och återupptagande.
Implementing TLS with Verified Cryptographic Security
{'venue': '2013 IEEE Symposium on Security and Privacy', 'journal': '2013 IEEE Symposium on Security and Privacy', 'mag_field_of_study': ['Computer Science']}