原题目:今天校园里到处是快递小哥,同学们也经常帮别人取快递,快递小哥不会很细致的核实身份,就允许代领,存在很多不安全因素。

设计一款基于手机的app,用于快递小哥验证身份,顾客领取快递。具体认证方法不限,简单易行。

(1)给出:app包含哪些部分(可加图示),每部分的功能;

(2)模仿kerberos的写法,描述交互过程,并加说明。

 

题解:

(1)app包含用户登陆、查询快递、签收验证、后台反馈的部分;

用户登陆:可以获取用户信息,认证取件人或快递小哥的身份;

查询快递:取件人可以查询自己的快递信息,快递小哥可以查询到快递对应的取件人身份;

签收验证:当取件人签收快递时可以通过app发送签收的消息(可以是代签的消息),快递小哥收到消息时就可以通过app验证核实身份了;

后台反馈:若取件人成功取件并且小哥完成身份验证,则两端统一反馈给后台统计信息后,再反馈给购物平台;

(2)第一阶段:身份验证服务交换(用户登陆)

请求TGS票据  C -> AS:IDC ‖ IDtgs ‖ TS1
返回TGS票据  AS -> C:EKC[Kc,tgs‖IDtgs‖TS2‖Lifetime2‖Tickettgs]
Tickettgs = EKtgs[Kc,tgs‖IDC‖ADC‖IDtgs‖TS2‖Lifetime2]
其中C可以是快递小哥也可以是取件人
 
第二阶段:票据授予服务交换
请求应用服务器票据  C ->TGS: IDV‖Tickettgs‖Authenticatorc
返回应用服务器票据 TGS -> C: EKc,tgs[Kc,v ‖IDv‖TS4‖Ticketv]
Authenticatorc = EKc,tgs[IDc‖Adc‖TS3]。
Ticketv= EKV[Kc,v‖IDC‖ADC‖IDv‖TS4‖Lifetime4]
其中C可以是快递小哥也可以是取件人
 
第三阶段:取件人查询快递
向应用服务器发起服务请求 C1 -> V:Ticketv‖Authenticatorc
服务器对客户机可选的身份验证 V -> C1:EKc1,v[TS5+1] ( for mutual authentication)
Authenticatorc = EKc1,v[IDc1 ‖ ADc1 ‖ TS5]
其中C1为取件人
 
第四阶段:签收验证
取件人发送签收消息 C1 -> V:IDc1 ‖ info || Lifetime5
快递小哥核实身份 V -> C2:EKc2,v[info] 
快递小哥验证反馈 C2 -> V:IDc2 ‖ info || Lifetime5