我打算在iOS客户端和管理会话ID的服务器之间进行通信。我想完全隐藏会话ID。我的计划是将会话数据存储在Keychain服务中,以防{j}在设备上NSHTTPCookieStorage
不安全。如果会话数据在保存之前或客户端将其发送到服务器时可以读取,我很好奇是否有办法将其隐藏起来。
我有两个关于人类使用越狱设备读取会话数据的问题。
通过HTTPS接收的NSHTTPURLResponse
中的数据是否可以通过越狱设备进行人工阅读?
如果没有,NSHTTPCookieStorage
可以安全地在越狱设备上使用吗?我知道其他应用程序无法在非越狱设备上访问它。
我不希望我的服务器会话ID被流氓app / person窃取;有没有办法让它隐藏起来?或者这些方法中的一种是最佳实践?
对不起,如果这是噪音。 (编程也在计划中)
答案 0 :(得分:0)
我想完全隐藏会话ID。
这不可能。
我的计划是将会话数据存储在Keychain Services中,以防NSHTTPCookieStorage在越狱的设备上不安全
在越狱的设备上“安全”都不是(如果“安全”则表示“设备所有者不可读”)。
我很好奇是否有办法将其隐藏起来。
否。
通过越狱设备可以以人类可读的方式访问通过HTTPS接收到的NSHTTPURLResponse中的数据吗?
是的
如果没有,NSHTTPCookieStorage是否可以在越狱设备上安全使用?我知道其他应用程序无法在非越狱设备上访问它。
否(鉴于上述“安全”的含义)。
我不希望我的服务器会话ID被流氓应用程序/人员窃取;有什么办法可以隐藏它?
否。
或者这些方法之一是最佳实践吗?
您可以做的是混淆和强化。混淆是多种技术,试图使攻击者更难读取代码或数据。强化是多种技术,使得难以将调试器附加到程序上。
如果您对混淆技术非常熟练,并且拥有良好的强化技术,那么您可以减慢专用攻击者几个月的速度。您应该期望定期更新技术,因为它们会被击败。您应该期望为此雇用一个专职团队。
如果您不是很熟练,可以执行一些基本的混淆技术,这可能会使专门的攻击者放慢一个小时左右的时间。如果幸运的话,可能需要几个小时。如果您对此感兴趣,可以在various techniques上观看我最近的演讲。
请记住,如果有一种方法可以有效地向越狱设备的人隐藏iPhone上的信息,那么Apple只会使用该技术来防止越狱。苹果控制着整个平台的生态系统,从芯片到操作系统。如果他们不能阻止所有这些越狱,那么在已经越狱的设备上,您要做的事情就相对较少。这并不意味着所有的希望都消失了。这仅意味着您需要设定期望,并接受这是一个非常棘手的问题,将需要付出不菲的持续成本才能通过最基本的方法解决(尽管基本方法可能很有价值;请参见上文)。>
如果您需要更多链接和讨论,请参见Secure https encryption for iPhone app to webpage。