Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.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
.net HTTPWebRequest、SSL端点验证和_.net_Ssl_Httpwebrequest - Fatal编程技术网

.net HTTPWebRequest、SSL端点验证和

.net HTTPWebRequest、SSL端点验证和,.net,ssl,httpwebrequest,.net,Ssl,Httpwebrequest,我正在编写一个客户端应用程序,该应用程序必须查询URL并确认用户有权在客户端使用。可以将其视为一种非常基本的许可机制。服务器上的页面将写出一个纯文本字符串,其中包含一些有关用作验证的用户的信息。所有这些都是通过SSL完成的 然而,对于这个“系统”是否足够安全,我有点偏执。例如,如果我设置Fiddler并检查ServicePointManager.ServerCertificateValidationCallback中的SslPolicyError,它将被视为有效。因此,我可以很容易地打破与小提琴

我正在编写一个客户端应用程序,该应用程序必须查询URL并确认用户有权在客户端使用。可以将其视为一种非常基本的许可机制。服务器上的页面将写出一个纯文本字符串,其中包含一些有关用作验证的用户的信息。所有这些都是通过SSL完成的

然而,对于这个“系统”是否足够安全,我有点偏执。例如,如果我设置Fiddler并检查ServicePointManager.ServerCertificateValidationCallback中的SslPolicyError,它将被视为有效。因此,我可以很容易地打破与小提琴系统。我注意到的是,在本例中,X509Certificate参数保存Issuer:=…fiddler2.com 现在,我可以检查证书颁发者是否与服务器当前使用的内容匹配。但是服务器证书可能会用不同的CA更新。如果发生这种情况,我将不得不让所有用户安装一个新的客户端:一场支持噩梦

我想知道

从设计上看,这是一个糟糕的系统吗?在这种情况下,SSL是否不足以保证足够的安全性


我是否试图错误地验证端点?如果是,那么进行验证的更好方法是什么?

SSL提供了传输层安全性。因此,在本例中,如果您的fiddler介于两者之间,那么您实际上只是针对fiddler而不是针对目标服务器对客户端进行身份验证

此外,如果使用其他CA续订服务器证书,则只要该CA在客户机上受信任,就无所谓了。您可以要求用户确认他信任CA,并将CA证书安装到“我的电脑”存储中的“受信任的根证书颁发机构”存储下。由于这是一个客户端应用程序,因此最好将所有此类问题委托给用户,而您的应用程序只需完成核心任务,即从服务器获取令牌

如果您不想与用户进行交互,那么您可以对客户端进行编码,使其不关心是谁颁发了证书,只要证书上的名称与您正在交谈的服务器的域名相匹配


希望有帮助。

SSL提供了传输层安全性。因此,在本例中,如果您的fiddler介于两者之间,那么您实际上只是针对fiddler而不是针对目标服务器对客户端进行身份验证

此外,如果使用其他CA续订服务器证书,则只要该CA在客户机上受信任,就无所谓了。您可以要求用户确认他信任CA,并将CA证书安装到“我的电脑”存储中的“受信任的根证书颁发机构”存储下。由于这是一个客户端应用程序,因此最好将所有此类问题委托给用户,而您的应用程序只需完成核心任务,即从服务器获取令牌

如果您不想与用户进行交互,那么您可以对客户端进行编码,使其不关心是谁颁发了证书,只要证书上的名称与您正在交谈的服务器的域名相匹配


希望能有所帮助。

嗨,谢谢你的回复。事实上,我担心恶意用户使用自签名证书绕过我们的许可检查进入他自己的网站:然后返回虚假的肯定响应,使我们的系统认为它是有效的。我不清楚你的问题是什么?您是否担心被欺骗的客户端或服务器?如果您担心被欺骗的客户机,那么您可以将注册过程作为第一步,客户机将获得密钥。然后,客户端使用提供的密钥与服务器通信。密钥只是服务器分配的令牌,所有通信都可以通过SSL完成。是的,您描述的内容与我们最终使用的内容类似。谢谢。嗨,谢谢你的回复。事实上,我担心恶意用户使用自签名证书绕过我们的许可检查进入他自己的网站:然后返回虚假的肯定响应,使我们的系统认为它是有效的。我不清楚你的问题是什么?您是否担心被欺骗的客户端或服务器?如果您担心被欺骗的客户机,那么您可以将注册过程作为第一步,客户机将获得密钥。然后,客户端使用提供的密钥与服务器通信。密钥只是服务器分配的令牌,所有通信都可以通过SSL完成。是的,您描述的内容与我们最终使用的内容类似。谢谢