我有一个iOS应用程序,它使用证书进行数字签名算法(DSA)之后的消息签名。为了执行此签名,应用程序需要证书以及与证书关联的私钥。并且,我无法在应用程序中嵌入证书,因为我的客户需要能够生成和分发他们自己的证书,以便应用程序在需要时使用。 (而且,嵌入证书无论如何都会构成安全风险。)
有没有人对如何分发证书和私钥有任何想法?
PS。我们在BlackBerry上做同样的事情,在那里,我们在BlackBerry设备上使用BlackBerry Enterprise Server和API将证书推送到组织中的设备。我希望有一个针对iOS的MDM解决方案,但还没有找到任何东西。
非常感谢
答案 0 :(得分:2)
你问:
有没有人对如何分发证书和私钥有任何想法?
对不起,我对你的具体情况了解不多,无法告诉你如何满足你的要求,但我可以说这不是通常的做法。相反,通常在设备上生成公钥/私钥对,然后将公钥(仅)与附加数据(例如,在证书签名请求中,CSR)一起提交给服务器(证书颁发机构,CA),生成证书并将其返回给请求者(并可能将其发布到目录中)。
此方法的一个重要安全优势是没有第三方可以访问私钥(CA需要公钥,不需要私钥)。这是non-repudiation所必需的(因此设备所有者无法声称有人从中央服务器获取了私钥)。
答案 1 :(得分:2)
在iOS上,没有直接的方式来分发证书,它是应用程序的私钥。 Apple建议使用PKCS12并在本文档中提供一些指导:Technical Q&A QA1745: Making Certificates and Keys Available To Your App。