胖客户端会话管理和安全性

时间:2015-03-28 03:59:48

标签: java authentication ssl encryption passwords

我想开发一个胖客户端应用程序(而不是使用jsp /服务器端),我将在启动应用程序时提供登录面板。我不确定这是否是正确的方法(在安全性方面),所以想要一些评论。

身份验证将通过后端数据库进行。也就是说,我在数据库级别创建用户,我的胖客户端应用程序将使用提供的用户ID和密码对数据库进行身份验证。这种方法足够安全吗?或者我需要一个真正的会话/密码管理API才能做到这一点?

如何在这样的胖客户端应用中保留会话?另外,如果我想加密我的应用程序和数据库服务器之间的流量,我应该使用JSSE还是类似的?有没有办法加密数据而不是通信渠道?我相信我的数据库服务器也需要能够解密我的加密数据。

1 个答案:

答案 0 :(得分:1)

  

我在数据库级别创建用户,我的胖客户端应用程序将使用提供的用户ID和密码对数据库进行身份验证。这种方法足够安全吗?

是的,只要你这样做:

  1. 在数据库中哈希密码,而不是对其进行加密。
  2. 通过查询数据库SELECT count(*) FROM USERS WHERE USERNAME=? AND PASSWORD=MD5(?)或您使用的任何哈希算法来验证用户。请注意,此技术故意不会告诉您用户名或密码是否错误,以避免将此信息泄露给攻击者。这个想法是它返回1或0。
  3.   

    或者我需要一个真正的会话/密码管理API来执行此操作吗?

    不是。

      

    如何将会话保存在这样的胖客户端应用程序中?

    如果您的意思是在登录之间持续存在,请将其保留在数据库中。如果您只是指在登录和注销之间持续的会话,只需将其保留在注销时释放的对象中。

      

    另外,如果我想在我的应用程序和数据库服务器之间加密流量,我应该只使用JSSE还是类似的?

      

    有没有办法加密数据而不是通讯渠道?

    数据库可以使用加密功能。

      

    我相信我的数据库服务器还需要能够解密我的加密数据吗?

    什么加密数据?如果您的意思是通过SSL传输的内容,它将自动解密。

相关问题