Suppose a student takes an exam at home. Since home-exams are prone to cheating, the student wants to be able to prove that he/she did not cheat. So the student puts cameras in the room, which videotape the room during the entire exam. Now, if the student is blamed for cheating (e.g. because his/her exam is similar to another exam), then he can show the video and prove that he did, indeed, write the exam by his own, did not leave the room during the exam, did not use unallowed materials, etc.

The only problem is that video can be edited. Theoretically, the student can exit the room, talk with a friend about the exam, then get back into the room, and after the fact, use a video editing software to erase the relevant part.

Is there a way to take a video and simultaneously sign it digitally, so that it will be possible to verify later that the video was not edited? (Is there maybe a software that does this?)

  • 23
    Why not just stream the video out to a trusted external server?
    – Polynomial
    Commented Jan 9, 2021 at 21:59
  • 21
    Even with a live stream there would be still plenty of ways to cheat as the video cam can not make a 360 degree picture and thus has a limited view. Consider a beamer that projects a cheat sheet onto the wall not visible by the cam. Or small in-ear headphones -typical cam quality is way too low to identify such gadgets.
    – Robert
    Commented Jan 9, 2021 at 23:03
  • 10
    Coming up with a general way to prove there was no foul play tends to be problematic, because it goes something like this: "It is not manipulated because X." Someone finds a way to manipulate a video that takes X into account. "It is not manipulated because Y." Someone finds a way to manipulate a video that takes Y into account. "It is not manipulated because Z." And so on. In general you're only proving that is was manipulated, or you assume it's fine.
    – NotThatGuy
    Commented Jan 10, 2021 at 14:23
  • 3
    You should probably add "real-time" to the title, as that's what your question, and most of the answers, seems to be about. Just generally checking whether a video was manipulated is a huge topic by itself and likely beyond the scope of this site (and having a video recorded either before or after the fact would be problematic for your use case, even though it may not have been manipulated).
    – NotThatGuy
    Commented Jan 10, 2021 at 14:28
  • 4
    is it possible to make a reality that is provably not manipulated? ...... have you tried just trusting your students?
    – Mike D.
    Commented Jan 11, 2021 at 5:07

12 Answers 12


Trusted Timestamping

I think, if you continue down this line of thinking, you will end up with something very similar to Trusted Timestamping Servers.

The core idea of trusted timestamping is that you submit a file to the server and it signs an attestation saying that it saw the file with hash aabbcc112233 at time X. This is typically used for both proving the initial publication time (and who published it), as well as proving that the file has not been modified since.

You need the trusted 3rd party because if the end-user creating the video is the same person signing it, then there's nothing stopping them from re-signing it after they edit it.

Why not just save the video stream on the server?

That said, I don't think you really need any fancy crypto here; the simplest solution is probably best. Have the student live-stream their cameras to an exam-monitoring website. The website logs the video stream in its database as it comes in, and it can detect and alert if the live stream had any breaks or disruptions long enough for manual editing to potentially have taken place.

Create a blockchain of the video stream

Update addressing comments.

Ah, you have the extra privacy requirement that students do not want their video stored on 3rd party servers (that should have been in the question!).

In that case, what makes this problem hard is that you can't wait until the end of the exam and publish a single hash for the entire video because that gives the student too much time to edit a middle section of the video. The solution that comes to mind would be some kind of hash-block-chaining (not "The Blockchain (Bitcoin)" but "a blockchain"). Either the sender or receiver breaks the video stream into, for example, 10 s "blocks", hash each block as they are produced/recieved, and stream the hash for each block along with the video in real-time. You do "block-chaining" by including in each block the hash of the previous block. In math notation:

h_0 = hash(videoblock_0)
h_1 = hash(videoblock_1 || h_0)
h_n = hash(videoblock_n || h_n-1)

