信息安全概论作业六
题干
设计一个投票系统APP,投票信息关乎隐私,一般采用无记名投票,但在网络上投票具有可溯源性,明文传输别人窃听,就会知道投票人投谁的票。为了保护隐私、又要确认每个人都投了票,要求设计一款APP。
软件需求:
1、采用网络服务器server + 用户手机app模式,
2、主要功能包括:注册、登陆、报名参加选举人、app投票、统计公布选举结果。
3、投票,单选,内容为各选举人加弃权。
4、确认每个人都投了票,而且投了有效票。
5、任何人(包括服务器管理员)也不能知道投票人投了什么票。
6、网络传输要防止窃听。
设计要求,
1、写清楚你的系统为了完成上述功能要求,设计了那些功能模块,每个模块有什么功能;
2、写清楚你的认证协议,要核实身份,是不是有效注册用户;
3、写清楚你是如何保证隐私不被别人得到的;
4、写清楚如何保证无法伪造投票。
大家加油吧。
解答
1. 功能模块
认证模块 |
进行注册或登录 |
报名模块 |
用户报名参加投票,服务器为其分配角色 |
投票模块 |
已报名的用户可公正参与投票 |
公示模块 |
公式投票结果 |
2. 身份认证
与上一次作业一样,这里采用Kerberos认证,其中前两个阶段与作业5的注册、登录设计几乎一致。用户向服务器请求ticket和TGS票据,进行身份验证。考虑到后续需要进行访问控制,在认证的第三阶段会进行一个额外的步骤——验证用户的角色Role是否具有权限。
3. 隐私保护
首先采用基于用户的访问控制模型RBAC,为用户分配适当的角色,让投票者只有投票的权限,访问投票结果的权限只给投票主办方,即使是管理员也没有权限访问结果。此外使用公开密钥密码通信也能提高信息的安全性,没有接收方的私钥,攻击者即使得到了密文和公钥也无法对密文进行破译。这样在一定程度上也能保护信息安全。
4. 防止伪造
使用公开密钥密码通信,主办方向用户发送信息时,用用户的公钥加密,用户收到后用自己的私钥解密;用户向主办方发送信息时,用主办方的公钥加密,主办方收到后用自己的私钥解密。整个过程中私钥不会进行传输,使攻击者无法截获私钥,因此能够确保身份,防止伪造。