KEYCHAIN 是什么

Fanly 问答 2018-10-16 22:19:17 阅读(...)

KEYCHAIN文件由Apple Keychain创建,Apple Keychain是一个与Mac OS X捆绑在一起的程序,用于存储身份验证信息。它包含加密的资源验证数据集合,例如密码,证书和私钥。

KEYCHAIN 文件由 Apple Keychain 创建,Apple Keychain 是一个与 Mac OS X 捆绑在一起的程序,用于存储身份验证信息。它包含加密的资源验证数据集合,例如密码,证书和私钥

KEYCHAIN

KEYCHAIN 文件用于在用户检查了记住身份验证信息的选项后自动对用户进行身份验证。它们用于网站,SSH 帐户,FTP 文件和无线网络。

login.keychain – 包含密码,网站登录,可信任身份,开发人员证书和其他密钥的全局用户密钥链。它位于〜/ Library / Keychains /目录中。

根据苹果的介绍,iOS 设备中的 Keychain 是一个安全的存储容器,可以用来为不同应用保存敏感信息比如用户名,密码,网络密码,认证令牌。苹果自己用 keychain 来保存 Wi-Fi 网络密码,VPN 凭证等等。它是一个 sqlite 数据库,位于/private/var/Keychains/keychain-2.db,其保存的所有数据都是加密过的。

开发者通常会希望能够利用操作系统提供的功能来保存凭证(credentials)而不是把它们(凭证)保存到 NSUserDefaults,plist 文件等地方。保存这些数据的原因是开发者不想用户每次都要登录,因此会把认证信息保存到设备上的某个地方并且在用户再次打开应用的时候用这些数据自动登录。Keychain 的信息是存在于每个应用(app)的沙盒之外的。

从 Keychain 中导出数据的最流行工具是 ptoomey3 的 Keychain dumper。其 github 地址位于此。现在到这个地址把它下载下来。然后解压 zip 文件。在解压的文件夹内,我们感兴趣的文件是 keychain_dumper 这个二进制文件。一个应用能够访问的 keychain 数据是通过其 entitlements 文件指定的。keychain_dumper 使用一个自签名文件,带有一个*通配符的 entitlments,因此它能够访问 keychain 中的所有条目。 当然,也有其他方法来使得所有 keychain 信息都被授权,比如用一个包含所有访问组(access group)的 entitlements 文件,或者使用一个特定的访问组(access group)使得能够访问所有的 keychain 数据。 例如,工具 Keychain-viewer 就使用如下的 entitlements.

虽然 keychain 也容易被破解,不过比 NSUserDefaults 和 plist 安全得多,只要我们注意不要在 keychain 中保存明文密码就会在很大程度上提升安全性。

0个人收藏 收藏

评论交流

泪雪默认头像 请「登录」后参与评论
  1. 加载中..

相关推荐

  • Bitlocker

    Bitlocker分区解密软件是什么

    Bitlocker分区解密软件是一款针对因各种原因导致Bitlocker分区打不开从而数据丢失进行恢复的软件。Bitlocker是微软自Vista后开始提供的一个自带的加密工具。而这一功能最大的好处就是更好的防止数据失窃或恶意泄漏问题的发生。
  • 达芬奇视频调色软件 DaVinci Resolve

    DaVinci Resolve是什么

    DaVinci Resolve(达芬奇)是一款在同一个软件工具中将剪辑、调色、视觉特效、动态图形和音频后期制作融于一身的视频调色软件。它采用美观新颖的界面设计,易学易用,能让新手用户快速上手操作,还能提供专业人士需要的强大性能。
  • 科幻画 Science fiction painting

    科幻画是什么

    科幻画是指科幻题材的漫画或插画作品。科幻画通常是基于科学幻想或未来世界的想象,在作品中经常出现未来科技、外星人、机器人、虚拟现实等元素。它可能是一种虚构的故事,也可能是对现实世界的某种展望或预测。
  • TestFlight

    TestFlight是什么

    TestFlight是苹果公司推出的一款应用测试工具。它可以帮助开发者在应用发布之前,在iOS、macOS和tvOS上测试应用。TestFlight可以让开发者向特定的测试用户提供应用的beta版本,开发者可以使用TestFlight收集反馈并在发布之前修复问题。
  • XMP Extreme Memory Profile

    XMP是什么

    XMP是英特尔提出的内存认证标准,适用于DDR3和DDR4。开启XMP便是让内存在这个安全超频范围下运行,实现性能上的提升。因为默认情况下主板都是根据JEDEC标准去运行内存,目的就为了在默认情况下达到最好的兼容性。
  • 支付 payment

    免密支付是什么

    免密支付是指小额免密免签支付,简而言之就是小额支付无须密码和消费者签名即可完成支付。在授权额度内,直接通过扫码进行扣款的操作。开启付款码免密支付后,无需输入6位支付密码、指纹识别、面部识别等进行身份验证。