This preserves privacy because the server only needs to store the hashes and not the video itself. This is streaming-friendly because you are producing hashes throughout the stream and each hash covers the entire stream up to that point. This is efficient because the server only needs to store the most recent hash (h_n), and that is enough to later verify if a provided video was tampered with at any point in the stream (though to detect where it was tampered you would need to save every block hash).

  • 46
    One possible way to cheat here would be that the student prerecords a video and streams that video (or its hashes) instead of a realtime video.
    – nobody
    Commented Jan 10, 2021 at 8:14
  • 16
    This would be a proof that the video existed at a specific time. However, it doesn't prove the video wasn't recorded beforehand and just published or streamed at that time. Commented Jan 10, 2021 at 8:40
  • 18
    The video presumably includes the exam that the student is writing. As such the content of the video is proof that it has not been pre-registered, unless the student had access to the exam questions ahead of time, in which case the entire point of the video is moot. This proof can only be exhibited by publishing the content of the video rather than its hashes, but the question specified such a scenario in case of suspicion of cheating anyway, so this must be considered acceptable.
    – Annonymus
    Commented Jan 10, 2021 at 12:23
  • 21
    In theory, the video could be edited in real-time. With a modified webcam driver, I could press a button and replace the real image with a pre-recorded one of me sitting at a table, blending the two so that they merge without a visible cut. Commented Jan 10, 2021 at 13:59
  • 15
    If the student is in a security, crypto or some general IT class, I would leave them time to edit and resend stream, I mean that deserves an A at college level.
    – blankip
    Commented Jan 10, 2021 at 23:37

Before you get to the "video" part of the question, you should know that a video does not guarantee fool proof honesty.

There was a student who surgically implanted an earphone to cheat. There's also invisible ink, bluetooth pens, watch hacks etc. Do a bunch of internet searches for how students cheat.

I wouldn't recommend using video as proof at all. A human invigilator has to be physically present to ensure cheating does not happen. Institutions could either re-think how students are seated or protected from infections when writing exams in institutions or perhaps re-evaluate the way the education system tests students. I've personally found the test/exam system to be fundamentally flawed, in the way it makes people memorize information and regurgitate it out instead of being designed to help the student understand and appreciate what they are learning and how it'd be useful to them in the world.

Now for the video part, an elaborately created deepfake could allow somebody else to write the exam. There are claims of using AI to spot cheating by checking even writing style, but there's a long way to go before it can be foolproof. Recent advances ref1, ref2, ref3.

  • 7
    -1 In most situations getting surgery to cheat on an exam is unrealistic. Also a human invigilator wouldn't be better at stopping these forms of cheating.
    – northerner
    Commented Jan 10, 2021 at 19:30
  • 6
    Or bone-transmitting speaker and FM receiver built into a pen...
    – ThoriumBR
    Commented Jan 11, 2021 at 1:22
  • @FedericoPoloni: Fixed it. Thanks.
    – Julian
    Commented Jan 11, 2021 at 3:27
  • I highly doubt writing style is feasible, given how for example I have such an inconsistent writing style, it would probably not even recognize me as me.
    – user163495
    Commented Jan 11, 2021 at 15:20
  • 2
    @MechMK1 Questioned document examination would like a word with you. Even the most inconsistent writers have consistency at some level. If not in typography, then in spelling and grammar. Commented Jan 11, 2021 at 15:41

The actual answer is NO, unless you record the video with a device that signs the file with a key that can't be extracted from its hardware. In other words, your videos should be signed by the camera's hardware, which will guarantee the recordings are truly the original ones. Otherwise the files could always have been manipulated by someone or something external, even in real time.

