【USENIX 2020】That Was Then, This Is Now

  • 作者
  • Abstract
  • Introduction
  • Background
    • Password Managers
    • Related work 相关工作
  • Analyzed Password Managers 被分析的密码管理器们
    • APP
    • Extension
    • Browser
  • 密钥生成器
    • Settings and Features
    • 密钥收集和分析
    • 结果
  • Password Storage 密钥存储
    • Password Vault Encryption 密码库加密
    • Metadata Privacy 元数据的隐私
    • Password Autofill 密码的自动填充机制
    • User Interaction Requirements 用户交互需求
    • Autofill for iframes 自动填充iframe
    • Fill Form Differing from Saved Form
    • 非标准的登录字段
    • Potential Mitigation 潜在的缓解
    • Web Vault Security & Bookmarklets
  • Discussion
    • Recommendations
    • Future Work
  • To-Do-List

作者

Abstract

本篇论文作者对密码管理器的安全问题进行了大规模研究。

Introduction

现在,每个人都拥有很多个账户,由于密码非常难记,许多人选择了仅使用一个密码,这是非常不安全的。密码管理器解决了这一问题。密码管理器可以帮助用户生成强壮的密码,并保存管理。密码管理器已有5年的发展历史,有很多学者研究了密码管理器的安全问题。但是没有研究人员能够回答当下密码管理器是否安全。

在本文中,作者对基于浏览器的密码管理器进行了评估工作。作者发现,尽管密码管理器在过去的五年之中有了很大的发展,但是仍然存在着有意义的安全问题。

作者的贡献:

  1. 作者发现密码管理器在过去的五年中有了很大的发展。
  2. 作者的工作是第一个对密码管理器中生成的密码进行评估的工作。
  3. 作者做了迄今为止最全面的研究。
  4. 早起也有相关的工作,作者复现了全部或者部分他们的工作,并发现之前工作中发现的有关密码管理器的问题已经被改进,但是仍然存在潜在的攻击。

Background

Password Managers

作者总结了密码管理器的三个优势。

  1. 减轻了记忆用户名和密码的负担。
  2. 对于每个网站都可以使用不同的密码。
  3. 可以抵御线上和线下的猜测攻击。

Related work 相关工作

针对密码管理器,有以下主要的关注方向。

  1. WEB 安全
  2. 自动填充 Autofill 当网站存在注入或XSS漏洞是,未经用户许可的情况下自动填充用户信息可能会泄露用户的隐私。
  3. Storage 由于很多密码管理器在本地没有以加密的形式保存用户的信息,因此可能会造成用用户被主动攻击或者被动攻击的攻击者攻击。
  4. Usability 很多用户使用密码管理器是因为其方便,而不是因为其安全性。
  5. Relation to This Work 作者的工作是第一个研究密码管理器中对生成密钥是否健壮的工作,也是第一个同时考虑整个密码管理器生命周期的工作(生成密钥,保存密钥,自动填充密钥)。

Analyzed Password Managers 被分析的密码管理器们

作者在这一节主要介绍了被分析的密码管理器们。

APP

作者分析了基于应用程序的密码管理器,该机制避免了电子仓库和设置的云同步,而倾向于手动同步以提高安全性。

Extension

  1. 扩展类应用程序缺少清除剪切板的功能,因此如果用户使用扩展类密码管理器,则用户可能受到可以窃取剪切板信息类的攻击。
  2. 没有扩展类密码管理器具有同步的功能(synchronizing),因此用户使用新的设备时需要手动更新内容。
  3. 可能会有安全的风险,如当浏览器关闭时没有自动登出。
  4. 每个扩展密码管理器的用户体验基本相似。

Browser

浏览器密码管理器缺少很多功能。Firefox提供了一个主密码来限制对密钥的访问。由于这些密码管理器没有同步设置,也永远不会将密码复制到剪贴板,因此很多功能不适用。

密钥生成器

