iphone - 使用私钥的NSData进行数据签名

时间:2010-05-13 10:42:46

标签: iphone rsa nsdata signing keychain

我正在开发电子银行iphone应用程序 我正在使用带有XML签名的WSS来签署对客户的SOAP服务器的请求 由于iPhone设备无法信任(由于越狱),客户 要求是在将密钥存储到钥匙串之前手动加密RSA密钥对(使用AES128)。

根据我到目前为止发现的内容,密钥会在生成时自动添加到钥匙串中 所以我的想法是在之后提取数据(与在CryptoExercise示例中提取公钥的方式相同),从钥匙串中删除密钥,进行AES加密并将其作为自定义NSData再次存储到钥匙串中。

1)你觉得这有什么问题吗? 我读到某处检索数据或删除密钥可能需要某种密码,虽然我没有得到什么密码。我今天晚些时候会尝试这个,如果在此期间没有发布答案,我会发布答案:)

2)我无法找到是否有任何方法可以使用此密钥而不在代码中实现更多的黑客攻击? 像SecKeyRawSign方法这样的接缝只接受SecKeyRef引用,它是指向keychain中键的指针。是否有其他方法使用密钥的NSData进行签名?
我目前唯一的想法是使用SecItemAdd方法在签名之前将非加密密钥添加到钥匙串中,并在签名后将其删除。但我不喜欢这样,因为它会一直发生,如果应用程序在从密钥链中删除密钥之前关闭(崩溃或其他),它将保留在那里直到我们说下次应用程序启动时。

想要更好的解决方案吗?

问候