威胁模型
逐项攻击的覆盖状态、证明能证明什么、哪些结论今天还不成立。
在 Releases 选择平台与架构。桌面便携包解压即用,安装包按向导完成安装。
阅读可验证抽取说明,确认隐私政策与 GPLv3;随后导入名单、选择外观,再按需完成桌面集成与隐私设置。
名单管理支持 .xlsx / .xls / .csv,导入时可映射列并预览。回到点名页选择名单、人数与筛选条件即可开始。
默认全部离线。需要更强证据时,再到验证设置里决定是否开启信标熵与时间戳。
需要 .NET 10 SDK。桌面端在本机构建即可;Android 与 iOS 需要对应的工作负载,通常交给 CI 完成。
git clone https://github.com/WinFunan/VeriRandom.git
cd VeriRandom
dotnet restore SecRandom.sln
dotnet build SecRandom.sln -c Release --no-restore
dotnet test SecRandom.sln -c Release --no-build
# 直接运行桌面端
dotnet run --project SecRandom.Desktop/SecRandom.Desktop.csproj
dotnet publish SecRandom.Desktop/SecRandom.Desktop.csproj \
-c Release -r win-x64 --self-contained true \
-o artifacts/SecRandom-win-x64 \
-p:PublishSingleFile=true \
-p:IncludeNativeLibrariesForSelfExtract=true
发布 CI 支持的运行时标识:win-x64、win-x86、win-arm64、linux-x64、linux-arm64、osx-x64、osx-arm64。
| 项目 | 职责 |
|---|---|
| SecRandom | Avalonia 应用层:宿主、窗口、页面、ViewModel、应用服务与本地化 |
| SecRandom.Core | 领域服务、配置与日志、抽取引擎、证明与档案引擎、共享控件与样式 |
| SecRandom.Shared | 跨项目契约、基础配置与模型类型,不依赖 UI 运行时 |
| SecRandom.PluginSdk | 进程内插件基类型与 SRPX 打包目标 |
| SecRandom.Desktop | 桌面入口,只负责启动 Avalonia 与 Windows UIAccess 准备 |
| SecRandom.Android / SecRandom.iOS | 移动端入口,注入原生媒体、更新与键盘处理 |
| SecRandom.Platforms.* | 各平台原生窗口能力与设备枚举,视图不得直接调用平台 API |
| SecRandom.Core.Tests / SecRandom.Mobile.Tests | 单元测试、移动端无头 UI 测试 |
逐项攻击的覆盖状态、证明能证明什么、哪些结论今天还不成立。
命名空间边界、项目规则与本地化约定,是改动代码前最该读的几页。
面向使用者的版本说明,按发布时间组织;工程差异另见分支变更登记。
提交问题与合并请求的方式、分支约定,以及贡献者许可协议。
可以。程序名、安装目录、URI 协议、单实例与管道名称、打包标记与用户数据目录都是独立的,互不覆盖。
它能发现事后篡改证明、删除旧证明、删光重建,以及抽取之后改名单。它不能证明抽取之前本机程序与名单未被改动,也不能排除抽取前反复试验再挑结果。完整边界见「可验证性」页。
本分支不内置自动更新:不会在后台检查、下载或替换程序。请从本仓库 Releases 手动获取新版本;升级代码保留完整,等自有发布源就位后再启用。
不需要。点名、抽奖、证明保存、历史查询与证明重放都可以完全离线。只有默认关闭的信标熵、以及默认开启但可以关闭的时间戳会联网,两者都只访问公开服务。
手机可以做点名、抽奖与历史查看;平板使用桌面主界面与完整设置。动态插件只在桌面加载。
默认在软件目录的 data/ 下。便携包不会写到用户目录;安装版只有在包目录不可写时才回落到用户数据目录。
插件与宿主同进程、以完全信任运行,permissions 只是声明而不是沙箱。请只安装你信任来源的插件,并留意安装时展示的权限声明。