Рекомендации для разработки СКЗИ
Что если свести воедино все известные нам рекомендации для разработки криптографических программ? Например, начать можно с такого списка:
- Используйте хороший генератор случайных чисел, причём не только для целей, связанных непосредственно с выработкой ключей (в частности, для генерации ВИ, строк для протоколов "запрос-ответ" и пр.).
- Используйте стандартные алгоритмы в стандартных безопасных режимах (выбирайте подходящий режим шифрования, разумные длины ключей, безопасные ВИ: или случайные, или неповторящиеся, если применяете режимы счётчика).
- Используйте стандартные протоколы (не пытайтесь заново изобрести TLS).
- Вначале шифруйте, затем аутентифицируйте весь шифртекст, а также все открытые заголовки и хвосты сообщений.
- Для различных задач используйте отдельные ключи. Если нужно, вычисляйте эти ключи из единого секрета с помощью хорошей функции вычисления ключей.
- Ограничивайте время хранения и обработки секретов (стирайте их после использования).
- Не допускайте, чтобы вас использовали в качестве оракула: ограничивайте утечку информации в сообщениях об ошибках, избегайте временнЫх зависимостей и пр. (самая трудная задача).
комментариев: 11558 документов: 1036 редакций: 4118