【问题标题】:Where's the clipboard stored in memory? Can it be swapped?剪贴板存储在内存中的什么位置?可以换吗?
【发布时间】:2016-05-29 15:16:09
【问题描述】:

上下文:

我开始开发密码管理器(仅用于学习目的)。我现在的目标是将解密后的密码复制到剪贴板,以便在其他地方使用。为了避免解密的密码被交换,我不得不mlock敏感数据

问题:

我现在担心的是:如果我将解密后的密码复制到剪贴板,可以交换吗?有什么方法可以防止它被交换吗?

额外问题:

剪贴板实际存储在内存空间的哪个位置?是在调用剪贴板存储数据的进程的内存空间还是在OS内存空间?

是否可以将密码加密保存在剪贴板中,并在用户粘贴时解密?就像一个事件或一个信号

如果它取决于操作系统,请解释差异。

【问题讨论】:

    标签: security memory encryption operating-system clipboard


    【解决方案1】:

    在 OS X 中,看起来任何在当前用户许可下运行的应用程序都可以随时更改剪贴板内容,无论它是否具有焦点。

    以下命令行脚本将在后台运行,定期将ROT13 应用于剪贴板内容:

    while true ; do sleep 1 ; pbpaste | tr A-Za-z N-ZA-Mn-za-m | pbcopy ; done &
    

    这表明:

    • 剪贴板存储在操作系统内存空间中,并且
    • 您复制到剪贴板的任何内容都可以立即用于属于您的每个进程。

    幸运的是,Apple 的Keychain Access utility 使得在访问存储的密码时无需使用剪贴板。我想任何像样的钥匙串软件也会以这种方式运行。

    但是,您没有理由不能对发送到剪贴板的数据进行加密。使用正确的authentication,可以在检测是否发生任何篡改的同时对数据保密。 (但显然,您将剪贴板粘贴到的应用程序必须能够再次对其进行解密。)

    【讨论】:

      猜你喜欢
      • 2018-12-24
      • 2011-02-21
      • 2011-03-31
      • 2014-11-16
      • 2021-10-17
      • 2010-11-20
      • 2021-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多