Android:通过HTTP进行安全性和用户身份验证(注册,登录)的一些问题

时间:2012-12-13 17:32:49

标签: android security ssl httprequest android-authenticator

我无法直截了当地谈论这个问题。我目前正在Android上构建一个相当大规模的应用程序。我遇到了一些关于安全性和身份验证的问题,但是......

场景:

我有一个应用程序通过HTTP进行调用(稍后将实现SSL)到运行PHP和MySQL的服务器。当然我想使用现有的用户数据库,因此迁移到另一个数据库不是一个解决方案。 我已经设法创建“通过Android注册用户到服务器”功能。 我也做了一个工作登录,但这是问题的起点。

由于Android应用程序中的用户正致力于通过/向应用程序添加,编辑,删除和同步服务器上的内容,因此事情变得相当复杂。对我来说有点太复杂了似乎:)

问题:

  1. 我从服务器端登录获取结果并从中传递 服务器通过JSON到Android,连接死机和服务器端I 'aint登录(会话死亡),而在电话上,我。我怎么能够 在没有服务器和Android的情况下使登录持久化 是否需要再次登录?以便随后从Android调用 服务器由相同的用户创建,仍然经过身份验证。即一世 想要一次性登录('直到我退出)就像在 Spotify-app(和许多其他人)。

  2. 如果我理解正确的事情,那么实施SSL是正确的     可以将明文密码发送到服务器,而无需先将其哈希。这是对的吗?

  3. 我无法停止思考MIM攻击会影响我从Android发送到服务器的任何唯一ID。我的第一个想法是在成功登录后将Android设备上的UID作为服务器的“关键”。但是如果该密钥落入坏人手中,则与该UID相关联的用户将受到损害。我已经查看了Android上的AccountManager,但在我的情况下它看起来相当过度。

    如果有人可以提供示例或至少提供指导,我将非常感激!

    先谢谢!

    编辑后添加的解决方案图

    Image describing the mechanism of the authentication

    请注意,此图表显示了应用程序的第一次启动。以后的初创公司不会显示登录/注册表格,而是使用DUT。

    //亚历山大

1 个答案:

答案 0 :(得分:3)

向Android应用程序发出某种形式的短期身份验证令牌。他们需要在每个请求中传递它,您将检查它是您的Web应用程序。断开连接不会结束会话,如果确实如此,您的Web应用程序中存在错误:修复它。在Android中,只要您使用相同的HttpClient实例,它将继续使用相同的会话,不需要任何特殊内容。

无论你做什么,都不会推迟实施SSL,现在就