跳到内容

用户隐私保护备忘单

简介

本 OWASP 备忘单介绍了网络开发者可以利用的缓解方法,以保护其用户免受可能试图损害其隐私和匿名性的大量潜在威胁和侵犯。本备忘单侧重于用户在使用在线服务时可能面临的隐私和匿名威胁,尤其是在社交网络和通信平台等情境中。

指南

强加密

任何处理用户身份、私人信息或通信的在线平台都必须通过使用强加密来保护。用户通信必须在传输和存储过程中加密。用户机密(如密码)也必须使用具有不断增加工作因子的强大、抗碰撞的哈希算法进行保护,以大大降低凭据泄露的风险以及实现适当的完整性控制。

为了保护传输中的数据,开发者必须使用并遵守 TLS/SSL 最佳实践,例如经过验证的证书、充分保护的私钥、仅使用强密码、向用户提供信息性和清晰的警告,以及足够的密钥长度。私有数据必须使用足够长度的密钥在存储中加密,并受到严格的技术和程序访问条件限制。用户凭据必须进行哈希处理,无论它们是否在存储中加密。

有关强加密和最佳实践的详细指南,请阅读以下 OWASP 参考资料

  1. 加密存储备忘单.
  2. 认证备忘单.
  3. 传输层安全备忘单.
  4. 密码学指南.
  5. TLS/SSL 测试.

支持 HTTP 严格传输安全

HTTP 严格传输安全 (HSTS) 是服务器设置的 HTTP 标头,它向用户代理指示只接受安全 (HTTPS) 连接,提示用户代理将所有不安全的 HTTP 链接更改为 HTTPS,并强制合规的用户代理通过拒绝任何用户不信任的 TLS/SSL 连接来安全失败。

HSTS 在流行的用户代理(如 Mozilla Firefox 和 Google Chrome)上得到平均支持。尽管如此,对于持续担心被监视和中间人攻击的用户来说,它仍然非常有用。

如果对所有用户强制实施 HSTS 不切实际,网络开发者至少应该给用户选择是否启用它的权利。

有关 HSTS 的更多详细信息,请访问

  1. 维基百科中的 HTTP 严格传输安全.
  2. HSTS RFC 的 IETF.
  3. OWASP Appsec 教程系列 - 第 4 集:严格传输安全.

数字证书绑定

证书绑定是将数字证书/公钥的预定义信息(通常是哈希值)硬编码或存储在用户代理(无论是网络浏览器、移动应用程序还是浏览器插件)中的做法,以便只使用预定义的证书/公钥进行安全通信,而其他所有证书/公钥都将失败,即使用户(隐式或显式)信任了其他证书/公钥也是如此。

绑定的优点包括:

  • 在 CA 泄露的情况下,被用户信任的受损 CA 可以为任何域颁发证书,从而允许恶意攻击者窃听用户。
  • 在用户被迫接受潜在恶意根 CA 的环境中,例如企业环境或国家 PKI 方案。
  • 在目标用户群体可能不理解证书警告,并且很可能允许任何无效证书的应用程序中。

有关证书绑定的详细信息,请参阅以下内容

  1. OWASP 证书绑定备忘单.
  2. HTTP 公钥绑定扩展 RFC.
  3. Tobias Gondrom:《保护 SSL 通道免受中间人攻击:未来技术 - HTTP 严格传输安全和证书绑定》.

紧急模式

紧急模式是受威胁用户在直接面临泄露账户凭据威胁时可以求助的一种模式。

赋予用户创建紧急模式的能力可以帮助他们在这些威胁中生存下来,尤其是在世界各地动荡的地区。不幸的是,世界各地许多用户都受到大多数网络开发者不了解或未考虑到的威胁。

紧急模式的例子包括:受困用户在受到威胁时可以删除数据、登录虚假收件箱/账户/系统,或者触发备份/上传/隐藏敏感数据。

要实施的适当紧急模式因应用程序类型而异。像 VeraCrypt 这样的磁盘加密软件可能会实施一种紧急模式,如果用户输入了他们的受困密码,该模式会启动一个虚假系统分区。

