信息安全概论作业 身份认证
Description
今天校园里到处是快递小哥,同学们也经常帮别人取快递,快递小哥不会很细致的核实身份,就允许代领,存在很多不安全因素。
设计一款基于手机的app,用于快递小哥验证身份,顾客领取快递。具体认证方法不限,简单易行。
(1)给出:app包含哪些部分(可加图示),每部分的功能;
(2)模仿kerberos的写法,描述交互过程,并加说明。
Solution
首先,这个APP应当具有一个服务器部分,它连接快递员与用户的客户端部分。结合现实生活中的经验,快递小哥认证来收快递的人是不是真的用户,应该通过基于验证码的服务器查询的方式。
那么这个收发快递的过程可以分为以下几个步骤:
1.快递小哥本人登录,进行身份认证
假设快递小哥是\(Deliver\),服务器是\(AS\),那么按照\(Kerberos\)的方式会进行这样的通信:
\(Deliver->AS: ID_{deliver}||ID_{tgs}||TS_1\)
\(AS->Deliver: E_{deliver}[K_{deliver,tgs}||ID_{tgs}||TS_2||Lifetime_{deliver}||Ticket_{deliver}]\)
其中,\(ID_{deliver}\)是快递的编号,\(ID_{tgs}\)是请求访问的\(TGS\)编号,\(TS_1\)为时间戳,\(E_{deliver}\)为快递员的密钥加密,\(Ticket\)为服务器发送的签证,\(Lifetime\)为其有效期。
2.当快递小哥送到货物的时候,向服务器发送信息,然后服务器发送信息给用户客户端
\(Deliver->AS: ID_{user}||Info||Ticket_{deliver}\)
\(AS->User: E_{user}[Info||Code||Lifetime]\)
其中\(Info\)为快递信息,\(Code\)为验证码,\(Lifetime\)为快递信息的有效期。
3.用户进行登录,完成身份认证
\(User->AS: ID_{user}||ID_{tgs}||TS_3\)
\(AS->User: E_{user}[K_{user,tgs}||TS_4||Lifetime_{user}||Ticket_{user}]\)
这个和快递员登录时的身份认证方法基本相同。
4.用户与快递小哥碰面,向快递小哥出示验证码\(Code\)(这也相当于通信),快递小哥询问服务器\(Code\)是否正确
\(User->Deliver: Info||Code||Lifetime\)
\(Deliver->AS: Info||Code||Lifetime\)
\(AS->Deliver: Result\)
最终快递小哥通过结果\(Result\)判断是不是真的\(User\)本人。