我正在构建一个能够保存我的密码的程序。现在我有以下问题。因为我有很多计算机(一个用于工作,三个用于自己),我想保持密码与服务器同步。但现在我的问题是什么是最安全的方式通过互联网发送数据与C#?是否有可能使连接如此安全以至于我可以通过它发送密码?也许对应用程序的任何建议。以安全的方式通过互联网发送数据
0
A
回答
1
是的,你可以使它合理安全。首先,我会建议与编写自己的协议栈,仅仅因为它非常容易犯一个简单的错误,使得破解安全性变得微不足道。
(显然有很多现有的服务(如的1Password,passpack等),但我想你已经知道了。)
我建议你专注于同步和UI和离开安全以证明文库。一种这样的解决方案是使用带RSA身份验证和已知主机密钥的SSH。这在许多生产站点都有使用,AFAIK认为是合理安全的(尽管在几年前最流行的一种OpenSSH中有一个hole,这非常糟糕)。 SSH协议可以用作各种不同协议的载体,包括你自己的密码同步协议(因为你可以使用SOAP或JSON-RPC或类似的东西,有很多库)。
然后,您可以通过使用SSH客户端库(https://sshnet.codeplex.com是第一个Google命中)直接与C#集成。不过,我没有直接使用C#来谈论SSH的经验。我通常做的是让一个现有的SSH客户端(例如PuTTY)打开一个端口,然后使用普通的TCP套接字。这一切都取决于你想要的同步应用程序的光滑程度,但由于你只是为自己写的,我会选择后者。
如果您很聪明地编写应用程序,则不需要除您自己的服务器部分(例如,SSH实现用于文件存储的SFTP)的服务器部分。
一个类似的想法是使用SSL。如果您预先信任证书链,则可以确保足够安全,但我的经验是,C#中的默认SSL套接字API与Windows体系结构绑定的方式过多,使得自定义证书验证更为棘手。使用公开暴露的服务器(直接通过IIS)可以打开大量新的攻击媒介。
相关问题
- 1. 通过公共互联网安全地发送数据的另一种方法
- 2. 以安全的方式发送数据
- 3. ZeroMQ安全地通过互联网
- 4. 通过互联网发送一位
- 5. 通过互联网发送对象
- 6. C#通过互联网发送文件
- 7. 接收客户端通过互联网发送的数据报
- 8. 通过互联网从手机发送数据到手机?
- 9. 通过互联网发送UDP数据包
- 10. 套接字 - UDP通过互联网发送数据
- 11. 需要通过互联网从Ruby发送数据到C#
- 12. 通过互联网发送TCP数据包(使用Ruby)
- 13. 通过互联网交换数据的最佳方式
- 14. 通过互联网发送文件的可靠方法
- 15. 通过互联网的实时数据
- 16. 在iPhone中通过网络发送安全数据
- 17. 数据库,通过互联网
- 18. 通过互联网同步SQL数据
- 19. php,如何以安全的方式发送表单数据?
- 20. 通过互联网
- 21. 通过互联网
- 22. 通过互联网
- 23. 通过互联网
- 24. 通过互联网安装TFS
- 25. 通过互联网传输数据最简单的方法,Python
- 26. 通过互联网安全访问Microsoft可视化源
- 27. 通过互联网安全地使用log4net
- 28. 通过互联网公开rabbitmq amqp端口安全吗?
- 29. 通过互联网安全传输文件
- 30. 测量通过互联网发送和接收的流量
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 – 2014-10-12 11:41:29
你听说过WCF吗? – 2014-10-12 11:42:21
Thx for the title and I looking into WCF part :) – kevingoos 2014-10-12 11:43:59