我有一个在每个连接上都使用 SSL 的客户端-服务器模型。我已经使用 Java 和通用库对此进行了编程。关于 SSL 安全,我有两个问题:
1)以明文形式将密码从客户端发送到服务器是否被认为是安全的?服务器使用 BCrypt 对密码进行哈希处理并将其存储。我考虑过发送密码的未加盐哈希或密码的通知哈希,但它们真的比发送明文密码更安全吗?我对此表示怀疑。我不认为将密码作为加盐哈希发送是一个可行的选择,因为盐需要存储在客户端的某个地方或通过网络发送,因此我认为它不会使其本质上更安全以明文形式发送密码。由于 SSL,其他任何人都应该无法阅读它,对吧?
2) SSL 上的加密数据是否总是被加密为不同的字符串,如果是这样,你可以使用某个字符串的早期加密来获得相同的结果吗?澄清:
- 如果您现在加密数据,几秒钟后,它会提供相同的密文吗?
- 如果您使用加密“test”的密文,您是否可以稍后发送相同的密文让服务器相信客户端合法发送“test”?
在任何情况下,都应该假设我不想从我自己(客户端或服务器)的角度来处理这个问题,但我想从黑客/作弊者的角度来处理这个问题。
问候。