安全技术里的时间攻击,也不是NTP放大攻击。
一说到时间攻击,脑海里立马闪现各种科幻小说,科幻电影和科幻电视的片段:
宇宙中两个敌对的文明,其中一个突然掌握了时间攻击,直接把另外一个文明的时间倒流,从而倒退到原始时代。
这个天外生灵异常惊恐。因为失去了星槎。它将无法回到它的世界。它开始考察的们这个世界。
考察的结果使它更恐慌:这个世界缺乏制作“星槎”的原料!并且,这是一个还处在蛮荒中的世界,没有文字,没有计算,没有冶炼,没有建筑……总之,这个世界帮不了它任何忙。
就在它濒临绝望的时候,它注意到了我们的月亮,注意到了月亮的力量。
星槎坠海使它失去了一切身外之物,但没有使它失去智慧。在它们那个世界,已经知道了一条宇宙间最为神奇的奥秘:天体间存在着一种彼此牵引之力,近者强,远者弱,大者强,小者弱,正是这种力量维持着日月星辰的运转。你在海边住过,总熟悉潮汐吧?潮涨潮落,就是这种力量引发的。同时,这种力量还能使时间和空间发生轻微的变形。如果能用巧妙的办法,把这种变形集中、放大,就会发生许多不可思议的事,比如,时间会翘曲,甚至翻转——不要问,我说过了,有问题等我说完再提。
一个大胆的设想在它心中升起:只要能设法填平它的星槎所坠落的那片海域,然后将这片填出的平地“逆卷”到它降落的时间里去,使它在那次降落的最后瞬间,落到一片平地上而不是海洋里,那么灾难就不可能发生。
填海虽然工程浩大,但不需要什么珍稀的原料,也不需要多么高超的技巧,只要有足够的人手就行了。
未来人类对肉类的需求太大,养殖场只是不断把场内的时间调快。后来发现养殖场的人员神秘失踪,侦探过去调查后,才发现养殖场内的时间已经是20万年后,那些动物已经进化出人类的智商,只是还没有学会使用人类工具。最后养殖场只好关闭,同时销毁里面所有。
不过,本文并不打算讲科幻题材,而是讲安全技术里的时间攻击。
曾经在一个技术群,有人问了一个问题“在分布式kv
数据库每个节点为什么要搞一个local time offset
,直接用systime
不就行了吗?“。这个问题让我想起多年前在鹅厂处理的一个问题:
某业务线一个员工登录某台IDC机器,无论他怎么申请权限,都提示权限过期。
由于登录机器是由我负责的系统接管,所以,我过去定位问题。无论从权限申请,管理后台,Agent侧上报的状态,数据同步,都很正常,没什么问题。
在折腾了几小时后,该员工的登录突然正常,从异常到正常之间,我没有做任何更改操作。
我也申请权限登录到该机器搜集日志,从日志的信息来看,Agent侧的软件运行都非常正常,没任何问题。
突然,我在
/var/log
下发现有一个新压缩的日志文件,无论名称还是创建时间都显示这个文件是在600多年后产生的。解压该文件,发现里面的日志有不少的时间戳是600多年后。再看这台机器的心跳包记录,agent端时间戳确实有一段时间是600多年后。发现该机器有运行
ntp
服务,于是就咨询上游两台ntp
服务器的运维人员,发现上游两台ntp
服务器曾经出现过时间飘移。就由于这个飘移,由于权限申请最多是30天有效,那么这个员工无论怎么申请,权限都不可能延续到600多年后。最后解决方案是根据心跳包agent端的时间戳和后台时间戳做一个实时计算任务来抽取时间飘移的机器,竟然在40万台机器里有5000多台是存在这种问题,只是飘移的时间一般在两三天,最小半小时左右,最大的有500多天。
这也是为什么分布式kv
数据库每个节点需要有local time offset
和systime
同时存在的原因:时间同步。
NTP的原理大致如下(请参照上面架构图)
NTP 使用分层、半分层的时间源系统。这个层次结构的每一层都被称为一个层,并为顶部的参考时钟分配一个从零开始的数字。与第n层服务器同步的服务器在第n + 1层运行。该数字表示与参考时钟的距离,用于防止层次结构中的循环依赖。层并不总是质量或可靠性的指标;通常会找到质量高于其他第 2 层时间源的第 3 层时间源。下面提供了第 0、1、2 和 3 层的简要说明。
0层
这些是高精度计时设备,例如原子钟、GPS 或其他无线电时钟。它们每秒生成一个非常准确的脉冲信号,在连接的计算机上触发中断和时间戳。0 层设备也称为参考时钟。NTP 服务器不能将自己声明为层 0。NTP 数据包中的层字段设置为 0 表示未指定层。(GPS也是依赖原子钟,用的是铷原子钟,原子钟是精确导航的基础,是心脏)。
第一层
这些计算机的系统时间与其连接的第 0 层设备的时间同步在几微秒内。层 1 服务器可以与其他层 1 服务器对等进行完整性检查和备份。它们也被称为主时间服务器。
第二层
这些是通过网络同步到第 1 层服务器的计算机。通常,第 2 层计算机会查询多个第 1 层服务器。Stratum 2 计算机还可以与其他第二层计算机对等,以为对等组中的所有设备提供更稳定和稳健的时间。
第 3 层
这些是同步到第 2 层服务器的计算机。它们采用与第 2 层相同的对等和数据采样算法,并且它们本身可以充当第 4 层计算机的服务器,依此类推。
层数上限为15;层 16 用于指示设备未同步。
如果黑客攻陷某一层的某些NTP服务器,那么,任何以这些NTP服务器为基准的机器都会受到影响。会有哪些危害呢?
还有非常多的危害就不一一列举。
这一块的防治非常简单。
从原理图上看,越接近0层的NTP服务器被恶意操纵,影响的范围就越大。从上面危害来看,恶意者光是针对商业已经可以造成非常大的危害,如果他是针对一个国家呢?比如他知道该国金融体系所依赖的NTP服务器,他只要不断调整时间,就可以造成无数的坏账,从而导致金融危机。这也是为什么很多银行的总账核心系统都是不启用NTP同步的原因。
有没有这种牛逼的黑客?这种牛逼的黑客不一定有,但这种恶意者倒是有,而且它可以操纵0层的GPS。是的。它就是美国。
那它有没有这种先例呢?有,1996年银河号据传就有这事。
这也是中国为什么要发展北斗导航的原因。
同时,也是由于原子钟是精确导航的基础,是心脏,欧美为了阻挠中国的北斗,坑了中国20亿,以故意拖延交付方式进行技术制裁
2003年,欧盟邀请中国参与伽利略的开发。中国释放了极大的诚意,动用当时极为珍贵的外汇2.3亿欧元(约人民币20亿),在所有国家中出资最多。没想到才过了几年,欧盟又和北美达成共识,在关键技术上对中国进行封锁,还剥夺决策权。
中国只好无奈退出,坚定自主研发的道路,而这20亿,却一分也没退。而当时,北斗的很多部件要向国外购买,其中原子钟是向欧盟订购的。原子钟是卫星的核心部件,被视为卫星的“心脏”。
但欧盟却迟迟不发货,因为它想让中国让出黄金频轨,中国没有同意。此时距离7年之限,只有2年,欧盟料定中国无法研发成功,这样就可以把黄金频轨抢走。
然而现实狠狠打了欧盟一个耳光。在航天专家的带领下,中国用不到两年时间,就完成原子钟技术突破。在完成发射定轨之时,距离最后时间点仅不到4小时。
更难能可贵的是,北斗不光保住黄金频轨,还将定位精确度从10米级,上升到米级,将10万年延迟1秒,提高到了300万年延迟1秒。可谓在技术上降维打击欧洲。
如今20年过去,我国北斗已经发射55颗,而伽利略才24颗,还频繁故障屡屡闹出笑话。我国完成全面超车。
但美国并不死心,它希望能够破解得了北斗的编码,从而控制北斗。这也是当时汉奸高杏欣所做的事情。
2007年,我国发射了北斗导航系统的首颗卫星。不久之后,远在美国斯坦福留学的高杏欣就破解了我国北斗二代定位导航卫星的信道编码规则。随后,她反手将自己的破译成果交给了美国人,并且她还根据这些数据用于一个接收机中,进而获取并跟踪我国的北斗-M1卫星。
高杏欣将自己破解北斗导航系统的成果交给美国后,获得了美国高度的赞扬,美国航空机构也对她进行了公开表彰,并且斥巨资资助她的研究项目。
幸好,她并没有得逞。
美国人拿到高杏欣的破解成果之后,发现这只是北斗导航系统的民用领域,它本来就是一种全球通用的模式,并不会对我国北斗导航的军用系统造成什么影响。随后,美国人期望高杏欣能够以此为基础,破解我国北斗导航的军用系统,但由于她江郎才尽,以及我国北斗导航系统的不断的加密升级,她一直都毫无进展。美国人对她非常失望,逐渐收回了对她的优待,她在美国并不吃香,逐渐沦为了弃子,过得并不好。这还没有结束,他的父亲曾是原黑龙江省公安厅常务副厅长,也在2010年因各种原因被免职。同时,清华大学也早已将高杏欣剔除了校友名录。
美帝国主义亡我之心不死 ---教员
===============================
文中和文末的小广广,渴望你手指的触碰!!!
请关注,转发,点“在看”,谢谢!!
暗号:68bc2