电子邮件提供商可能会实施一种紧急模式,隐藏预定义的敏感电子邮件或联系人,只允许阅读无害的电子邮件消息(通常由用户定义),同时防止紧急模式接管实际账户。

关于紧急模式的一个重要注意事项是,它们必须不容易被发现,如果可以的话,甚至完全不被发现。处于受害者紧急模式中的对手必须没有任何方法,或者尽可能少的方法,来发现真相。这意味着一旦进入紧急模式,大多数非敏感的正常操作必须被允许继续(例如发送或接收电子邮件),并且从原始紧急模式内部创建进一步的紧急模式必须是可能的(如果对手试图在受害者的紧急模式上创建紧急模式并失败,对手就会知道他们已经处于紧急模式中,并可能试图伤害受害者)。

另一种解决方案是防止从用户账户生成紧急模式,而是使其更难被对手欺骗。例如,它只能在带外创建,对手必须无法知道该特定账户已经存在紧急模式。

紧急模式的实施必须始终旨在迷惑对手,阻止他们访问受害者的实际账户/敏感数据,并防止发现特定账户的任何现有紧急模式。

有关 VeraCrypt 隐藏操作系统模式的更多详细信息,请参阅

远程会话失效

如果用户设备丢失、被盗或被没收,或怀疑存在 cookie 盗窃;用户能够查看其当前的在线会话并断开/使任何可疑的残留会话失效,特别是那些属于被盗或被没收设备的会话,可能会非常有益。远程会话失效也有助于用户怀疑其会话详细信息在中间人攻击中被盗的情况。

有关会话管理的详细信息,请参阅

允许匿名网络连接

匿名网络,例如 Tor 项目,为世界各地动荡地区的用户提供了逃避监视、访问信息或打破审查障碍的绝佳机会。通常,问题地区的活动家会使用此类网络向世界其他地区报告不公正或发送未经审查的信息,尤其是社交网络、媒体流网站和电子邮件提供商等媒体。

网络开发者和网络管理员必须竭尽全力使用户能够从这些网络后访问服务,并且任何针对此类匿名网络的政策都需要就其对世界各地人民的影响进行仔细重新评估。

如果可能,应用程序开发者应尝试集成或启用其应用程序与这些匿名网络的轻松耦合,例如支持 SOCKS 代理或集成库(例如 Android 的 OnionKit)。

有关匿名网络及其提供的用户保护的更多信息,请参阅

  1. Tor 项目.
  2. I2P 网络.
  3. OnionKit:提升您的 Android 应用网络安全和加密.

防止 IP 地址泄露

在用户保护范围内,防止用户 IP 地址泄露至关重要。任何托管外部第三方内容(如头像、签名或照片附件)的应用程序;都必须考虑允许用户阻止在应用程序页面中加载第三方内容的好处。

如果例如可以在用户的动态或时间轴中嵌入第三方、外部域的图像;攻击者可能会通过在其域上托管该图像并监视该图像的 HTTP 请求来发现受害者的真实 IP 地址。

许多网络应用程序需要用户内容才能运行,这作为业务流程是完全可以接受的;然而,建议网络开发者考虑给用户提供阻止外部内容作为预防措施的选项。这主要适用于社交网络和论坛,但也可适用于基于网络的电子邮件,其中图像可以嵌入到 HTML 格式的电子邮件中。

HTML 格式的电子邮件中包含第三方图像也存在类似问题,但大多数电子邮件客户端和提供商默认阻止加载第三方内容;这为用户提供了更好的隐私和匿名保护。

诚实与透明

如果网络应用程序无法为用户提供足够的法律或政治保护,或者如果网络应用程序无法防止敏感信息(例如日志)的滥用或泄露,则必须以清晰易懂的形式向用户告知真相,以便用户能够就他们是否应该使用该特定服务做出明智的选择。

如果法律允许,请告知用户他们的信息是否被外部实体要求删除或调查。

诚实对于在网络应用程序及其用户之间建立信任文化大有裨益,它使世界各地的许多用户能够仔细权衡他们的选择,防止对世界各地不同地区的用户造成伤害。

有关安全日志记录的更多见解,请参阅