Безопасное сетевое программирование - Secure Network Programming

Безопасное сетевое программирование (SNP) - прототип первого Уровень защищенных гнезд, спроектирован и построен Лабораторией сетевых исследований в Техасский университет в Остине во главе с Саймон С. Лам. Эта работа была опубликована на Летней технической конференции USENIX 1994 г. [1]. За этот проект авторы выиграли премию 2004 г. Награда ACM Software System.

Эта работа началась в 1991 году как теоретическое исследование, проведенное Сетевой исследовательской лабораторией по формальному значению уровня протокола, удовлетворяющего спецификации верхнего интерфейса в качестве поставщика услуг и спецификации нижнего интерфейса в качестве потребителя услуг. [2]. Лаборатория сетевых исследований получила грант от Агентства национальной безопасности в июне 1991 года на исследование того, как применить их теорию модулей и интерфейсов для проверки безопасности. В то время было построено три хорошо известных системы аутентификации (MIT Kerberos ) или разрабатываются (SPX от DEC и KryptoKnight от IBM). Все эти системы страдали общим недостатком, а именно, они не экспортируют чистый и простой в использовании интерфейс, который можно было бы легко использовать в Интернет-приложениях. Например, для «керберизации» существующего распределенного приложения потребуются колоссальные усилия.

С целью «безопасного сетевого программирования для широких масс» изобретатели SNP задумали безопасные сокеты как высокоуровневую абстракцию, подходящую для защиты Интернет-приложений. В 1993 году они разработали и построили прототип СНП. SNP, разработанный как подуровень приложения поверх сокетов, предоставляет пользовательский интерфейс, очень похожий на сокеты. Это сходство было задумано так, чтобы безопасность могла быть модифицирована в существующие программы сокетов с незначительными изменениями. Кроме того, при тщательном проектировании такого подуровня и тщательной отладке его реализации его можно легко использовать в любом Интернет-приложении, которое использует сокеты для сквозной связи. В ретроспективе это естественная идея, но в 1993 году она была новинкой и сильно отличалась от основных исследований сетевой безопасности того времени.

Защищенные сокеты SNP поддерживают семантику потоков и дейтаграмм с гарантиями безопасности (т. Е. Подлинность источника данных, подлинность получателя данных, целостность данных и конфиденциальность данных). Многие идеи и варианты дизайна в SNP можно найти на последующих уровнях защищенных сокетов, включая : размещение аутентифицированных конечных точек связи в прикладной уровень, использование криптография с открытым ключом для аутентификации, протокол рукопожатия для установления состояния сеанса, включая общий секрет, использование криптография с симметричным ключом для конфиденциальности данных и управления контекстами и учетными данными на уровне защищенных сокетов.

Документ, представленный 8 июня 1994 г. на Летней технической конференции USENIX. [1] включает проект системы вместе с результатами измерения производительности из реализации прототипа, чтобы наглядно продемонстрировать практичность уровня защищенных сокетов.

SNP изобрела безопасные сокеты для Интернет-приложений в целом, независимо и одновременно с проектированием и разработкой HTTP протокол для Всемирная паутина который в 1993 году все еще находился в зачаточном состоянии. Последующие уровни защищенных сокетов (SSL к Netscape и TLS к IETF ), повторно реализованный несколько лет спустя с использованием ключевых идей, впервые представленных в SNP, обеспечил безопасную электронную торговлю между браузерами и серверами. Сегодня многие интернет-приложения (в том числе электронное письмо ) использовать HTTPS который состоит из HTTP, работающего на уровне защищенных сокетов.

Рекомендации

  1. ^ а б Ву, Томас; Биндинявле, Рагурам; Су, Шауэн; Лам, Саймон (июнь 1994). «SNP: интерфейс для безопасного сетевого программирования» (PDF). Труды Летней технической конференции USENIX. Получено 21 июля 2019.
  2. ^ Лам, Саймон; Шанкар, Удая (январь 1994 г.). "Теория интерфейсов и модулей I - Теорема композиции". IEEE Transactions по разработке программного обеспечения. 20. Получено 21 июля 2019.