Py学习  »  chatgpt

男朋友和ChatGPT的加密聊天,被我破解了

酷玩实验室 • 1 月前 • 49 次点击  

酷玩实验室作品

首发于微信号 酷玩实验室
微信ID:coollabs


随着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替我们补上了。




酷玩实验室视频号
热点视频推荐↓↓↓
守住你的路由器!

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/168334
 
49 次点击