如何确保在使用我的应用程序时不会从内存中读取用户名/密码组合。
我的程序是一些 CYGWIN 工具的 GUI 包装器,包括 SSH 和 SCP。我需要确保对各种主机的单点登录功能。
如何确保在使用我的应用程序时不会从内存中读取用户名/密码组合。
我的程序是一些 CYGWIN 工具的 GUI 包装器,包括 SSH 和 SCP。我需要确保对各种主机的单点登录功能。
使用 ssh-agent 的 SSH 密钥对,但还有其他方法吗?问题是您需要将公钥发送到远程主机,这可以用一个简单的字符串完成,但仍然需要登录。因此,初始设置带有密码的密钥对以及将密钥添加到远程主机需要输入许多密码。初始设置后一切正常。
想法?
攻击者会在应用程序运行时尝试使用调试器从内存中获取密码。可以绕过任何加密的使用,因为密码在使用时必须是纯文本。任何时候使用内存都可以使用调试器进行观察。
答案在于反调试: http: //www.codeproject.com/KB/security/Intro_To_Win_Anti_Debug.aspx
更高级的 windows 反调试:
http://www.veracode.com/blog/2008/12/anti-debugging-series-part-i/
http://www.veracode.com/blog/2008/12/anti-debugging-series-part-ii/
http://www.veracode.com/blog/2009/01/anti-debugging-series-part-iii/
http://www.veracode.com/blog/2009/02/anti-debugging-series-part-iv/
使用带authorized_keys 的公钥/私钥对。