A witnessed authentication method, the method being performed by an authentication server and comprising: receiving, from a root client device associated with a user, a request for witnessed authentication; selecting, from a list of witness client devices authorized to perform witnessed authentication, a witness client device that is near a current location of the root client device; randomly generating, by a code generator of the authentication server, a task code defining an interactive task; sending the task code to both the root client device and the witness client device; receiving, from the root client device, (a) an authentication result indicative of biometric authentication of the user on the root client device, and (b) first movement data indicative of movement of the user performing the interactive task as captured by the root client device; receiving, from the witness client device, second movement data indicative of movement of the user performing the interactive task as captured by the witness client device; analyzing the first movement data and the second movement data to determine whether the first movement data and the second movement data match an expected movement, generated by the code generator based on the task code and using an intelligent algorithm, that predicts a movement of the user when performing the interactive task and to verify that both the root and witness devices were present during the biometric authentication; and determining that the user is successfully authenticated when the authentication result indicates success and the first movement data and the second movement data match the expected movement, wherein the root client device and the witness client device are positioned adjacent one another while the user performs the interactive task. receiving, from a root client device associated with a user, a request for witnessed authentication; selecting, from a list of witness client devices authorized to perform witnessed authentication, a witness client device that is near a current location of the root client device; randomly generating, by a code generator of the authentication server, a task code defining an interactive task; sending the task code to both the root client device and the witness client device; receiving, from the root client device, (a) an authentication result indicative of biometric authentication of the user on the root client device, and (b) first movement data indicative of movement of the user performing the interactive task as captured by the root client device; receiving, from the witness client device, second movement data indicative of movement of the user performing the interactive task as captured by the witness client device; analyzing the first movement data and the second movement data to determine whether the first movement data and the second movement data match an expected movement, generated by the code generator based on the task code and using an intelligent algorithm, that predicts a movement of the user when performing the interactive task and to verify that both the root and witness devices were present during the biometric authentication; and determining that the user is successfully authenticated when the authentication result indicates success and the first movement data and the second movement data match the expected movement, wherein the root client device and the witness client device are positioned adjacent one another while the user performs the interactive task.