作业6

题目

设计一个投票系统APP,投票信息关乎隐私,一般采用无记名投票,但在网络上投票具有可溯源性,明文传输别人窃听,就会知道投票人投谁的票。为了保护隐私、又要确认每个人都投了票,要求设计一款APP。

软件需求

1、采用网络服务器server + 用户手机app模式
2、主要功能包括:注册、登陆、报名参加选举人、app投票、统计公布选举结果
3、投票,单选,内容为各选举人加弃权
4、确认每个人都投了票,而且投了有效票
5、任何人(包括服务器管理员)也不能知道投票人投了什么票
6、网络传输要防止窃听

实现

功能模块

模块 功能
注册 设置用户名与密码进行注册
登录 检查用户的用户名与密码,登录用户
报名参加选举人 处理用户报名参加选举人的操作
app投票 用户投票
统计公布选举结果 处理统计票数、公布选举结果

认证协议

采用 Kerryberos 认证协议

注册用户阶段:

  1. 身份验证服务交换:用户完成身份认证,获得访问TGS的票据
  2. 票据授予服务交换:获得访问服务器的票据

登录阶段:
用户使用经 AS 认证的票据向服务器进行身份验证,服务器验证用户是否具有权限

保证隐私

  1. 所有数据采用 SSL 传输,防止窃听
  2. 对传输数据采用非对称加密,由服务器生成密钥对,客户端使用公钥对投票加密,服务器使用私钥解密

确认投票

  1. 服务器收到投票信息后,首先验证投票的合法性,满足条件后将票数累加到投票池中,并标记该用户已投票
  2. 处理完成后,服务器不存储用户投票内容,仅记录已投票结果
posted @ 2022-05-23 15:52  disposable  阅读(29)  评论(0编辑  收藏  举报