无线网络:社会工程的沃土(By Jim Stickley)

安全之美(分享卓越安全专家的思考)

本文节选自《安全之美(分享卓越安全专家的思考)》(Beautiful Security)

如今,许多人都已经听说过关于无线设备安全的问题。从2000年最初发布Wi-Fi时,无线设备安全就已经是许多安全专家所关注的领域了。早在2001年,有线等效保密(Wired Equivalent Privacy,WEP)访问协议就被发现存在严重的缺陷。虽然设计这个协议的目的就是为了阻止非法用户访问无线设备,但是攻击者在几分钟之内就可以绕过它的安全保护机制。随着2003年Wi-Fi网络安全存取(Wi-Fi Protected Access,WPA)协议的公布,无线设备的安全性已经得到了极大的提高。尽管如此,大多数偏执的系统管理员仍然对它的安全性表示怀疑。尤其是在发现了 WPA的几个新的漏洞之后,他们就更加确信这一点了。虽然它的危险程度不及WEP,但这足以让许多管理员认为他们的看法是正确的。

虽然仍然有人对无线网络的安全性持怀疑态度,但大多数人在看到无线技术给生活所带来的便利之后,都接受和认可了这项技术。比如,给百货公司的员工人手配备一台手持设备,那么他们就能够直接与机构的服务器联系,快速高效地完成一些与库存有关的工作。这可以节省大量的时间并提高客户的服务满意度。Wi-Fi也给市政公共事业注入了新的活力,从咖啡馆到公园都有它的身影。遗憾的是,人们对一些针对Wi-Fi的攻击场景仍然不是十分清楚,这种攻击将会引发企业和个人信息被盗的风潮。

本章首先介绍我作为一个专业的安全研究人员是如何探索无线安全缺陷的,并简单地描述它们所造成的威胁。接着,我继续讨论Wi-Fi的现状以及它是如何破坏安全的。

2.1   轻松赚钱

这是一个日常攻击场景。假设你在美国的一个主要机场稍作停留之后准备启程时,把目光转向登机监视器寻找自己的入口时,发现每位旅客都在哀叹:“飞机又延误了。”这时,你已经成为众多“难民”的一员,将在机场的舒适安静环境中度过接下来的6个小时。

这时你的视线离开监视器,四处搜寻可用的电源插座,以挽救快要没电的笔记本电池。我经历过很多次这样的搜寻,每次都是慢慢地在整个区域到处查找,比如每排座位的后面或者是某根杆子的背面。你可能会注意到,寻找这种隐秘插座的人在路过时,似乎是在盯着你的脚下,却又做的不是太明显。我觉得这类似于穴居人在寻找火种。每个人都想拥有它,但只有少数人能够找到,而一旦你找到了,那么你会极具占有意识。事实上,在不止一个场合,当有人走近时,我都会哼一声,然后锤打胸口以示强势。

现在,假设你是找到插座的成功人士,然后打开笔记本,将电源插到插座上,并立即开始搜索无线接入点。现在,大多数机场、宾馆、咖啡馆甚至是公园都提供了无线接入设备。你只需打开笔记本电脑,点击无线接入图标,就会弹出一个或多个可供选择的接入点。当你浏览接入点列表时,看到了一个标题为“T-Mobile”的接入点。原来,这个机场使用的是这个接入设备,因此你毫不犹豫地选择了它。几秒钟之后,你打开了一个网页浏览器。此时显示的不是你的主页,而是T-Mobile的页面,它让你选择是使用已有的T-Mobile账号登录还是创建一个新的账号。

由于你并没有账号,所以点击创建了一个新的账号,这时会发现所需价格是9.99美元一天。虽然这个价格不是太恐怖,但你刚才注意到还有其他的无线接入点,所以你决定看看其中是否碰巧有免费的。你再次点击无线图标,然后看到列表中还有其他三个接入点。其中有两个是加了锁并且需要正确的密钥才能连接,但有一个标题为WiFly的是开放的。然后你选择了WiFly,这一次重定向到的是WiFly的登录页面,上面给出的价格仅为1.99美元。让你感到高兴的是,你刚刚节省了8美元,这时你拿出信用卡,填写在线表单,然后点击提交,瞧,你现在正在浏览互联网。

