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


Как защитить подключения и проверить подлинность запросов (HTML)

[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]

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

Технологии

Создание защищенных соединений сокетов

SSL и его преемник TLS — это криптографические протоколы, разработанные для проверки подлинности и шифрования сетевых подключений. Они предназначены для предотвращения перехвата и незаконного изменения данных, отправляемых и получаемых по сети. Для обмена данными по этим протоколам используется модель клиент-сервер. Эти протоколы также используют цифровые сертификаты и центры сертификации для проверки подлинности сервера. Протокол TLS описан в документе RFC 5246 организации IETF. Более ранний протокол SSL документирован корпорацией Netscape Communications. Оба этих протокола часто называют просто SSL.

Объект StreamSocket можно настроить так, чтобы использовать протокол SSL/TLS для обмена данными между клиентом и сервером. Эта поддержка протокола SSL/TLS ограничена использованием объекта StreamSocket в качестве клиента при согласовании SSL/TLS. В настоящее время протокол SSL/TLS не может использоваться объектом StreamSocketListener вместе с StreamSocket, созданным при получении запроса на подключение, чтобы включить SSL/TLS для созданного StreamSocket, так как согласование SSL/TLS в качестве сервера не реализовано для StreamSocket.

Примеры создания и обновления защищенных соединений сокетов до сетевых служб см. разделе Защита соединений сокетов с помощью TLS/SSL.

Создание защищенных соединений WebSocket

Подобно традиционным соединениям сокетов, в Windows 8 для приложений Магазина Windows соединения WebSocket можно шифровать с помощью протоколов TLS/SSL при использовании компонентов StreamWebSocket и MessageWebSocket. В большинстве случаев необходимо использовать безопасное подключение WebSocket. Это увеличит шансы удачного подключения, поскольку многие прокси-серверы отклоняют незашифрованные подключения WebSocket.

Примеры создания и обновления защищенных соединений сокетов до сетевых служб см. в разделе Защита соединений WebSocket с помощью TLS/SSL.

Кроме шифрования TLS/SSL для завершения исходного подтверждения серверу может требоваться значение заголовка Sec-WebSocket-Protocol. Это значение, представляемое свойствами StreamWebSocketInformation.Protocol и MessageWebSocketInformation.Protocol, указывает версию протокола соединения и позволяет серверу правильно интерпретировать открытое подтверждение и обмениваемые впоследствии данные. Если на основе информации о протоколе в какой-то момент времени серверу не удается безопасно интерпретировать входящие данные, такое соединение может быть закрыто.

Если в исходном запросе от клиента этого значения нет или предоставленное значение не соответствует ожидаемому сервером, в случае ошибки WebSocket ожидаемое значение отправляется сервером клиенту.

Предоставление веб-службе учетных данных для проверки подлинности

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

WebSockets

Background Transfer

Syndication

AtomPub

 

Связанные разделы

Защита соединений сокетов с использованием TLS/SSL

Защита соединений WebSocket с помощью TLS/SSL

Подключение к сетевым службам