作业5 身份认证

作业五 身份认证

题目

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

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

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

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

分析

根据个人取快递的经验,不仔细核实身份具体表现在收件人姓名有时会完整写在快递盒上,任何人只要看到姓名就能回答快递小哥的问题。有时快递小哥会问手机尾号,但这也会体现在快递盒上。这套询问主要是为了防止主观上错取,而非盗快递,对盗快递的防御力几乎为0.

APP设计

APP客户端分为用户端与快递员端,功能如下。

  1. 用户向可信第三方发送取快递请求,可信第三方在数据库中进行核对,在确认用户身份后,根据快递单号的哈希值,从口令表中取出一个并回复给用户)。

  2. 用户记录口令,或交给代取人。到达快递点后,快递小哥向可信第三方发送快递单号(可通过直接扫描快递单上的条形码获得),可信第三方在确认快递小哥的身份信息后,返回根据单号哈希值取出的口令。

  3. 用户说出口令,快递员核对口令。口令无误后允许取出快递。

注:

  • 可信第三方的数据库中应存有用户及对应的快递信息,快递小哥及其管理的快件

  • 每个APP使用者只能查询自己(管理)的快件

  • 口令可以是有意义的汉语单词,便于记忆,但应保证词库大且抗冲突、

  • 使用的哈希算法应经常更换且保证难以破解

  • 口令每单一换

交互过程

第一次通信
  • 客户端用户向KDC以明文的方式发起请求。该次请求中携带了自己的用户名,主机IP,查询口令对应的快递单号,和当前时间戳;

  • KDC中的AS接收请求后去Kerberos认证

     

    数据库中根据用户名查找是否存在该用户及其单号,此时只会查找是否有相同用户名的,并不会判断身份的可靠性;

  • 如果没有,认证失败,服务结束;如果存在该用户名,则AS认证中心便认为用户存在,此时便会返回响应给客户端,其中包含:TGT,Session Key,TGT有效时间,TGS name

  • 此步骤可验证客户端是真的客户端,因为客户端密匙其他人没有。

第二次通信
  • 客户端使用Session Key加密将自己的客户端信息、明文的目标Server、使用TGS加密的TGT发送给KDC

  • TGS根据客户端传来的Server确认目标是否存在

  • TGS将TGT内容解密进行身份验证(时间戳),若通过则取用户信息进行比对,认证客户端

  • KDC将使用Session Key加密的Server Ticket返回给客户端

  • 客户端对返回信息进行解密

第三次通信
  • 客户端向服务器进行通讯请求

  • 服务端使用Server密匙对时间戳进行解密,核实后取出Session Key对信息进行解密

  • 服务端返回使用Session Key对单号加密过的口令

  • 客户端使用Session Key进行解码,得到口令并妥善保存

注:客户端指取快递的和快递小哥;服务端指返回口令的可信第三方;KDC还是进行身份认证的可信第三方。

 
posted @ 2022-05-14 22:04  AL76  阅读(39)  评论(0编辑  收藏  举报