作业6
功能模块
用户登录与注册模块:登录时将用户名与密码存储至服务端,进行用户登陆
报名模块:用户可以通过此模块进行报名参与选举(可以通过发起方设置给予权限)
投票模块:用户通过此模块进行匿名投票
结果模块:对投票结果进行公示(发起方有权限设置公示时间)
认证协议
在非匿名、需要确认报名者身份(具体是哪一个人)的部分,使用Kerberos进行身份认证(传输信息中包含加密过的用户ID、时间戳等)。
在匿名、需要确认用户(不需要确认具体是谁)是否合法的的投票部分,用户直接使用环加密对投票信息进行加密,server直接根据加密后的信息判断该信息是否由合法用户发出,并同时进行解密。
隐私保护
我们在注册过程中给用户分配了用于验证身份的,完全保密的私钥。使用这个私钥加密,并在安全信道中通信,其它人就无法获取投票的信息了。但是仅仅如此还不够,因为系统管理员可以通过解密看到某个用户的投票信息。那么进行双重加密,用户自己设置自己的二重私钥,会通过安全信道储存到服务器中,但不对所有人公开查看权限,只有系统能对用户的信息解码并计算投票结果。
防止伪造
首先注册使用Kerberos认证,并且在APP与服务器访问阶段服务器还会确定用户信息和用户角色,保证非用户或非投票用户无法进行伪造投票
浙公网安备 33010602011771号