【发布时间】:2010-10-24 12:16:01
【问题描述】:
我正在编写一个服务器-客户端应用程序来接收用户消息并发布它。
考虑认证方法。
- 非对称加密,可能是 RSA。
- 哈希(salt+password+'msg'+'userid'),SHA256
- HMAC,SHA256。似乎比方法 2 更安全。还涉及对密码和 msg 数据进行哈希处理。
- “msg”的对称加密,两侧都存储有静态密码,可能是 AES。
不需要加密,因为无论如何都会在线发布味精。所以我更倾向于 HMAC 或 PKI 方法。
我正在使用 java 发送请求(包括要实现的任何身份验证方法) www.mysite.com/foo?userid=12345&msg=hello&token=abc1234
python 在服务器端接收请求并确保请求来自有效用户。
问题在于集成并确保双方都了解彼此的身份验证令牌。这对我来说是一个很大的因素。并且还考虑了两种语言的可用库的可用性。
或者我可以选择将服务器端重写为java。 (为什么不是python?客户端应用程序需要在java中)
你怎么看?
编辑:我不会将其视为 Web 应用程序。该应用程序不提供任何网页。大多数操作与网络无关。只是客户端-服务器通信通过互联网。我认为通过 HTTP 发送 POST/GET 是一种更简单但不安全的方式。随时向我建议任何其他选择。
SSL 是一种安全的加密方式。但它并不能阻止攻击者以用户身份向服务器发送消息。任何人都可以发起 HTTPS 连接。并且通信的内容不需要加密。无论如何,它将由服务器在线发布。我需要的是一种对消息和发件人进行身份验证的方法。
目前我倾向于使用 HMAC 算法。 RSA 会更安全,但它也伴随着更多的开发人员努力。看看情况如何。
谢谢。
【问题讨论】:
-
HTTP Digest 认证有什么问题?为什么不使用已有的东西?它使用 hash+salt+nonce。
标签: java python authentication encryption hash