别的也没有什么事可做,所以你决定通过在线网页接口来检查你的电子邮件。输入网站的网址后敲回车。突然一个错误消息弹出,告诉你网站的安全证书有问题。只有在浏览需要加密访问的网站时才会用到安全证书。这时你才会意识到这个网站是使用加密会话的,因为网站链接是以https://开头的,而不是http://。

此外,你还会注意到浏览器的状态栏上有一个闭合的锁,这表示该页面也是加密的。但是,错误消息表明这个网站的安全证书不是由可信任的认证机构颁发的,另外你所访问的网站和证书不符。

现在你可以选择关闭这个页面或者继续浏览下去。稍做考虑,你想可能是自己访问错了,所以选择关闭该页面。然后你打开了一个新的浏览器窗口又试了一次,结果弹出了同样的错误。此时你可能意识到页面是正确无误的,但确实又有什么地方出了问题。你可能会想这也许和你在机场所用的服务提供商有关,所以选择继续浏览下去。页面出来了,而且看起来很正常,没有什么问题,所以你就登录进去并查看电子邮件。接着你又浏览了几个小时,中间除了又跳出来几次同样的错误消息之外,其他一切看起来都正常。

最后你的飞机来了,收拾好笔记本,把电源插座留给附近其他正在耐心等待的“穴居人”,然后到达了最终目的地。

几周过去,你回到了家里,然后去支付账单。当你打开信用卡账单时,大吃一惊,先前信用卡里面还有好几百美元,现在已经被刷爆了。想了一下,然后你去问你的妻子是否去疯狂购物了。让你感到放心的是,她确实没有去,但这些消费账单依旧还在。当然,你已经完全忘记了,在从机场返回的那一天,你选择了一个廉价的无线接入公司,并向其提供了信用卡信息。遗憾的是,原来这个便宜的无线接入公司的确是一个身份窃贼(identity thief)。

2.1.1   设置攻击

在工作之余,有人雇我去布置安全陷阱以用于测试。我已经在整个美国多次实施了这种特别的攻击。每一次我都能收集到信用卡信息。虽然骗局看似复杂,但让人如此担忧的情况却可以很容易的实施。

在我去布置攻击的场地之前,我会先制作像WiFly这样的一个虚构的公司登录页面,这个页面看上去很可信,而且外观绝对专业。它还提供了一个用于填写信用卡信息的表单。

到了场地之后,我打开一个普通的笔记本电脑并购买了该地提供的真正的互联网接入服务。如果是在没有互联网提供商的地方,我就会用我的手机来进行连接。即使网络速度会很慢,但这没有关系,因为当受害者在使用接入服务时,就已经被骗了。

接着,我给笔记本安装上一个无线路由设备。根据地方的大小,我会设置比较大的天线来覆盖尽可能广的范围。

最后,我运行我写的一个程序,截获从不知情的受害者电脑上发送到无线路由设备、再发送到我的电脑上的数据包,然后再把这些数据发送到真正的我所购买的互联网上。万事俱备,此时,我就像是一只等待苍蝇的蜘蛛。

最终,受害者出现。他们选择了低价的无线接入点,点击了之前设计的网页,并提交了他们的信用卡信息,至此,他们就成了另一个身份窃贼的囊中之物了。

2.1.2   隐私的聚宝盆

很明显,获取信用卡信息对身份窃贼来说是有用的,但是这类攻击还有更多的用途。

还记得浏览器弹出的关于证书的安全警告吗?之所以出现警告是因为那些加密的网络数据并不是在用户认为的最终目的地进行解密的,而是在我的笔记本上进行解密的。换句话说,使用安全的、加密的连接是因为这种操作确实需要,只是用了我的证书来进行加密,当然我可以轻易地解密了。类似于中间人攻击,我能够对用户的数据进行解密,记录下任何数据,然后再重新加密并传送给最终目的地。我可以记录用户名、密码、电子邮件信息以及其他的可能敏感信息,而受害者却认为这些信息会安全地发送给可信的最终接收方。

即使是一小部分个人网络数据都可能会导致一次危害巨大的身份攻击。举个例子,比如我只得到了你的电子邮件账号,现在我就能够浏览所有你接收到的电子邮件信息。想想那些所有通过电子邮件来获得的令人疯狂的信息吧。

