Разработка безопасного программного обеспечения является одной из самых сложных задач в программной инженерии и становится все более важной. Новые технологии, такие как облачные вычисления и "Интернет вещей", приводят к тому, что высокораспределенные взаимосвязанные системы взаимодействуют через Интернет, что добавляет дополнительные проблемы к так называемой тройственности проблем: соединенности, сложности и расширяемости.
Безопасность по замыслу - это новая парадигма разработки защищенного программного обеспечения. Это безопасный путь разработки программного обеспечения, включающий в себя вопросы сохранности на всех этапах процесса разработки.
Защита данных по умолчанию является еще одной смежной концепцией, которая должна быть реализована на практике. В очень неформальной форме можно сказать, что защита данных по замыслу охватывает безопасность персональных данных. Очевидно, что многие концепции безопасного проектирования приложений - например, в отношении конфиденциальности данных или укрепления систем информационных и коммуникационных технологий - могут применяться в системах, обеспечивающих конфиденциальность. Другие криптографические технологии, например, анонимная аутентификация или редактирование документов с цифровой подписью в целях минимизации объема данных, могут применяться в рамках, аналогичных тем, которые не выполняют функции защиты персональных данных в первую очередь.
Однако и безопасность, и конфиденциальность с самого начала должны быть интегрированы в ход создания программного обеспечения. Многие проблемы, часто возникающие на этапе разработки, можно смягчить на архитектурном уровне, если аспекты безопасности уже учтены на этапе проектирования. Это особенно верно, когда используется криптография.
Криптография может помочь на многих уровнях обеспечить эффективную и действенную защиту данных и информационных систем. Это превентивная технология, которая должна быть тщательно продумана с нуля, чтобы полностью раскрыть свой потенциал. При неправильном применении криптографии она может не только утратить свои защитные свойства, но и внести новые уязвимости.
СТРУКТУРА
Основной целью структуры CryptSDLC является поддержка процесса разработки криптографических приложений. Это концептуальный подход к построению и оптимизации типовых задач, определенных в криптографической инженерии. Модель помогает справиться со сложностью и междисциплинарным характером проектирования криптографических приложений. Он основан на опыте исследовательского проекта ЕС с участием специалистов из самых разных дисциплин, все они нацелены на достижение одной цели: развитие облачных услуг, которые являются безопасными с точки зрения дизайна и использования возможностей криптографии.
Развитие структуры было обусловлено двумя факторами:
- с одной стороны, нужен был инструмент для улучшения коммуникации между специалистами различных дисциплин, задействованных в проектах.
- с другой стороны, это послужило основой для разработки сопутствующей методологии, которая опирается на коммуникационную структуру, определенную в архитектуре с ее уровнями и интерфейсами.
Особенно интерфейс между криптографическими исследователями и программными архитекторами оказался важным для обеспечения того, чтобы свойства безопасности, разработанные на криптографическом уровне, можно было передавать в облачные приложения.
В частности, целями структуры являются:
- внедрение криптографически обоснованных методологий проектирования;
- поддержка внедрения эффективных и безопасных стандартных строительных блоков;
- предоставление рекомендаций по использованию криптографии в удобной для разработчиков форме;
- максимально возможное сокращение ошибок конфигурации и интеграции без ограничения гибкости;
- содействие использованию результатов для всех областей применения (горизонтальные технологии);
- обеспечение быстрого внедрения для большой базы разработчиков.
CRYPTSDLC: НОВАЯ МЕТОДОЛОГИЯ РАЗРАБОТКИ
Основными этапами являются Погружение, Перевод и Карта сверху вниз и Доказательство, Развертывание и Извлечение снизу вверх. CryptSDLC может быть использован для продления жизненного цикла обычного программного обеспечения. По сути, он вводит дополнительное измерение, позволяющее справляться с криптографической инженерией, и имеет сильный фокус на требования и фазу проектирования.
Заключение
В данной публикации были резюмированы проблемы, возникающие в криптографической инженерии, и предложено первое решение для систематической интеграции в защищенный SDLC. Предлагаемая методология CryptSDLC решает вопросы коммуникации между различными заинтересованными сторонами, необходимые для переплетения развития криптографических решений в качестве основы для безопасных приложений, предлагая защиту данных по умолчанию и по проекту. Целью текущей работы является предоставление разработчикам программного обеспечения доступа к передовым криптографическим решениям и сокращение потенциальных источников ошибок для разработчиков программного обеспечения, интегрирующих криптографические функции в их дизайн.
Представленный подход был разработан и успешно апробирован в рамках крупного исследовательского проекта ЕС, в котором приняли участие все заинтересованные стороны. Хотя осуществимость данного подхода была продемонстрирована в области облачных вычислений, его можно считать достаточно общим, чтобы он стал пригодным для современного проектирования приложений и в других парадигмах.
Это первый шаг на пути к полной интеграции криптографической инженерии в безопасный жизненный процесс программного обеспечения. В текущей версии CryptSDLC документация и программные артефакты в основном определяются требованиями и фазами разработки. Первый шаг был сделан также для того, чтобы справиться с этапом развертывания, однако в этом течении важно проделать дополнительную работу, а также для более тесной автоматизированной интеграции инструментария.
Необходима дополнительная работа для дальнейшего улучшения работы с криптографическими темами. Необходимо продвигать стандартизацию криптографических примитивов и их свойств (чтобы иметь точный язык в качестве общего знаменателя). Одна из конкретных проблем заключается в том, что доступ к криптографической экспертизе возможен только в крупных компаниях или специализированных факультетах университетов. Обычно разработчики программного обеспечения имеют ограниченный доступ только к этому криптографическому ноу-хау в своей среде. Однако, если потребуется модификация уровня инструментария, неизбежно потребуется привлечение таких специалистов, и если их нет в наличии внутри организации, то следует заключить контракт на ограниченный период времени.
Чтобы избежать некоторых из этих проблем, планируют использовать общественный подход, основанный на открытых технологиях и обмене информацией. В идеале, соответствующая информация об инструментах и услугах собирается в публичном хранилище, обеспечивающем разработчикам программного обеспечения легкий путь к нынешним инструментам и сервисам, а также к академическим знаниям. Это может быть контактным пунктом, где криптографическое сообщество и эксперты по безопасности и разработке программного обеспечения могут обмениваться своими знаниями.