此类短信多是使用常见机构的号码,比如一 条“95588”发来的短信:您的账户积分85351即将逾期清空,可兑换**元现金。因为看到是银行客服号发来的短信,很多人信以为真,当即点击短信中的网址链接,然后根据要求输入自己的银行卡号、密码等一系列个人信息。然而,操作一番后,不仅没有换到钱,反而收到了银行卡内现金被转出的短信。从今年2月14日至2月28日,短短两周时间内,仅南京地区就有46人有同样遭遇,总计被骗金额超过18万元。
然而这一切,均是来源于下图所示的伪基站。
犯罪团伙将伪基站装在车上,开到哪里,哪里的手机用户就会收到银行积分兑换的短信。随后,运用受骗群众键入的信息,进一步实施盗取财产等行为,对其个人信息及财产安全造成了极大的威胁与破坏。
通常,我们发现手机没信号以后,思想层面仅停留在抱怨运营商的阶段,却很少有人想到可能是伪基站在作祟。伪基站采取发射大功率信号的方式压制周围的信号,使手机感受到两者的差异更换连接,从而切断手机与基站的联系,骗取其范围内的手机登陆。如今较为广泛的均是GSM伪基站,当用户接入后,还需重新登记标记信息,此时伪基站获得了手机用户的IMSI全网唯一标识,然后伪造运营商甚至银行发送短信给用户。
我在论坛等地方见过别人提出的几种解决方法,一是让运营商补强移动网络,让伪基站的覆盖永远不会强于移动网络,二是完善移动网路的位置登记流程,鉴权过程中不光有网络对终端的鉴权,还应该有终端对网络的鉴权。这两种方法在实际中均具有一定的难度。目前伪基站的功率已经达到10W级别,如果运营商的网络都提升到这样的水平,所消耗的人力物力,与其带来的光电辐射,都难以想象。
而对于第二种,有人提出了基于ECC的双向认证,如下图所示。
具体步骤如下:
Step 1:MS发出认证请求前,先产生一个随机数RAND1,用所属HLR的公钥Kpub_hlr通过ECC算法进行加密,产生密文Epub_hlr(RAND1)与IMSI组成认证请求发送给当地的VLR。
Step 2:VLR根据IMSI获取MS的公钥Kpub_ms,再转发密文Epub_hlr(RAND1)给所属HLR。
Step 3:HLR用私钥解密密文得到RAND1后,再把RAND1发送给VLR。
Step 4:VLR生成随机RAND2,并将RAND1,RAND2及自己的公钥Kpub_vlr用MS公钥Kpub_ms加密,再把密文Epub_ms(RAND1,RAND2, Kpub_vlr)发给MS。
Step 5:MS用私钥解密得到RAND1,RAND2, Kpub_vlr,并比较收到的RAND1与发出的RAND1是否相同,若相同则认证成功。
Step 6:MS再将获得的RAND2用Kpub_vlr加密,并将密文Epub_hlr(RAND2)发送给VLR。
Step7:VLR解密得到RAND2与发出的RAND2比较,若相同则VLR对MS认证成功。
难道只有鼓励用户更换SIM卡才能解决此类问题吗?
个人认为,在云计算之下,思科已经提出了雾计算的思想,为什么我们不能让终端边缘设备实行更多的计算功能?根据伪基站的结构,其获取的仅是用户的IMSI,而手机号码等更进一步的信息却不曾得知。如果手机收到消息,都能自行用此类信息进行一个验证,或许就可以在一定程度上减少接收诈骗短信的可能性。打个比方,我们在学校都有自己的唯一标识——学号,而只要知道了一个学校命名学号的方式,寄出一份仅标明学号的物品并非难事,但对方并不一定知道你的姓名。而收到了此类物品后,你用自己的姓名去验证,这真的是我的吗?如果实际并非如此,大可丢弃。当然这只是个人的一点浅见,也希望能有更好更安全的措施出现。