如果你不用基于Web的电子邮件服务,那么你可能会认为在你的电子邮件账号和网页账号之间存在一个安全的屏障。但是,大多数网站都提供了“忘记密码”的选项。只需要提供你的email地址,他们就会把密码发给你。通过在一个人的足够长的邮件信息中查找泄露秘密的字符串,通常能够得到任何东西的用户名和密码,包括网银账号。

一个高水平的身份窃贼明白通向王国之路有很多。有时需要从几个不同的源来收集数据。像解决一个谜语一样,你得到的每一份数据都能够用来获取另一份数据。在某些测试中,我也会布置一个什么页面也没有的无线接入点。此时,我暂时放弃了嗅探用户的信用卡信息的机会,但却吸引了更多的用户,他们认为这个接入点更加安全,因为他们不需要提供诸如信用卡信息之类的敏感信息。这种测试的唯一目的就是记录下都有哪些数据流过。几个小时里我就记录到了从用户名和密码到在线购物信息,如姓名、地址和信用卡信息等。

通常,住在公寓里的人都希望不用自己购买互联网接入服务就能访问网络,这时他们就会连接到发现的开放的无线接入设备,而且认为这可能是邻居的接入点。他们认为这是免费的午餐,实际上他们每天都被身份窃贼所欺骗,身份窃贼布设这些接入点的目的就是为了欺骗别人。

正因为无线接入点如此普遍并且已成为日常景观的一部分,所以大多数人都没有想这些无线接入点从哪来。在购物商场里,你会相当肯定地认为从一家珠宝店里买的一块看起来不错的手表是没有问题。但是,如果你正在街上开着车,看到一个在他的车外叫卖手表的人,你可能就不会做出同样的判断了。这很容易看出两者之间的区别,知道什么看起来安全,哪些又看起来像一个陷阱。但是对于无线网络,你根本不知道是谁在提供。即使名称叫做T-Mobile而且登录页面也很像真的T- Mobile登录页面,但你又怎样知道这个特殊的页面真的是由T-Mobile运营的呢?任何能够部署无线接入点的人都可以随意设置访问页面。

2.1.3   Web安全的基本缺陷:不要相信可信系统

我的攻击之所以能成功的主要原因之一在于用户和服务器对安全证书的处理都存在问题。大多数人在浏览互联网时都不太在意安全警告。这主要有两个原因。

一方面,一些人根本不明白这些警告的意思。我想用我父母的例子来说明。他们和世界上其他到达退休年龄的老年人一样,他们是聪明的人,非常乐于接受互联网这一新鲜事物。但是,他们从没有接受过关于互联网及其风险的专业训练,也没有在有专门的工程师负责教会员工的公司里工作。他们只是自己体验整个互联网,也只有一般的能够应付在线支付和查看股票证券信息的知识。类似于数字证书这样的东西对他们来讲就像是质子加速器对他们的意义一样。

另一方面,我发现也有一些精通技术的人不但懂得数字证书,还了解中间人攻击。有人认为这类人从不会中这样的陷阱,但恰恰相反,即使是这些人也很容易上当受骗而成为受害者。与我什么都不懂的父母所不同的是,这些专家受骗的原因是他们太了解这些知识了,以至于能够为自己失误做出合理的解释。

例如,当安全警告跳出来时,他们首先认为是这因为WiFly网站的管理员没有更新已过期的证书而导致的。或者他们认为由于这个网站是由咖啡馆或宾馆提供的,而配置这个网站的人没有经过良好的技术训练,所以没有正确地配置网站的证书。除此之外,在企业内网中你也会经常碰到证书过期的情况,而这时公司的信息技术人员会告诉员工只要忽略安全警告,然后继续使用网站就可以了。这类事件让普通用户认为证书是不重要的,而那些明白证书重要性的高级用户则对他们没有关注的地方一点都不敏感。

在完成攻击之后,我和受害者交谈时,受害者对他们的行为的普遍答案都是根本就没有关注所有弹出来的安全警告。他们大多数似乎都是被操作系统搞烦了,因为有些操作系统每天都会给你提示许多的安全警告(最糟的是微软的Vista操作系统),这使得安全警告变成了白色噪音。

