浅析操作系统中敏感数据处理与密钥管理

点击蓝字 关注我们

浅析操作系统中敏感数据处理与密钥管理

浅析操作系统中敏感

数据处理与密钥管理

DPAPI (Data Protection API)和GNOME Keyring 是两种不同的技术,分别用于Windows和Linux操作系统中用于管理和处理敏感数据(如密码和加密密钥)。DPAPI用于Windows,而GNOME Keyring用于Linux。它们各自提供了安全存储和检索加密数据的机制,并通过处理加密算法和管理加密密钥来简化开发者的加密过程。



浅析操作系统中敏感数据处理与密钥管理

DPAPI 

(Data Protection API)

浅析操作系统中敏感数据处理与密钥管理

1

平台

浅析操作系统中敏感数据处理与密钥管理

DPAPI是Microsoft开发的,专用于Windows操作系统的一个API。它允许应用程序和服务安全地存储和检索加密的数据,如密码、密钥和其他敏感信息。

2

功能

浅析操作系统中敏感数据处理与密钥管理

加密和解密:DPAPI可以用来加密数据,如密码和个人证书的私钥,这些数据只能由同一个用户或系统账户访问。

保护机制:使用用户的登录凭据或机器密钥来加密数据,保证数据的安全性。

透明性:对开发者友好,简化了加密过程,开发者不需要直接处理加密算法。

密钥管理:自动管理加密密钥,减少密钥丢失或滥用的风险。

3

举例

浅析操作系统中敏感数据处理与密钥管理

当用户在 Windows 操作系统上使用 Google Chrome 浏览器并选择让浏览器保存密码时,Chrome 会利用 DPAPI 来加密存储这些密码。具体过程如下:

1. 密码加密:Chrome 浏览器在保存用户密码时,会将密码进行加密存储到SQLite数据库中,使用一个内部生成的密钥(通常与用户账户相关联)对密码进行加密。

用户密码存储位置C:UsersusernameAppDataLocalGoogleChromeUser DataDefaultLogin Data,存储的数据结构:

浅析操作系统中敏感数据处理与密钥管理

2. 使用 DPAPI 加密密钥:这个用来加密密码的密钥本身会被进一步使用 DPAPI 加密。DPAPI 利用用户的登录凭据作为加密材料,这意味着只有当该特定用户登录时,这些密码才能被正确解密。

DPAPI对加密密码的密钥进一步加密,密钥密文存储位置C:UsersusernameAppDataLocalGoogleChromeUser DataLocal State,保存在对应encrypted_key字段,密文为base64编码形式:

浅析操作系统中敏感数据处理与密钥管理

Base64解码后密文数据如图:

浅析操作系统中敏感数据处理与密钥管理

3. 存储加密数据:加密后的密码以及加密密钥被存储在本地的 Chrome 数据库中,通常是用户配置文件的一部分。由于密钥受到 DPAPI 的保护,即使数据库被非法访问,攻击者也难以直接读取到明文密码。

4. 解密流程:当用户再次访问需要密码的网站时,Chrome 会通过 DPAPI 解密之前加密的密钥,然后使用这个密钥来解密密码,从而实现自动填充登录信息的功能。

访问SQLite数据库,在用户登录的前提下,可以读取数据库中存储的明文密码信息:

浅析操作系统中敏感数据处理与密钥管理
浅析操作系统中敏感数据处理与密钥管理


浅析操作系统中敏感数据处理与密钥管理

GNOME Keyring

浅析操作系统中敏感数据处理与密钥管理

1

平台

浅析操作系统中敏感数据处理与密钥管理

GNOME Keyring 是 Linux 系统下 GNOME 桌面环境的一个组件,用于安全地存储各种敏感信息,如密码、证书和加密密钥。

2

功能

浅析操作系统中敏感数据处理与密钥管理

密码管理:GNOME Keyring 可以安全地存储各种密码,包括 Wi-Fi 密码、网页密码、邮箱密码等,防止他人获取。

证书和密钥管理:除了密码,GNOME Keyring 还可以存储 SSL 证书和 SSH 密钥,方便用户在需要时使用。

加密存储:GNOME Keyring 的所有数据都被加密存储,只有在用户登录后才能访问,提供了一层额外的安全保护。

易用性:GNOME Keyring 集成在 GNOME 桌面环境中,用户可以方便地通过图形界面进行管理,如添加、删除和修改密码等。

3

举例

浅析操作系统中敏感数据处理与密钥管理

案例一:

微软的MSAL(Microsoft Authentication Library)是一个开源的身份验证库,用于帮助开发者简化与Microsoft身份平台的集成。MSAL 提供了一种统一的身份验证体验,支持OAuth 2.0和OpenID Connect标准,允许开发者在应用程序中验证用户身份,并获取对Microsoft云服务的访问令牌。GNOME Keyring 负责存储和加密 MSAL 使用的令牌,当 MSAL 需要令牌时,它会查询 GNOME Keyring实现获取令牌。如果找到有效的令牌,MSAL 将使用该令牌来访问 Azure 资源。如果 GNOME Keyring 中没有有效的令牌,MSAL 将发起网络请求到 Azure AD 以获取新的令牌,并将其存储在 GNOME Keyring 中以供将来使用。

案例二:

通过GNOME Keyring存取密钥。

浅析操作系统中敏感数据处理与密钥管理
浅析操作系统中敏感数据处理与密钥管理
import gifrom gi.repository import GLibgi.require_version('Secret', '1')from gi.repository import Secret
EXAMPLE_SCHEMA = Secret.Schema.new("org.mock.type.Store", Secret.SchemaFlags.NONE, { "number": Secret.SchemaAttributeType.INTEGER, "string": Secret.SchemaAttributeType.STRING, "even": Secret.SchemaAttributeType.BOOLEAN, })
# The attributes used to later lookup the password. attributes = { "number": "001", "string": "testdemo ", "even": "true"}
Secret.password_store_sync(EXAMPLE_SCHEMA, attributes, Secret.COLLECTION_DEFAULT, "Demo_PASS", "Everday is a good day", None)password = Secret.password_lookup_sync(EXAMPLE_SCHEMA, { "number": "001" }, None)# password will be null, if no matching password foundprint('-----Password is ..-----' + password)
浅析操作系统中敏感数据处理与密钥管理


DPAPI(Data Protection API)和GNOME Keyring,尽管源自截然不同的技术领域,却共同肩负着保护用户敏感信息的神圣使命。在产品设计中利用好这些特性,在提升用户体验的同时,时刻维护好每一位用户的数据安全!



—END—


往期精彩合集



● 联想展示顶尖安全技术创新 亮相Black Hat ASIA 2024

● 浅谈联邦学习在AIPC中的应用

● Intel® Neural Compressor CVE-2024-22476 漏洞分析

● 浅谈安卓应用安全

● BlackHat 2024 Asia Windows技术 MagicDot学习分享

● 浅谈Kubernetes安全

● 招贤纳士 | 联想热招AI产品内容安全岗位!

● 大模型应用之RAG 系统调研及探讨

● AI PC之NPU漫谈

● 栈溢出漏洞利用之ret2txt&ret2shellcode


联想GIC全球安全实验室(中国)

[email protected]


浅析操作系统中敏感数据处理与密钥管理


原文始发于微信公众号(联想全球安全实验室):浅析操作系统中敏感数据处理与密钥管理

版权声明:admin 发表于 2024年6月4日 下午4:50。
转载请注明:浅析操作系统中敏感数据处理与密钥管理 | CTF导航

相关文章