Как защитить подключения и проверить подлинность запросов (HTML)
[ Эта статья адресована разработчикам приложений среды выполнения Windows для Windows 8.x и Windows Phone 8.x. При разработке приложений для Windows 10 см. раздел последняя документация]
В этом разделе описываются основные методы среды выполнения Windows, позволяющие приложениям среды выполнения Windows использовать защищенные подключения и учетные данные для проверки подлинности, которые необходимы для установления и использования безопасных сетевых подключений.
Технологии
- Windows.Networking.Sockets
- Windows.Networking.BackgroundTransfer
- Windows.Web.Syndication
- Windows.Web.AtomPub
Создание защищенных соединений сокетов
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