gMIS吉密斯升级:多IP-Roaming漫游改进和Cache缓存优化

Posted 通信计算评论

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gMIS吉密斯升级:多IP-Roaming漫游改进和Cache缓存优化相关的知识,希望对你有一定的参考价值。

“完成大事业的唯一方法,但从基本上一步一步、一点一点地做起,这是行为学所重视的一个事实。”
—-米塞斯 Mises《人的行为 Human Action》,https://ufqi.com/news/ulongpage.2014.html 

 gMIS吉密斯 作为管理后台系统软件,一直默默工作在后端,鲜有抛头露面的时机。其实gMIS也在不断的优化改进,距离上次:☘ gMIS吉密斯升级:点选Pickup2.0和安全及权限系统等 ( https://ufqi.com/blog/gmis-updt-pick2-enhance-in-signout/ ),已经差不多快一年没更新gMIS Blog,趁着最近一次版本的更新,记录如下,以资参考备查。

1. 单用户多IP-Roaming漫游安全鉴权改进

也就是说位移静态单用户可能有多个IP,而位移进行中的用户更有可能是多个IP,再而三的多IP多通道并发通信也日渐成熟——一次上层的HTTP请求,可能其中的Packets分别由不同的IP“同时”传送而来的。这在应用层或感知不到,但也要在未来考虑到这种情况。

回到这个单用户多IP漫游的情况,如果继续使用此前的策略,将用户从系统登录状态弹出然后请用户再登录一次,从而形成新IP下的鉴权,显然是不合适的。有没有更好的办法来实现既能保障安全,也同时降低由于多IP变化引起的频繁登录?
梳理一下面临的新情况:
1)  一个用户单地点可能同时有多个IP,如 IPv4、IPv6
2)  一个用户移动中可能访问多个基站,会经历多个IP,这些基站IP可能同时也有IPv4和IPv6.
综上,一个已登录的用户,在单一个回话期间,其IP变更将是大概率事件。

然而作为网络安全防范的主要利器之一IP在用户鉴权方面短期内看,又是不可或缺的。或许将SID视为Token来处理将是一个新思路。每一次成功鉴权之后,将已授权的SID赋予Token的含义,在后续行为中如果持有一个合法的TOken则视为合法的访问,作为鉴权IP失败后的补救措施。

借助于服务器端的缓存机制,我们设计到一种新方法,基于此可以实现在单用户多IP或者多IP漫游的情况下,使得用户能免于重新登录。该方法的思路是:
1) 维持现有登录机制不变,
2) 当用户登录成功后,在服务器端缓存用户下次鉴权的SID值,
3) 当下次用户进行访问时,如果IP没有发生改变,则使用此前的鉴权获得成功,继续,
4) 此时,如果用户切换(IPv4/IPv6) 或者漫游到新IP时,读取在服务端的缓存SID,如果是合法有效的,则视为已鉴权的用户,继续,
5) 如果使用IP未鉴权成功,也未检测到SID为合法的,则视为非法,拒绝请求并跳转到登录页面。

这个策略可以视为对去年IPv4/IPv6双栈网络模式的扩展和升级,无论后续单用户再切换多少IP,如果其持有一个经合法鉴权的SID,则可以在该SID有效期内(数分钟、数小时或者至多一天)持续使用系统服务。

如此以来,则可以继续愉快地的玩耍了。这一升级改进主要涉及到内容有:
1) class/user.class 中增加 setSidToken / getSidToken 两个方法,
2) 改进 extra/signupin: 登录成功后,调用 $user->setSidToken ,将已授权SID 缓存起来,
3) 改进 user->getUserBySession: 在访问鉴权的时候,增加对现有SID的读取,通过 $user->getSidTOken读取.

等等,这里好像又埋下了隐患,本来一把钥匙(SID)开一个门(IP),现在是一把钥匙能开很多门了,这是万能钥匙

以上是关于gMIS吉密斯升级:多IP-Roaming漫游改进和Cache缓存优化的主要内容,如果未能解决你的问题,请参考以下文章

思创Cetron无缝漫游3.0 Plus 升级发布

GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战

史密斯探测为澳大利亚敦豪快递部署多站点集中式图像处理解决方案

开发工具Keil MDK升级至V5.29,有哪些改进?

家庭网络-多无线路由器实现无缝漫游

打造国内一流券商:东方证券升级数据仓库,支撑全方位金融服务