SocketProtectionLevel 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定要在 StreamSocket 对象上使用的加密级别。
public enum class SocketProtectionLevel
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
enum class SocketProtectionLevel
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public enum SocketProtectionLevel
var value = Windows.Networking.Sockets.SocketProtectionLevel.plainSocket
Public Enum SocketProtectionLevel
- 继承
-
SocketProtectionLevel
- 属性
Windows 要求
| 要求 | 说明 |
|---|---|
| 设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
| API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
| 应用功能 |
bluetooth.rfcomm
|
字段
| 名称 | 值 | 说明 |
|---|---|---|
| PlainSocket | 0 | 无加密的纯套接字。 |
| Ssl | 1 | 注释 此值在 Windows 8.1、Windows Server 2012 R2 及更高版本上弃用。 必须使用安全套接字层(SSL)进行加密的 TCP 套接字。 此值需要加密,并且绝不允许 NULL 密码(无加密)。 此值支持 SSL 3.0 和 TLS 1.0 协议以及系统上安装的所有加密密码(NULL 密码除外)。 对于已加入域的计算机,管理员可以配置允许使用密码的其他限制。 此值标记为已弃用,因为它被视为不安全,因为允许 RC4 和其他弱密码。 套接字应改用 Tls10、 Tls11 或 Tls12 ,除非目标服务器仅支持 RC4 或其他弱密码。 |
| SslAllowNullEncryption | 2 | 倾向于使用 SSL 进行加密的 TCP 套接字。 此值更倾向于使用完全加密,但允许基于服务器配置使用 NULL 密码(无加密)。 此值支持安装在系统上的 SSL 3.0 和 TLS 1.0 协议以及所有加密密码,包括 NULL 密码。 对于已加入域的计算机,管理员可以配置允许使用密码的其他限制。 NULL 密码不加密,因此此值不提供保密性,但完整性受到保护。 |
| BluetoothEncryptionAllowNullAuthentication | 3 | 首选加密的蓝牙套接字,但允许基于目标服务器的配置使用 NULL 密码(无加密)。 Windows 8.1、Windows Server 2012 R2 及更高版本支持此值。 |
| BluetoothEncryptionWithAuthentication | 4 | 必须使用加密的蓝牙套接字。 此值需要加密,并且绝不允许 NULL 密码。 Windows 8.1、Windows Server 2012 R2 及更高版本支持此值。 |
| Ssl3AllowWeakEncryption | 5 | 必须使用 SSL 进行加密的 TCP 套接字。 此值支持 SSL 3.0 协议和系统上安装的所有加密密码,但 NULL 密码除外。 此值允许 RC4 和其他被视为不安全的弱密码。 对于已加入域的计算机,管理员可以配置允许使用密码的其他限制。 Windows 8.1、Windows Server 2012 R2 及更高版本支持此值。 |
| Tls10 | 6 | 必须使用 SSL 进行加密的 TCP 套接字。 此值支持在系统上安装的 TLS 1.0 协议和所有加密密码,但 RC4、其他弱密码和 NULL 密码除外。 对于已加入域的计算机,管理员可以配置允许使用密码的其他限制。 Windows 8.1、Windows Server 2012 R2 及更高版本支持此值。 |
| Tls11 | 7 | 必须使用 SSL 进行加密的 TCP 套接字。 此值支持安装在系统上的 TLS 1.1 和 TLS 1.0 协议以及除 RC4 之外的所有加密密码、其他弱密码和 NULL 密码。 对于已加入域的计算机,管理员可以配置允许使用密码的其他限制。 Windows 8.1、Windows Server 2012 R2 及更高版本支持此值。 |
| Tls12 | 8 | 必须使用 SSL 进行加密的 TCP 套接字。 此值支持安装在系统上的 TLS 1.2、TLS 1.1 和 TLS 1.0 协议以及除 RC4 之外的所有加密密码、其他弱密码和 NULL 密码。 对于已加入域的计算机,管理员可以配置允许使用密码的其他限制。 Windows 8.1、Windows Server 2012 R2 及更高版本支持此值。 |
| Unspecified | 9 | 未指定保护级别。 |
| Tls13 | 10 |
注解
SocketProtectionLevel 枚举允许客户端在使用 StreamSocket 对象时控制与服务器的安全选项的协议协商。
对于 TCP 套接字,各种枚举值允许应用开发人员控制 TLS 1.2、TLS 1.1、TLS 1.0 和 SSL 3.0 协议的使用,并限制使用被视为不安全的 RC4 和其他弱密码。 这样,开发人员就可以配置跨一组非常广泛的服务器兼容的应用。
对于蓝牙 RFCOMM 套接字,各种枚举值允许应用开发人员控制蓝牙加密的使用。
未加入域的计算机的用户还可以使用注册表设置禁用密码和协议。 有关详细信息,请参阅 如何在 Schannel.dll中限制某些加密算法和协议的使用 。
SocketProtectionLevel 枚举还允许服务器在使用 StreamSocketListener 对象通过蓝牙侦听和绑定到套接字时控制客户端的安全协议协商。 当 StreamSocketListener 对象通过蓝牙使用时,支持的 SocketProtectionLevel 值为 PlainSocket、 BluetoothEncryptionAllowNullAuthentication 或 BluetoothEncryptionWithAuthentication。 当 StreamSocketListener 对象用于侦听和绑定到 TCP 套接字时,唯一支持的 SocketProtectionLevel 值为 PlainSocket。
版本历史记录
| Windows 版本 | SDK 版本 | 附加值 |
|---|---|---|
| 1709 | 16299 | 未指定 |