Fabric - новый язык программирования для безопасных распределенных вычислений

Исследователи из Корнеелльского университета представили первый выпуск проекта Fabric, в рамках которого создана платформа безопасного программирования, предназначенная для создания изначально безопасных систем для работы в среде распределенных вычислений. В качестве языка программирования используется язык программирования Fabric, базирующийся на языке Jif, расширяющем Java поддержкой контроля потоков информации и содержащим встроенные средства контроля доступа, работающие как на этапе компиляции, так и в процессе выполнения программы.

Программы на языке Fabric предназначены для работы в распределенной сети, состоящей из множества связанных между собой узлов, при этом в сети могут присутствовать неподконтрольные машины, не заслуживающие доверия. Цель Fabric - обеспечение безопасной и надежной обработки информации в изначально небезопасном окружении. Все наработки проекта распространяются в рамках лицензии GPLv2.

В представлении Fabric все является объектом, к которому привязан определенный набор политик, указывающих выполнение каких операций допустимо, кто и каким образом может получить доступ к данным, коду и ресурсам. Каждый блок кода программы также имеет привязанный набор правил, определяющих когда и где данный код может быть использован. Оперируя данными наборами правил, компилятор не позволяет разработчику создать код, осуществляющий некорректные и небезопасные действия. Целостность работы в распределенной сети достигается благодаря использованию специально созданного двухфазового иерархического протокола для управления политиками безопасности и системы P2P-репликации для обеспечения высокой доступности приложений.

В настоящий момент проект находится на стадии тестирования исследовательского прототипа. На продолжение развития проекта авторы разработки получили несколько грантов, общим размером более двух миллионов долларов. Деньги планируется потратить на расширение проекта для работы в огромных распределенных системах, на обеспечение более сложных ограничений безопасности и на реализацию идеи "мобильного кода", - программ, которые могут находиться на одном узле в сети, но выполняться на другом узле, с уверенностью, что они безопасны и делают только то, что изначально заложено алгоритмом (исключают возможность модификации злоумышленником). Кроме того, исследователи планируют подготовить строгую математическую концепцию и доказать, что разработанная техника действительно является безопасной.

©  OpenNet