在Active Directory域中为WCF配置加密算法

时间:2018-05-21 15:14:51

标签: wcf encryption active-directory windows-authentication nettcpbinding

方案:使用NetTcp,传输安全性和Windows身份验证在Active Directory域上运行的WCF客户端/服务器应用程序。我理解这是如何在SSPI的幕后工作,以及它默认如何传输层加密。我也理解在域中配置加密参数,例如什么算法。

问题:在这种情况下,如何配置我的Active Directory域以使用不同的算法?我不一定希望我的应用程序指定特定的算法;在这种情况下,我很高兴Windows身份验证对我来说很重要。但是,我需要能够告诉客户如何配置他们的策略以使用他们选择的算法,或者至少查看他们的策略以确定他们今天使用的算法。

要明确:我不想使用证书身份验证。我真的想继续使用Windows身份验证。

1 个答案:

答案 0 :(得分:0)

由于是与Active Directory一起使用的默认身份验证协议方法,因此我将重点关注调整(如果需要)用于Kerberos的加密方法。自Windows 2008 R2 以来, AES256-SHA1 一直是Kerberos的默认算法。虽然使用SSPI Windows身份验证,可能是使用的身份验证协议,但在2018年这种情况极不可能。

要告诉您正在使用哪种身份验证和加密方法,并且如果您使用的是Windows 10,请在命令提示符下键入: klist 。输出将显示连接的资源和使用的加密方法。如果您通过SSO连接到网络资源,并且在klist输出中没有看到匹配的Kerberos票证,则表示使用了NTLM。使用像Wireshark这样的网络捕获工具来确认这一点。

要将Kerberos策略配置为使用特定的加密算法,请执行以下操作:

  1. 打开组策略管理控制台(GPMC)并编辑默认域策略(首先制作备份副本后)。
  2. 导航到以下位置:计算机配置\ Windows设置\安全设置\本地策略\安全选项
  3. 单击以选中网络安全性:配置Kerberos选项允许的加密类型
  4. 单击以选中“定义这些策略设置”,然后选择所需的加密类型复选框。
  5. 单击“确定”。关闭GPMC。
  6. 参考:Network security: Configure encryption types allowed for Kerberos Win7 only。注意:文章仅说Win7,但它也适用于Windows 8和Windows 10.

    注意:由于您说您没有使用证书身份验证,因此TLS等问题不适用于此。