密钥生成是密码管理器的第一个环节,作者首先考察了密钥管理器生成的密钥的质量。作者将本地的随机数生成算法/dev/random和SPG(这是在谷歌上搜索“密码生成器”时的第一个搜索结果。,这也行~)

Settings and Features


表二列出了密码管理器的设置情况。
作者注意到,在大多数密码管理器中常见的一个问题是,它们将最后一次使用的设置保存为新的默认设置。而在一般情况下,对于用户来说对于他们只有两个原因修改管理器设置:

  • 建立安全的默认设置
  • 当新建密码时被告知现在的设置的安全性低于默认设置的安全性

密钥收集和分析

  1. 收集
    作者使用了各种各样的方法来收集这些密钥生成器生成的密钥:现有的命令行接口(Bitwarden,作者的python工具),修改源代码以添加一个命令行接口(Chrome, KeePassX, KeeyPassXC),或使用Selenium (1Password X, LastPass Dashlane, RoboForm)。对于Safari即使作者手动收集了该密码生成器的密码,也从中得到有效的结果。

    作者将收集到的信息分为了以下几类:letters (l), letters and digits (ld), letters and symbols
    (ls), symbols and digits (sd), and all four classes together (all)—and password length—8, 12, and 20 characterslong—in order to determine if these options had any effect on the randomness of generated passwords.

  2. 验证
    在收集完这些信息,作者开始检查其随机性和可猜想性。使用的方法如下:

    1. Shannon entropy香农熵 香农熵被用来检查生成器生成的字符的频率的不正常性。
    2. χ2\chi^2χ2 检验 是一个简单的统计检验来确定两个分布之间的差异是否可以用随机机会来解释。
    3. zxcbvn是由Daniel Wheeler创建的工具,被用来检测字典单词或者简单的样式单词是否出现的密码中。
    4. 为了检测生成的密码是否具有比zxcvbn所能检测到的更微妙的模式,作者使用了Melicher等人构建的神经网络密码分析仪
      虽然zxbcvn和递归神经网络都用于评估生成密码的随机性,但它们也提供了猜测次数的近似值,这个可以被用作线上线下攻击尝试次数的评估。

超过10610^6106次猜测就可以被认为是可以抵御线上猜测攻击,而超过104010^{40}1040次猜测可以被认为是低于线下攻击。

结果

  1. 密码健壮性

    作者分析发现,当密码超过12个或者更长时,便可抵御线上线下猜测攻击。但是密钥管理器不会创建相同的强度,当密码长度为8时,会有小的波动,这时候可能不会抵御离线猜测攻击。(注意到所有的密钥生成器生成的密钥可以抵御线上猜测攻击)

    上表展示了当密钥长度为12时,密钥生成器使用的字符。
  2. 随机性
    作者在使用χ2\chi^2χ2检测方法时,在生成的密码中发现几个非随机行为实例
    特征:密码中只要有一个来自每个字符集。
    当特征不符合时,密码中出现任何给定字符的概率与密码的长度和所有启用的字符集的字符数成正比。计算如下:

    当特征符合时,概率也与该字符集中的字符数成正比。计算如下:

    这将导致来自较小字符集的字符的字符频率更高。这时候这种不均匀性可以使用 χ2\chi^2χ2 测试计算。
    作者发现RoboForm (l)是不均匀的。
  3. 随机性但是是弱密码
    在对zxcbvn结果的分析中,作者发现偶尔所有密码管理器都会生成异常弱密码,其示例如表5所示。

Password Storage 密钥存储

在这一节,作者关注了两点,第一,密钥在本地存储时是否被加密;以及主密钥变化时,对密钥在本地存储状态的影响。结果如下。

