阅读361 返回首页    go iPhone_iPad_Mac_手机_平板_苹果apple


钥匙串是个什么东西 它是干什么用的?

钥匙串一直不敢打开 原因就是不知其然 更不知其所以然 。敬请知识人士不吝赐教。



帮助你ji mi ma



注,:以下绝大部分内容都是基于苹果电脑系统的,对于iOS设备来说道理类似,且没有多用户问题,所以后面所述问题也比较少见。


功能简介

钥匙串是OSX系统所带的方便用户管用私有信息的机制,它可以管理账户和密码对,信用卡系统,个人信息如地址电话姓名,当然操作系统也使用它来存储系统级别的证书,CA, 私有和共有键对等等。用户自己也可以利用钥匙串所提供的功能,建立私有钥匙串文件,保存私有密文,密码等等。正如同它的名义一样,如果你管理着很多的房间,每个房间需要 唯一一把钥匙开门,那么最直接的管理钥匙方法就是把钥匙穿在一个钥匙链上便于存取。

 

iCloud钥匙串

最原始的(现在同样有效)钥匙串只支持本地存取,也就是只有登录到本地电脑/iPhone,才能存取该钥匙串。后来有了iCloud钥匙串,它可以为用户自动实现多设备之 间的钥匙串同步,也就是说,在一台设备上更新了在iCloud钥匙串中的信息后,系统会自动将它与iCloud云中的钥匙串同步,当你登录到另外一个设备时,iCloud 服务会自动同步更新内容,这样做到多设备的钥匙串自动同步。

 

钥匙串文件

在苹果电脑上,钥匙串被存放在不同的地方,根据操作的层级的不同,它可以分三级:

  1. 用户级(用户域)钥匙串文件保存在用户目录的Library/Keychains目录中,一般可以用~/Library/Keychains表示。
  2. 本机级(本地域)的钥匙串文件保存在系统根目录下的Library/Keychains目录中,一般用/Library/Keychains表示。
  3. 操作系统级(系统域)的钥匙串保存在系统根目录的System/Library/Keychains目录中,一般用 /System/Library/Keychains表示。

 

钥匙串文件的默认文件后缀是:keychain。一般来说,钥匙串文件是被加密的。

 

每个钥匙串可以有自己的配置:是否定时关闭以及系统休眠后是否同时关闭等。

 

每个加密项以及其它相关信息,以一项记录(item)的形式保存,每个记录可以包含不同的记录项。比如Safari生成的github.com的网站登录信息包括:名称( Name), Kind(类型), 帐户(Account), 来源(Where), 注释(Comments), 密码(Password)等; 同时系统还会保存该记录的存取控制(Access Control)权限,对于我们的例子来说,这里保存着Safari程序可以存取(因为该记录本身就是有Safari生成的),也就是说,当下次用户访问github. com网站的用户登录网页时,Safari可以存取该项目提取帐户和密码而无需密码,而不在存取控制中的程序要读取其中密码内容是,系统会让用户输入一次钥匙串密码,比如 使用FireFox。

 

Login钥匙串机制

在苹果电脑上,一般来说,每个本地用户在第一次登陆时,操作系统都会自动为他/她生成一个默认钥匙串,该钥匙串叫做login.keychain,它是好多苹果软件保存更 新用户私有信息时所默认使用的钥匙串。比如Safari就使用它保存用户网络登陆帐户和密码对的,当然它有自己的机制会同时相关保留网页地址,这样下次访问相同网页的时候 ,Safari就自动从login.keychain文件中提取该账户密码对并填写相关位置,用户就不用再记网页帐户和密码了。

 

系统生成的这个login.keychain文件,默认使用用户登录密码来加密,当下次登录时,系统自动使用用户登录密码来解码login.keychain文件,解码成 功系统就设钥匙串被处于打开状态,处于打开状态后,其它程序要存取其中的某个加密信息(钥匙)时,不会再次询问用户密码。如果处于某种原因,钥匙串处于关闭状态,那么程序 需要访问其中某个信息的时候,操作系统会提示用户输入密码,以打开钥匙串文件。如果成功就继续,如果不成功会持续询问,直到用户放弃为止。

 

