专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

关于网页输入密码安全的思考 网页输入密码提示错误

ins518 2024-10-04 23:38:05 技术文章 9 ℃ 0 评论

PC端输入密码

  • · PC具有公共属性,可能在多种场所甚至被多人使用,但你输入密码是私密性的;
  • · PC固定在特定的位置,无法随意移动(早期PC时代,非笔记本横行的现在);
  • · PC显示区域足够大,光用脑袋是不能够完全挡住偷窥者的。鉴于以上这些属性,PC端在用户输入密码时应给予适当的保护;
  • · 由于长时间敲击键盘进行输入练习,键盘的物感形成了肌肉记忆,输入密码(敲击键盘)的过程成为一种条件反射(知觉-行动链),用户在输入时更多的是依靠手指上的感觉,而非有意识的去关注(所以,也就不存在识别了),人体肌肉获得记忆的速度十分缓慢,但一旦获得,其遗忘的速度也十分缓慢,并且肌肉记忆的精确度均很高,用户在PC上输入密码的错误率也很低。

安全机制

  • · 使用https;
  • · 前端加密,后端根据使用时再加密;
  • · 本地加密-Activex控件;
  • · 硬件加密-银行。

风险与问题

  • · 撞库;
  • · 恶意注册;
  • · replay 攻击-重复的会话请求就是重放攻击;

重放攻击的防御

  • · 时间戳验证请求时加上客户端当前时间戳,同时签名(签名是为了防止会话被劫持,时间戳被修改),服务端对请求时间戳进行判断,如超过5分钟,认定为重放攻击,请求无效。时间戳无法完全防止重放攻击。
  • · 序号顾名思义,在客户端和服务端通讯时,先定义一个初始序号,每次递增。这样,服务端就可以知道是否是重复发送的请求。
  • · 挑战与应答的方式我们一般采用这种方式来防御重放攻击。客户端请求服务器时,服务器会首先生成一个随机数,然后返回给客户端,客户端带上这个随机数,访问服务器,服务器比对客户端的这个参数,若相同,说明正确,不是重放攻击。这种方式下,客户端每次请求时,服务端都会先生成一个挑战码,客户端带上应答码访问,服务端进行比对,若挑战码和应答码不对应,视为重放攻击。
  • · Https防重放攻击对于https,每个socket连接都会验证证书,交换密钥。攻击者截获请求,重新发送,因为socket不同,密钥也不同,后台解密后是一堆乱码,所以https本身就是防止重放攻击的,除非能复制socket,或者进行中间人攻击。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表