The tricky bit here is closing the analog loophole (using this camera to record a carefully constructed, high resolution fake) and preventing the HSM from signing anything which wasn't recorded by the camera lens.
The tricky bit here is closing the analog loophole (using this camera to record a carefully constructed, high resolution fake) and preventing the HSM from signing anything which wasn't recorded by the camera lens.
Like, I can imagine maybe there could be an attack where one could record gps signals at some nearby place, and then play them back in slightly different orders/rates to try to fool a receiving device into thinking it is somewhere else (nearby).
But I don't know how much of a time delay would be needed in order to do that. Could a timestamping service do timestamping quickly enough to prevent this attack for internet connected devices?
I tried looking at how the signals for GPS work (like, how frequently it sends time information and how detailed it is for civilians) but it seemed complicated and I got confused and/or didn't try hard enough, so I didn't arrive at an answer for how long it would take to spoof positions if one could only delay real signals that one received.
Edit: the purpose of making the gps coords unspoofable would be to make it so that even if the screen-in-front-of-camera attack was done, it would have to be done at the same location and time as it would be claimed to have happened.
Nope, classic replay attack case (just record the GPS signal and replay to the device at the desired location). You'd need a true time signal within the device, e.g. and atomic clock to make it work (so you'd authenticate the signed time against true time).
---
There is another way, however. If we assume the hardware is tamper-proof (unless drastically different methods are needed), then with strict timings we can device a challenge-response system that's immune to replay attacks due to relativity: simply transmit a signal A, have a known 3rd party (e.g. US government servers in cellphone towers) sign your signal Sig(A) and retransmit, and check that the delay matches the propagation delay you'd expect from the cellphone tower distance, plus the fixed (and immutable since it would be gov-controlled) processing delay. Your tamper-proof crypto-camera would record its location and whether it trusts the location. Using cellular signals is also better because GPS doesn't work indoors and is sensitive to interference.
Since we're adding a cellular connection to our device, it would also be a good idea to log its position on the state-controlled servers (again can be done with cryptographic safety assuming non-tampered device), along with some kind of intrusion detection system. As soon as it'd detect an attempt at tampering, it would relay this attempt to the servers, storing the intrusion and invalidating the authenticity subsequent recordings; a self-destruction attempt of the key would probably be also wise.
---
And now that I think about it, you'd probably want to put several keys/auths in the device, from different organizations -- not only governments. That way if the government authentication is positive but NGO's mismatch, you can suspect a government-backed forgery attempt (analogously vice-versa).