2.1.4   建立无线信任

尽管使用无线接入存在风险,但它们显然又是非常方便的,而且我也不建议所有人都停止使用它们。人们需要的是在不降低使用频率的前提下,找出减少风险的方法。

用户进行自我防范的最有效的办法是多注意安全警告。如果你在使用无线接入服务的时候,收到了关于安全证书存在问题的警告,那么你需要立即停止操作。虽然这也有可能是因为某些网站管理员的操作错误或者是没有更新证书所导致的,但继续操作下去的风险仍然非常大。

当然,这也是要求企业对证书进行良好管理的理由之一。数字证书是企业能够让最终用户对网站的安全持有信心的少数保障之一。如果连证书都没有维护好,那么很容易导致别人对其他方面的安全产生怀疑。

如果某个要求输入信用卡账号,此时你可以采用一种比较简单的方法来验证这个网站合法性,即提交一个假的信用卡账号。如果这个网站是合法的,那么它会检查信用卡账号并且告诉你交易失败。如果是一个恶意的网站,那么它不会作检查,无论你输入什么它都接受。这种方法并不保证一定有效,但有总比没有好。

最后一个建议是尽量不要使用公用的接入点来进行个人交易。咖啡馆也许并不是最好的登录并检查你的银行账号收支的场所。在机场登录并进行股票交易可能会受到一些不好的影响。作为一个经常出差的旅行者,我自己也知道有些时候你别无选择,并且可能也摆脱不了使用你所找到的无线接入服务来传输个人信息的情形。如果发生这种情况,而且也稍微注意到你输入了敏感的信息,那么一旦你回到了一个可信的地方,就要立即修改刚才使用无线接入服务时的登录账号。当然,这也不是说你已经是一名受害者了,但这么做没有什么坏处。

2.1.5   采用可靠的解决方案

虽然时刻注意你的个人信息安全确实可以起到一定的作用,但却不能真正消除这类攻击所带来的危险。为实现这一目标,业界需要解决信任关系。当我打开无线接入软件并搜索可用的无线接入点时,我需要确信一个叫做“T-Mobile”的无线路由确实是属于T-Mobile公司的。

要做到这一点,接入点和客户端之间必须能够交换可以对两者进行鉴别的核查信息。虽然在不同的系统中协调实现这种相互信任比较困难,但这种技术本身确实非常容易,而且已经出现很多年了。用于网站的证书技术同样也可以用于无线接入设备。

这种解决方案的工作流程大致是这样的。用户首先打开无线客户端并收到了一份可用的无线接入点列表。然后客户端会检查对应于每台设备的数字证书。每个证书都包含显示出来的名字、公司名称、硬件标识符以及签发证书的认证机构。由于是无线客户端列出这些设备的,所以能够指明他们是否合法(见图2-1)。

有许多建立认证中心(Certificate Authority)的方法,我所想象的最容易的办法是采用和Web认证相同的认证机制。使用一套已经建立起来的机制会让这个特殊领域的开发变得更加容易,而且利用已经部署的基础设施可减少大量的重复开发。

图2-1   假设经过认证的无线路由

我也意识到有些恶意的无线路由可能会使用伪造的证书,而且一些用户可能从未注意到合法的和非法的接入点之间的区别。但是当对人们进行这种解决方案的培训越来越多以及客户端软件会尽可能正确地指引人们时,这类攻击的风险性将大为降低。

2.2   无线也疯狂

在描绘了前沿的无线攻击技术以及如何进行相应的防范之后,我们再回过头来讨论众所周知的Wi-Fi安全问题以及使其成为日常威胁的社会条件。

习惯于以以太网技术为基础的局域网网络用户和管理员很难理解无线的相对不可控性。局域网使用的是非常不安全的协议(嗅探和篡改、系统伪装和实施拒绝服务攻击都是很常见的),但是有线电缆的物理限制性能够缓解一些安全问题,你不可能在网线内部部署一个恶意的系统。而无线技术故意去掉了我们习以为常的物理安全层,使得网络流量会泄露出去,甚至能够跨域有形的围墙和围栏之类的物理界限。

