作业6 访问控制

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

软件需求:

1、采用网络服务器server + 用户手机app模式,

2、主要功能包括:注册、登陆、报名参加选举人、app投票、统计公布选举结果。

3、投票,单选,内容为各选举人加弃权。

4、确认每个人都投了票,而且投了有效票。

5、任何人(包括服务器管理员)也不能知道投票人投了什么票。

6、网络传输要防止窃听。

设计要求,

1、写清楚你的系统为了完成上述功能要求,设计了那些功能模块,每个模块有什么功能;

2、写清楚你的认证协议,要核实身份,是不是有效注册用户;

3、写清楚你是如何保证隐私不被别人得到的;

4、写清楚如何保证无法伪造投票。

大家加油吧。

 

功能模块

注册:进行用户注册

登录:进行用户登录

报名:报名参加选举人

投票:进行投票,单选,选项为各选举人和弃权

结果:显示统计公布的选举结果

 

认证协议

利用Kerberos协议与公钥私钥的机制。

用户通过Kerberos服务获得了与服务器交流的Ticket,并在注册/登录过程中使用服务器的公钥加密注册/登录信息发送给服务器,服务器用自己的私钥解密,经过注册/登录模块的处理,将回应用用户的公钥加密,用户接收到之后用自己私钥解密,完成注册/登录过程,确认有效用户。

 

保证隐私

使用“基于角色的访问控制(RBAC)”,在用户注册时,给用户分配不同的角色,对于投票方面相关的信息:普通用户仅有投票、察看自己投票信息和察看最终结果权限;服务器管理员仅有对投票结果进行公示的权限,(而没有察看投票数据权限);

具体实现可以在Kerberos认证过程中:令AS根据不同用户角色信息,返回相应有限权限的授权票据(TGT);然后TGS根据相应有限权限的授权票据(TGT)返回相应有限权限应用服务票据(ST);

最后用户凭借ST票据仅能使用与其角色相关的应用功能。

 

保证无法伪造

系统可以生成公钥和私钥,并将公钥向用户公开;用户在得到公钥后,投票的具体信息就可以经过公钥加密后再发送给系统;用户只能用私钥解密。

攻击者不能获得私钥故无法破解密文;而系统要回复加密信息给用户需要用户提供的公钥给系统用于加密,用户用自己的私钥来解密;

 
posted on 2022-05-23 16:57  Biography  阅读(21)  评论(0)    收藏  举报