Протоколы, шифры и игры в несовместимость

Протоколы, шифры и игры в несовместимость
Надеюсь, все согласятся, что протоколы - это хорошо. Допустим, две группы разработчиков независимо друг от друга приступают к созданию клиента и сервера. Их шансы написать что-то путное резко возрастают, если они заблаговременно оговорят протокол взаимодействия между их "подопечными".


Протоколы преимущественно делятся на открытые и закрытые. Закрытые протоколы создаются вендорами для использования в своих продуктах: ПО и оборудовании. Они зачастую защищены патентами, являются т.н. коммерческой тайной и называются проприетарными. Желающие ими воспользоваться могут сделать это при помощи предоставляемых вендором интерфейсов и разделяемых библиотек и должны за это заплатить. Обычно это длится не долго, большинство закрытых протоколов оканчивают свою жизнь всем известными и никому ненужными. Рано или поздно, они "утекают" в Интернет, а так как для их разработки и поддержки доступны ограниченные ресурсы одного-двух вендоров, они очень быстро морально устаревают. Пример такого закрытого протокола: VPN-протокол Microsoft PPTP (Point-to-point tunnelling protocol AKA Point-to-point toilet paper). Впрочем, существует немало успешных закрытых протоколов, например Skype.


Открытые протоколы, напротив, разрабатываются сообществами вендоров, авторитетными институтами стандартизации или вообще возникают стихийно. Последнее случается, когда в ответ на потребности рынка рождается коллективно разработанный протокол, который становится стандартом де факто. Примеры открытых протоколов: IPSec, SMTP, HTTP, H323.


Авторитетные международные институты и отдельные государства стандартизируют протоколы с целью нормализации взаимодействия производителей в различных отраслях. Цели у стандартов разные и зависят от того, кто эти стандарты создает и в каких сферах они применяются. В криптографии, например, стандарты устанавливают государства. Выглядит это как указание шифровать данные определенного уровня секретности при помощи алгоритмов шифрования определенного (якобы соответствующего) уровня стойкости. Цели таких рекомендаций не прозрачны. С одной стороны, следуя стандарту, бизнес и граждане надеются получить от государства гарантию защищенности шифруемых данных. С другой стороны, протоколы рекомендуемые для шифрования коммерческих секретов зачастую значительно слабее протоколов используемых для шифрования государственной тайны. Лично меня это наталкивает на неприятные мысли: не хочет ли государство таким образом запретить использовать такие шифры, на взлом которых у него не хватает средств?


Отличным примером служит история возникновения протокола DES . Первоначальная предложенная длина ключа шифра Lucifer составляла 128 бит, но в стандарт вошел его вариант с 64-битным ключом, причем только 56 бит использовались собственно для шифрования, а остальные 8 - для служебных целей протокола. В результате DES очень быстро устарел и был на скорую руку заменен на 3DES (тройной DES), а US Deparment of Defence срочно объявил конкурс на лучшую долговременную замену. В результате конкурса был выбран шифр Rijndael, а стандарт получил название AES  (Advanced Encrytion Standard) и успешно используется по сей день.


Существуют страны, запрещающие использовать сильную (а иногда и любую) криптографию в частных целях. Зачастую это объясняется их нежеланием допустить использование шифрования в незаконных целях. Такое объяснение нелепо, так как сфера легального применения криптографии значительно шире криминальных интересов. Аналогично можно запретить автотранспорт из-за того, что грабители банков нередко покидают место преступления на машине.


Вернемся к протоколам. Казалось бы, открытые протоколы явно выигрывают перед закрытыми. Зачастую так оно и есть, но к сожалению есть одно "но". Основным недостатком открытого протокола является возможность его изменения вендором для собственных нужд. Так было с Kerberos и LDAP, адаптированных Майкрософт для "более эффективной" реализации Active Directory. С уверенностью можно утверждать одно: всегда в явном проигрыше закрытые проприетарные протоколы. Недобросовестные вендоры нередко скрывают детали реализации своих протоколов и используют их т.н. незадокументированные возможностив собственных решениях, тем временем скрывая эти возможности от посторонних. В результате о конкурентной среде и речи быть не может. За примером далеко ходить не нужно: вспомните старую хохму о том, что Samba  никогда не будет нормально работать с Windows, потому что программисты Samba искренне верят в то, что программисты Майкрософт пишут в документации.


Подобные интриги я обобщенно называю играми в несовместимость. Эта тактика позволяет софтверным гигантам сдерживать конкурентов и не допускать экспансии открытого ПО в сферу их интересов. Например, именно игры в несовместимость все еще удерживают Outlook на пьедестале лучшего клиентского ПО для  MS Exchange: протокол MAPI , позволяющий раскрыть весь спектр функций Exchange, является закрытым и проприетарным.
Alt text

Устали от того, что Интернет знает о вас все?

Присоединяйтесь к нам и станьте невидимыми!

Vlad Styran

информационно. безопасно.*