如果我在本章开始提到的,管理员(假设他们使用部署任何安全措施时都足够细致)一开始是采用WEP来保证接入点的安全。WEP的主要问题是黑客能够很容易地嗅探到在空气中传输的数据包,并且能够提取密钥进行解密。甚至初级黑客都能够借助于一些工具来实施这种攻击。

后来又引进了WPA技术来解决WEP问题,即解决从嗅探到的数据包中快速提取密钥的漏洞。这时,无线工程师们都很高兴。

当然,喜悦是短暂的,又有人发现仍然能够提取用于WPA预共享密钥(Pre-Shared Key,PSK)的密码短语。WPA协议首先传输的是交换包,即所谓的握手机制,它能够验证客户端和接入点。由于数据是加密的,所以即便是在无线路由附近对传输的数据包进行监控并记录整个握手过程,也没有人能够推导出密钥进而破坏整个系统。但是,黑客可以记录下这些数据,然后采用暴力破译密码的方法来进行攻击,即从一张单词列表中对每个单词进行穷举,以找到和记录数据相匹配的。

黑客要成功地实施这种攻击,需要满足几个条件。首先,黑客要必须能够从接入点接收到无线信号。我见过很多公司把这作为主要的防御点。有些时候,考虑到在墙外接收到的无线信号会很弱,管理员会把接入点安装到非常隐蔽的地方。确实,这样做的话,普通笔记本电脑中的无线设备很难再捕捉到无线信号了,但是对于那些坚定的黑客来说,他们往往都拥有非常强大的天线以接收任何弱小的信号源。

其次,黑客需要从客户端和无线接入点开始会话时就进行监控。监控会话建立后的数据包没有什么用处。虽然听起来这个要求大大减少了黑客获取初始握手信息的机会,但实际情况是这根本算不上什么。事实证明,已经出现了大量的能够终止无线会话的工具,它们能够迷惑客户端,并发送一条终止会话的命令。一旦连接断开,客户端一般会尝试重新连接。这时黑客就能够对数据包进行监控并获取初始握手信息了。

最后一条是密码短语本身的强度。在我的测试中已经出现了像tootired和bicycles这样简单的密码。密码破译软件在几分钟之内就能够找到这些密码。一个WPA密码短语可以由8到63个字符组成,但是我发现大多数人一般都只用8个或者9个字符。当然,最好的密码短语是63个字符,它可以混合字母、数字和标点符号。那么为什么没有一个管理员这么做呢?

最主要的原因是不管你为接入点设置了什么样的密码短语,每台电脑在连接的时候都需要输入这一密码。对于一个真正疯狂的密码的支持成本将成为一个噩梦,因为人们会输错字符或完全忘记了密码。所以,取而代之的是,管理员走向了另一个极端,即使用尽可能简单的密码。虽然没有完美的解决方法,但我建议可以采取皆大欢喜的折中方法。比如“This1was900yearsold!!!”这样的密码既便于记忆,又比标准字典中的单词更难破译。

2.2.1   无线侧信道

担心无线接入点被伪造是一回事,但是负责保证网络安全的系统管理员还有更多方面需要考虑。

一些企业很久之前就认为浏览互联网网站对他们的网络造成了很大的风险,因此完全屏蔽了网络浏览。过去这种办法看起来很有效,但是最近随着开放的无线接入点遍地开花,威胁再次显露出来。许多用户发现他们可以在工作的时候带着一个USB无线设备或者使用笔记本电脑中的无线设备来登录到临近公司的无线网络。

随着大约五年前“战争粉迹”(warchalking)(译注1)的出现,开始流行黑客们使用别人的无线接入服务。这个术语是指黑客在有开放的无线网络的场所留下来的标记。在有黑客看到这种标记时,就知道能够使用笔记本来连接这里的无线网络了。

随着无线技术越来越流行,即使是一些没有什么技术的用户也开始使用这种方法了。这时管理员所面临的问题就变成了这些用户根本就不清楚他们使用新发现的接入点会给自己公司的网络所带来的潜在的危险。

