符合Palam教授要求的小组作业安全提交与验证协议问询
作业安全提交与验证协议设计与论证
核心约束明确
本协议需满足三个核心要求:
- 截止时间后提交的作业直接拒收
- 作业存储于全体学生拥有读写权限、无删除权限的共享服务器
- 无师生单独密钥共享,具备可扩展性
协议分步流程
1. 前置准备阶段(作业发布时完成)
- 教授发布作业时,明确精确到秒的UTC截止时间,同时在共享服务器创建
作业提交根目录,配置权限为全体学生可读写、不可删除。 - 教授公开自己的RSA公钥
Pub_P,要求所有学生自行生成个人RSA密钥对(私钥Pri_S自行保管,公钥Pub_S),并将[学号]-[姓名]-Pub_S格式的条目追加到共享目录下的学生公钥注册表中(注册表仅允许追加,禁止修改已有条目,由教授配置权限)。
2. 作业提交阶段(截止时间前)
- 学生完成作业后,生成作业文件
HW_S,同时创建提交元数据文件Meta_S,内容包含:- 学号、姓名
- 作业文件的SHA-256哈希值:
Hash(HW_S) - 本地生成的UTC提交时间戳(精确到秒,需确保本地时间与UTC同步)
- 用个人私钥
Pri_S对上述所有内容的签名:Sig_S = Sign(Pri_S, 学号+姓名+Hash(HW_S)+提交时间戳)
- 学生将
HW_S和Meta_S打包为[学号]-[提交时间戳].zip,上传至作业提交根目录;若需更新作业,可上传新的打包文件覆盖旧文件(因有读写权限),但旧文件仍会保留(无删除权限)。
3. 截止后验证阶段
- 第一步:筛选有效提交
教授遍历共享目录中的所有提交文件,仅保留提交时间戳 ≤ 截止时间的文件;若学生本地时间偏差过大,结合服务器记录的文件接收时间辅助判定(服务器时间由教授提前校准,不可篡改)。 - 第二步:验证提交真实性与完整性
对每个有效提交:- 从
学生公钥注册表中取出对应学号的公钥Pub_S - 验证
Meta_S中的签名Sig_S有效性:用Pub_S验证签名对应的原始内容(学号+姓名+Hash(HW_S)+提交时间戳),确保提交确为该学生发起且内容未被篡改 - 计算
HW_S的SHA-256哈希值,与Meta_S中的Hash(HW_S)比对,确保作业文件未被篡改
- 从
- 第三步:确定最终作业
若同一学生存在多个有效提交,取时间戳最晚的文件作为最终作业。 - 第四步:公示验证结果
教授整理所有验证结果,生成验证结果清单,并用个人私钥Pri_P签名后发布到共享目录的结果公示区;学生可通过Pub_P验证签名,确认结果未被篡改。
合理性论证
截止时间约束落地
通过提交元数据的时间戳+服务器接收时间双重校验,截止时间后的提交直接被过滤;学生无法篡改已提交的时间戳(签名验证会失败),也无法删除早于截止时间的提交记录(无删除权限),彻底杜绝逾期提交的可能性。适配共享存储权限
学生的读写权限允许其更新自己的作业(覆盖旧文件),无删除权限确保所有提交记录可追溯;签名+哈希的双重验证机制,使得即使其他学生能读写共享目录,也无法篡改他人的作业内容或提交元数据(篡改会导致签名或哈希验证失败)。可扩展性满足
无需教授与学生单独共享密钥,学生自行管理个人私钥,教授仅需维护一个公钥,无需为新增学生单独配置密钥,完全适配大规模学生群体的教学场景。防抵赖与篡改
学生的私钥签名确保提交不可抵赖,哈希值确保作业文件完整性;共享目录的无删除权限保留了所有提交痕迹,教授可随时追溯历史提交记录,避免纠纷。
内容的提问来源于stack exchange,提问作者Fawzia Omer
相关产品推荐
相关产品推荐

