一、介绍
数据安全是苹果系统的核心。你可以利用ios里面的安全函数存储收据到或者文件到不同的存储空间中去。
Apple利用钥匙串去访问操作系统中的数据。钥匙串访问是建立在Common Data Security Architecture(公共数据安全体系简称CDSA)之上的。钥匙串访问可以管理不同的钥匙串,每一个钥匙串本身可以包含安全的数据,包括密码等。
而mac上的钥匙串和ios上的钥匙串有一些不同,下面是具体的列表:
- 在mac上,用户可以有不同条钥匙串。在ios上,只有一个单一的全局钥匙串。
- 在mac上,一个钥匙串可以被用户锁住。在ios上,默认的钥匙串被锁住或者是解锁就和设备的锁住和解锁的状态是一致的。
- 在mac上,默认钥匙串自动被解锁当用户登录的时候,只要默认的钥匙串的密码和用户账号的密码是相同的。而ios上的钥匙串,默认是被解锁的。
为了更好地理解mac上的钥匙串,在深入了解钥匙串和安全的概念之前,我们先来展示下面一些现象。在终端中输入
security list-keychains
结果:
zhangqis-Mac-mini:tvuanywhere_ios qizhang$ security list-keychains
“/Users/qizhang/Library/Keychains/login.keychain”
“/Library/Keychains/System.keychain”
你可以看到我有两个钥匙串,其中第一条是login钥匙串,第二条是system钥匙串。为了找到哪条是默认的钥匙串,我们输入以下命令 security default-keychain
结果:
zhangqis-Mac-mini:tvuanywhere_ios qizhang$ security default-keychain
“/Users/qizhang/Library/Keychains/login.keychain”
输出结果报名我的默认钥匙串是login钥匙串。所以,在默认情况下,mac上不同的应用请求的密码是否保存,这种情况下所有的密码都是保存在默认的钥匙串中的除非个别app需要存储的口令进而存储在不同的钥匙串中。
现在我们在执行一些指令。来找到那些密码早都存储在我们的默认钥匙串中。输入以下指令:
security dump-keychain login.keychain | grep “password” -i
结果:
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”AirPort network password”
“desc”=”Web form password”
“desc”=”Web form password”
“desc”=”Web form password”
“desc”=”Web form password”