作业六 访问控制

  • 题目

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

软件需求:

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

设计要求:

  1. 写清楚你的系统为了完成上述功能要求,设计了那些功能模块,每个模块有什么功能;
  2. 写清楚你的认证协议,要核实身份,是不是有效注册用户;
  3. 写清楚你是如何保证隐私不被别人得到的;
  4. 写清楚如何保证无法伪造投票。
  • 模块及功能
模块 功能
注册、登录认证 服务器上注册登录用户
报名选举人 用户报名参加投票
投票模块 已报名的用户有资格参加投票
统计公示模块 统计并公布投票结果

 

  • 认证协议

使用Kerryberos认证协议。注册用户阶段对应Kerberos协议的认证过程中前两个阶段:

第一阶段:身份验证服务交换。用户完成身份认证,获得访问TGS的票据。

第二阶段:票据授予服务交换。获得访问应用服务器的票据。

登录对应第三阶段:用户拿着AS认证的Ticket向服务器进行身份验证,服务器需验证用户是否具有权限。

  • 保护隐私

使用基于角色的权限访问控制。用户具有投票,查看自己投票信息的权限,服务器管理员无法查看投票人信息。主办方具有访问后台统计用户投票数据和发布统计结果的权限。这一功能在注册用户阶段实现,让AS能够判定用户的角色是否可以访问对用的TGS,并给出相应的Ticket。

  • 避免伪造

使用公开密钥通信,用户向主办方发送信息时,主办方创建公钥和私钥,用户用公钥对明文进行加密形成密文然后传输,主办方收到密文用私钥对密文进行解密,获取明文。主办方向用户发送信息则用用户生成的公钥加密,用户用自己的私钥进行解密。

 

posted @ 2022-05-21 00:13  wind~飘  阅读(58)  评论(0)    收藏  举报