Password Vault Encryption 密码库加密

  1. app密码管理器和扩展密码管理器都使用了AES-256进行加密,加密轮数除了Dashlane和RoboForm外都是100000轮。主密钥生成,除了Dashlane都使用了PBKDF2机制。对于主密钥的要求只有Dashlane对长度和内容都做了要求,其他只是对长度做了要求。
  2. 对于浏览器密码管理器,除了firefox有自己的加密机制,其他都使用操作系统。除了Firefox有主密钥,其他是没有主密钥的。
  3. 作者在这里强调,我们或许也应该关注一下OS提供的加密机制是否安全。(这篇文章没有)

Metadata Privacy 元数据的隐私

这里元数据作者包含与密码相关的用户隐私。
值得关注的是:

  1. 没有对用户设置进行加密的,可能会被攻击者篡改设置,造成密码泄露。
  2. Dashlane对网站的url进行了加密,但并不加密与这些url关联的网站图标,这让攻击者能够推断出某个用户拥有哪些网站的账户。所有基于扩展的密码管理器都会泄漏用于登录密码管理器的电子邮件地址。
  3. 基于浏览器的密码管理器会邪路与密码有关的更多信息。例如这个密码是谁在什么时间创建的。

Password Autofill 密码的自动填充机制

在这一节作者在之前工作的基础上研究了密码的自动填充机制。结果如下表所示

User Interaction Requirements 用户交互需求

存在的安全问题:当无需告知用户自动填充密码时,密码可能会因自动填充被注入在网页中或者XSS攻击者窃取。
作者发现:除了Safari和KeePassC在任何情况下都会请求用户允许,其他在某些情况下在没有经过用户请求的情况下自动填充了用户的密钥。这些情况包含使用错误证书的HTTPS和HTTP协议的情况。

Autofill for iframes 自动填充iframe

存在的安全问题:无论是否有用户交互,自动填充iframe都是不安全的。例如clickjack攻击,它允许攻击者利用受损坏的页面中的iframe,采取欺骗用户的措施使用户自动填充他们的密钥,以达到窃取的目的。更糟糕的是,如果密码管理器允许跨域iframe自动填充,则不需要用户交互,就可窃取用户在所有网站上的密码了。

对于点击劫持和捕获攻击,用户必须首先访问一个恶意网站,然后该恶意网站才能发起攻击,但这通常并不是攻击者的主要障碍。 在最坏的情况下,如果系统容易受到攻击的攻击,并且攻击者可以访问用户的WiFi接入点(例如,在酒店或机场),从而使他们可以轻松地进行网络注入攻击,那么当用户查看被入侵的访问点的网络登录页面时,所有用户的凭据都可能被秘密窃取。

Fill Form Differing from Saved Form

作者会保存用户曾经填写过的表格密码的内容,并帮助用户再次填充表格密码时,在在检查完表格与上次表格相同时填充上次的密码。 这些类型的检查有助于确保用户以不妥协的形式输入密码,其安全性等同于他们首次保存密码时所使用的形式。
在这里,完整的黑圈圈指的是不允许或者提醒用户填充的表格与上次不一样;如果密码管理器在出现差异时需要用户交互,则给出半个黑圈圈,但前提是无法禁用该用户交互(在Bitwarden和RoboForm中可能如此)。作者考虑了本次填充的表格和上次填充的表格的不同情况:

  • 表格所在网页的URL不同时
  • HTTPS的证书不正确
  • 使用了HTTP协议
  • 以及其他有关表格的属性

非标准的登录字段

对于并不是标准的字段,作者考察了两种情况:

  • type=“text”
  • 一个简单的表格,如只有text和password字段,这种情况会大大减少攻击者的工作量。

Potential Mitigation 潜在的缓解

作者介绍了主要的缓解注入攻击窃取自动填充的方法——将一个随机数填充到网站中作为密码。当随机数即将通过网络传输到网站时,密码管理器将用真实密码替换随机数。这种方法使网页上的JavaScript无法访问用户密码;同时密码管理器也可以通过检查密码是否真的传输到网站中,或者表单是否真的提交到网站中来判断是否被窃取。

作者检查了这些密码管理器的配置看他们是否做了这些工作,但是没有一个做到。

