相关疑难解决方法(0)

使用jQuery的ajax()函数和SSL客户端证书

我想使用ajax()jQuery函数对REST服务进行XHR调用.基本上,这可以正常工作,但REST服务只能通过https访问,并要求客户端使用客户端证书进行身份验证.

如何使用jQuery的ajax()功能发送客户端证书?

authentication ajax rest ssl jquery

12
推荐指数
2
解决办法
3万
查看次数

数据传输和密码加密的提议

我需要实现一个免费的方案(没有SSL证书),它可以满足敏感数据传输,保护和存储的要求,假设相互信任的第三方不可用,也就是说,我们不能使用SSL,TLS等.但是这并不意味着我将自己实施SSL,我仍然希望将加密和解密部分外包给现有代码.

我已经起草了以下方案作为我的帐户和密码保护解决方案:

对我们的攻击者的假设:

  1. 完全了解协议.

  2. 可以访问常用密码的大型字典.

  3. 可以窃听客户端和服务器之间的所有通信.

  4. 可以在客户端和服务器之间拦截,修改和伪造任意消息.

  5. 可以访问客户端的源代码(包括加密代码).

解决方案:

  • RSA(分别在客户端和服务器站点加密和解密,公钥可以安全传输,如果密钥是由黑客获取的,则没有风险.)

  • SHA256/SHA512 /两次MD5(加密用户ID绑定Salt,都存储在服务器站点的数据库中.我在这里使用绑定盐来避免使用通用密码并防止彩虹表.)

注册新用户:

  1. 首先在服务器端生成RSA密钥(存储在会话中);

  2. 将公钥发送给客户;

  3. 将公钥存储在javascript变量中;

  4. 在所有后续请求中使用此密钥加密数据并发送到服务器;

  5. 使用存储在会话中的私钥来解密服务器端的用户帐户和密码;

  6. 使用随机盐的单向加密算法加密密码(如常见:SHA-256强于MD5);

  7. 将用户ID,哈希密码和随机盐(用户ID绑定)存储到数据库中(避免使用通用密码并构建特定的彩虹表).

现有用户登录:

  1. 首先在服务器端生成RSA密钥(存储在会话中);

  2. 将公钥发送给客户;

  3. 将公钥存储在javascript变量中;

  4. 在所有后续请求中使用此密钥加密数据并发送到服务器;

  5. 使用存储在会话中的私钥来解密服务器端的用户帐户和密码;

  6. 使用用户帐户从数据库中获取哈希密码和salt;

  7. 使用获得的随机盐,使用单向加密算法加密密码;

  8. 将加密密码与从数据库中获取的哈希密码进行比较;

  9. 确定登录成功或失败.

我是这方面的新手,我确实需要你的一些专业建议?该计划足够安全吗?非常感谢.

javascript php encryption ssl

1
推荐指数
1
解决办法
1084
查看次数

标签 统计

ssl ×2

ajax ×1

authentication ×1

encryption ×1

javascript ×1

jquery ×1

php ×1

rest ×1