보안 네트워크 프로그래밍
Secure Network ProgrammingSNP(Secure Network Programming)는 사이먼 S. 램(Simon S. Lam)이 이끄는 텍사스 대학교의 네트워킹 연구소가 설계·구축한 최초의 Secure Sockets Layer의 원형이다.이 작품은 1994년 USENIX Summer Technical Conference에서 발표되었다.[1]이 프로젝트를 위해, 저자들은 2004년 ACM 소프트웨어 시스템 상을 받았다.
이 작업은 1991년 서비스 제공자로서 상위 인터페이스 규격과 서비스 소비자로서의 하위 인터페이스 규격을 만족하는 프로토콜 계층의 형식적 의미에 대한 네트워킹 연구소의 이론적 조사로 시작되었다.[2]애플리케이션과 네트워크 계층 사이에 보안 계층을 추가하는 사례 연구가 제시되었다.[3]
네트워킹 연구소는 1991년 6월 국가안전보위부로부터 그들의 모듈 및 인터페이스 이론을 보안 검증에 적용하는 방법을 조사하기 위한 보조금을 받았다.[4]당시에는 잘 알려진 인증시스템(MIT의 Kerberos)이 구축되거나 개발되고 있는 시스템(DEC의 SPX와 IBM의 KryptoKnight)이 3개 있었다.이러한 모든 시스템은 공통의 단점으로 인해 어려움을 겪었는데, 즉 인터넷 애플리케이션에서 쉽게 사용할 수 있는 깨끗하고 사용하기 쉬운 인터페이스를 수출하지 않았다는 것이다.예를 들어, 기존 분산 애플리케이션을 "커버라이징"하려면 엄청난 노력이 필요할 것이다.
"대중을 위한 보안 네트워크 프로그래밍"이라는 목표를 향해 SNP의 발명가들은 보안 소켓이 인터넷 애플리케이션 확보에 적합한 높은 수준의 추상화라고 생각했다.1993년, 그들은 SNP의 프로토타입을 설계하고 만들었다. 소켓 위에 응용 하위 계층으로 디자인된 SNP는 소켓과 유사한 사용자 인터페이스를 제공한다.이러한 유사성은 보안이 사소한 수정만으로 기존 소켓 프로그램에 재설계될 수 있도록 설계되었다.또한, 그러한 하위 계층을 신중하게 설계하고 그 구현을 철저히 디버깅하면, 그것은 엔드투엔드 통신에 소켓을 사용하는 어떤 인터넷 어플리케이션에서도 쉽게 사용할 수 있다.이것은 나중에 생각해 보면 당연한 생각이지만, 1993년에는 참신하고 당시 주류 네트워크 보안 연구로부터의 중대한 이탈이었다.
SNP의 보안 소켓은 스트림 및 데이터그램 의미론 모두를 보안 보증을 통해 지원한다(즉, 데이터 오리진 신뢰성, 데이터 목적지 신뢰성, 데이터 무결성 및 데이터 기밀성).SNP의 많은 아이디어와 설계 선택은 애플리케이션 계층에 인증된 통신 엔드포인트 배치, 인증을 위한 공개 키 암호화 사용, 공유 암호를 포함한 세션 상태 설정을 위한 핸드셰이크 프로토콜, dat에 대한 대칭 키 암호화 사용 등 후속 보안 소켓 계층에서 찾을 수 있다.기밀성, 보안 소켓 계층의 컨텍스트 및 자격 증명 관리
1994년 6월 8일 USENIX Summer Technical Conference에서 제시된 논문에는 시제품 구현의 성능 측정 결과와 함께 시스템 설계가 포함되어 있어 보안 소켓 레이어의 실용성을 명확하게 입증한다.
SNP는 1993년에 아직 초기 단계에 있었던 전 세계 웹을 위한 HTTP 프로토콜의 설계와 개발과 동시에, 일반적으로, 독립적으로, 그리고 동시에 인터넷 어플리케이션을 위한 보안 소켓을 발명했다.후속 보안 소켓 레이어(Netscape by Netscape, IETF by TLS by IETF)는 몇 년 후 SNP에서 처음 제시된 핵심 아이디어를 사용하여 재실행하여 브라우저와 서버 간의 보안 전자상거래를 가능하게 했다.오늘날 많은 인터넷 애플리케이션(이메일 포함)은 보안 소켓 계층에서 실행되는 HTTP로 구성된 HTTPS를 사용한다.
참조
- ^ a b Woo, Thomas; Bindignavle, Raghuram; Su, Shaowen; Lam, Simon (June 1994). "SNP: An Interface for Secure Network Programming" (PDF). Proceedings USENIX Summer Technical Conference. Retrieved 21 July 2019.
- ^ Lam, Simon; Shankar, Udaya (January 1994). "A Theory of Interfaces and Modules I — Composition Theorem". IEEE Transactions on Software Engineering. 20: 55–71. doi:10.1109/32.263755. Retrieved 21 July 2019.
- ^ Lam, Simon; Shankar, Udaya; Woo, Thomas (May 1991). "Applying a Theory of Modules and Interfaces to Security Verification" (PDF). Proceedings IEEE Symposium on Research in Security and Privacy, Oakland: 136–154. doi:10.1109/RISP.1991.130782. Retrieved 5 January 2021.
- ^ Simon S. Lam(PI/PD), "보안 검증에 모듈 및 인터페이스 이론 적용", NSA INFOESEC 대학 연구 프로그램 허가 no.MDA 904-91-C-7046, 1991-1994.