All the other answers are very interesting, but they all have one major flaw: they suppose the video file you provide is genuine, but it's actually your file so you are still in control of whatever you are recording and providing. Between the camera and the upload, anything could happen. A small lag could be added to the video, or it could be slowed down, or looped, etc., even by someone else in real time while you are taking the exam. Actually, if you really want an easier way to cheat, you can just focus on the audio part: it's easier to manipulate the audio in real time (muting the room's channel, mixing white noise or ambient sounds, etc.) to allow someone else to talk to you and help you. When you sign the video with the audio track it's too late, because the result has already been manipulated (gone through a mixer, etc.).

That's why the file must be signed by the device itself: if exam-video.mp4 was signed by Nikon on 2021-01-10 09:01:15, then you can be sure that's the original file recorded by the camera. Note that if the camera didn't detect the difference between the internal mic (original sound) and an external mic (potentially manipulated channel) then you would still have the "audio vulnerability" even in signed files. I actually don't know how such cameras work, all I know is that they do exist, and in the past some were even hacked (someone managed to extract the crypto keys from the camera's hardware).

As a final note, remember that "manipulating videos" and "cheating on online exams" are separate issues. Students can cheat even if they record and provide genuine videos of themselves taking the exam.

  • 7
    Best answer here. Just a minor caveat, the camera's hardware would have to be tamper-resistant too, for it to be as near to foolproof as possible.
    – nobody
    Commented Jan 10, 2021 at 14:45
  • 11
    A camera with built in video-signing can still be fooled; simply point the camera at a TV screen playing your manipulated video.
    – mjt
    Commented Jan 11, 2021 at 9:54
  • 1
    Also it needs a verified source of time. Otherwise you could record the video before/after the exam. I don't think anything is technically viable unless you add a privacy destroying surveillance system
    – JensV
    Commented Jan 11, 2021 at 9:56
  • 2
    @mjt this can actually be mitigated by starting the call in a short human interaction where the student needs to respond to random requests from the other side like this
    – Rsf
    Commented Jan 11, 2021 at 10:13
  • @nobody tamper-evident would be enough, and easier to achieve. Commented Jan 11, 2021 at 14:13

No, sending/retrieving/verifying a tamper-resistant cameras that could deliver the level of confidence wanted here is prohibitively expensive and still cannot reveal non-visually-obvious augmentations.

Though some companies are happy to sell video analysing software that by design cannot possibly work as advised - any trick investigating a video from unknown sources can be circumvented, even on a live low-latency feed, given enough computing power & effort. (This also means any scheme trying to prove a video was not edited after a certain time is useless, as it is not ruling out it was edited shortly before that time).

There is, however, a more fundamental problem that is even further away from being efficiently solvable: The whole idea of trying to assess a student outside a controlled environment implies a certain regularity of events outside the students control that can cast some doubt on fair play anyway: Imagine one out of 100 students loses electric lighting during the assessment. Two have to pause to deal with a possible emergency down the hallway. One camera malfunction and two computer malfunction later, the whole testing environment just is not reliable enough to even bother disqualifying students with irregularities.

I am afraid (happy) we will have to go back to the super old school way of eliminating ways in which students can gain unfair advantages by using what is & should always be available to them. Which may cost more in designing clever methods of assessment, but at least that money is invested towards students learning, rather than camera manufacturers.


Ultimately, you're asking about trusting an untrusted subject, using untrusted hardware and software, located in an untrusted environment. That's not a recipe for success.

  • Or you introduce a trusted 3rd party ...
    – schroeder
    Commented Jan 11, 2021 at 14:50
  • 1
    @schroeder The third party has to control all the environment and equipment. Essentially, you're talking about a testing center like Pearson or Prometric.
    – Ron Trunk
    Commented Jan 11, 2021 at 14:55
  • 1
    Nothing real in this universe can be proven. There is only a degree of certainty that can be had about the likelihood of an observation to be observed again. That's why the US legal system is based on reasonable doubt and hence why it requires an arbitrator, +1.
    – Mazura
    Commented Jan 13, 2021 at 0:29

You actually have 2 questions, and I don't know.which is the "real" one:

  1. "Is there a way to take a video and simultaneously sign it digitally, so that it will be possible to verify later that the video was not edited? (Is there maybe a software that does this?)"

  2. Is there a way the student or.university can use a camera or authenticated video to prove no.cheating.

The first asks technologically can a video be validated as "true" or at least unmodified. The second asks socially if cheating can be proven or disproven for either party's comfort (possibly using such a technological means).

Short answer is,:

  1. A video or other file can be validated as unaltered, at least until encryption advances, that's how digital security works.

  2. But that's useless because it assumes the original before digital signing was validated. What will you do? Use trusted encryption and a verified/encrypted pathway? At worst I play games with the camera, or even in theory the light entering the sensor - its just a sensor, it can be fooled as to what's going on, and its output has to be interpreted by humans who also can be fooled. Ask any conjurer. Or I find ways to cheat it can't detect. Are you sure your camera will highlight if my identical supergenius twin with stick-on matching fingerprints, retina matching lenses, and a faked sample of my DNA took the paper? Or a hundred other loopholes, ranging from realistic to.far-fetched sci-fi. Other answers touch on these.

  3. If you go for social solutions, such as China might - every person chipped, CCTV everywhere, that raises the barrier.

Really that's all you can do in security. Raise the barrier. Almost never eliminate it.


The surveillance industry developed a standard for defining a way to get a video from the camera while having at the same time the proof that it was not manipulated, so that it cannot be rejected in trials.

The result is the so called ONVIF Export File Format, which has been also evaluated and, I think, adopted by NIST.


What about having a projector in the student's room that projects a number on to a wall that is visible to the camera. That projector is fed via a secure stream to the university server. The number changes every 5 seconds in a cryptographic random sequence.

  • This might be feasible if it was a small number of students, but I doubt this would work for a whole university. If the university has to buy and send projectors to every single student's house ... that would be very expensive. Commented Jan 12, 2021 at 8:43
  • 1
    To pass this check, the student can still have a cheat sheet open, they just need software that pauses the recording while the sheet is open, and the sheet needs to hide for 1 frame (1/30th of a second) every 5 seconds so it can capture the new numbers.
    – Luc
    Commented Jan 12, 2021 at 14:28

You have to start with hardware you trust. This hardware has a difficult to breach trusted core chip. In that trusted core chip, it has a secret cryptographic signing module.

Each component in turn has a slightly less secure identity that it validates with the core chip, and the entire system refuses to work if they aren't all valid and running valid firmware and software.

Next you produce a series of trusted timestamp tokens that include the crytographically secure hashes of the video segments in a blockchain.

Each token is signed by a 3rd party trusted timestamp server, and includes the hash of the previous token plus a hash of the current segment of video.

PreviousToken: HASH_TEXT
CurrentBlob: HASH_TEXT
Timestamp: XXX GMT
TrustedTimestampSignature: BLAH BLAH BLAH

They transmit

PreviousToken: HASH_TEXT
CurrentBlob: HASH_TEXT

to the trusted server, who responds with

PreviousToken: HASH_TEXT
CurrentBlob: HASH_TEXT
Timestamp: XXX GMT
TrustedTimestampSignature: BLAH BLAH BLAH

and this resulting token is guaranteed to have been produced prior to the time written there by the 3rd party timestamp server.

The above is then signed by the trusted hardware

PreviousToken: HASH_TEXT
CurrentBlob: HASH_TEXT
Timestamp: XXX GMT
TrustedTimestampSignature: BLAH BLAH BLAH
Latency: ZZZ nanoseconds
MaxLatency: YYY nanoseconds
HardwareFailures: QQQ
TrustedHardwareSignature: BLAH BLAH BLAH

where the trusted hardware promises that the video blob was produced by the video hardware within a certain number of nanoseconds of the timestamp from the 3rd party server being placed on it.

Then the hardware and software proceeds to record the next segment, which in turn uses a hash of the above to link it to the previous segment.

When you are all done, you transmit one token to the proctor:

PreviousToken: HASH_TEXT
CurrentBlob: HASH_TEXT
Timestamp: XXX GMT
TrustedTimestampSignature: BLAH BLAH BLAH
Latency: ZZZ nanoseconds
MaxLatency: YYY nanoseconds
HardwareFailures: QQQ
TrustedHardwareSignature: BLAH BLAH BLAH

From this, you cannot get the video the student produced.

But if the student produces that video later, plus the tokens that where not transmitted, the proctor can prove that the video provided was recorded during the exam, was continuous, and was from trusted hardware.

I included enough information in my token that if a technical problem happened (there was a network outage that was long enough to make the security not work, for example), the proctor can determine that this happened from the metadata.

So if someone tries to cheat by inducing networking errors or hardware failures, this shows up before investigation for cheating from other evidence. And if there is such a failure, they can get the student to do another exam and ignore the contents of the failed one, without even looking for other signs of cheating, based on whatever criteria they choose.

Alternatively, your system could just treat any hardware failures, or communication latency beyond a certain value, as a refusal to continue to sign the tokens.

  • This is still defeated by a TV screen in front of the secure camera setup
    – Delioth
    Commented Jan 12, 2021 at 21:08
  • @Delioth That is one good TV! (or crappy signal) Note it is also defeated by someone else who looks exactly like you doing the test. You won't be able to slide the TV in front of the live video, so the entire video would have to be done on the TV.
    – Yakk
    Commented Jan 12, 2021 at 21:29

In CCTV systems there is a method called Watermark. Watermark is a digital signature and when talking in the CCTV area, usually a word or a sentence which would be present in the recorded video.

It is possible to see digital watermark that confirms authenticity and integrity of signal holder and shows owner’s identity using a software which is provided by the manufacturer of the CCTV system.

Taking Dahua devices for example, on the next screenshot you can see how one can configure watermark string.

enter image description here

Now, when recorded video data is edited, when checking the Watermark string with the appropriate software, watermark would be false and that would be the proof.


Here's one Idea: At the end of the exam when the student submits the answers ask him to also submit a hash (md5sum, sha etc.) Of the video recording itself.

Assuming you put a time limit say 5 mins within which he must submit the hash any editing he does after that on the recording will change the hash.

Should be pretty low overhead to impliment. Maybe set up a Google form to upload the hash.

On the other hand the biggest challange I have faced is more physical: how do you ensure that the video cameras even if multiple have a 100% coverage? What if the student sets up something eg a display beyond the field of view to cheat.

  • 2
    The problem here is that the student is not limited by that 5 minute windows, because the decision to gain an unintended advantage was made before the exam even started. The video editing is pre-set before the exam starts, and the challenge to fill the hash is only exactly as annoying for our unexpected top-performer as it is for everyone else.
    – anx
    Commented Jan 10, 2021 at 21:41
  • @anx Not sure I understand. The editing will have to be done either after or at best during the exam right? Commented Jan 11, 2021 at 6:49
  • The simplest trick I can imagine is the student preconfiguring the camera to output 90 minutes of video but only including 80 minutes of actual recording, leaving about 10 minutes for unauthorized tools. Even this super low effort approach is not immediately obvious from the correctly hashed (albeit lower frame rate) output.
    – anx
    Commented Jan 11, 2021 at 19:22
  • If this was done for every student at a university for example, asking them all to submit a hash would be pretty difficult. Many of them might not even know what a hash is, nor how to compute one - especially if what they are studying is not in an IT-related field. Commented Jan 12, 2021 at 8:41

I propose a more tactical solution than technical.

We need to juxtapose video of the User with that of realtime verifier to ensure user and verifier always go hand in hand. This would ensure user is not the sole creator of all parts of the video.

University streams a video of say random long codes changing at regular intervals. This streaming starts with exam and ends with exam at predefined time or when user requests for one. University records all the codes and timestamp in their servers for verification. Let's call this verifier stream or video

This verifier video is live streamed or recorded along with User activities. Now there are two components of the video : one owned by user and another owned by university.

This unified video is now used to validate if user uploaded an unedited video. ASCII codes are rather easy for ocr to detect. In case quality or orientation of video is an issue, a test run could be performed before real test to ensure everything works good.

Initial verification of user that its human and not some recorded agent could be performed like we use captcha today. User is asked to perform certain activities in realtime which reasonably only a human could perform (say gestures, or speak certain answers). Once the user is verified, it can start with the exam.

In case user already has the problem statement and its not a surprise test (where problems are shared at the start of exam), a user maybe asked to write down some realtime generated codes which are tied to timestamps .

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .