为什么屏幕锁定时 gnome 钥匙圈没有锁定?

为什么屏幕锁定时 gnome 钥匙圈没有锁定?

我想知道当屏幕锁定时 gnome 密钥环是否会自动锁定,所以我用以下命令检查了它:

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" |
  while read x; do
    case "$x" in 
      *"boolean true"*) sleep 1s;./gkey-check;;
      *"boolean false"*) sleep 1s;./gkey-check;;  
    esac
  done

gkey-check 是一个很小的 ​​C 程序检查 Gnome 密钥环是否已解锁?输出密钥环的状态。要么“锁定”,要么“解锁”。使用上面的代码,一旦屏幕锁定或解锁,它就会被执行。

当锁定然后解锁屏幕时,我被“解锁”两次,这告诉我钥匙圈没有自动锁定。在我看来,锁定钥匙圈应该是默认行为。

有趣的是,当我在锁定屏幕之前手动锁定钥匙圈时,当再次解锁屏幕时,它会自动解锁钥匙圈。因此它会自动解锁钥匙圈,但不会锁定它。

为什么锁定屏幕时锁定钥匙圈不是默认行为? (Fedora 32 Gnome 3.36)

答案1

根据gnome-keyring 安全理念,它的目的是保护用户免受“被动攻击”,即无权访问用户会话的攻击者的攻击。它与 PAM 集成,因此默认情况下,密钥环是登录时解锁,注销时或计算机休眠或挂起时锁定。最后一点是针对“冷启动”攻击。尽管这样的攻击如果计算机突然关闭(即用户没有正确注销),仍然可能发生

当不再需要访问计算机系统时,用户可以注销。同样,当用户锁定屏幕时,锁屏通过要求用户输入密码来控制对设备的立即访问。不同的是,当屏幕锁定时,该用户在该用户会话中启动的应用程序可以继续在后台运行。这些应用程序可能需要访问 gnome-keyring,因此在锁定屏幕时锁定密钥环可能与用户的意图相反,因为 gnome-keyring 会妨碍用户,这将违背其目标。默认情况下,如果计算机挂起或休眠,密钥环应被锁定,这与 gnome-keyring 的目标一致,因为当计算机挂起或休眠时应用程序不会运行,并且计算机通常由用户唤醒,用户可以唤醒计算机。登录桌面并解锁密钥环

至于您观察到解锁屏幕时密钥环是否解锁,我认为这与 gnome-keyring 与 PAM 的集成方式更相关。在这两种情况下都会调用 gnome-keyring 的一些解锁例程:当用户登录时以及当用户解锁屏幕以确保屏幕在挂起或休眠后解锁时。可能是这样调用相同的 PAM 例程,这在登录和屏幕解锁之间没有区别

相关内容