量子,多少骗局假汝名而行!
近日,量子安全通话手机再次受到媒体关注。其实炒作“量子+手机”概念也并非什么新鲜事,早在2017年,科大国盾量子就曾经与中兴通讯合作推出过全球首款商用“量子加密手机”。今年2020年5月14日,三星联合SK电讯郑重发布了全球第一款5G量子智能手机“Galaxy Quantum”。
我相信,为手机带上“量子”光环的营销案例这既不是第一次,也绝不会是最后一次。不过这类炒作多了,就很难再有什么轰动效应,反倒会引起消费者的怀疑,网上出现“量子加密手机是李逵还是李鬼”这种争议也就不足为奇了。
量子加密手机究竟是李逵还是李鬼?可用以下四个事实作为判断的依据。
1)从GSM(2G)时代开始,手机之间的语音和数据传输一直都有加密保护的,利用量子通信(QKD)为手机通话加密纯属多余;
2)保护移动通信安全仅有“私密性”是远远不够的,在许多应用场景中“身份认证”更为重要,只有传统密码系统才能把身份认证和密钥分发同时完成并做到天衣无缝,QKD对此完全无能为力;
3)建立“量子安全”为的是抵抗量子计算机攻击,而量子计算机的攻击目标只是公钥密码。移动通信网络使用的是对称密码系统,在 移动通信系统中推动QKD与唐吉诃德大战风车一样可笑;
4)受物理原理的限制,QKD为手机之间提供直接的密钥分发不具可行性,所有对密钥的间接批发,包括量子密钥SIM卡植入都是技术的大倒退,这与过去地下交通站分发密码本没有本质区别。
简而言之,在移动通信网络环境中:
• 量子通信作为加密技术——纯属多余;
• 量子通信对保护通信完整性——无能为力;
• 在以对称密码为安全基础的移动通信网络中推进量子通信工程是——无的放矢;
• 用量子密钥植入替代手机之间密钥直接分发则是——倒行逆势。
本文将对以上四个事实作出详细深入的阐述。
1)中国电信和国盾量子对外宣布,双方正在研发一个手机支持量子安全通话的项目。有了这款手机:用户可在通话过程中一键选择两种通话模式,“加密通话”或“普通通话”。
这条新闻有不实宣传之嫌,它让人误以为平常的手机通话——“普通通话”是不经过加密的,是不安全的,这与事实严重不符。其实手机的语音通话和数据传输从GSM(2G)时代开始都是经过加密的,详情请看表格一。
表格展示了各代移动通信网络保护手机语音和数据私密性时使用的加密解密算法、密钥长度和加密模式(流加密、块加密)。这些加密技术全都属于传统的对称密码系统,隨着移动通信技术的升级换代,加密技术也有了长足的进步。到了LTE(4G)时代,国内移动通信网络的加密算法使用非常现代和成熟的三种技术,AES是久经考验的国际上通用的对称加密算法,SNOW 3G是在移动通信网络中经过不断完善升级的流加密算法,而祖冲之算法(ZUC)是中国自主开发的加密算法。
到目前为止,还没有公开资料显示AES、SNOW 3G、ZUC存在安全问题,这些算法在128bit密钥的长度上可以有效地防止各类恶性攻击[1]。在可预见的未来传统密码技术能确保手机语音和数据通信的私密性,增加量子保密通信功能纯属多余。
务请注意,保护通信安全仅有私密性是远远不够的,如果说量子通信在保护私密性方面仅属多余,那么它在保护通信安全的更高层面上则是完全无能为力了。
2)密码界常用 “CIA ” 来概括通信安全的三要素:Confidentiality 私密性,Integrity 完整性,Availability 可利用性。保护通信安全仅有私密性是远远不够的,脱离通信的完整性高谈阔论通信的安全性毫无意义。
移动通信网络存在多种安全问题,但是手机通话内容泄密从来都进不了前三甲,排在前面的肯定是“复制卡”、“伪基站”、“电信诈骗”、“垃圾短信”、“改号”……,其实这些安全隐患或多或少都和通信完整性有关。
夜幕降临,你和你的好朋友在大排挡上撸串吃小龙虾,然后用手机微信付款,在这个移动通信场景中,数据的私密性并不是最重要的,你一般也不会很在乎有谁知道你吃了几斤小龙虾,小龙虾价格是多少,你最关心的一定是把钱付给了让你又吃又喝的老板,而不是隔壁的老王家。由此可知,在许多应用场景中,保证通信的完整性远比通信的私密性更迫切更重要。
通信的完整性包括了用户认证和信息的不可篡改性,本文将着重讨论移动网络上的用户认证问题,认证是网络与用户之间相互识别的过程。
网络名言:“你永远不知道网络的对面是一个人还是一条狗!”因此要安全通信,首先你得知道对方是谁,其次才是对话内容的保密,否则就等于主动送上秘密,这是常识。
通信的用户认证就是要解决“你是谁?”和“你是不是你?”这两个问题。
认证的依据可归于以下几条:1)被认证方拥有一个独特的、不可复制的物件;2)双方共享的一个秘密;3)被认证方的某种唯一特征。从2G开始的移动通信网络的认证过程都是综合使用前两种方式:被认证方拥有独特的物件SIM卡和双方共享的秘密,而这个秘密就是分别存放在运营商网络的AuC(Authentication Center)和用户的SIM卡里面的一个密钥(128位的隨机数)
手机用户通过SIM卡中携带的用户身份IMSI解决了“你是谁?”的问题;而要解决“你是不是你?”的问题靠的就是这个密钥。移动通信网络中的认证过程采用的是古老的“挑战—响应”机制,即认证方首先向被认证方发送一个“挑战”,一般而言就是一个随机数;被认证方基于双方共享密钥计算出一个“响应”值,并把该值交付认证方验收;认证方把这个响应值与自己计算的结果相对比,两值相等就可认定对方确实是该SIM卡的主人。
认证过程的关键是安全认证算法和密钥K,移动通信网络中这个密钥K分别存放在运营商网络的AuC(Authentication Center)和用户的SIM卡里面。AuC和SIM卡的安全是移动通信网安全的基石,对SIM卡中密钥K有一整套完整成熟的保护机制。
认证的具体步骤和对密钥K的保护措施都列于文后注解[2]中,希望对技术发烧友有所帮助,说到底,科普才是我撰文的原始动力。
这个认证过程中同时实现了身份认证和过程密钥协商分发两大功能,被称为AKA(Authentication and Key Agreement)协议。
请注意,目前的量子通信只是量子密钥分发QKD,它仅有密钥分发一个功能,而移动通信网络的AKA协议可以同时完成身份认证和密钥分发两个功能,请问移动通信网络加添“量子密钥分发”功能的理由究竟又在哪里?而且“量子密钥分发”为了防止中间人攻击,它本身还需要类似AKA这种协议作身份认证,“量子密钥分发”在移动通信网络除了添乱不会有任何好处。归根结底,身份认证一直就是量子通信的阿喀琉斯之踵(Achilles' Heel)[3]。
“奥卡姆剃刀”原理认定最简单的解决方案总是正确的。换句话说,我们应该避免寻找过于复杂的问题解决方案,不要画蛇添足,必须“无情地剔除所有累赘”。奥卡姆剃刀是规律之上的规律,“如无必要,勿增实体”是普适的原则,它更是阻止量子通信进入移动通信网络不可逾越的红线。
3)量子通信是用来应对后量子时代的公钥密码危机的,至少理论上一直是这样宣传的。建立“量子安全”为的是抵抗量子计算机攻击,量子计算机的威胁针对的是公钥密码,但是移动通信网络的安全问题与公钥密码没有关系,从前面的分析中可以清楚地看到,移动通信网络从2G开始一直到目前的5G的第一阶段,它的加密解密、身份认证和密钥分发使用的都是对称密码系统,所以从理论上来讲量子通信在移动通信领域毫无用武之地。
保护移动通信安全的基础是对称密码,而运营商网络、拜访网络和SIM卡的制卡和分发过程就担负着密钥分发管理中心KDC的职能[4]。使用对称密码加KDC的移动通信网络从加密算法到密钥分发都是非常安全的,量子计算机Shor算法只对公钥密码构成威胁,而且这也仅是理论上的、未来的威胁,它对目前的移动通信系统毫无影响。而量子计算机的Grover搜索算法可能将对称密码算法的蛮力破解复杂度降半,这意味着在未来的量子计算时代,256位的密钥空间等效于128位密钥长度。
正是由于这个原因,某些特别忧天的杞人们建议在5G时代应支持256位密钥长度。但是密码界的主流意见反对过早把密钥长度升级至256位,毕竟支持256位的密钥将导致芯片、手机终端、网络设备升级的各种麻烦。目前制定的5G安全标准Phase1仅支持128位的密钥长度,在Phase2才会考虑256位的密钥长度。这个决定对于那些企图在移动通信网络中推动量子通信工程者无疑是一帖最好的清醒剂。
移动通信的密码安全现状和面对未来的5G密码安全标准的制定都传达出一个十分清晰明了的信息,传统对称密码从加密算法到密钥分发都是十分安全的,移动通信系统应对未来量子计算机威胁是游刃有余、信心十足,移动通信系统中没有量子通信工程的立足之处,在移动通信系统中推动量子通信工程毫无必要性。
4)当然,量子通信在移动通信网络中发展的最大障碍还是在工程可行性方面。量子密钥分发一定需要端到端的光纤接入,也就是说手机后面要拖一根光纤辫子,这不是十足的技术倒退吗?根本行不通。
可能是移动通信市场太诱人了,量子通信无论如何也想挤进去分杯羹,于是有人脑洞大开,竟然想出了让用户去服务站植入密钥的馊主意[5]。这种做法与过去到地下交通站领取密码本没有本质区别,真是一夜回到解放前。
目前的量子通信工程实质上只是量子密钥分发(QKD),就是利用量子物理方法协商分法密钥的一种技术。某些人利用中文的模糊性误导大众,使得许多人错以为“量子密钥分发”是“分发量子的密钥”,而事实上“量子密钥分发”只是“利用量子的手段分发传统的密钥”。量子密钥分发最后生成的不是“量子的密钥”而是与传统密钥没有任何区别的一串随机数。
量子密钥分发具有私密性是指密钥分发的这个过程具有私密性,而不是产生了一个特殊性质的密钥,更不意味着这个密钥终身具有私密性。因为量子密钥分发生成的密钥落地后就是一个普普通通的隨机数。重要的事情必须说三遍,这世上压根就没有“量子的密钥”,只有传统密钥。
理论上量子密钥分发的私密性在空间和时间上均有严格的限制,QKD分发的密钥只有在分发二点上和结束后的那一刻才具有私密性(当然也仅是理论上的私密性)。任何企图把已产生的密钥在空间上拓展或时间上延续都会彻底失去理论上的安全性。举个例,如果由武警把全国高考试卷从北京押送至上海是绝对安全的,那么试卷到达上海站那一刻确实是安全可靠的,但是当这些试卷离开武警官兵后被分送至各个考场并且存放过夜后,如果你认为这些试卷因为被武警运送过所以一定不会出问题,那就是大错特错了。
受物理原理的限制,QKD无法为手机之间提供直接的密钥分发,所有的间接分发包括量子密钥SIM卡植入都会造成严重的安全隐患,其结果一定是弊远大于利[6]。量子通信的BB84是一个端到端的通信协议,这是一个产生在固定有线电话时代的通信保密方案,却企图用来解决互联网时代的需求,不料迎面扑来的是移动互联网的汪洋大潮,这就是量子通信工程化中一切痛苦和烦恼的根源!
总而言之,保护移动通信安全至少包括私密性和完整性两个方面,量子通信对于前者纯属多余,对于后者完全无能为力。量子通信仅是应对公钥密码危机的一种选项,但是移动通信网络的加密解密、密钥分发和身份认证用的都是对称密码,在移动通信网络中推进量子通信工程毫无必要性。受物理原理的限制,量子通信为手机之间进行直接的密钥分发没有任何可行性,量子密钥植入和密钥间接转发不再具有量子通信的理论安全性。
综合以上所有的事实,相信大多数的读者会对“量子加密手机究竟是李逵还是李鬼”作出正确的判断。
参考资料
[1] 从3G开始,移动通信网络中的加密算法和密钥分发技术已经非常成熟,当然这并非表示移动通信网络没有安全隐患。许多安全问题都与企业和人员管理有关,生产SIM卡的厂商泄漏密钥就是一个典型例子。可以肯定,如果在服务站展开密钥植入会涉及更多的人员管理,一定会产生更多不可控因素并导致安全噩梦。
本文的讨论范围仅限于手机的语音和数据的直接传输,使用手机上的App的通信安全问题与互联网TLS协议有关,对此有兴趣请参阅“互联网环境中的密钥分发和管理”一文。有必要指出,所谓的量子安全通话手机对几乎所有的App毫无助益。
[2] 3G移动通信网络的用户认证和密钥分发协议
Step1:认证开始时,用户的归属网络生成一个随机数(RAND),“挑战”由此启动。归属网络认证服务器(AuC)从数据库中提取与手机用户SIM卡中一致的密钥K,通过安全认证算法对RAND进行系列运算,生成用于认证的五个参数(RAND, XRES, CK, IK, AUTN)。在这些参数中,XRES中的X代表eXpected,即期待的响应值,CK就是后续用于通信加密的过程密钥,IK是完整性保护密钥,AUTN是实现用户对网络的认证参数,这个五元参数组构成双向认证向量。由归属网络发送给拜访网络。
Step2:将双向认证向量(RAND, XRES, CK, IK, AUTN)发送到拜访网络;
Step3:拜访网络将RAND、AUTN 发送到用户手机,要求进行身份认证;
Step4:手机中的SIM卡通过安全认证算法使用K对RAND作系列运算,对AUTN作验证。如果手机终端计算出来的AUTN与拜访网络下发的一致,则证明拜访网络确实是从归属网络获得了这个参数,因为只有归属网络拥有K,能生成这个参数,从而可以认为拜访网络获得了归属网路的授权对用户进行认证;
Step5:手机终端(SIM卡)将运算的结果上报到拜访网络,网络侧对运算结果进行核对,即验证XRES与SRES是否相等:
Step6:如果核对认证无误,执行用户接入网络的后续步骤。
认证过程的关键是安全认证算法和密钥K,移动通信网络中这个密钥K分别存放在运营商网络的AuC(Authentication Center)和用户的SIM卡里面。这个密钥理论上绝不会出现在这两个地方之外。在用户这边,密钥的使用和计算都在卡里面进行,不会出现在手机的内存里面,更不可能在网络上传送。通信的认证过程是基于隨机数RAND及密钥K通过不可逆的函数生成各种参数,从RAND和这些参数是无法反推出密钥K。
AuC和SIM卡的安全是移动通信网安全的基石。AuC在运营商网络之内,安全防护从设备到管理都有严格的要求;SIM卡采用抵制篡改(tamper-resist)的硬件设计,外界不允许从卡内读出密钥K。严格意义上来说,用户自己也无法获知自己的密钥是什么,但拥有SIM卡就相当于用户掌握了这个独一无二的密钥。用户还可以设置PIN阻止任何外人盗用SIM卡。
这个包括了六个步骤的过程被称为AKA(Authentication and Key Agreement)协议。AKA使用挑战应答机制,完成用户和网络间的身份认证,并且在身份认证过程的同时生成通信加密密钥。
必须明白,对通信中语音和数据进行加密解密的不是SIM卡中的密钥K,而是在协行AKA协议过程中计算出来的十六字节共128位的密钥CK,这个CK在手机的每次通话过程中都是不一样的。对语音加密时,CK结合明文帧号提供与明文等长、一次一密的流加密。
请注意,图二显示的是手机用户甲与拜访网络之间的AKA协议过程,同样的过程也发生在手机用户乙与他所处的拜访网络之间,对手机信令和用户数据的加密保护分别发生在空口到RNC之间。从3G开始加强了信息在网络内的传送安全,采用了以交换设备为核心的安全机制,加密链路延伸到交换设备,并提供基于端到端的全网范围内加密。
本文中的SIM卡是SIM/USIM卡的统称。USIM卡在3G开始启动,LTE采用与3G相同的USIM卡,但LTE仅允许USIM卡接入,不允许SIM卡接入。
AKA的演进,在AKA的前缀上表现出来:在2G的时候,AKA就叫AKA;在3G的时候,应对伪基站风险,增加了双向认证,解决了用户对网络的信任问题,3G的AKA被称为UMTS AKA;在4G的时候,Authentication部分没有变化,但Key Agreement发生了变化,针对无线网络、核心网络,衍生出不同的密钥,解决了无线网和核心网的互信问题,4G的AKA被称为EPS AKA;5G的AKA增强了归属网络的控制,解决归属网络和拜访网络的互信问题,并被称为5G AKA。
[3] 否决量子通信工程 英国情报部门再发白皮书
https://zhuanlan.zhihu.com/p/130271746
[4] 5G的未来规划中会对SUPI的加密保护引入了一个新的方式,即通过利用归属网络的公钥对SUPI进行加密。在用户的USIM卡中存放一个归属网络的公钥,一旦需要向空中接口发送SUPI,就用该公钥对SUPI进行加密,加密后的数据称为SUCI。拜访网络收到这个加密后的SUCI后,将其送回到归属网络,用归属网络的私钥进行解密。这其中涉及的公钥加密算法目前尚未完成定义,只是限定了需要采用ECIES(Eliptic Curve Integrated Encryption System)的方式进行计算。ECIES包含密钥生成模块和数据加密模块两部分,密钥生成模块使用发送方的私钥和接收方的公钥在椭圆曲线上进行多倍点运算,进而生成会话密钥;数据加密模块使用生成的会话密钥对数据进行加密。
[5]https://mp.weixin.qq.com/s/wpkI5TpZmBXF3ccbWGHL2Q
[6]密钥安全漫谈:“分发”不是难堪处,“管理”方为大问题!https://zhuanlan.zhihu.com/p/165588691
长按下面的二维码,可关注本号。