问题标签 [sskeychain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5959 浏览

iphone - 如何为 SSKeychain 选择账户和服务值

我正在考虑使用SSKeychain在 iOS 应用程序中存储密码,但我不确定我是否需要帐户和服务的特定值,或者是否可以使用任意值。有没有普遍的做法?

0 投票
1 回答
2841 浏览

iphone - 如何在钥匙串中保存 CFUUID

我正在开发一个 iPhone 应用程序。
应用程序访问一些涉及其他事物的 Web 服务应该识别设备 ID。

由于不推荐使用 UDID,因此我需要调用 CFUUIDCreate 来生成我自己的 UUID。

该 ID 是安全敏感的:我所有的网络通信都是加密的,除了我的证书认证服务器之外,我不希望任何人知道该 UUID。
此外,我希望这个标识符能够在重新安装后继续存在。
使用钥匙串来存储 UUID 似乎是一个显而易见的解决方案。

我怎么做?

在互联网上,有一些示例如何将用户名和密码存储在钥匙串中。我既没有用户也没有密码,只有 16 个字节的 UUID(或单个 NSString)。

我需要使用哪个 kSecClass?
我需要设置和检索哪些属性?
哪些属性是可选的,哪些是强制性的?

什么标头/框架定义了 CSSM_ALGORITHMS?
文档提到 cssmtype.h,xcode 自动完成有 <Security/cssmtype.h> 但是 xcode 编译器说“找不到文件”。

从常识来看,“身份”应该是最合适的。然而,文档说“身份是私钥和证书的组合”,我没有。另外,我没有看到“关键字节”属性。

提前致谢!

0 投票
1 回答
207 浏览

objective-c - Lion 更新后钥匙串项目更新被拒绝

我有一个应用程序将数据存储在将定期更新的钥匙串中。不出所料,每当我更新应用程序时,钥匙串再次需要用户对该构建的许可。但是,钥匙串不允许修改(删除项目或覆盖内容)。

显然这对于​​需要定期更新的钥匙串项目来说是个大问题。

我完全没有问题编辑/删除/修改具有相同内部版本号的钥匙串项目。

有任何想法吗?


[编辑:删除添加]

请参阅下面我自己的答案。

0 投票
3 回答
6851 浏览

objective-c - iPad 应用程序的 sskeychain 和基本身份验证教程?

我在哪里可以找到使用sskeychain存储和检索用户名和密码以及在 UIWebView 中进行基本身份验证的详细教程?其次,就基于 Web 的应用程序存储和使用身份验证所需的方法而言,我是否走在正确的轨道上?(见下面的解释。)

我发现了一些使用不同方法的教程:

根据以下其他 SO 问题的建议,建议使用 sskeychain 以便更轻松地使用钥匙串来存储身份验证参数。

我的计划是按照建议将用户名和密码本地存储在钥匙串中的设备上,并使用基本身份验证通过 UIWebView 连接到我的 PHP 代码。有经验的 iOS 开发人员推荐的关于用户身份验证主题的 xcode/Obj-C 新手的良好分步教程吗?

Apple 文档似乎没有什么帮助。它要么是带有简单销售术语的页面,要么是对方法和参数的头条式描述,没有很多有用的示例。

更新:

我最终只使用 NSUserDefaults 在本地存储用户名和密码,并使用 AFNetworking 库进行身份验证。如果这些不明智,我会欢迎提供更好方法指导的答案。

0 投票
1 回答
233 浏览

ios5 - 如何创建唯一标识符并将其保存以识别用户(设备)

我想在 iOS 5 上创建唯一标识符,并在每次启动应用程序时使用它来识别用户(用户设备)。我可以通过以下代码创建唯一标识符

但无法将其保存在用户设备上,因此即使卸载应用程序也不会删除特定标识符。我尝试使用 SSKeychain 方法,但它给出了 Apple Mach-o Linker 错误。

请让我知道我可以完成同样的方式。

任何帮助表示赞赏。

0 投票
1 回答
1629 浏览

objective-c - SSKeyChain:如何锁定这个钥匙串?

我的可可应用程序将具有以下功能: 1. 密码保护登录。用户必须输入密码才能使用该应用程序 2. 登录后,用户可以创建一些个人资料,该资料可以存储一些安全信息,如密码。

经过一番研究,我被告知我应该使用 KeyChain 来保存安全信息(所以在我的情况下,每个个人资料中的登录密码和安全信息)。

似乎有一个很好的 KeyChain 包装器 SSKeyChain 可以用来实现我的目标(因为我对 c lang 不太熟悉,所以使用苹果的钥匙串对我来说很难)而且我还找到了一些使用 SSKeyChain 的示例iOS:如何在应用程序中存储用户名/密码?

但是我不确定我是否需要“保护”我的钥匙串: 1. 调用 setPassword:forService:account 时:我应该包含明文密码吗?还是我需要先加密我的密码?同样在设置服务名称时,我是否应该只包含我的应用程序名称 2. 如果可以使用 passwordForService: 轻松检索密码,那么它似乎不安全?因为其他应用程序也可以调用相同的方法来检索钥匙串?(前提是他们知道服务名称和帐户)

我已阅读苹果文档:https ://developer.apple.com/library/mac/#documentation/security/conceptual/keychainServConcepts/02concepts/concepts.html#//apple_ref/doc/uid/TP30000897-CH204-TP9

似乎你必须“锁定”和“解锁”这个钥匙串。我检查了 SSKeyChain 文档http://docs.samsoff.es/SSKeychain/Classes/SSKeychain.html但找不到任何“锁定”和“解锁”此类钥匙串的方法。那我要怎么保护呢?

0 投票
2 回答
440 浏览

objective-c - 区分 Mac OS X 钥匙串中的会话和系统项目

如何查询 Mac OS X 钥匙串以仅检索会话项目?

当我尝试获取所有这样的项目时:

会话项和系统项的键属性完全相同:acct、cdat、class、crtr、labl、mdat、svce

您如何查询钥匙串以仅获取会话项或区分它们?

感谢您的帮助 !

0 投票
0 回答
3582 浏览

ios - 什么可能导致 SecItemAdd 或 SecItemCopyMatching 失败?

我正在使用此方法来检索保存的值(并SecItemAdd用于最初添加它):

这段代码对大多数用户来说运行良好,但我的一小部分用户 (< 1%) 遇到的结果表明这里的读取或写入失败。不幸的是,我的代码吞下了任何错误(即当它们发生时不会在任何地方记录它们),所以我不知道为什么它在世界上失败了,而且我根本无法在我的任何开发设备上重现这个问题。

有谁知道可以在 iOS 设备上启用的任何可能导致SecItemAddSecItemCopyMatching失败的安全/权限设置?我试过打开密码锁定,但这似乎没有效果。

0 投票
0 回答
708 浏览

objective-c - SSKeychain“AppName”的真实性无法验证

我最近在我的应用程序中实现了 SSKeychain,每次我尝试从钥匙串中访问值时,都会提示我授予访问钥匙串的权限,并显示消息“无法验证“AppName”的真实性。你想允许吗?访问这个项目?

我已经选择了大约十亿次“始终允许”,但无论如何它仍然提示我。它真的很烦人,看起来非常不专业。拉我的头发试图找出我做错了什么或如何解决它。保存密码即时使用

[SSKeychain setPassword:self.passwordField.stringValue forService:@"AppName" account:self.loginField.stringValue];

并检索它

[SSKeychain passwordForService:@"AppName" account:self.loginField.stringValue];

有什么想法吗?

0 投票
2 回答
322 浏览

ios - SSKeychain - NSArray 到 NSString/NSMutableString 额外字符

我正在尝试SSKeychain在我的应用程序中使用来存储用户的凭据。我可以成功保存凭据。但是,当我尝试检索凭据时,它们会作为 NSArray 输出。我想要一个特定的值,所以我使用valueForKey:NSString它给了我( acct )

这是我正在使用的代码

我希望输出acct不是(acct).