01.12.2021
Специальная публикация NIST (Национального института стандартов и технологий США) 800-12 «Введение в информационную безопасность» (часть 9)

9 Криптография

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

NIST сделал ряд специальных публикаций (SP) и федеральных стандартов обработки информации (FIPS), которые применимы к использованию криптографии в рамках федерального правительства.

Список таких SP и FIPS можно найти в Приложении A к NIST SP 800-175B, Руководство по использованию криптостандартов: криптографические механизмы. Публичные законы, президентские указы и директивы, а также другие указания организаций в Исполнительном аппарате президента определяют SP и FIPS, написанные NIST. Законодательные мандаты, политики и директивы, относящиеся к криптографии, представлены в NIST SP 800-175A, Руководство по использованию криптостандартов: директивы, мандаты и политики.

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

9.1 Использование криптографии

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

9.1.1 Шифрование данных

Один из лучших способов обеспечения рентабельной конфиденциальности данных - использование шифрования. Шифрование преобразует понятные данные, называемые открытым текстом, в неразборчивую форму, называемую зашифрованным текстом. Это происходит в обратном порядке в процессе дешифрования. Один из способов защиты электронных данных - использование передового стандарта шифрования (AES). Алгоритм AES - это криптографический алгоритм, который можно использовать для шифрования и дешифрования информации. После того, как данные зашифрованы, зашифрованный текст не нужно защищать от разглашения. Однако, если зашифрованный текст будет изменен, он не будет правильно расшифрован. Более полное объяснение AES можно найти в FIPS 197, Advanced Encryption Standard (AES).

Для шифрования данных можно использовать криптографию как с секретным, так и с открытым ключом, хотя не все алгоритмы с открытым ключом обеспечивают шифрование данных. Чтобы использовать алгоритм секретного ключа, данные шифруются с использованием определенного ключа. Этот же ключ необходимо использовать для расшифровки данных. Когда для шифрования используется криптография с открытым ключом, любая сторона может использовать открытый ключ любой другой стороны для шифрования сообщения. Однако только сторона с соответствующим закрытым ключом может расшифровать и, таким образом, прочитать сообщение. 

Есть несколько причин выбрать одну форму криптографии вместо другой. Например, организация может решить использовать криптографию с открытым ключом, потому что она более безопасна и удобна в использовании, поскольку закрытые ключи не нужно никому передавать. Чтобы криптография с секретным ключом работала, секретные ключи должны быть переданы из-за того, что один и тот же ключ используется для шифрования и дешифрования этих конкретных данных. Более подробное руководство по инфраструктуре открытых ключей (PKI) доступно в NIST SP 800-32, Introduction to Public Key Technology and the Federal PKI Infrastructure, NIST SP 800-57 Часть 3, Рекомендации по управлению ключами: Часть 3 - Управление ключами для конкретных приложений Руководство и NIST SP 800-152, Профиль для Федеральной системы управления криптографическими ключами США (CKMS).

9.1.2 Целостность

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

Например, «делать» можно заменить на «не делать» или 1000 долларов можно заменить на 10 000 долларов. Поэтому желательно иметь автоматизированные средства обнаружения как преднамеренных, так и непреднамеренных модификаций данных.

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

9.1.3 Электронные подписи

Современные системы хранят и обрабатывают документы в электронном виде. Наличие документов в электронной форме позволяет быстро обрабатывать и передавать и повышает общую эффективность. Утверждение бумажного документа традиционно подтверждается письменной подписью. Следовательно, необходим электронный эквивалент письменной подписи, которая может быть признана имеющей такой же правовой статус, что и письменная подпись. 

В дополнение к защите целостности, описанной выше, криптография может предоставить средства связывания документа с конкретным лицом, как это делается с помощью письменной подписи. Электронные подписи могут использовать криптографию с секретным или открытым ключом. Однако методы с открытым ключом, как правило, проще в использовании.

Простое цифровое изображение письменной подписи не обеспечивает должной безопасности. Такую оцифрованную письменную подпись можно легко скопировать из одного электронного документа в другой без возможности определить, является ли он законным. С другой стороны, электронные подписи могут быть проверены однозначно для одного сообщения и только для этого сообщения. Например, криптографическая хэш-функция10, такая как SHA-3, может использоваться для повышения безопасности и эффективности цифровой подписи, обеспечивая уверенность в том, что исходное сообщение не могло быть изменено на другое сообщение с тем же значением хеш-функции, и, следовательно, та же подпись. Чтобы узнать больше о криптографических хэш-функциях, в частности SHA-3, см. FIPS 202, Стандарт SHA-3: хеширование на основе перестановок и функции расширяемого вывода.

