电话诈骗中,很多时候因为来电显示了个“955XX”、“110”,给受害人多了一份信任,然而那个显示的号码却是伪造的。来电显示的责任瞬间就变得重了不少。
为了预防电话诈骗,来电显示的这个号码就成了其中一个关键点。实际上电话诈骗的整治力度也一直在加强。10 月份来自中国之声的一条新闻是这么说的:
国家工信部独家回复中国之声,工信部重点从电信网国际入口、省出入口和用户终端三个环节,形成多级监测防范体系,最大程度阻断诈骗电话。其中,在用户端侧,工信部会指导基础电信企业和互联网企业为用户提供涉嫌诈骗来电的提醒标识服务,如中国移动“彩印提醒”服务、中国联通的防骚扰欺诈提醒服务,腾讯,360 等互联网公司的手机 App 服务等。工信部网络安全管理局信息安全处闫宏强处长表示,在技术手段的建设中,统一标准规范十分重要。工业和信息化部印发了《网间主叫号码的传送》等系列行业标准,近期又印发了《基础电信企业防范打击通讯信息诈骗不良呼叫号码处置技术能力要求》,上述技术手段部分已经建成上线,据初步估计,目前月均拦截涉嫌诈骗电话呼叫1.4亿次。
我注意到了《网间主叫号码的传送》这个标准。这份标准的老版本在网上流传很多,仔细一读,就会明白来电显示是怎么一回事了。
来电显示最早只是用来收钱的
其实,现在电信网络中的电话传送信号标准,大概和几十年前没什么区别。我们都没有经历过电话靠人工进行接通的时代,而“电话传送信号标准”的制定,就是用来代替人工操作的。
当时人工需要操作什么呢?首先是把你想打的电话通过“路由”的方式,接到正确的线路上去。这个靠的是被叫号码。然后,当然就是收钱啦。
你可能都不记得被叫也要收费的时候了。接电话也要收费,当然要记录下来打你的电话是不是长途之类的。而且,在进行呼叫转移的时候,计费就变得更复杂了。
比如上面这个很老的图,意思是:
- 北京 A 用户打电话到上海的 B,B 转移到上海的 C;
- 主叫号码的设置会直接影响到 C 看到的来电显示;
- 老的计费系统不支持“呼叫转移计费”,所以必须把主叫号码从 A 改成 B,否则C 就会被收长途电话费(计费规则里,北京到上海的长途费由 B 来付,C 只要付被叫市话费);
- 而改造过的计费系统就可以把主叫号码设置成 A 了,因为 B 的号码传输的时候计费系统能识别到,能正确收钱。
《网间主叫号码的传送》的第一稿是 2001 年出的,也是根据以前的一些标准完善之后发布的。里面写的传送主叫号码的原则是这样的:
- 网间传送的电话号码应至少能保证基本业务的提供;
- 网间主叫号码的传送应保证对方网路计费、 鉴权和拦截等的需要;
- 网间主叫号码传送的内容应使对方运菅者在提供补充业务的时候可以方便地对号码进行增删。
实际上,当时最重要的还是“计费”嘛。
从计费,到更多
《网间主叫号码的传送》的基本版(YD/T 1157-2001),主要就是定义最基本的这些规则,比如什么长途、手机、转移等等特殊情况下的传送规则。要注意的是,标准这种东西,通常是大家已经在用的一些约定俗成的做法,写一个文件再明确下来,所以自然会有一定的滞后。
第一份补充稿(YD/T 1157.1-2002),主要补充的是 IP 电话和多国际长途局(也就是把国际长途发出去的一个地方,中国那么大,自然出口也会有很多)的情况。IP 电话是不是听起来很古老了哈哈,还记得它省钱的特点吗?
第二份补充稿(YD/T 1157.2-2003),还是在明确国际长途的传送规则。不过情况有了些不同,毕竟出现了移动联通电信这三家运营商。标准里提到,由于国内不同运营商的国际局间的中继电路均按照国际电路来设计和处理,因此国内不同运营商的国际局间的主叫号码传送也应按照国际局间号码传送的原则来处理。
在信息技术还不是很发达的时候,一个国内的东西按照“国际”这种标准来设计,自然是难了些。你就会明白为什么以前跨运营商的电话收费贵了吧,因为某种意义上相当于“出国”了。
标准里还开始考虑用户回拨的问题了。也就是你看着来电显示把电话打回去的情况。
在国际来话未传送主叫号码的情况下,向国内交换局传送的主叫号码为“00+CIC+国家码+国际局所在城市的长途区号+国际局的序号”,考虑到我国采用的CIC标识码为19X的号码,而且放在00后面,用户一旦回拨该号码容易将呼叫接续到北美,因此当国际来话呼叫不能收到主叫号码时,应将YD/T 1157.1中规定的国际局标识码的格式做相关调整,修改为“00+0+CIC+中继的对端国国家码+国际局所在城市的长途区号+国际局的序号”。
第三份补充稿(YD/T 1157.3-2005),目录长这个样子:
一看就知道,主要规定的就是“110”、“168XXXXX”、“95XXX”这些电话的主叫显示了。扫了眼标准,看起来一切都很正常,该规定的都规定了。里面提到,业务台的主叫号码应该:
尽量满足用户回叫的要求;
要便于网间的结算;
满足网间呼叫鉴权的要求。
然后,这份标准隔了十年,都没有补充过。
补充的标准能给来电显示做些什么
我通读了一下一系列的信号传送标准,有个感觉:主叫号码在电话网络里传送,主要就是用来准确计费的。而它的准确性,在最早国外那些大佬定义信号传送规则的时候,并没怎么考虑。原因也很简单,电话网络跟互联网不一样,电话的交换设备都是运营商自己的,简单的设计自然是信任网络里所有的信息,设备只要按照标准工作就好了,没必要去验证前一级设备是不是自己人,发的信息是不是真实的。他们怎么会想到网络里出现了“叛徒”呢?
用户这边会觉得,我交了钱了,来电显示居然不是那个人的,是什么鬼哦。但是在最早的时候运营商可能只会觉得,“来电显示是个长途,不是市话,那就对了,收长途的通话费,结束,才不管是不是具体那个电话打的电话”。当然渐渐地事情就没有这么简单了,你从标准的补充过程就可以看到了。
而文章开头的新闻里,提到的标准的发布,就是最新的第 4 修订版(YD/T 1157.4-2016)。经过了很曲折的过程,我终于在官方网站上找到了这份修订版的送审稿,虽然有些错别字,但相信内容跟正式稿没什么区别。
标准开头说,“本标准规定了 400/800 和 95/96 等短号码业务平台外呼,国际漫游用户和特定用户发起呼叫,以及带有分机方式的主叫号码在公用电信网间传送的要求”。
有趣的内容大概有这些:
短号码业务平台外呼需用自己的号码做为主叫号码,也方便用户回拨,业务平台自己要对打出去的电话负责,要有认证、溯源的能力;
有的交换机比较老,所以允许 400/800 电话在来电显示前加 0,比如显示成08008208820;
国际漫游用户的来电显示不能随便弄,要按基本法的格式来;
要支持分机号通过电话网进行传送、显示。
不过最有趣的,是“特定用户的主叫号码传送要求”。我查来查去,也不明白什么是“特定用户”,这个词的描述方法跟“有关部门”真的很像嘛。
对特定用户的主叫号码显示与传送可以采用以下两种方案:
特定用户的主叫号码可以通过设置主叫用户号码显示限制方式进行处理。即在发端交换机上设置为主叫用户号码显示限制,地址性质为本地用户号码,被叫交换机接收到该号码后不向被叫用户显示。
当交换机无法根据主叫用户号码显示限制标识进行显示时,运营企业可以在本地网中向通信主管部门申请特定空号段作为特定用户传送的主叫用户号码。同时在网络中设置数据,确保这些号段的号码不能被回拨。
按我的理解,这些“特定用户”有隐藏自己的来电号码显示的权利。现在标准中明确,你隐藏号码可以,但是真正的号码必须传送,不能因为你要隐藏号码,就干脆不传来电号码了。在信息快到被叫电话的时候,或者是在本地网内,再去掉号码信息。也可以说,没有来电显示、无法追溯来源的号码,只能停留在本地网,不能通过长途跨越山川和河流了。
这条标准,或许是堵上了可能会引起电话诈骗不可追查的一个漏洞了。
最后:来电显示为什么容易被伪造?
洋洋洒洒写了几千字的技术向,最后我还是想解释一个问题:为什么来电显示就这么容易被伪造呢?
电话网络的确是一个很老的系统了,我们不妨看看互联网。你可能有听说过 DDoS,出现了这种攻击,自然要看攻击是从哪里发出来的,而最直接的方法,是看请求方的 IP 地址,这个跟来电显示的概念是差不多的。
IP 地址的信息其实是可以自己随便定的,但是这个信息能不能传到互联网上,就是另一回事了,因为一层层的路由器通常会对允许发出去的 IP 地址做限制,只会允许把自己能负起责任的 IP 地址发出去。这种做法,在一个叫做 BCP38 的参考标准里已经提到了。
但是,有些机房并没有严格按照 BCP38 的标准来做。只要有一个机房不对 IP 地址做限制,这个机房就有可能成为 DDoS 攻击的来源,而且还很难被追溯回去。
这个道理,跟来电显示一样。突然让我想起一句话,“制度的生命力在于执行”。
P.S. 简书的富文本编辑器还是没有 WordPress 的好用啊,Markdown 的做得倒是很有意思。
本文采用知识共享“署名-非商业性使用 4.0”许可协议授权,如需额外授权请与本人联系。