设为首页 收藏本站
查看: 925|回复: 0

[经验分享] WCF BasicHttpBinding 安全解析(8)Message安全模式(iis宿主)

[复制链接]

尚未签到

发表于 2015-8-12 14:52:50 | 显示全部楼层 |阅读模式
  Message安全模式基于消息保护,强制客户端和服务端提供证书,服务端对返回的消息体进行加密。本节笔者更换服务端的证书,名为XuanhunServer1。
  首先我们在服务端配置Message安全模式,如代码清单11-106所示。
  代码清单11-106 配置Message安全模式






<bindings>
<basicHttpBinding>
<binding name="basicBindingConf">
<security mode="Message">
<message
clientCredentialType="Certificate"/>
</security>
</binding>
</basicHttpBinding>
</bindings>
  在代码清单11-106中,我们启用Message安全模式并设置客户端凭据类型为Certificate。证书的设置和上节相同我就不重复了。客户端配置主要注意两个地方,一是不论是否验证服务端证书都要提供服务端证书的配置,如代码清单11-107所示。二是要设置<identity>节中DNS值和服务端证书名称一致,如代码清单11-108所示。
  代码清单11-107 客户端证书设置






<clientCredentials>
<clientCertificate
findValue="XuanhunClient"
storeLocation="LocalMachine"
storeName="TrustedPeople"
x509FindType="FindBySubjectName"/>
<serviceCertificate>
<authentication
certificateValidationMode="None"/>
<defaultCertificate
findValue="XuanhunServer1" storeName="TrustedPeople"
x509FindType="FindBySubjectName" storeLocation="LocalMachine"/>
</serviceCertificate>
</clientCredentials>
  代码清单11-108 设置DNS






<identity>
<dns
value="XuanhunServer1"/>
</identity>
  一切配置妥当,启动测试站点却遇到如图11-54所示的错误。
DSC0000.gif

图11-54 “密钥集不存在”错误

  出现该错误不是由于提示信息说的密钥问题而是权限问题引起的,只需给
  C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA这个目录下的MachineKeys文件夹添加Everyone用户并赋予浏览权限即可,如图11-55。
DSC0001.gif

图11-55 设置文件夹权限

  解决了权限问题,程序运行成功。这些问题在不了解原理的时候,往往都是经验性的解决,希望读者能多多留意这一类问题。
  下面我们来看一下Message安全模式下的消息传输。
  图11-56所示为服务端返回的数据。
DSC0002.gif

图11-56 截获的响应数据

  从图11-56中的结果来看,服务端对整个消息体进行了加密,内容无从得知,保护了消息的机密性。那s么客户端的请求数据呢?客户端没有对消息体进行加密但是对消息中的关键内容先加密再赋值传输的。代码清单11-109是截取的一段。
  代码清单11-109 客户端请求数据





<u:Timestamp
u:Id="uuid-2705e435-cc04-4e1f-9afa-807d73067921-5"><u:Created>2011-06-26T13:18:21.002Z</u:Created><u:Expires>2011-06-26T13:23:21.002Z</u:Expires></
u:Timestamp><o:BinarySecurityToken
u:Id="uuid-33dfb585-d0e8-4167-a5f7-eed40f2d1539-5"
ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">MIIB+jCCAWegAwIBAgIQZGmT6q0h0ZpAYyS6
XbdjZzAJBgUrDgMCHQUAMBgxFjAUBgNVBAMTDVh1YW5odW5DbGllbnQwHhcNMTEwNjI2MTEyNTAwWhcNMzkxMjMxMjM1OTU5WjAYMRYwFAYDVQQDEw1YdWFuaHVuQ2xp
ZW50MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDElBfTXWrAfHPRjVSLWos4d/Z2Ec9xZ0c8lU4t4Pt/EkwkqFb1gHcfe54eP/CzglT275ftovoYUH0gQGJ0NU89dPEfX1TEyk
YYF5DB0rIxIUZhPBnOrz5BWNYV68bsbARYwxOmj0M2g7nIMWD2vb8gSV6GN2XxG0VoFW1FxOrlRwIDAQABo00wSzBJBgNVHQEEQjBAgBD5HCEdkNXX+nYrhpTvHDwioRowGDE
WMBQGA1UEAxMNWHVhbmh1bkNsaWVudIIQZGmT6q0h0ZpAYyS6XbdjZzAJBgUrDgMCHQUAA4GBAFeHhyrrHKmOrpUsa9uwVdoA6n8cQzizsWlIJh7wZm68v8rNR1WCPZmMmx
KICPA3GNozFr8zp8iuxO1bIfKF9GDhUJRoAe2nopjRp4RHbBkajJpX2DExXNZHNLC1ghULbVdVAqoewDUnsVZZPVzSxjgx38e+jMghtqUoTyfGK7lE</o:BinarySecurityToken>
  部分数据客户在请求的时候将数据的二进制数据直接转换成Base64编码,如果我们不知道二进制数据的组织方式仍然没有办法得知传输的内容。
  对于安全级别较高的应用场景中,我们还是推荐使用TransportWithMessageCredential安全模式,完全基于Https来确保消息

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-98054-1-1.html 上篇帖子: 完美解决.net2.0和.net4.0在同一个iis中共同运行 下篇帖子: 在IIS中配置PHP运行环境简单步骤
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表