ObjectOutputStream:这是安全的吗?

时间:2014-05-05 10:44:30

标签: android security objectoutputstream

我正在开发Android应用程序,我想提交用户名和密码。我现在正在做的是:

  1. 为密码创建哈希值

  2. 通过HTTP请求连接到身份验证服务器

  3. 通过ObjectOutputStream发送用户名/ hash-password

  4. 我这样做是因为这是我能用自己所获得的知识实现自己的唯一解决方案。

    但当然有一个问题我不得不担心:这有多安全?我知道,没有100%的安全性。但这是一个非常糟糕的解决方案,还是平均?

1 个答案:

答案 0 :(得分:1)

这不安全,因为登录/密码未加密。你应该做的事情是:

  • 使用https代替http连接登录
  • 在对密码进行哈希处理之前将盐添加到密码中(用户名为盐就可以了)
  • 使用序列化作为数据协议不是很方便 - 它 不提供任何额外的安全性,但会非常糟糕 在调试......

盐: 如果两个用户拥有相同的密码,他们也会有相同的哈希值。这可以使用彩虹表(Google for Google)轻松恢复。为了避免密码应该用一些盐进行哈希处理,所以不要使用:

hash(password);

您应该使用:

hash(salt+password);

其中salt可以是一些非常长的随机字符串,在应用程序中硬编码(防止彩虹攻击)或只是用户名,因为它可以在服务器端和应用程序端轻松访问。