9.1.3.1 Электронные подписи с секретным ключом

Электронная подпись может быть реализована с использованием кодов аутентификации сообщения с секретным ключом или MAC. Например, если две стороны совместно используют секретный ключ, и одна сторона получает данные с MAC, который правильно проверен с использованием общего ключа, эта сторона может предположить, что другая сторона подписала данные. Это также предполагает, что две стороны доверяют друг другу. Благодаря использованию MAC обеспечивается целостность данных и форма электронной подписи.

Используя дополнительные элементы управления, такие как нотариальное заверение ключей и ключевые атрибуты, можно предоставить электронную подпись, даже если две стороны не доверяют друг другу.

9.1.3.2 Электронные подписи с открытым ключом

Другой тип электронной подписи называется цифровой подписью и реализуется с использованием криптографии с открытым ключом. Данные подписываются в электронной форме путем применения к данным закрытого ключа отправителя. (Точный математический процесс для этого не важен для данного обсуждения.) 

Чтобы увеличить скорость процесса, закрытый ключ применяется к более короткой форме данных, называемой «хешем» или «дайджестом сообщения», а не ко всему набору данных. Полученная цифровая подпись может быть сохранена или передана вместе с данными. Подпись может быть проверена любой стороной с использованием открытого ключа подписывающей стороны. Эта функция очень полезна, например, при распространении подписанных копий программного обеспечения, свободного от вирусов. Любой получатель может убедиться, что программа не содержит вирусов. Если подпись проверяется правильно, то проверяющий уверен, что данные не были изменены после подписания и что владельцем открытого ключа была подписывающая сторона.

NIST опубликовал стандарты цифровой подписи и безопасного хэша для использования федеральным правительством в FIPS 186-4, стандарте цифровой подписи и FIPS 180-4, стандарте безопасного хеширования.

9.1.4 Аутентификация пользователя

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

9.2 Проблемы реализации

В этом разделе исследуется несколько важных вопросов, которые следует учитывать при использовании (например, проектирования, реализации, интеграции) криптографии в системе. NIST разработал несколько FIPS и SP, которые применяются к реализации криптографии в федеральных информационных и федеральных системах. Список этих FIPS и SP находится в Приложении A NIST SP 800-175B.

9.2.1 Выбор стандартов проектирования и реализации

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

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

9.2.2 Выбор между реализацией программного, аппаратного или микропрограммного обеспечения

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

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

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

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

Один из способов защитить вашу систему - это приобрести оборудование со встроенной защитой, предотвращающей злонамеренное изменение прошивки. Для получения дополнительной информации об усилении микропрограмм см. NIST SP 800-147, Рекомендации по защите BIOS и NIST SP 800-155 (DRAFT), Рекомендации по измерению целостности BIOS.

9.2.3 Управление ключами

Безопасность информации, защищенной криптографией, напрямую зависит от защиты ключей. Все ключи должны быть защищены от модификации, а секретные и закрытые ключи требуют защиты от несанкционированного раскрытия. Управление ключами включает в себя процедуры и протоколы, как ручные, так и автоматизированные, используемые на протяжении всего жизненного цикла ключей. Это включает создание, распространение, хранение, ввод, использование, уничтожение и архивирование криптографических ключей.

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

Пользователи также нуждаются в возможности вступать в сообщество держателей ключей, генерировать ключи (или создавать их от их имени), распространять открытые ключи, отзывать ключи (например, в случае компрометации закрытого ключа) и изменять ключи. Кроме того, может потребоваться добавить отметку времени / даты и заархивировать ключи для проверки старых подписей.

Для получения дополнительной информации об управлении ключами см. NIST SP 800-57, часть 1, Рекомендации по управлению ключами, часть 1: Общие, NIST SP 800-57, часть 2, Рекомендации по управлению ключами, часть 2: Лучшие практики для организации управления ключами, и NIST SP 800-57 Часть 3.

9.2.4 Безопасность криптографических модулей

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

