Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何针对服务器对WPF应用程序进行身份验证?_Wpf_Security - Fatal编程技术网

如何针对服务器对WPF应用程序进行身份验证?

如何针对服务器对WPF应用程序进行身份验证?,wpf,security,Wpf,Security,假设如下: 我有一个WPF应用程序,它从文件中读取文本并发送 文本通过HTTPS发送到我的服务器REST API,服务器发送一个 响应,该响应取决于请求中发送的文本 WPF应用程序应该是唯一获得有用响应的应用程序 因此WPF应用程序必须以某种方式显示 从应用程序本身发送请求的服务器 不应要求WPF应用程序的用户输入任何登录凭据 这里的最佳实践是什么? 我的想法: WPF应用程序可以将硬编码密码与 在服务器端检查的请求-但听起来不是 对我来说这是一个很好的解决方案,因为安全性取决于 没有人能够嗅

假设如下:

  • 我有一个WPF应用程序,它从文件中读取文本并发送 文本通过HTTPS发送到我的服务器REST API,服务器发送一个
    响应,该响应取决于请求中发送的文本

  • WPF应用程序应该是唯一获得有用响应的应用程序 因此WPF应用程序必须以某种方式显示 从应用程序本身发送请求的服务器

  • 不应要求WPF应用程序的用户输入任何登录凭据

  • 这里的最佳实践是什么?

    我的想法:

    • WPF应用程序可以将硬编码密码与 在服务器端检查的请求-但听起来不是 对我来说这是一个很好的解决方案,因为安全性取决于 没有人能够嗅探HTTPS请求
    • 是否可以嗅探HTTPS请求以轻松获取密码

    提前感谢

    如果您的服务器已经支持HTTPS,则客户端知道服务器基于其使用的证书是可信的,因此该端将得到处理。(客户端信任服务器)

    为了确保信任,服务器也需要这样做。(服务器信任客户端)客户端应持有一个证书,它可以传递给服务器,以便服务器可以验证客户端身份

    像往常一样,这带来了如何在客户机中隐藏密钥的问题,其中有各种方案,但由于客户机最终需要获取密钥,因此您无法阻止专门的黑客找到该信息,只会让他们更难。(混淆等)

    根据您的应用程序,最好是一个简单的允许连接的客户端白名单。一些应用程序可以做到这一点,但许多应用程序不能做到,因为它们没有用户IP等,但如果它适合您的使用情况,则需要记住这一点


    您可以按照建议向服务器发送密码。只要消息是加密(HTTPS)的,您可能就可以了。没有什么是100%安全的。它可以通过“中间人”式攻击进行拦截,但这种攻击非常罕见,或者至少非常有针对性,因此这取决于您的软件的功能等。

    谢谢!这听起来像是如果一个黑客能够嗅出密码,他也能够获得使用过的证书,所以实现客户端证书的额外工作是不值得的,对吗?