阅读WP8上的SSL证书详细信息

dix*_*xus 5 ssl network-programming bouncycastle tcpclient windows-phone-8

出于安全原因,我想阅读证书详细信息(例如到期日期或CN).

通常,网络类中有一些属性可用于检查证书.这在WP8实现中缺失.

此外,我尝试创建一个SslStream,但也无法获得任何证书详细信息,如.net 4.5上的RemoteCertificate.

var sslStream = new SslStream(new NetworkStream(e.ConnectSocket));
Run Code Online (Sandbox Code Playgroud)

SslStream缺少与安全相关的所有内容.所以看起来BountyCastle和其他库也无法获得证书,因为底层框架不支持它.

所以我的问题是:

  1. 我可以使用其他方法阅读WP8上的CN或其他证书详细信息吗?
  2. 如果没有,您如何使用SSL Pinning或客户端证书验证等技术在WP8上创建严格保护的应用程序(线路银行),是否有任何理由说明WP8不支持这一点?

关心霍尔格

dix*_*xus 1

在尝试了 bouncyCastle、supersocket 或 webSocket4net 等开源库之后,我测试了对名为 ELDOS SecureBlackbox的商业库的评估。这次测试成功了。这是一个代码片段,它获取包含所有详细信息的 X509Certificates:

public void OpenSSL()
{
    var c = new TElSimpleSSLClient();
    c.OnCertificateValidate += new TSBCertificateValidateEvent(OnCertificateValidate);

    c.Address = "myhostname.com";
    c.Port = 443;
    c.Open();
    c.Close(false);
}

private void OnCertificateValidate(object sender, TElX509Certificate x509certificate, ref TSBBoolean validate)
{
    validate = true;
}
Run Code Online (Sandbox Code Playgroud)

验证正在获取所有证书...如果验证设置为 true,将显示下一个证书。这意味着回调被称为 forreach 证书。

问候霍尔格