除了密码之外,还需要闪存驱动器可以提供更高的安全性。您的方法似乎不是特别明智 - 带有用于身份验证的“salted hash”的闪存驱动器。学生可以找到闪存驱动器(或软件),对其进行逆向工程,修改加盐哈希以使用他们在闪存驱动器上知道的密码。或者,如果您在远程服务器 + 闪存驱动器上有密码(并且应用程序要求两者使用相同的密码),他们可以只使用加盐密码并应用他们的 gpu 来尝试暴力破解它;比在远程服务器上重复登录尝试容易得多。有些老师会在某个时候将他们的闪存驱动器放在外面,而学生会在某个时候偷走并复制它。
你的想法的一个更好的实现是需要一个公钥 - 私钥身份验证,其中闪存驱动器上的私钥使用强密码进行加密。
同样从用户体验的角度来看,必须拥有闪存驱动器可能非常不方便(例如,丢失驱动器、将其遗忘在计算机中、将其连接到他们的钥匙链上并将他们的钥匙链留在计算机中等)。
或者您可以只使用两因素身份验证。每次登录之前,老师都会收到一条带有一次性密码的短信,然后输入,然后老师才能输入完整密码以完全登录。(如果他们不熟悉短信或没有无限短信计划,此解决方案可能会引起教师的抵制)。
顺便说一句,我会非常犹豫是否让学生能够访问计算机和/或重新启动它。硬盘驱动器应加密。(未加密驱动器上的数据很容易被盗;比如启动到 linux live cd/usb;或取出硬盘驱动器;将其作为外部驱动器安装在他们的计算机中)。教师应警惕学生通过硬件键盘记录器(插入 USB 键盘和计算机之间)截获他们的密码/密码。
此外,我建议进行一些可以放入教师工具中的健全性检查。列出每次登录时老师的上次登录时间和操作(并有一个非常可跟踪的审核日志)。大多数时候,成绩册是一次写成绩,永远不会改变;或仅更改将测验/考试交还给学生的那一天。让所有评分更改都清楚地标明时间戳、版本控制并突出显示(例如,更改显示为鲜红色),以便您可以轻松查看是否存在教师不记得的学生成绩增加的模式。进行异地备份。也许安装网络摄像头并在每次登录时拍摄老师的照片,并将照片放在审核日志旁边,并在您每次尝试输入密码时显示(因此即使网络摄像头在学生找到路时被阻止;