Seamless Clock Adjustment on Whonix Gateway after Suspend-Resume

Information

ID: 381
PHID: PHID-TASK-2qda5qpopnmuvpqujovz
Author: HulaHoop
Status at Migration Time: invalid
Priority at Migration Time: Normal

Description

Facts:

*qemu-guest-agent achieves successful clock syncing of a guest upon host system resume and does not attempt to constantly adjust the clock.

*kvmclock can only sync time during guest startup not during its lifetime:

*kvmclock used to sync time after suspend but no longer applies (this
explains my experiences before):
http://thread.gmane.org/gmane.comp.emulators.libvirt/92431

*qemu-guest agent is a solution but unsafe if used in untrusted guests, but is ok for Whonix-Gateway because its trusted:

http://wiki.qemu.org/Features/QAPI/GuestAgent

*Its not safe because it relies on Javascript code parser thats still not
hardened enough to run in hostile guest environments. It has to be enabled on the host by
adding a qemu-guest agent channel for it to work - without this it has
no effect and no security implications.

*using qemu-guest-agent is currently stalled because of permissions problems on Jessie. Apparmor workarounds not recommended, could be harmful to security:

*To have the same functionality for VirtualBox the resume hooks in Guest Additions will be used.


There is a Debian package:
https://packages.debian.org/jessie/qemu-guest-agent

We could add it as a weak dependency, below here:
https://github.com/Whonix/Whonix/blob/979c4393bd5e2d6ae20c690e39bb377d6244809e/build-steps.d/1700_install-packages#L405

Similar to this commit:
https://github.com/Whonix/Whonix/commit/979c4393bd5e2d6ae20c690e39bb377d6244809e


Rejected Solution:

Using Tordate as a coarse clock setting mechanism for Whonix-Gateway for Tor to connect.

It’s fingerprintable. (All info/link/quotes on that wiki page.)
(Could be tied directly to Tails or Whonix. Unrelated from local clock leaks.)

Comments


Patrick

2015-07-27 14:07:54 UTC


Patrick

2015-07-27 14:15:58 UTC


HulaHoop

2015-07-27 20:21:15 UTC


Patrick

2015-07-27 20:56:15 UTC


HulaHoop

2015-07-27 21:44:22 UTC


marmarek

2015-07-27 21:47:26 UTC


Patrick

2015-07-28 14:04:49 UTC


Patrick

2015-07-28 14:24:20 UTC


Patrick

2015-07-28 15:15:52 UTC


HulaHoop

2015-07-28 18:58:43 UTC


HulaHoop

2015-07-28 19:03:40 UTC


Patrick

2015-07-28 19:29:46 UTC


HulaHoop

2015-07-28 21:40:39 UTC


Patrick

2015-07-28 22:22:30 UTC


HulaHoop

2015-07-29 18:46:04 UTC


Patrick

2015-07-29 19:26:17 UTC


Patrick

2015-07-30 13:11:52 UTC


Patrick

2015-07-30 19:39:08 UTC


HulaHoop

2015-08-04 15:57:18 UTC


Patrick

2015-08-05 12:29:39 UTC