随着AI技术大爆炸,各种与AI相关的产品也开始进入了我们的生活。
你可能用妙鸭相机的AI生图画过头像、用月之暗面的Kimi总结过论文,让ChatGPT写过应付领导的文件。
但是,这些朋友们得注意了, 现在你们与AI的对话可能已经不再安全 。
以色列本·古里安大学进攻性人工智能实验室的研究人员发现了一种攻击AI的方法,如果有心之人拿它入侵你的通信系统,那么你与AI的谈话内容,就会出现在别人的电脑屏幕上。 你的隐私、他人的隐私、商业机密等都将暴露无遗 。
正如有些国家的警方会根据住户不正常的用电量,去推测他是否在种植违禁药品,本·古里安大学的这种方法也不是直接破译密码,而是所谓的 测信道攻击 ,也就是利用时间、电磁、声音、电源甚至风扇的转速这些,表面上看起来跟个人隐私毫无关系的信息,来推测敏感信息,非常的神奇。
以ChatGPT为代表的一众AI聊天助手面对这种进攻完全没有招架之力,只有一个例外,那就是 谷歌的Gemini 。
所以这种攻击AI的方法到底是怎么回事?为啥谷歌能独善其身呢?
且容我细细道来。
01
你发现你对象最近有些神神秘秘的,经常用ChatGPT,但不愿意给你看到底聊了什么。
莫非ta有什么不可告人的秘密?
你有没有办法可以获得ta的聊天记录呢?
是有的,而且只需要三步。
第一步,拦截数据 。
从哪里拦截呢?
理论上来说,数据从ChatGPT的服务器中传输到电脑之间的任何节点都可以拦截,也就是途中经过的任何路由器。但最方便的截击点,显然是 家里的路由器 。
现在我们控制了路由器,任何一台家里设备上网的数据,你都一清二楚。
这就好像我想要知道你有多少快递,最好的办法就是盘下你家附近的快递网点。
你本就知道账号密码,所以很轻松地启动了家里路由器的管理权限,查看所有经过路由器的数据。
只要等ta跟ChatGPT聊天的时候截获数据就行。
你蹲守在厕所里启动电脑,经过短时间的等待,好的,ta开始跟ChatGPT聊天了。
但是这里遇到了一个问题, ChatGPT跟ta之间的通话是加密过的 (废话)。
OpenAI对所有存储的数据用AES-256算法加密,对所有传输中的数据用TLS数据加密,介于你手头暂时没有量子计算机,根本破解不了啊!
那怎么办?
不要慌,有办法。
现在我们需要进入第二步。
第二步:虽然我们无法破解数据包的内容,但我们可以先把 数据包的长度记下来 。
数据包的长度跟我们想破解的信息有什么关系呢?
你也许听说过一个叫Token的概念。
类似ChatGPT这样的大语言模型的运行机制,本质上就是单词接龙。更准确地说,就是用它那几千亿的参数,去预测下一个最小的语义单元应该接什么,如此重复,从而接出一段完整的话。这个最小的语义单元,就是一个token。
比如:
或这样:
这些用色块隔出来的东西,就是一个一个的token。
可以发现,token跟单词基本上是一一对应的,这也就意味着:
token的长度与单词长度是基本一致的 。
如此一来, 只要依次记录下每个数据包的长度,我们就知道了ChatGPT发给ta的话,是由多长的词语依次组成的 。
比如上面那句话,就是:2、2、1、1、1、5、2、4、4、1、3、8、4、5、1。
也就是说,我们知道了ta这句话的节奏。
是不是有点意思啦?
不是,你不要急嘛。
要把这个节奏跟具体的文本对应上,就必须进入第三步了。
第三步:用魔法打败魔法, 用大语言模型去治大语言模型 。
这群以色列的研究人员训练了一个大语言模型,专门 根据一句话的节奏去预测这句话是啥 。
长度序列(节奏)与具体的文本之间的能有什么关系呢?这对作为人类的你我来说可能有点难以想象。从一堆数据中找出规律正是AI所擅长的,研究人员就直接给大语言模型喂大量的长度序列,训练它们去预测对应的文字。再基于正确结果对于生成的答案进行排序,不断地卷,提升预测的准确度。
为了让预测的更准确,他们还做了进一步的fine-tuned。
由于AI生成的语句在第一句通常风格最明确,更容易预测。所以他们用一个大语言模型专门做第一句的预测,然后让再用另一个大语言模型根据第一句的结果预测后面的内容。
那么这样预测的结果如何呢?你能拿到朝思暮想的聊天记录吗?
02
在以色列研究人员的演示视频中,这两个大语言模型最终得到了50句不同的答案。
其中,通过侧信道攻击得到评分最高的答案是:Several recent advancements in machine learning and artificial intelligence that could be a game-changing tool.
翻译:一些 机器学习和人工智能 领域近期的研究成果,它们有可能是 改变局势的工具 。
而AI发来的原文本是:There are several recent developments in machine learning and artificial intelligence that could revolutionize the health industry.
翻译:这是一些 机器学习和人工智能 领域近期的研究成果,它们有可能 改变整个健康产业 。
这一说这个答案和原文本相当的吻合了。在关键信息上,侧信道攻击得到的句子包含了「机器学习和人工智能领域」,「研究成果」,唯独缺少了「健康产业」这一关键信息。
不过如果我们仔细看的话,那两个大语言模型给到的50个答案中有不少都提到了与「健康产业」接近的信息,比如排名第10的答案中提到了「healthcare institution」(医疗机构)和「hospital」(医院)。
总体来说,这种攻击方式有 55%的情况下能达到高精确度 (只有一两个词不同), 29%的情况下能完美破解 。
听起来好像不高啊,这不71%的情况都不能完美破解嘛?但在现实中,能完全破解当然好,但对发起进攻的人来说,他们需要的更多的是关键信息。
怎么理解呢?
假如,你对象跟ChatGPT探讨了半天两个人去成都有什么可玩的。而却从来没有告诉过你任何去成都的计划……
这TM就是关键信息了 。
03
那么这种侧信道攻击有什么办法解决吗?
正如我们在开头所说,以ChatGPT为代表的绝大多数AI聊天助手都防不住这种攻击,只有Google的Gemini双子座可以。
为什么呢?
其实原因非常的扯淡。不是这个Gemini有什么特殊的架构或者特殊的加密算法,而是它回复用户的时候不像其他AI一样生成一个词就立马就发,而是 等一段答案生成完了再发。
结果,攻击者截获到的token序列不再是1、2、5、6、1这种了,而是15。
这还怎么玩。
但是,从Gemini目前孤家寡人的境况你也能看出,这种方式是非常影响用户体验的。一个个往外蹦,我看到有不对的时候就马上开始准备新的问题了。 而干等一分钟最后等来一个离谱的回答,容易导致高血压等心脑血管疾病的发生 。
所以在即时发送的方式不变的情况下还有什么办法吗?
有一种 「填充」的办法 ,向不同长度的数据包填充一些「空格」,使得发送的每个数据包长度相似。
但同样的,这也会影响用户体验,因为数据包中随即填充的这些「空格」,在打开数据包时也是需要时间去处理。所以延迟会比通常情况久不少。
以色列的这项研究发表后,在所有易受攻击的AI中,OpenAI在48小时内实施了「填充」措施,不过拒绝对其发表评论。微软则还没有采取措施,他们发表了一项声明,声明中称这种方式」不太可能预测像名字这样的具体细节」。
看来微软不是很在乎用户的隐私问题啊。
现实来讲,当一项技术处于爆发期的时候,忽略安全隐患是很多厂家的常规操作。因为很显然, 安全是拦在效率前面的绊脚石 ,在AI界疯狂内卷的今天,把安全放在效率前面有时候是很难活下去的。
但安全问题可以被忽视,但并不会消失。当它再被提起时候,往往就是酿成大祸,舆论哗然的时候了。
不过除了具体的技术问题,我觉得侧信道攻击这件事背后的逻辑更有意思。
如果没有AI大模型,谁又能想到,原来只需要知道一句话的节奏,就能推断出这句话的内容呢??
这有点像一种名为海龟汤的游戏。在游戏中玩家只被根据非常有限的信息(汤面)去推测整个故事(汤底)。
比如给你一个汤面:「6岁时外婆告诉我不要吃黄苹果。13岁时,外婆告诉我不要吃青苹果。18岁时外婆告诉我不要吃红苹果。20岁时外婆去世了,我向外婆祈愿:以后所有的苹果都可以吃了。」
那么,外婆和苹果到底是有什么关系呢?
这个关系就类似于隐藏在表象下的规律,人类需要构建一整个故事去理解,因为人是线性思维,必须依赖因果关系去理解。而像数据包的长度和内容之间的规律,你是无法通过编故事去理解的。 但这部分缺失的能力,现在AI替我们补上了。