Соответствие стандартам может быть важным по многим причинам, включая функциональную совместимость или уровень безопасности. NIST учредил Программу проверки криптографических модулей (CMVP), которая проверяет криптографические модули на соответствие FIPS 140-2, Требования безопасности для криптографических модулей. Целью CMVP является продвижение использования проверенных криптографических модулей и предоставление федеральным агентствам показателей безопасности для использования при закупке оборудования, содержащего проверенные криптографические модули. Список модулей, утвержденных NIST, доступен на веб-сайте Центра ресурсов компьютерной безопасности (CSRC).

FIPS 140-2 определяет требования безопасности, которым будет удовлетворять криптографический модуль, используемый в системе безопасности, защищающей конфиденциальную, но несекретную информацию. Стандарт определяет четыре уровня безопасности для криптографических модулей, каждый из которых обеспечивает значительное повышение безопасности по сравнению с предыдущим уровнем. Четыре уровня позволяют создавать экономичные решения, подходящие для разной степени конфиденциальности данных и различных прикладных сред. Пользователь может выбрать лучший модуль для любого конкретного приложения или системы, избегая затрат на ненужные функции безопасности.

9.2.5 Применение криптографии в сетях

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

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

Важно, чтобы криптография удовлетворяла требованиям, предъявляемым к коммуникационному оборудованию, и не мешала правильной и эффективной работе сети.

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

Некоторые примеры современного использования сквозного шифрования включают Pretty Good Privacy (PGP) и Secure/Multipurpose Internet Mail Extensions (S/MIME) для электронной почты. Возможно сочетание обоих типов шифрования.

9.2.6 Соблюдение правил экспорта

Правительство США контролирует экспорт криптографических реализаций. Правила, регулирующие экспорт, могут быть довольно сложными, поскольку они учитывают множество факторов. Кроме того, криптография - это быстро развивающаяся область, и правила могут время от времени меняться. По вопросам, связанным с экспортом криптографических реализаций, обращайтесь к соответствующему юрисконсульту.

9.3 Взаимозависимости

В этой публикации выделено множество взаимозависимостей между криптографией и другими мерами безопасности. Криптография как зависит от других мер безопасности, так и помогает в их обеспечении. Например:

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

В других средах (например, закрытые средства связи, терминалы выдачи наличных в стальном корпусе) криптографический модуль может безопасно использоваться в защищенном объекте.

• Аутентификация пользователя. Криптография может использоваться как для защиты паролей, хранящихся в системах, так и для защиты паролей, передаваемых между системами.

Кроме того, методы аутентификации на основе криптографии могут использоваться вместе с методами на основе паролей или вместо них для обеспечения более строгой аутентификации пользователей.

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

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

• Гарантия. Гарантия того, что криптографический модуль правильно и безопасно реализован, имеет важное значение для эффективного использования криптографии. NIST поддерживает программы проверки нескольких своих стандартов криптографии (см. Раздел 9.2.4). Поставщики могут проверить свою продукцию на соответствие стандарту с помощью тщательного набора тестов. Такое тестирование обеспечивает повышенную уверенность в том, что модуль соответствует установленным стандартам, а разработчики систем, интеграторы и пользователи могут быть уверены в том, что проверенные продукты соответствуют принятым стандартам.

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

9.4 Соображения стоимости

Использование криптографии для защиты информации имеет как прямые, так и косвенные затраты, которые частично определяются доступностью продукта. Существует множество продуктов для реализации криптографии в интегральных схемах, дополнительных платах или адаптерах, а также в автономных устройствах.

9.4.1 Прямые затраты

Прямые затраты на криптографию включают:

• Приобретение или внедрение криптографического модуля и его интеграция в систему.

Носитель (т.е. аппаратное обеспечение, программное обеспечение, микропрограммное обеспечение или их комбинация) и различные другие вопросы, такие как уровень безопасности, логическая и физическая конфигурация, а также особые требования к обработке, будут влиять на стоимость; а также

• Управление криптографией и генерацией, распределением, архивированием и удалением криптографических ключей, а также меры безопасности для защиты ключей.

9.4.2 Косвенные затраты

Косвенные затраты на криптографию включают:

• Снижение производительности системы или сети в результате дополнительных накладных расходов, связанных с применением криптографической защиты к хранимым или передаваемым данным; а также

• Изменения в способах взаимодействия пользователей с системой в результате более строгих мер безопасности. Однако криптографию можно сделать почти прозрачной для пользователей, так что влияние будет минимальным.


Читайте также


Комментарии 0