什么时候会出现login钥匙串被关闭呢?可能的情况可以是:用户可以自己关闭,或者登录密码与login钥匙串加密密码不匹配,或者定时等等。

 

钥匙串访问工具

系统提供一个工具软件,叫做钥匙串访问(英文: Keychain Access.app),可以用来浏览和管理钥匙串文件以及其中的内容。它一般默认保存在应用目录中的工具子目录中(/Applications/Utilities) ,不妨现在就运行该软件,看看钥匙串文件的样子。

 

用户可以使用钥匙串访问工具生成自己的私有钥匙串文件,用于其它用途,比如保存密文等,这个私有钥匙串文件的密码可以与登录密码不同。但是需要注意的是,每次登录后系统不 会自动打开私有钥匙串文件,需要在钥匙串访问工具中(或者是命令行security)打开。

 

使用这个工具访问摸个具体的加密内容的时候,为了安全起见,一般它还会询问用户输入密码。

 

安全性

钥匙串中保密数据是使用三重DES(3DES)加密的。一般来说,除非有正确密码,否则即便是Apple也无法打开它。

所以,相比较其它破解,钥匙串的安全和其它的依赖于帐户密码对的系统一样,密码的强度取到决定性的作用。一个很弱的密码,决定了钥匙串很容易被破解。

当然了,世界上就怕认真二字,如果能找到一种可行的破解方法,那也是对密码界的突出贡献。

 

其它问题

1. 钥匙串机制可以被禁止吗?

可以说“不能”,即便是强力破坏性地禁止它,但是好多的苹果和第三方软件都基于钥匙串功能的,比如mail,safari等等,太多了,如果没有这个机制,它们几乎无法正 常工作。目前来说,我们须学会与之和平共处。

 

2. Login钥匙串和登录密码不同步?

  • 首先,是可能不同步的,比如本地用户的密码可以在该用户为登录的情况下被修改;比如目录服务的网络用户账户,密码可以在目录服务中被修改等等很多情况。
  • 如果出现不同步:a. 记得原来的登录密码,那么先使用原密码解开login钥匙串,然后再用这两个密码变更login钥匙串密码,以同步,这样原来保存在login钥匙串中的记录还可以被使 用;b. 如果原密码忘了,那么不要尝试破解它了,就使用钥匙串访问工具重置默认钥匙串的功能来删除旧的生成一个新的。

 

3. iCloud钥匙串安全吗?

一方面依赖于苹果的iCloud的安全性,一方面是自我的使用,比如设备的安全性,设置手机密码,开启锁屏密码,登录账户密码选择强密码,不要随意给他人使用自己的设备等 等。

 

4. 所有Mac版程序都使用钥匙串吗?

这个可不一定,比如Google Chrome浏览器就会使用自己的机制管理帐户和密码。

 

5. 除了钥匙串访问工具,还有其他访问方式吗?

至少有两种。最基本的就是参考苹果公布的钥匙串服务编程指南(Keychain Services Programming Guide);另一个就是前面提到的security命令。

 

如有不妥也请同行多指教



帮助你ji mi ma



你讲的很好 就是我笨笨的 看得脑袋有些大 我还是不用这个钥匙串了吧 行吗?真心的谢谢你的回答啊 !



正如前面说的,在macOS中,

不管你想与不想,它就在那里, 不离不弃

不管你愿不愿意,它就在那里, 不来不去

 

至于iCloud钥匙串

开与不开,随你愿意



最后更新:2017-05-10 23:15:35

  上一篇:go macOS Sierra版本10.12.2Beta摄像头
  下一篇:go 更新系统关机变慢?