发送用户名/密码是否安全?

时间:2012-04-25 22:22:07

标签: ios authentication ssl oauth

我的网站正在创建一个扩展其功能的应用程序 - 这意味着该应用程序不需要遵循严格的OAuth流程,因为我们非常信任自己。

我们希望该应用的用户能够在应用内输入他们的用户名和密码...这意味着我们需要一种方法将该信息传输到网络服务器以验证它们。

假设我们使用SSL,这是一个安全的想法吗?

我们是否需要采取额外措施,我们是否需要以某种方式确保请求来自我们的应用程序,而不是欺骗性应用程序,或其他什么?

2 个答案:

答案 0 :(得分:2)

首先,相信自己是不够的。您无法控制自己的应用,使用它的设备或用户手中的网络。

一种方案,你的应用程序中有一个共同的共享密钥,只有你的服务器能够解密(如评论中提到的那样)仍然可能导致问题,因为获取应用程序的用户可能会对其进行反向工程并获取该密钥以定位其他用户。

如果您没有使用单点登录(SSO)对您的网站进行身份验证,但在表单中使用普通用户名和密码,则通过您的应用程序通过SSL / TLS连接进行传输将与此相同从浏览器(通过HTTPS),只要整体配置正确。这已经是您从浏览器发布表单时发生的情况。 如您所建议的那样使用SSL / TLS,您实际上并未明确发送密码(如果配置正确)。

检查它是来自您的应用程序还是欺骗性应用程序是另一回事,一般来说很难防范。如果您的服务设计得很好,那么当您已经拥有用户身份验证时,它通常是不值得的。经过身份验证的用户应该只能执行服务器允许他们执行的操作,无论这些操作的请求来自您的应用程序还是来自这些用户控制的其他应用程序(只要服务器验证它们是否经过了正确的身份验证)。 (对于用户本身来说,欺骗性应用程序往往更容易出问题,如果他们被欺骗使用它们,而不是在这种情况下服务本身。)

答案 1 :(得分:1)

有几种可能的安全威胁,您可以决定是否要担心:http://xkcd.com/538/

但是,证券的原罪是“明确的密码”。至少哈希它,以便它不会以明文形式存储在服务器上。