Поделиться через


Основные понятия шифрования

Безопасный обмен данными через небезопасные сети обычно включает в себя три важные области: конфиденциальность, проверка подлинности и целостность. API шифрования Майкрософт (CryptoAPI) — это набор функций, интерфейсов и средств, которые приложения могут использовать для повышения надежности безопасности в этих областях.

Помимо функций конфиденциальности, проверки подлинности и целостности, CryptoAPI также предоставляет следующие возможности:

Конфиденциальность

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

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

Зашифрованные данные могут храниться на незащищенном носителе или передаваться по незащищенной сети. Позже данные можно расшифровать в исходном виде. Этот процесс показан на следующем рисунке.

сохранение конфиденциальности во время шифрования и расшифровки

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

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

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

CryptoAPI предоставляет следующие функциональные возможности для выполнения задач шифрования и расшифровки, подписывания сообщений и хранения ключей:

Проверка подлинности

Для безопасного взаимодействия требуется, чтобы лица, взаимодействующие с ними, знали личность тех, с кем они общаются. Проверка подлинности — это процесс проверки личности лица или сущности.

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

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

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

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

Цифровой сертификат — это учетные данные, выданные доверенной организацией или сущностью, которая называется центром сертификации (ЦС). Эти учетные данные содержат открытый ключ (см . раздел Пары открытого и закрытого ключей) и данные, определяющие субъект сертификата. Сертификат выдается ЦС только после того, как ЦС проверит удостоверение субъекта сертификата и подтвердит, что открытый ключ, включенный в сертификат, принадлежит этому субъекту.

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

CryptoAPI поддерживает проверку подлинности с помощью цифровых сертификатов, с функциями кодирования и декодирования сертификатов, а также с функциями хранилища сертификатов .

Дополнительные сведения о проверке личности и проверке подлинности с помощью сертификатов см. в разделе Цифровые сертификаты.

Целостность

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

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

Целостность обеспечивается в CryptoAPI с помощью цифровых подписей и хэшей данных.

CryptoAPI поддерживает целостность за счет использования функций сообщений для подписывания данных и проверки цифровых подписей.