信安-作业6-岳野-120L021529

题目:

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

软件需求:

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

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

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

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

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

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

设计要求,

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

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

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

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

大家加油吧。

 

答:

功能

注册登录:平台注册登录

报名:用户报名参加选举

投票:用户进行匿名投票

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

认证协议:

采用Kerberos协议进行认证,

Kerberos协议中的第一阶段和第二阶段为用户注册/登录的过程,即用户与认证服务器AS之间进行身份验证服务交换,用AS给的票据访问TGS获得访问相应模块的票据。

身份认证:用户通过Kerberos服务获得ticket,并在注册或登录过程中使用服务器的公钥加密信息后发送给服务器。

服务器确认身份:服务器私钥解密,经注册或登录模块的处理,回应用用户的公钥加密的ticket。

确认身份:用户接收到后用自己私钥解密,完成注册或登录过程,确认有效用户。

保证隐私不被别人得到:

使用基于角色的访问控制模型,将访问权限分配给一定的角色,根据前面的认证协议,判断该用户是否具有访问投票来源和统计结果等信息的权限,实现只有投票主办方有权确认投票来源和未发布的选举结果统计的功能。

仍然是使用Kerberos服务,不过,在投票时,用户与代理服务器进行身份认证而不直接将信息发送到服务器,而代理服务器与服务器进行身份认证,这样保证了信息交流过程的安全性。

用户C将自己的投票信息先用服务器的公钥加密,再用代理服务器的公钥加密:

KR[KS[Msg]]

保证无法伪造投票:

1.登录时已经验证用户身份,保证投票来源无法被伪造;

2.每个用户都有独立的、保密的私钥,只有系统和用户自己知道,该对称密钥的保密保证了用户自己的身份无法被伪造。

posted @ 2022-05-22 19:42  忧岛。  阅读(87)  评论(0)    收藏  举报