任何绕过自己所在公司的安全基础设施,利用其他设备来访问互联网的用户,都把自己的安全交给其他公司所实现的安全机制来保证。然而,从无线网络是任何人都可以连接的这一点就可以看出这家公司的安全措施并不好。可能已经被本公司的入口所屏蔽的病毒和蠕虫此时就有了新的传播途径,它们会从这个无线接入点进入企业网络。

一些用户把他们的笔记本电脑或台式电脑通过有线网络连接到他们公司的本地局域网络,同时又通过无线连接到其他公司的网络。这种设计会在两个网络之间创建一个潜在的通道,它能够直接破坏更为安全的企业的整个内部网络,使大部分安全预防措施都形同虚设。

黑客们也同样知道企业员工是如何利用开放的无线连接来访问互联网的。出于这个原因,黑客就会在一些敏感的场所附近部署伪造的无线接入点来试图获得企业信息。

他们的攻击相当简单。首先,在某个建筑物中设置一个能够访问互联网的无线接入点。大多数情况下,这相当容易实施。因为许多小公司没有对网络进行真正的控制,而且也不知道员工什么时候安装了这种设备。接着,使用修改的天线来增强无线信号的强度使之覆盖尽可能广的范围。然后,写一个小程序用来监控无线设备上的所有活动。一旦有活动发生,就会通知黑客。此时,黑客就会着手攻击那些连接到无线网络上的电脑。如果某台电脑有漏洞,黑客仍会让它继续使用互联网,同时却静悄悄地获取这台机器的访问权限。通常情况下,间谍软件和木马就会登录到这些用户的电脑上了。

一旦系统被攻陷,那么黑客就能够获取任何类型的信息。既连接到公司的内部网络,又连接到黑客的接入点的系统简直就是一块金子。虽然在初次访问用户网络的时候会出现一些路由问题,但即便是最低层次的黑客都能够在几分钟内解决这一问题。

那么企业的内部网络监控此时又会如何呢?取决于所采取的安全机制,他们可能从不知道网络中正在发生些什么,也许直到破坏已经存在许久之后才会发现。

2.2.2   无线接入点自身如何

如果我提到TJX,你会想到什么?如果你经常关注过去两年的主流新闻,你可能首先想到的是这家公司曾被盗过许多信用卡账号。这件事在2006年12月才被人们发现,黑客攻入了他们的网络并不断地下载了至少四千五百七十万个信用卡账号,而且据推测这个数据更接近于两亿(TJX事件在第3章中有详细介绍,作者是 Elizabeth A. Nichols)。专家预测TJX公司需要花费1亿美元左右才能弥补此事带来的后遗症,在这个时候,越来越多的证据表明,更多的公司每天都面临着同样的安全缺陷:未加保护的无线接入点。

在2007年11月,Motorola公司提供安全和无线网络监控服务的AirDefense部门发布了一项关于全国范围内的3000个商场的无线设备安全研究报告。据该报告指出,25%的无线设备根本没有使用任何加密措施,剩下的1/4仍然还在使用老的、具有安全漏洞的WEP连接协议。

在TJX案例被广泛宣传一年之后仍然还有如此之多的安全隐患,这是非常可怕的。1/4的商场比TJX的安全措施更薄弱,剩下的1/4的安全措施和TJX公司的一样容易绕过。

决定使用无线技术所带来的方便的企业除了清楚地知道它所具有的风险,还要不懈地做好无线设备的安全防护措施。TJX在初次部署无线路由的时候,也实施了当时存在的安全机制。但遗憾的是,这种安全机制很快就过时了。假如这家公司稍微花此时间来更新部署更为安全的WPA机制,很可能我们大多数人都不会听说过 TJX。

2.3   无线仍然是未来

从酒店和机场到企业办公大楼和超市,无线接入的需求仍然在持续增长。和互联网一样,更多的安全风险将会暴露出来。企业、管理员,甚至是普通用户对这些安全威胁的重视仍然是个问题。使用开放的无线接入点是有风险的,用户需要明白这一点并做出相应的举措。除此之外,如果没有做好无线接入点的安全保护将会导致更加严重的危害,这正如TJX公司的案例。如果你打算采用新技术,那么必须考虑到所有的后果。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16502878/viewspace-696818/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/16502878/viewspace-696818/

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资源 5来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。、资 5源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值