如何确保在我的应用程序正在使用时不从内存中读取用户名/密码组合。如何确保不从内存中读取用户名/密码组合
我的程序是一些CYGWIN工具的GUI包装,包括SSH和SCP。我需要确保各种主机的单点登录功能。
如何确保在我的应用程序正在使用时不从内存中读取用户名/密码组合。如何确保不从内存中读取用户名/密码组合
我的程序是一些CYGWIN工具的GUI包装,包括SSH和SCP。我需要确保各种主机的单点登录功能。
攻击者将尝试在应用程序运行时使用调试器从内存中获取密码。任何加密的使用都可以被绕过,因为密码在使用时必须是纯文本的。任何时候使用内存,它也可以用调试器观察。
答案就在反调试: 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的公钥/私钥对。
使用SSH密钥对使用ssh-agent,但有没有其他方法? 问题是您需要将公钥发送到远程主机,这可以通过简单的字符串完成,但仍需要登录。因此,使用密码短语初始设置密钥对并将密钥添加到远程主机需要输入许多密码。 初始设置完成后,它一切正常。
想法?
@ GIDDION请将您的评论添加为对Jeremey回复的评论。 Stackoverflow区分答案和一般评论。您输入的评论通常保留给答案。 – Ankur 2009-11-04 05:47:00
这不是非对称密码学的问题,你必须相信你的自我! – rook 2009-11-05 01:02:16
既然他接受了你的答案,那一定是他所得到的。我知道这是不可能的,但我想也许他只是担心保护PASSWORD,而不是访问。 – 2009-11-05 02:42:50