Secure Network Programming: Difference between revisions

Content deleted Content added
Citation bot (talk | contribs)
Add: s2cid, isbn. | Use this bot. Report bugs. | Suggested by Corvus florensis | #UCB_webform 83/3499
Fixed typos/grammar/capitalization/spacing/formatting/wikilinks, added wikilinks, merged duplicate citations, and added an attribution template (see the talk page)
Line 1:
<!-- This page uses text copied from http://www.cs.utexas.edu/users/lam/NRL/SSL.html but that page now carries CC and GNU licences compatible with Wikipedia -->
'''Secure Network Programming''' (SNP) is a prototype of the first [[Secure Sockets Layer]], designed and built by the Networking Research Laboratory at [[the University of Texas at Austin]], led by [[Simon S. Lam]]. This work was published in the 1994 USENIX Summer Technical conferenceConference.<ref name="SNP-USENIX">{{cite journal |last1=Woo |first1=Thomas |last2=Bindignavle |first2=Raghuram |last3=Su |first3=Shaowen |last4=Lam |first4=Simon |title=SNP: An Interface for Secure Network Programming |journal=Proceedings USENIX Summer Technical Conference |date=June 1994 |url=http://www.cs.utexas.edu/users/lam/Vita/Cpapers/WBSL94.pdf |accessdate=21 July 2019}}</ref> For this project, the authors won the 2004 [[ACM Software System Award]].
 
This work began in 1991 as a theoretical investigation by the Networking Research Laboratory on the formal meaning of a protocol layer satisfying an upper interface specification as a service provider and a lower interface specification as a service consumer.<ref>{{cite journal |last1=Lam |first1=Simon |last2=Shankar |first2=Udaya |title=A Theory of Interfaces and Modules I — Composition Theorem |journal=IEEE Transactions on Software Engineering |date=January 1994 |volume=20 |pages=55–71 |doi=10.1109/32.263755 |url=https://dl.acm.org/citation.cfm?id=631099 |accessdate=21 July 2019}}</ref> A case study of adding a security layer between the application and [[network layerslayer]]s was presented.<ref>{{cite journal |last1=Lam |first1=Simon |last2=Shankar |first2=Udaya|last3=Woo |first3=Thomas |title= Applying a Theory of Modules and Interfaces to Security Verification |journal= Proceedings IEEE Symposium on Research in Security and Privacy, Oakland |date=May 1991 |url=https://www.cs.utexas.edu/users/lam/Vita/IEEE/LSW91.pdf | pages=136–154|doi=10.1109/RISP.1991.130782 |isbn=0-8186-2168-0 |s2cid=18581606 | access-date=5 January 2021}}</ref>
 
The Networking Research Laboratory received a grant from the National Security Agency in June 1991 to investigate how to apply their theory of modules and interfaces to security verification.<ref>Simon S. Lam (PI/PD), "Applying a Theory of Modules and Interfaces to Security Verification,", NSA INFOSEC University Research Program grant no. MDA 904-91-C-7046, 6/28/91 to 6/27/93.</ref> At that time, there were three well-known authentication systems built (MIT's [[Kerberos (protocol)|Kerberos]]) or being developed (DEC's SPX and IBM's KryptoKnight). All of these systems suffered from a common drawback,; namely, they did not export a clean and easy-to-use interface that could be readily used by Internet applications. For example, it would take a tremendous amount of effort to “kerberize”"kerberize" an existing distributed application.
 
Toward the goal of "secure network programming for the masses"," the inventors of SNP conceived secure sockets as a high-level abstraction suitable for securing Internet applications. In 1993, they designed and built a prototype of SNP. Designed as an application sublayer on top of sockets, SNP provides a user interface closely resembling sockets. This resemblance was by design so that security could be retrofitted into existing socket programs with only minor modifications. Also, with such a sublayer carefully designed and its implementation thoroughly debugged, it can be easily used by any Internet application that uses sockets for end-to-end communications. This is a natural idea in hindsight but, in 1993, it was novel and a major departure from mainstream network security research at that time.
 
SNP's secure sockets support both stream and datagram semantics with security guarantees (i.e., [[data origin authenticity]], data destination authenticity, [[data integrity]], and data confidentiality).) Many of the ideas and design choices in SNP can be found in subsequent secure sockets layers, including: placing authenticated communication endpoints in the [[application layer]], use of [[public -key cryptography]] for authentication, a handshake protocol for establishing session state including a [[shared secret]], use of [[symmetric -key cryptography]] for data confidentiality, and managing contexts and credentials in the secure sockets layer.
 
The paper presented on June 8, 1994 at the USENIX Summer Technical Conference <ref name="SNP-USENIX">{{cite journal |last1=Woo |first1=Thomas |last2=Bindignavle |first2=Raghuram |last3=Su |first3=Shaowen |last4=Lam |first4=Simon |title=SNP: An Interface for Secure Network Programming |journal=Proceedings USENIX Summer Technical Conference |date=June 1994 |url=http://www.cs.utexas.edu/users/lam/Vita/Cpapers/WBSL94.pdf |accessdate=21 July 2019}}</ref> includes the system design together with performance measurement results from the prototype implementation to clearly demonstrate the practicality of a secure sockets layer.
 
SNP inventedpioneered secure sockets for Internet applications in general, independently and concurrently with the design and development of the [[HTTP]] protocol for the [[world-wide web]] which was still in its infancy in 1993. Subsequent secure socket layers ([[Transport Layer Security|SSL]] by [[Netscape]] and [[Transport Layer Security|TLS]] by [[IETF]]), re-implemented several years later using key ideas first presented in SNP, enabled secure e-commerce between browsers and servers. Today, many other Internet applications (including [[email]]) use [[HTTPS]], which consists of HTTP running over a secure sockets layer.
 
== References ==
{{Dual |source=Networking Research Laboratory |sourcepath=https://www.cs.utexas.edu/users/lam/NRL/SSL.html |sourcearticle=A brief history of the first secure sockets layer |date=2023-05-10}}
{{reflist}}