为啥 Keychain 的私钥部分有这么多 iMessage 签名密钥?

Posted

技术标签:

【中文标题】为啥 Keychain 的私钥部分有这么多 iMessage 签名密钥?【英文标题】:Why are there so many iMessage Signing Keys in the private key section of Keychain?为什么 Keychain 的私钥部分有这么多 iMessage 签名密钥? 【发布时间】:2016-07-15 13:19:56 【问题描述】:

我试图清理我的钥匙串,因为里面有很多证书。 当我打开私钥部分时,我发现相同的密钥太多了。

我可以删除它们吗?我不知道他们是为了什么。请帮帮我!

【问题讨论】:

根据discussions.apple.com/thread/7353727 的说法,这似乎是由于 El Capitan 中引入的一个错误。我知道我在优胜美地没有这个问题。删除它们中的大多数似乎是安全的——请查看线程以获取更多详细信息。 【参考方案1】:

正常,没问题。如果要清理无用的密钥,只需先退出消息应用程序,然后打开钥匙串并删除所有名为“iMessage Signing Key”和“iMessage Encryption Key”的项目。然后您应该重新启动 OS X,重新启动后,OS X 将请求并生成新的密钥对用于 iMessage 加密。

密钥对的数量取决于您设置的接收 iMessage 的地址数量。打开“消息”->“首选项”->“帐户”,在“您可以通过以下地址访问消息”部分下,如果您选中 4 个地址,OS X 将生成 4 个“iMessage 签名密钥”和 4 个“iMessage 加密密钥”并将它们存储到 Keychain。

详细信息,iMessage 系统会为每个地址生成两对,即用于加密的 RSA 1280 位密钥,称为“iMessage 加密密钥”和用于签名的 ECDSA 256 位密钥,称为“iMessage 签名密钥”。私钥保存在设备的钥匙串中,公钥发送到 Apple 的目录服务。用户的外发消息在 CTR 模式下为每个收件人的设备单独加密,使用发件人的私钥签名,然后发送到 Apple iMessage 服务进行传递。您可以从ios Security Guide 查看。顺便说一句,在 OS X 上,这是由 /System/Library/PrivateFrameworks/MessageProtection.framework 完成的。

【讨论】:

感谢您的详尽解释。 整体信息很棒——但是,生成这么多 iMessage 密钥似乎并不正常,如海报的屏幕截图所示。一些用户已经拥有了数百个,所以这看起来更像是一个错误,在 El Capitan 中引入 - 请参阅 discussions.apple.com/thread/7353727 了解更多详细信息。

以上是关于为啥 Keychain 的私钥部分有这么多 iMessage 签名密钥?的主要内容,如果未能解决你的问题,请参考以下文章

ssh-add和ssh-agent

区块链学习钱包

CA证书

sh 在Mac OSX Keychain中添加私钥

在 Keychain Access 上安装证书时缺少私钥

如何让 ASP.NET 访问证书存储中证书中的私钥?