代码之家  ›  专栏  ›  技术社区  ›  David Allen

使用公钥加密技术在不使用iis的情况下保护silverlight到web服务的通信

  •  0
  • David Allen  · 技术社区  · 15 年前

    如果我有一个silverlight客户端连接到windows服务中托管的web服务,那么如果您不使用i i s,显然没有办法保护两者之间的通信。SSL不可用,Silverlight不支持wshttpbinding。

    这就是我打算做的,只是想看看我是否漏掉了任何明显的安全漏洞。这一切都将在一个内联网上,ssl安全的主机将在iis上使用,如果我们曾经使它启用互联网。

    1. 创建证书并将其放入Web服务的服务帐户的用户存储中。Web服务在启动时检索证书密钥。
    2. 向web服务添加明文方法,以将证书中的公钥作为字符串返回。
    3. 从Silverlight客户端调用Web服务以获取公钥。
    4. 使用公钥加密从Silverlight客户端发送到Web服务的所有数据。返回到Silverlight客户端的数据不需要加密。

    我有什么遗漏吗?我想不出别的办法了!

    1 回复  |  直到 14 年前
        1
  •  0
  •   Remus Rusanu    15 年前

    你不能用rsa密码加密大量的数据,这太慢了(我认为每rsa模长100毫秒)。所有的方案都使用rsa来引导一个对称密钥并使用该密钥加密数据。使用任何已建立的密钥交换协议。如果你有rescorla的书的副本,你会惊讶于实现ssl 3.0或tls 1.0是多么容易。 SSL and TLS: Designing and Building Secure Systems