作业六 访问控制
- 题目
设计一个投票系统APP,投票信息关乎隐私,一般采用无记名投票,但在网络上投票具有可溯源性,明文传输别人窃听,就会知道投票人投谁的票。为了保护隐私、又要确认每个人都投了票,要求设计一款APP。
软件需求:
- 采用网络服务器server + 用户手机app模式,
- 主要功能包括:注册、登陆、报名参加选举人、app投票、统计公布选举结果。
- 投票,单选,内容为各选举人加弃权。
- 确认每个人都投了票,而且投了有效票。
- 任何人(包括服务器管理员)也不能知道投票人投了什么票。
- 网络传输要防止窃听。
设计要求:
- 写清楚你的系统为了完成上述功能要求,设计了那些功能模块,每个模块有什么功能;
- 写清楚你的认证协议,要核实身份,是不是有效注册用户;
- 写清楚你是如何保证隐私不被别人得到的;
- 写清楚如何保证无法伪造投票。
- 模块及功能
| 模块 | 功能 |
| 注册、登录认证 | 服务器上注册登录用户 |
| 报名选举人 | 用户报名参加投票 |
| 投票模块 | 已报名的用户有资格参加投票 |
| 统计公示模块 | 统计并公布投票结果 |
- 认证协议
使用Kerryberos认证协议。注册用户阶段对应Kerberos协议的认证过程中前两个阶段:
第一阶段:身份验证服务交换。用户完成身份认证,获得访问TGS的票据。
第二阶段:票据授予服务交换。获得访问应用服务器的票据。
登录对应第三阶段:用户拿着AS认证的Ticket向服务器进行身份验证,服务器需验证用户是否具有权限。
- 保护隐私
使用基于角色的权限访问控制。用户具有投票,查看自己投票信息的权限,服务器管理员无法查看投票人信息。主办方具有访问后台统计用户投票数据和发布统计结果的权限。这一功能在注册用户阶段实现,让AS能够判定用户的角色是否可以访问对用的TGS,并给出相应的Ticket。
- 避免伪造
使用公开密钥通信,用户向主办方发送信息时,主办方创建公钥和私钥,用户用公钥对明文进行加密形成密文然后传输,主办方收到密文用私钥对密文进行解密,获取明文。主办方向用户发送信息则用用户生成的公钥加密,用户用自己的私钥进行解密。

浙公网安备 33010602011771号