Important
此产品是 SecRandom 的一个开源分支,不应视作 SecRandom 本身
Note
VeriRandom 以 GNU GPLv3 协议发布!您可以修改和再发布源代码,但再发布的衍生作品也必须遵循 GNU GPLv3
VeriRandom 是面向课堂、团队、活动、决策等场景的公平抽取应用,相比 SecRandom ,它更注重抽取结果的可验证性以及密码学可靠性。
-
NIST Beacon 外部信标熵源 + Up/Own 双链证明(核心王牌) 可开启外部权威信标作为抽取种子,主持人无法自定义注入随机熵
-
抽取可信度评分(普通模式证明评估) 内置证据打分器,用户选择信任来源(链完整性、时间戳、服务端回执、人工时间佐证),自动生成可解释的可信度报告,直观看到这份抽签证明的证据完备程度,不再只能靠主观判断。
-
可独立关闭 TSA 时间戳 时间戳不再强制静默发起,增加开关;关闭时会弹窗告知信标周期锚定的耦合影响;隐私页明确披露:时间戳请求会向沃通发送去标识化信息。
-
跨境数据传输闸门 + 抽取上传二选一,无默认上传 SECTL 服务服务器位于境外,所有出境路径统一收敛到独立闸门;抽取结果上传给上游见证服务不再默认开启。
-
隐私默认更保守:遥测、在线状态默认关闭 首次开箱默认关闭遥测上报、在线状态。
-
配置分离签名防篡改(主持人可信签发模式) 新增「签名策略」安全模式:私钥由主持人在可信设备保管,抽取机只存放公钥。关键抽取策略(核验规则、公平配置等)签名锁定;一旦配置被篡改,启动时直接拦截。支持展示公钥指纹,抽签主界面可实时显示锁定状态指纹徽标,方便核对。
-
安全规则调整:禁用仅 TOTP 单独验证 出于安全风险考量,不允许只依靠TOTP验证码作为唯一验证方式,必须搭配密码或者USB令牌;升级时自动清理遗留的独立TOTP明文种子文件,减少明文密钥暴露风险。
-
独立产品身份,可和原版 SecRandom 同机共存 整套标识完全独立:独立程序名、安装目录、URI协议
verirandom://、单实例隔离、独立安装ID,不会和原版SecRandom抢占、覆盖、互相冲突;可选兼容开启旧secrandom://协议(带风险提示弹窗)。 -
闪抽两项易用增强 焦点回落:闪抽弹窗关闭后,自动把输入焦点归还到之前的前台窗口(快捷键闪抽后翻页笔不会丢失课件焦点) 信标预取:开启信标时提前预拉脉冲,消除闪抽时网络卡顿等待感
- 点名:支持普通随机、历史平衡及重复控制
- 闪抽:通过独立悬浮窗快速抽取学生
- 抽奖:支持奖品盘和库存抽取,学生与奖品独立管理
- 丰富呈现:统一配置动画、结果、语音、音乐和通知,并支持通知失败回退
- 根据历史次数、抽取间隔、分组、性别等因素动态调整权重,降低重复与分布失衡
- 使用稳定内部标识维护历史,学号、编号和名称仅作为显示信息
- 支持多名单、多奖品池及
.xlsx、.xls、.csv导入、映射和预览 - 每轮抽取均保存历史,方便查询和回顾
- 每次抽取都会自动保存证明记录文件
- 可以选择让服务器参与并见证抽取过程
- 可以通过官方渠道重新检查抽取结果
- 设置、名单和历史记录都可以导入、导出、备份和恢复
- 备份可以包含名单、历史、抽取证明、图片、音频等信息,但不会包含密码等安全信息
- 支持使用密码、TOTP或 U 盘保护重要操作,并可设置哪些操作需要验证
| 模式 | 可以做到 | 不能证明 |
|---|---|---|
| 离线证明 | 复查已完成的抽取过程;事后改动证明文件、删除旧证明或删光重建都能被发现 | 不能证明抽取之前本地程序、随机种子或名单未被改动,也不能排除抽取前反复试验后选择结果 |
| 离线证明(信标,仅本分支) | 复查已完成的抽取过程;事后改动证明文件、删除旧证明、删光重建或恶意种子指定都能被发现 | 在无法确定确切抽取时间时,攻击者可以伺机等到有利结果再执行抽取 |
| 在线见证 | 保护服务端锁定后的抽取流程 | 不能证明名单真实、完整,或提交前未被筛选 |
补充说明:
- 每次抽取都会立即保存本地可重放证明,并把同一份证明提交给服务端重放签名;证明摘要还会交给第三方时间戳服务(只发送摘要,不发送名单或抽取内容)
- 本机证明按追加式哈希链保存,删除或改写会留下缺口;服务端会记住每台设备见过的链头,把本地证明删光重建会被识别为链位置回退
- 证明会承诺抽取时所用名单的「记录 ID → 姓名/学号/组别」映射摘要,因此抽取之后改名单、把中签记录指向别人会被发现
- 抽取之前筛选名单(先删掉或禁用某个学生再抽)无法被证明:摘要只覆盖抽取那一刻的名单,要覆盖这类情况需要「抽取前先向第三方确认名单」的流程,目前不做
- 信标会锁定抽取熵,将信任根转嫁
| 版本 | 技术栈 | 阶段 |
|---|---|---|
| v1 | Python + PyQt5 + qfluentwidgets | 初代桌面实现 |
| v2 | Python + PySide6 + qfluentwidgets | Qt 技术栈演进 |
| v3 | C# + Avalonia + FluentAvalonia | .NET 桌面重构,持续发展抽取、验证与桌面集成能力 |
- GitHub Releases 提供各版本的发行包与更新说明
- GitHub Releases 提供各版本的发行包与更新说明
- 上游仓库官方下载页面 提供上游版本下载最新版入口
- 自动更新在部署前验证已签名的发布清单以及制品的长度和哈希;请以每个发行版本提供的安装包和说明为准
- VeriRandom 使用 GNU GPLv3 协议发布
- 第三方组件、版权和分发审查信息见 THIRD-PARTY-NOTICES.md
- VeriRandom 通过历史平衡的权重与候选过滤策略帮助降低重复抽取、改善长期分布;它不替代对现实名单、规则或组织流程的管理,也不对这些现实条件作出软件无法验证的保证
感谢每一位为 VeriRandom 与 SecRandom 提交代码、报告问题、完善文档和提供反馈的贡献者。头像由 GitHub 贡献者数据动态生成,点击可前往本仓库Github 贡献者页面 或 上游仓库GitHub 贡献者页面 查看完整统计
Copyright © 2025-2026 WinFunan
Copyright © 2025-2026 SECTL