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