作者还提到了可以在网站中设置autocomplete属性为off,来阻止自动填充,但是没有一个密码管理器遵守这项规则。

Web Vault Security & Bookmarklets

有研究者表明在线密码管理库可能会放大自动填充的问题。这些Web Vault既包括密码库的独立接口,又充当基于扩展的密码管理器的同步后端。这可能会造成CSRF攻击,可以通过替换身份绑定的URL,这允许用户身份被自动填充在一个恶意构造的网站上;或者XSS攻击,一次性将Web Vault全部偷走。

作者探索了基于扩展的密码管理器是否会受到CSRF攻击,作者发现1Password X, Bitwarden, DashLane, 和LastPass都使用了CSRF标签用于防止CSRF攻击,而RoboForm则没有受用CSRF标签,因此可能受到CSRF攻击。

作者还探索了在线密码管理库对XSS攻击的敏感性。作者检查了CSP标头。

最后,我们检查了基于扩展名的密码管理器是否仍然具有易受攻击的基于书签的部署选项(用于支持移动设备)。

Discussion

作者首先总结了一下上面的发现,说了现在比较进步的地方,然后说了不足的地方。
建议不要用firefox的密码管理器。
作者还建议用户避免使用基于浏览器的密码管理器,而转而使用基于应用程序和扩展的密码管理器,因为后者通常具有更多功能,更安全地存储密码,并拒绝在跨域iframe中填充密码。
使用基于应用程序和扩展名的密码管理器,用户仍然需要确保正确配置它们。

Recommendations

  1. Filter weak passwords
  2. Better master password policies
  3. Safer autofill.

Future Work

  1. Browser-Supported Password Managers 当前,身份验证是浏览器中的第二等公民。未来的研究应该检查浏览器如何更好地支持基于密码的身份验证,例如,使基于密码的身份验证接口成为浏览器实现的一流HTML元素,以确保正确处理密码。

    1. 生成一个nonce来自动填充密码,当密码被发送到网站时,浏览器将用密码替换该密码
    2. 为密码管理员提供对系统密钥环(例如macOS密钥环,Windows Vault)的访问权限,从而为他们提供一种更安全和标准化的机制来存储帐户凭据;
    3. 处理自动填充的用户交互组件,并确保它是clickjack弹性的
    4. 描述网站密码策略的HTML属性,允许密码管理器生成网站可接受的密码
  2. Research-Derived Character Sets. 密码管理器使用不同的字符集来生成密码,不同的字符集在允许的符号和删除的不可用字符上有很大的不同(例如,难以记住,难以区分)。我们提倡以数据驱动的努力来建立标准化的字符集。
  3. HTML-Supported Password Generation 塔哈诺(Tajano)等 [30]建议将HTML属性添加到帮助密码管理器中,以识别生成密码时要使用的策略。
  4. Mobile Password Managers 有必要对移动密码管理器的安全性进行类似的分析。

To-Do-List

  • .NET平台 && QT框架
  • 香农熵
  • χ2\chi^2χ2
  • key derivation function (KDF)
  • iframe攻击 clickjack
  • harvesting attacks
  • bookmarklet-based deployment

