作业6 访问控制(10)
设计一个投票系统APP,投票信息关乎隐私,一般采用无记名投票,但在网络上投票具有可溯源性,明文传输别人窃听,就会知道投票人投谁的票。为了保护隐私、又要确认每个人都投了票,要求设计一款APP。
软件需求:
1、采用网络服务器server + 用户手机app模式,
2、主要功能包括:注册、登陆、报名参加选举人、app投票、统计公布选举结果。
3、投票,单选,内容为各选举人加弃权。
4、确认每个人都投了票,而且投了有效票。
5、任何人(包括服务器管理员)也不能知道投票人投了什么票。
6、网络传输要防止窃听。
设计要求,
1、写清楚你的系统为了完成上述功能要求,设计了那些功能模块,每个模块有什么功能;
2、写清楚你的认证协议,要核实身份,是不是有效注册用户;
3、写清楚你是如何保证隐私不被别人得到的;
4、写清楚如何保证无法伪造投票。
作答如下:
功能模块简述:
| 模块 | 功能 |
| 登录/注册模块 | 用户用来登录和注册 |
| 报名参加选举人 | 用户可以报名进而参与选举 |
| app投票 | 用户对自己想要投票的人进行匿名投票 |
| 统计公布选举结果 | 投票截止后,公示结果 |
认证协议:
借助Kerberos;
用户先去和AS认证获得访问TGS的票据;再向TGS证实自己已被AS认证;再用返回的ticket来与服务器身份验证交换,进而获得服务。
借此可以很轻松地实现 登录/注册模块的认证问题。
保证隐私:
在访问控制模型上采用RBAC的方式。
这样的话引入了role的概念,使得有以下几种角色:
1.参选人
2.投票人
3.投票发布者
不同的角色有不同的访问许可权,其中只有投票发布者才有查看结果的权利。
同时网站要配置SSL,即采用https而非http
这样对于服务器的信任可以通过CA证书来解决;
而非对称加密也使得安全性进一步得到提高,防止其他人窃取信息。
防止伪造投票:
防止他人伪造:

浙公网安备 33010602011771号