Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何加密剪贴板?_Security_Clipboard - Fatal编程技术网

Security 如何加密剪贴板?

Security 如何加密剪贴板?,security,clipboard,Security,Clipboard,剪贴板的内容可以加密吗 例如,假设为了绕过键盘记录器,用户从加密文件复制并粘贴密码,但现在密码未加密地保存在剪贴板中。有没有一种方法可以在不中断复制/粘贴或运行某些脚本函数扰乱剪贴板信息的情况下防止这种行为 如果剪贴板信息被持久保存到驱动器上,那么整个磁盘加密就可以了(根据这个问题,听起来你已经想这么做了) 但是加密RAM中的内容并不是一个真正的选项。在某个时刻,操作系统和应用程序读取该内存并需要知道如何处理它。必须在计算机活动硬件中的某个位置对其进行未加密才能使用。如果您需要向文本字段提供未加

剪贴板的内容可以加密吗


例如,假设为了绕过键盘记录器,用户从加密文件复制并粘贴密码,但现在密码未加密地保存在剪贴板中。有没有一种方法可以在不中断复制/粘贴或运行某些脚本函数扰乱剪贴板信息的情况下防止这种行为

如果剪贴板信息被持久保存到驱动器上,那么整个磁盘加密就可以了(根据这个问题,听起来你已经想这么做了)


但是加密RAM中的内容并不是一个真正的选项。在某个时刻,操作系统和应用程序读取该内存并需要知道如何处理它。必须在计算机活动硬件中的某个位置对其进行未加密才能使用。

如果您需要向文本字段提供未加密的密码才能登录,则在该步骤之前所做的任何操作都无法阻止恶意用户读取该文本框的内容。因为需要有一个时间点将明文字符串发送到文本框


我认为,如果你有一个键盘记录器,你会遇到比加密密码更重要的问题,你可以在复制之前为你的应用程序加密数据,但这实际上取决于你使用的语言


并在粘贴上解密,但在应用程序上也是如此。你不可能在你的整个系统中做到这一点;这将意味着修改操作系统…

我正在编写一个实现复制和粘贴的应用程序:因此我使用系统API从剪贴板读取数据


如果我不能读取未加密的数据,则复制和粘贴将被破坏,但如果我可以,则任何其他已安装的程序(包括键盘记录器)也会被破坏。

回答您的问题:这应该是可能的,但您需要深入研究Windows API

  • 要捕获复制事件并加密内容,可以使用获取剪贴板更改的通知。这是一个关于如何使用C#实现这一点的示例

  • 要捕获粘贴事件并解密内容,您可能需要全局钩住
    WM_-PASTE
    消息


作为旁注:一旦键盘记录器/特洛伊木马程序/等在您的系统上运行,它就不再是您的系统。加密剪贴板或类似技术不会保护您的系统,它们可能会提高恶意软件开发人员获取所需信息的门槛(参见Jean Bernard的答案)。首先,防止恶意代码在您的系统上运行是一种更好的方法。

如果有人有权安装具有剪贴板访问权限的键盘记录器,那么他很可能也有权获取剪贴板的解密密钥。密码学不能代替访问控制。

您当然可以加密数据,将其复制到剪贴板,然后在应用程序的另一个实例中粘贴、解密数据。但这只有在源/目的地同意加密时才有用。i、 是同一个人写的。在这种情况下,最好不要使用剪贴板,而是设置某种私有数据通道。
因此,虽然您可以这样做,但并不实用。

您从哪里复制密码的?“那里不是也有未加密的吗?”@Longpoke我很确定它涉及到一个搅拌机。为什么投票结果如此接近?如果mike想实现自动加密剪贴板内容的Windows工具,这是一个完全正确的问题。@Heinzi我想我更反对安全标签。在防御攻击者的安全中,这种攻击会阻止什么?回答:完全没有。谢谢你的回答,有些很有趣。我只是想知道这是否可能,我提到键盘记录器只是一个例子。对我来说,这是一个安全问题,因为可能存在捕获剪贴板历史记录的攻击,而不仅仅是捕获击键。“需要修改操作系统”!=“做不到”。Windows API提供了很多钩子来修改系统行为……这对于创建隐藏在剪贴板中的应用程序来说是巨大的。隐藏剪贴板其实并不难:这真是令人毛骨悚然。这难道不被认为是一种安全漏洞吗???不。Windows中的每个程序都有完全的权限,UAC和ACL试图阻止这一点,但Windows的设计中有太多其他基本缺陷,使其无法工作。现在很少有人能在非特权环境下运行程序,尤其是在Windows中。我同意,由于停止问题,它将阻止一般的大规模攻击,但不会有人专门针对你。我将研究C#示例。谢谢你给我指出了正确的方向。有些程序会监视和存储剪贴板历史记录。关于密码复制粘贴,这是一个“更大的问题”,因为它会在内存中的多个位置涂抹您的密码,并为您的密码暴露打开更多的可能性。我在读有关KeyScrambler的文章,这让我对剪贴板感到好奇。因为我使用KeePass,所以我不会键入很多密码,但我会复制/粘贴很多密码。据我所知,并不是所有api都将文本字段中的文本存储为纯文本,而是字符数组,我假设,这样字符串在内存中就不连续了。