4.9 论文笔记 |【USENIX 2020】That Was Then, This Is Now相关推荐

  1. 论文笔记 EMNLP 2020|Graph Transformer Networks with Syntactic and Semantic Structures for Event Argument

    文章目录 1 简介 1.1 创新 2 方法 3 实验 1 简介 论文题目:Graph Transformer Networks with Syntactic and Semantic Structur ...

  2. 论文笔记 EMNLP 2020|Edge-Enhanced Graph Convolution Networks for Event Detection with Syntactic Relation

    文章目录 1 简介 1.1 动机 1.2 创新 2 背景知识 3 方法 4 实验 1 简介 论文题目:Edge-Enhanced Graph Convolution Networks for Even ...

  3. 论文笔记 EMNLP 2020|Resource-Enhanced Neural Model for Event Argument Extraction

    文章目录 1 简介 1.1 动机 1.2 创新 2 方法 3 实验 1 简介 论文题目:Resource-Enhanced Neural Model for Event Argument Extrac ...

  4. 论文笔记 EMNLP 2020|Event Extraction by Answering (Almost) Natural Questions

    文章目录 1 简介 1.1 动机 1.2 创新 2 方法 3 实验 1 简介 论文题目:Event Extraction by Answering (Almost) Natural Questions ...

  5. 论文笔记 COLING 2020|Joint Event Extraction with Hierarchical Policy Network

    文章目录 1 简介 1.1 动机 1.2 创新 2 背景知识 3 方法 4 实验 5 总结 1 简介 论文题目:Joint Event Extraction with Hierarchical Pol ...

  6. 标签平滑论文笔记:2020《When Does Label Smoothing Help?》

    标签平滑 介绍 实验1:标签平滑作用 实验2:针对ECE与温度缩放进行对比(作用相近) 实验3:标签平滑对知识蒸馏影响(变差) 实验3知识蒸馏:互信息I(X;Y) 链接 介绍   看成距离:   这里 ...

  7. 论文笔记:3D-CVF(ECCV 2020)

    论文笔记:3D-CVF: Generating Joint Camera and LiDAR Features Using Cross-View Spatial Feature Fusion for ...

  8. 光流 速度_[论文笔记] FlowNet 光流估计

    [论文笔记] FlowNet: Learning Optical Flow with Convolutional Networks 说在前面 个人心得: 1. CNN的光流估计主要是速度上快,之后的v ...

  9. 图像内复制粘贴篡改取证matlab_[论文笔记] 篡改检测:RGB-N

    [论文笔记] Learning Rich Features for Image Manipulation Detection 说在前面 个人心得: 第一次关注篡改检测,最常见的篡改方式是拼接.复制移动 ...

最新文章

  1. 监控系统常见的故障及解决方法.
  2. callee与caller
  3. 帮助创建未来的 .NET 客户端开发
  4. 让文本输入框只能输入数字
  5. fixture.detectChange如何通过Angular zone执行其异步逻辑的
  6. [html] HTML5如何监听video的全屏和退出全屏?
  7. C++进阶教程之预存处理器
  8. tomcat7的安装与maven安装
  9. ARM基础相关寄存器的讲解-LPC21XX
  10. 使用Git上传文件至Github中
  11. 从Tiny-4412开箱到启动Linux内核
  12. python 在线ide搭建_从头开始制作OJ-在线IDE的搭建
  13. matlab智能算法30个案例分析源码,MATLAB智能算法30个案例分析 源代码
  14. mt4和mt5的区别
  15. bios找不到硬盘模式选项如何解决?
  16. python的循环语句有哪些_python的循环语句
  17. 华科计算机组成原理 存储系统实验 汉字字库Logsim实验
  18. 日常无用功之windows把整个D盘改成了桌面还原
  19. 经济危机===丐帮也裁员!!!(各企业裁员统计)
  20. “衡水中学模式”深度解析

热门文章

  1. 【原创】Python 懂车帝口碑分爬虫
  2. 【幻灯片制作软件】Focusky教程 | 上传幻灯片演示文稿到网站
  3. 2017 • AI芯片元年
  4. 【报告分享】新国货彩妆洞察白皮书-蓝色光标(附下载)
  5. Q99语言复读机(免费体验版)快捷键版
  6. vue 不生效 打包 样式_解决在vue项目中webpack打包后字体不生效的问题
  7. 设计模式之原型模式详解(附应用举例实现)
  8. bim机电软件的【快速立管】功能,快速立管
  9. 记录一下笔记本黑苹果安装过程(型号 蓝天n95tp6 osx15.4)
  10. Dev-C++使用技巧2(亲测)(更改字体和颜色、自动保存、快捷键选项、一键排版)