在Cocoa和NSTask中安全地处理密码

Enc*_*ada 5 security cocoa objective-c

假设我的应用程序中有一个NSSecureTextField.我可以将密码读入NSString变量(我通常会这样)并将其传递给我的应用程序代码吗?它被认为是安全的,还是我必须以某种方式加密应用程序代码中的字符串变量?

另外(这是我的问题绝对关键的一部分):通过NSPipe从NSSecureTextField获取的NSString密码传递到NSTask的标准输入,为命令行工具提供密码是否安全?我主要担心的是操作系统会在某个地方记录密码,这很糟糕.

Pet*_*lin 4

一般来说,一旦密码离开安全存储(即NSSecureTextField)并以纯文本形式存储在内存(NSString变量)中,它就不再被认为是安全的。更重要的是,将纯文本密码传递到操作系统环境是不安全的。对于潜在的攻击者来说,在第一种情况下(从应用程序的内存中)获取它相对困难,而在第二种情况下相对容易。