PaperReading
Paper Reading
Key words
- Decentralizing trust 去中心化信任 分散信任
- secure multi-party computation (SMPC) 安全多方计算
- distributed trust 分布式可信
- cryptocurrency custody 加密货币托管
- xx hosted 托管
- cryptocurrency custody 加密工具
- impersonate 冒充
- signing keys 签名密钥(代表数字资产的所有权)
- MPC primitives MPC原语
- strawman 稻草人
- xxx compromised 妥协了 指被损害
- trust domains 信任域
- security properties 安全属性
- credential 身份验证讯息(凭证)
- SMPC
- collude 串通
- invoke 调用
- impersonate 模仿
- compromise 使妥协,引申义为危害
speacil protocol or abbreviation
- U2F(Universal 2 Factor) 用户在浏览器上登陆在线服务,输入用户名和密码后,轻按 U2F 安全密钥上的按钮即可完成二次验证。使用专门的 USB 或 NFC 设备来加强并简化双重身份验证。(https://zhuanlan.zhihu.com/p/47577107 )
IEEE Symposium on Security and Privacy
MPCAuth: Multi-factor Authentication for Distributed-trust Systems
目前分布式可信系统会把关键信息分布式存储
- 从而会多次认证消耗资源(易用问题)
- 敏感暴露给多个服务器,有更多的攻击手段(隐私问题、安全问题)
一个多因素认证系统:为了分布式可信应用创立,可以解决以上问题
这个系统能让客户端一次向N个服务器独立认证,提供文件(信息)隐藏功能
可实际应用于加密货币保管和协作机器学习领域、 并有利于未来采用可分布式的应用
信息分散存储,托管给多个服务器,被攻击时利用加密工具(如SMPC)联合执行私有计算避免成为攻击的中心
困境
- 如果客户端向一个被多服务器信任的主服务器进行验证,那么攻击者可以冒充客户端恢复信息
- 如果需要向多个服务器进行独立认证,需要做很多次工作
- 易用性和分布式安全很难同时保障
应用
- 加密货币托管(签名密钥代表数字资产的所有权,作为秘密被共享存储在多个服务器上,交易的时候利用共享签名密钥产生数字签名)
- 敏感组织信息的协作训练/分析(两个公司希望在对方数据集上进行协作,有些事敏感信息,利用SMPC联合训练or分析)
对于易用问题与隐私问题的讨论
- 易用问题(在安全的前提下)
- 不能是一个主服务器和很多副服务器,破坏了分布式信任的初衷(主服务器被破坏,攻击者可以作为客户端与副服务器进行认证,利用客户端身份发布未经授权的交易)
- 为了保持安全,客户端可以向多个服务器进行独立认证,但此时客户端必须执行多次工作,导致体验很差
- 构建客户端应用程序自动进行验证部分身份信息,不适用于其他信息,但这个方法不足以解决以上问题
- 隐私问题(安全问题)
- 客户端的factors(上面翻译成信息,其实是要素)会泄露用户的信息
- 集中式服务器只有一个服务器学习客户端配置信息,分布式系统中会有多个
- 本质上,会有更多攻击手段(伏笔Section VI)
- 易用问题(在安全的前提下)
MPCAuth
- 只用做一次认证的工作、隐藏认证信息
- 支持使用客户端习惯的认证要素(伏笔Section IV)
- 利用底层(相同的安全属性 相对于那些认证信息)身份认证协议,保障即使N-1个服务器全部被攻击的情况下的安全性
insights and techniques
- One logical server, N physical servers
- 传统认证工作流,服务端发送质询,客户端响应
- 这些物理服务器充当一个逻辑服务器发送联合质询
- 因为这些服务器彼此不信任,因此需要独立认证客户端的响应
- 问题:这些服务器产生一个集体私密质询,在发送的SMS或EMAIL内但是任何服务器都没法知道其中的秘密
- 给定分布式信任的前提下,哪个服务器承担发送职责?
- 如何在安全的分布式环境下运行SMTP协议orSMS协议
- 使得运营商能够接受
- MPCAuth系统中的N个服务器运行在SMPC的一个逻辑服务器中
- 产生联合质询
- 无论是短信还是EMAIL都运行各自协议
- 运行TLS协议来加密电子邮件或短信的通信信道
- 都在SMPC的操作中
- MPCAuth系统的SMPC能做到安全,即使在N-1台服务器被入侵
- SMPC出来的是TLS加密并认证的流量
- 因为内容被TLS保护,所以任意服务器都可以转发给运营商
- SMPC内部的加密TLS隧道
- TLS:包含很多密码学工具的复杂协议
- 用现成的TLS库会贵8倍
- 本系统中的TLS很高效,也有很多基于TLS本身的特点并与wolfSSL库集成 整合
- 伏笔 Section V-E
- 在SMPC中隐藏客户端文件
- 传统集成系统中很难保护隐私,需要邮箱和手机号发送email和message
- 利用预先存在的分布式信任的基础设施(原始协议or系统)实现文件隐藏
- MPCAuth对数据分割在N个服务器上
- 当N个服务器执行SMPC发送email或sms时,在SMPC内部组装,然后用TLS加密
- 发送网络数据包的服务器需要知道电子邮件的供应商
- 没有一个服务器看得到明文文件(伏笔 定义II.3)
- 后续讨论每个要素如何达到目标属性
- 常见身份认证信要素的安全、实用构造
- 除了email 和 SMS 还支持 U2F 安全问题和服务器端生物识别?
- 这些信息在分布式环境下都遭遇了实用性和隐私性的问题
- 在威胁模型之下 客户端安全属性不会被削弱
- 可能会有恶意服务器收到客户端相应并伪装客户端和其他的服务器进行通信
- 伏笔Seciton II的CD
- One logical server, N physical servers
贡献 Contributions
- 提出了一种新的分布式信任应用的多因素认证系统
- 认证一次就可以独立向N个服务器进行认证
- 为了广泛的认证因素设计了安全、实用且保护隐私的建设
- TLS-in-SMPC作为子模块支持部分因素
- 提供了有效的实现和实验评估我们所有的认证协议,并证明其实用性
- 比没有系统优化的协议快8倍
- N=5 只需要1.81s就可以完成TLS握手并传送email的负载
- 很好的避免TLS超时 并 成功和未修改的TLS电子邮件服务器通信
- (因为系统中的TLS协议被修改过)
- 提出了一种新的分布式信任应用的多因素认证系统
系统概述 Overview
- 系统设置和信任模型
- MPCAuth的部署由一组N台服务器和许多客户端组成。这些服务器共同托管需要分布式信任应用程序(例如,加密货币托管,协作学习)
- 客户端需要向这些服务器进行身份验证才能使用服务。这N个服务器托管在不同的信任域下。
- 系统在多因素认证(MFA)模型下运行
- 注册至少需要两个不同的因素,允许客户端灵活选择其他无密码身份验证因素作为其第一因素
- 客户端必须提供唯一标识符(例如,用户名)到MPCAuth
- MPCAuth中的每个因素的协议独立于其他因素运行,使得各个协议能够在MFA之外的身份验证模型中单独使用
- 容忍尝试模拟客户端的不可信身份验证提供程序,只要它们不全都串通
- 利用额外的因素进行账户追回
- 每个客户端可以下载无状态客户端应用或者用Web账户来加入协议
- 仅作为客户端和服务器之间的接口,不需要其他的应用权限
- 支持要素
- Email/SMS、U2F、安全问题/密码、生物特征
- 工作流
- Enrollment
- 用Client app来和N个服务器沟通
- 如果是新的客户端就要提供特别的身份认证(例如,用户名),新建账户
- 每个要素都会运行MPCAuth的认证协议
- 客户端通过了所有的要素检查就会在账户下保存相关的信息为未来认证
- Authentication
- 客户端提供特别身份认证,选择至少两个认证要素
- 每个要素(因子),服务端都会调用对应的认证协议
- 通过协议检查,就可以对N个服务器通过认证
- Enrollment
- MPCAuth的实际用途
- 提供数字资产托管服务的公司通过在N个服务器之间秘密共享其签名密钥来保护客户端的资产(数字资产)
- 当客户端授权交易时,服务器使用SMPC来联合产生具有签名密钥的数字签名
- 一些服务提供商保管所有资产,会维护这些服务器避免攻击中心
- 其他一些让外部机构维护服务器的子集,更多信任域
- 协作学习服务的公司各自维护自己的安装了SMPC软件的服务器(机器学习)
- 服务提供商可以提供充当可信第三方或直接参与SMPC协议的服务器
- 客户将是这些机构的员工,负责上传数据和授权合作培训/分析
- 客户端需要对所有信任域进行身份验证,以防止中心攻击点
- 提供数字资产托管服务的公司通过在N个服务器之间秘密共享其签名密钥来保护客户端的资产(数字资产)
- 威胁模型
- N个部署了分布式信任应用程序的服务器,很多可信的用户使用,一个恶意攻击者
- 恶意攻击者尝试模拟这些可信的客户端,最多可以危害N-1台服务器
- 攻击者可以观察并修改所有的(已被危害的服务器的)输入、状态、网络流量
- 攻击者无法控制那个剩余的可信客户端,但可以观测他和已被攻陷的服务器的流量
- 在email or SMS 认证中有认证器附加托管的TLS服务,不被攻击者控制
- 假设可信客户端使用不被危害的客户端程序
- 客户端程序没有任何秘密信息,但必须从可信的来源获得???
- TLS保证攻击者无法观察到可信客户端之间的流量
- 安全目标
- 系统设置和信任模型
定义1:一个认证协议安全性质
- 正确性
- 压倒性的可能性:接受拥有要素凭证可信客户端
- 稳定性
- 压倒性的不可能性:接受没有安全凭证,但攻克了N-1个服务器的恶意攻击者
- 认证协议需要抵抗重放攻击
- 如果客户端以相同的响应向服务器进行身份验证,就会发生重放攻击
- 在此威胁模型下,如果(收到客户端响应的)恶意服务器比客户端更快的到达可信服务器, 那么可信的服务器会认为恶意服务器通过认证,而不是那个客户端
- 恶意服务器此时获得客户的关键秘密
- 为了防止,客户端要向每个服务器发送不同的认证
- C节会给出协议的定义、安全性证明、拓展服务等
- MPCAuth的安全性依靠 TLS-in- SMPC协议,定义了一个功能,可以对与可信的TLS服务器沟通的TLS客户端软件进行建模,基于这个功能,可以通过标准型的恶意安全定义来定义TLS-in- SMPC协议的安全性
- 正确性
定义2:TLS-in- SMPC协议的安全性
- PPT:非均匀概率多项式时间
- 有一个攻陷了N-1个服务器的恶意敌人
- 现实世界中有一个PPT敌人A,理想世界中就有个PPT敌人S
隐藏认证信息
- 不同类型认证因素有不同的隐私目标
- 对于知识or固有因素
- 对于涉及所有权的认证因素,如果服务器不能将客户端的应用帐户与拥有其的设备或对象相关联,则这些因素被认为是隐藏。
- 定义了信息隐藏属性,为了达到以下每一个认证要素
定义3:信息隐藏
- Email:攻击者不知道用户名(@之前的),但可能知道域名(@之后的)
- SMS:攻击者不知道手机号,但可能知道运营商
- U2F:攻击者不能把U2F的公钥和客户端关联
- Security questions & passwords:攻击者不知道安全问题的内容和答案(密码亦然)
- Biometric:攻击者不能知道客户端的生物信息
需要客户端对每个服务器提供一个特殊的身份认证,每个客户端都会明文存储,为了保证隐私,特殊身份认证(unique identifier)要和以上信息不同
- 传统上,就是登录的username,但如果username也忘了不是G了?
- 客户端无法求助于身份验证因素,因为这些都是被username索引的
- 伏笔:Section VI的恢复机制
虽然MPCAuth的信息隐藏协议增加了隐私性,也有很多限制需要考虑
- Email & SMS:不会隐藏全部,运营商和域名不会被隐藏,伏笔Section IV
- 没有隐藏认证给服务器的客户端IP
- 不隐藏客户端的访问模式,可以用来推断客户端行为的敏感信息
- future work 但有方法实现
模块:TLS IN SMPC
- 能够让N个服务器联合和未修改的TLS服务端建立一个安全的TLS链接
- 后续用语构建Email 和 SMS认证协议
- 在最新的TLS 1.3协议上进行构建
- 总览(Figure 2)
- 因为N个服务器彼此并不相信,所以都妹妹发解密通过TLS发送的业务
- N个服务器在SMPC中联合产生TLS客户端终端,由此可以和TLS服务器沟通
- 能够让N个服务器联合和未修改的TLS服务端建立一个安全的TLS链接
Silph: A Framework for Scalable and Accurate Generation of Hybrid MPC Protocols
- 相互不信任的各方可以在不公开共享数据的情况下进行协作的一种方法是使用安全多方计算(MPC)
- 提出了Silph框架:自动把高级语言写的程序进行优化;框架使用一种混合MPC协议:安全高效的混合了MPC的原语;编译速度提高30000倍,在数据库分析和机器学习负载上,达到或超过之前的工作3.6倍
MECHANISM DESIGN WITH PREDICTIONS
有n个jobs
$$
X_ij
$$
- Post title:PaperReading
- Post author:Picasun
- Create time:2023-09-24 17:14:02
- Post link:https://redefine.ohevan.com/2023/09/24/PaperReading/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.