0x01 概述
讨论手表时间伪造之前,我们先来认识一下什么是电波表,按照百度百科的解释:常见电波表的机身一般由两部分组成,分别是电子时钟和无线电接收系统组成,通过无线电接收系统接收、经内置芯片解码处理后显示时间
再来说另外一个主角——授时电波,授时电波一般由国家授时中心进行播发,广播的时间一般是信号塔所在国家的标准时间,由多台高精度原子钟组成的守时钟组产生。而且授时电波一般采用频率低于100千赫的长波波段,不易被遮挡,因此一个发射站就可以基本覆盖一国国土。全球一共有6 个商用电波发波台,中、英、美、日、德、等国有各自标准的长波授时服务,不仅名称不一,所用的频率和编码也不同,授时台一般就是指这六局 (日本面积虽小,但有两局),具体可以看下方表格
信号站 |
信号类型 |
接收信号范围 |
营运单位 |
商丘信号站 中国河南 |
BPC |
商丘信号站周围约 1400 千米 |
由NTSC(中国科学院国家授时中心)负责运营 |
福岛信号站,日本 |
JJY |
九州信号站周围约 1000 千米 |
由NICT(日本信息通信研究机构)负责运营。 |
九州信号站,日本 |
JJY |
福岛信号站周围约 1000 千米 |
由NICT(日本信息通信研究机构)负责运营。 |
柯林斯堡信号站 美国科罗拉多州丹佛市 |
WWVB |
柯林斯堡信号站周围约 1500 千米 |
由 NIST(美国标准技术研究所)负责运营 |
Mainflingen信号站 德国法兰克福东南 |
DCF77 |
Mainflingen信号站周围 约 1000 千米 |
由 PTB(联邦物理技术研究院)负责运营。 |
Anthorn 信号站 英国英格兰北部 |
MSF |
安托尔信号站周围约 500 千米 |
负责运营)英国国立物理学研究所(NPL 由 |
不同信号站频率 |
|||
商丘信号站 中国河南 |
河南省商丘 商丘标准电波发射台 |
频率:68.5 kHz |
|
福岛信号站,日本 |
大鹰鸟谷山标准电波发射站 |
频率:40kHz |
|
九州信号站,日本 |
羽金山标准电波发射站 |
频率:60kHz |
|
柯林斯堡信号站 美国科罗拉多州丹佛市 |
科罗拉多州丹佛市近郊 Fort Collins 标准电波台 |
频率:60kHz |
|
Mainflingen信号站 德国法兰克福东南 |
法兰克福东南 Mainflingen 标准电波发射台 |
频率:77.5kHz |
|
Anthorn 信号站 英国英格兰北部 |
Anthorn 标准电波发射站 |
频率:60kHz |
信号范围图片简表:
平时,我国境内的长波授时服务,也就是“中国波”(BPC) 的对时信号是由国家授时中心位于河南商丘的低频时码发播台发出的(呼号:BPC ),该站传送的信号既包括普通的调幅时码,也包括附加的扩频时码,而信号覆盖范围的直径为天波3000公里,地波1000公里
0x02 原理解析
收发原理:广播台站发出长波无线电,用户通过接收终端(电波表)来解析台站发出的无线电波信号里的时间、星期、年月日、夏令时间等讯息来实现自动校正来准确时间,一般电波表30万年误差不会超过一秒。沿海地区甚至还可以接收到日本发出的电波授时信号,没有国内电波接收功能的可以先临时接收日本发出的时区的数据,再改回国内时区这样来临时进行对时
国内的 BPC 载波对时信号编码规则的特征是:
(1)每一帧信号的周期是 20 秒钟,所以每分钟可以发播 3 帧时间调制信号
(2)脉冲周期是 1 秒钟,但是,脉冲宽度(即高电平持续时间)有四种,分别对应着四进制数的 0、1、2、3,
脉宽400ms 对应 3,脉宽 300ms 对应 2,脉宽 200ms 对应 1,脉宽 100ms 对应 0,
每帧时间信号包含 19个脉冲,缺少1个秒脉冲作为分隔,用有规律的脉冲组合得以用来表示对应的时间信息
(3)帧与帧的间隔,以缺少 1 秒脉冲方式表示
这里提醒一下,BPC电波授时编码是属于某企业的专利技术,任何人不得私自用于商业盈利。既然是专利那就公开引用一次,编码示意图如下:
仔细看上面这张图:
P0:每帧的开始,每分钟 3 次,间隔 20 秒,因此 P0 则是在第 0 秒、第 20 秒和第 40 的位置
P1:用做帧定位,P1 有三种状态,分别为 0、1、2,0 表示该帧从第 1 秒钟开始,1 表示该帧从第 21 秒钟开始,2 表示该帧从第 41 秒钟开始
P2:保留帧,由于以后扩展,所以接收到的P2永远为0
P3:组合使用位,前半位用于表示上午或下午,后半位用于第 0-8 位的偶校验,其中0,1表示上午,23表示下午
P4:组合使用位,前半位保留,后半位用于第 10-17 位的偶校验
从上图我们可以分析出来一些信息,第一帧的第4、5个脉冲表示当前的时,而第6、7、8脉冲则表示当前的分钟信息,依次类推即可获得当前的时间信息,接收一帧完成后,根据P1 可以知道这一帧一分钟内的那一帧,从而可以获得当前的秒信息
以上的整个对时过程并无任何加密手段。也就是说20秒的信号才可以完整传达当前日期和时间。这一编码方式相比其他各国60秒一帧的方法,对时过程更快
0x03 实施思路&工具
如何产生这个信号来干扰电波表呢,我们可以将日期时间编码翻译成BPC的对时编码,然后将编码通过耳机这类的音频输出设备播放出来,但是,声卡最高只能输出22千赫的声音,肯定不能发出68.5千赫的电波信号,针对这个问题,我们可以选择68.5千赫的5分频,也就是13.7千赫,以此作为载波在上面加载BPC的对时编码
为什么要用耳机来进行接下来的实验呢(耳机不是唯一的选择 但就性价比来说选择耳机好),耳机的发声是靠线圈产生变化的磁场推动振膜实现的,所以可以发出听得见的声音,但同时也在发出听不见的电磁波。把输出音量调至最大的时候,耳机的非线性效应会非常的显著,频率成分中不仅有基频成分(13.7千赫)还有倍频成分,其中也就包含13.7千赫的5倍频信号68.5千赫,也就是BPC的载波频率
所以,依照这个原理可以人工模拟授时信号来手动对时,但为了防止大规模滥用,此处不提供针对利用的工具,可以用这个网站( http://g-xiake.com/zh)的验证功能进行实验,注意!不要用耳机听工具发出的音频
0x04 尾言
从实际使用上来说,仅从BPC的传输过程的角度来说,由于其传输过程非常简单采用明文编码,很难从来源处防止类似的攻击行为,但是现在大部分表都可以手动关闭校时,或者固定时间进行校时。况且现在市面上获取时间这类时间信息的途径多种多样,可以通过数据网络、互联网NTP同步、GPS 等都可以获得非常精准的时间,因此采用多个参照节点相互参照,能够很大程度的降低因被攻击造成的重大损失的概率,本文仅供交流讨论,切勿用于违法
本文始发于微信公众号(天禧信安):【伪造时间】电波表伪校时攻击原理浅析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论