【C/S】FIPS安全验证问题

  现如今的开发第一考虑的都是B/S架构或是移动端为主,传统的PC C/S已经相对于少些了,去年年初的时候还信誓旦旦的现在是Web为主,我才不要去写什么WPF,谁料人算不如天算。现如今又重操C/S了,虽没多久,但是却踩到了很多的坑。此类随笔记录一下最近做C/S遇到的问题。

  C/S与B/S从大体上看只是数据的展现形式不一样,C/S繁琐的安装、频繁的更新对于用户来说是很烦人的。但是C/S带来的优点也是数不胜数的。C/S客户端对用户来讲有一种专属定制的感觉,并且从效率上也会比B/S高一些。但是Client端的安装、部署、升级、版本控制也是非常的麻烦。

  我所做的C/S其实只是一个内嵌浏览器的壳子,实质上还是B/S。所以承受着C/S与B/S两者的所有优缺点。先说第一个坑,我所采用的是WCF进行通讯,数据是通过AES加密的,在大部分的用户机上都是没有问题的,但是有一天某客户无法登陆了,后查看日志发现用户开启了FIPS验证。因为AES加密方式不符合FIPS标准,所以禁止了请求。

  起初的解决方案为关闭FIPS验证(通过:CMD -> gpedit.msc -> 计算机配置 -> Windows设置 -> 安全设置 -> 本地策略 -> 安全选项 -> 系统加密:将FIPS兼容算法用于加密、哈希和签名 -> 禁用),但是不是每一个用户都可以听懂的,所以不能从各个端去设置,应该在安装包配置上来解决。以WPF为例在配置文件中添加如下节点即可

1 <?xml version="1.0" encoding="utf-8" ?>
2 <configuration>
3   <runtime>
4     <enforceFIPSPolicy enabled="false"></enforceFIPSPolicy>
5   </runtime>
6 </configuration>
app.config
原文地址:https://www.cnblogs.com/MangoCai/p/7341913.html