Безопасное сетевое программирование
Secure Network Programming (SNP) — это прототип первого уровня Secure Sockets Layer , разработанный и построенный в 1993 году Лабораторией сетевых исследований Техасского университета в Остине под руководством Саймона С. Лама . Эта работа была опубликована на Летней технической конференции USENIX 1994 года. [1] [2] За этот проект авторы получили в 2004 году премию ACM Software System Award .
Саймон С. Лам был занесен в Зал славы Интернета (2023 г.) за «изобретение безопасных сокетов в 1991 году и внедрение первого уровня безопасных сокетов, названного SNP, в 1993 году». [3] [4]
Эта работа началась в 1991 году как теоретическое исследование Лаборатории сетевых исследований формального значения уровня протокола, удовлетворяющего спецификации верхнего интерфейса в качестве поставщика услуг и спецификации нижнего интерфейса в качестве потребителя услуг. [5] Был представлен практический пример добавления уровня безопасности между уровнями приложения и сети . [6]
В июне 1991 года Лаборатория сетевых исследований получила грант от Агентства национальной безопасности на исследование того, как применить свою теорию модулей и интерфейсов для проверки безопасности. [7] В то время существовало три известные системы аутентификации ( Kerberos от MIT ) или разрабатываемые (SPX от DEC и KryptoKnight от IBM). Все эти системы имели один общий недостаток; а именно, они не экспортировали понятный и простой в использовании интерфейс, который можно было бы легко использовать интернет-приложениями. Например, потребуются огромные усилия, чтобы «керберизировать» существующее распределенное приложение.
Стремясь к «безопасному сетевому программированию для масс», изобретатели SNP задумали безопасные сокеты как абстракцию высокого уровня, подходящую для защиты интернет-приложений. В 1993 году спроектировали и построили прототип СНП. Разработанный как подуровень приложения поверх сокетов, SNP предоставляет пользовательский интерфейс, очень похожий на сокеты. Это сходство было задумано так, чтобы безопасность можно было внедрить в существующие программы сокетов лишь с небольшими изменениями. Кроме того, поскольку такой подуровень тщательно спроектирован и его реализация тщательно отлажена, его может легко использовать любое интернет-приложение, использующее сокеты для сквозной связи. Оглядываясь назад, это естественная идея, но в 1993 году она была новаторской и серьезно отклонялась от основных исследований сетевой безопасности того времени.
Безопасные сокеты SNP поддерживают как потоковую, так и дейтаграммную семантику с гарантиями безопасности (т. е. подлинность источника данных , подлинность места назначения данных, целостность данных и конфиденциальность данных). Многие идеи и варианты дизайна в SNP можно найти на последующих уровнях защищенных сокетов, в том числе: размещение аутентифицированных конечных точек связи на уровне приложения , использование криптографии с открытым ключом для аутентификации, протокол установления связи для установления состояния сеанса, включая общий секретный ключ , использование криптографии с симметричным ключом для обеспечения конфиденциальности данных и управления контекстами и учетными данными на уровне защищенных сокетов.
Доклад, представленный 8 июня 1994 г. на Летней технической конференции USENIX. [1] включает проект системы вместе с результатами измерения производительности реализации прототипа, чтобы наглядно продемонстрировать практичность уровня защищенных сокетов.
SNP впервые разработал безопасные сокеты для интернет-приложений в целом, независимо и одновременно с проектированием и разработкой протокола HTTP для всемирной паутины , который в 1993 году все еще находился в зачаточном состоянии. Последующие уровни безопасных сокетов (SSL от Netscape и TLS от IETF ). , реализованный несколько лет спустя с использованием архитектуры и ключевых идей, впервые представленных в SNP, позволил обеспечить безопасную электронную торговлю между браузерами и серверами. Сегодня многие другие интернет-приложения (включая электронную почту ) используют HTTPS , который состоит из HTTP, работающего через уровень защищенных сокетов.

Ссылки
[ редактировать ]По состоянию на 10 мая 2023 г. эта статья полностью или частично взята из Лаборатории сетевых исследований . Владелец авторских прав лицензировал контент таким образом, чтобы его можно было повторно использовать в соответствии с CC BY-SA 3.0 и GFDL . Все соответствующие условия должны быть соблюдены. Исходный текст находился в разделе «Краткая история первого уровня защищенных сокетов».
- ^ Jump up to: а б Ух, Томас; Биндигнавле, Рагурам; Су, Шаовэн; Лам, Саймон (июнь 1994 г.). «SNP: интерфейс для безопасного сетевого программирования» (PDF) . Материалы летней технической конференции USENIX . Проверено 21 июля 2019 г.
- ^ «Программа летней технической конференции USENIX 1994 г., Бостон, 6–10 июня 1994 г.» .
- ^ «Саймон С. Лам, почетный председатель Риджентс в области компьютерных наук, введен в Зал славы Интернета» .
- ^ «Саймон С. Лам, член Зала интернет-славы 2023 года» .
- ^ Лам, Саймон; Шанкар, Удая (январь 1994 г.). «Теория интерфейсов и модулей I — теорема о композиции» . Транзакции IEEE по разработке программного обеспечения . 20 : 55–71. дои : 10.1109/32.263755 . Проверено 21 июля 2019 г.
- ^ Лам, Саймон; Шанкар, Удая; Ву, Томас (май 1991 г.). «Применение теории модулей и интерфейсов для проверки безопасности» (PDF) . Слушания. 1991 Симпозиум компьютерного общества IEEE по исследованиям в области безопасности и конфиденциальности . стр. 136–154. дои : 10.1109/RISP.1991.130782 . ISBN 0-8186-2168-0 . S2CID 18581606 . Проверено 5 января 2021 г.
- ^ Саймон С. Лам (PI/PD), «Применение теории модулей и интерфейсов для проверки безопасности», грант исследовательской программы Университета АНБ INFOSEC №. MDA 904-91-C-7046, с 28.06.91 по 27.06.93.