1.传输中的威胁:偷听与窃听
实施攻击的最简便方法就是偷听(Eavesdrop)。攻击者无需额外努力就可以毫无阻碍地获取正在传送的通信内容。例如,一名攻击者(或者一名系统管理员)正在通过监视流经某个结点的所有流量进行偷听。管理者也可能出于一种合法的目的,如查看是否有员工不正确地使用资源,或者与不合适的对象进行通信。
窃听(Wiretap)是指通过一些努力窃取通信信息。被动窃听(Passive Wiretapping)只是“听”,与偷听非常相近。而主动窃听(Active Wiretapping)则意味着还要在通信信息中注入某些东西。例如,A可以用他自己的通信内容来取代B的通信内容,或者以B的名义创建一次通信。窃听源于电报和电话通信中的偷听,常常需要进行某种物理活动,在这种活动中,使用某种设备从通信线路上获取信息。事实上,由于与通信线路进行实际的接触不是必需的条件,所以有时可以偷偷地实施窃听,以至于通信的发送者和接收者都不会知道通信的内容已经被截取了。
窃听是否成功与通信媒介有关。下面简单介绍针对不同通信媒介的可能的攻击方法。
(1)电缆
对大多数局部网络而言,在一个以太网或者其他LAN中,任何人都可以截取电缆中传送的所有信号。每一个LAN连接器(如计算机网卡)都有一个唯一的地址,每一块网卡及其驱动程序都预先设计好了程序,用它的唯一地址(作为发送者的“返回地址”)来标识它发出的所有数据包,并只从网络中接收以其主机为目的地址的数据包。
然而,仅仅删除发往某个给定主机地址的数据包是不可能的,并且用户也没有办法阻止一个程序检查经过的每一个包。一种被称为嗅包器(Packet Snifter)的软件可以获取一个LAN上的所有数据包。还有一种方法,可以对一个网卡重新编程,使它与LAN上另一块已经存在的网卡具有相同的地址。这样,这两块不同的网卡都可以获取发往该地址的数据包了(为避免被其他人察觉,这张伪造的网卡必须将它所截取的包复制后发回网络)。就目前而言,由于这些LAN通常仅仅用在相当友好的环境中,因此这种攻击很少发生。
一些“高明”的攻击者利用了电缆线的特性,不需要进行任何物理操作就可以读取其中传递的数据包。电缆线(以及其他电子元件)会发射无线电波。通过自感应(Inductance)过程,入侵者可以从电缆线上读取辐射出的信号,而无须与电缆进行物理接触。电缆信号只能传输一段较短的距离,而且可能受其他导电材料的影响。由于这种用来获取信号的设备并不昂贵而且很容易得到,因此对采用电缆作为传输介质的网络应高度重视自感应威胁。为了使攻击能起作用,入侵者必须相当地接近电缆,因此,这种攻击形式只能在有合理理由接触到电缆的环境中使用。
如果与电缆的距离不能靠得足够近,攻击者无法实施自感应技术时,就可能采取一些更极端的措施。窃听电缆信号最容易的形式是直接切断电缆。如果这条电缆已经投入使用,切断它将会导致所有服务都停止。在进行修复的时候,攻击者可以很容易地分接出另外一根电缆,然后通过这根电缆就可以获取在原来电缆线上传输的所有信号了。
网络中传输的信号是多路复用(Multiplexed)的,意味着在某个特定的时刻不止一个信号在传输。例如,两个模拟(声音)信号可以合成起来,正如一种音乐和弦中的两个声调一样;同样,两个数字信号也可以通过交叉合成起来,就像玩扑克牌时洗牌一样。LAN传输的是截然不同的包,但是在WAN上传输的数据却在离开发送它们的主机以后经过了复杂的多路复用处理。这样,在WAN上的窃听者不仅需要截取自己想要的通信信号,而且需要将这些信号从同时经过多路复用处理的信号中区分开来。只有能够同时做到这两件事情,这种攻击方式才值得一试。
(2)微波
微波信号不是沿着电缆线传输的,而是通过空气传播的,这使得它们更容易被局外人接触到。一个传输者的信号通常都是正对着它的接收者发送的。信号路径必须足够宽,才能确保接收者收到信号。从安全的角度来说,信号路径越宽,越容易招致攻击。一个人不仅可以在发送者与接收者连线的中间截取微波信号,而且可以在与目标焦点有稍许偏差的地方,架设一根天线来获取完整的传输信号。
微波信号通常都不采取屏蔽或者隔离措施以防止截取。因此,微波是一种很不安全的传输介质。然而,由于微波链路中携带着巨大的流量,因此,几乎不可能(但不是完全不能够)将某一个特定的通信信号从同时进行了多路复用处理的其他传输信号中分离出来。但对于一条专有的微波链路而言,由于只传输某一个组织机构的通信信息,因此不能很好地获得因容量大而产生的保护。
(3)卫星通信
卫星通信也存在着相似的问题,因为发射的信号散布在一个比预定接收点广得多的范围内。尽管不同的卫星具有不同的特点,但有一点是相同的:在一个几百英里宽上千英里长的区域内都可以截取卫星信号。因此,潜在被截取的可能性比微波信号更大。然而,由于卫星通信通常经过了复杂的多路复用处理,因而被截取的危险相对于任何只传输一种通信信号的介质要小得多。
(4)光纤
光纤相对于其他通信介质而言,具有两种特有的安全优势。
1)在每次进行一个新的连接时,都必须对整个光纤网络进行仔细调整。因此,没有人能够在不被系统察觉的情况下分接光纤系统。只要剪断一束光纤中的一根就会打破整个网络的平衡。
2)光纤中传输的是光能,而不是电能。电会发射电磁场,而光不会。因此,不可能在光纤上使用自感应技术。
然而,使用光纤也不是绝对安全可靠的,还需要使用加密技术。在通信线路中间安放了一些诸如中继器、连接器和分接器等设备,在这些位置获取数据比从光纤本身获取数据要容易得多。从计算机设备到光纤的连接处也可能存在一些渗透点。
(5)无线通信
无线通信是通过无线电波进行传送的。在美国,无线计算机连接与车库开门器、本地无线电(如用于婴儿监控器)、一些无绳电话以及其他短距离的应用设备共享相同的频率。尽管频率带宽显得很拥挤,但是对某一个用户而言,很少同时使用相同带宽上的多个设备,因此,争夺带宽或干扰不构成问题。
但主要的威胁不是干扰,而是截取。无线通信信号的强度能够达到大约100~200ft(1ft=0.3048m),可以很容易地收到强信号。而且,使用便宜的调谐天线就可以在几英里外的地方接收到无线信号。换句话说,某些人如果想要接收用户发出的信号,则可以在几条街的范围内做这件事情。通过停在路边的一辆卡车或者有篷货车,拦截者就可以在相当长的一段时间内监视用户的通信,而不会引起任何怀疑。在无线通信中,通常不使用加密技术,而且在一些攻击者面前,某些无线通信设备中内植的加密往往显得不是足够健壮。
无线网络还存在一个问题:有骗取网络连接的可能性。很多主机都运行了动态主机配置协议(Dynamic Host Configuration Protocol,DHCP),通过该协议,一名客户可以从一个主机获得一个临时IP地址和连接。这些地址原本放在一个缓冲池中,并随时可以取用。一名新客户通过DHCP向主机请求一个连接和一个IP地址,然后服务器从缓冲池中取出一个IP地址,并分配给请求的主机。
这种分配机制在鉴别上存在一个很大的问题。除非主机在分配一个连接之前对用户的身份进行了鉴别,否则,任何进行请求的客户都可以分配到一个IP地址,并以此进行对网络的访问(通常分配发生在客户工作站上的用户真正到服务器上进行身份确认之前,因此,在分配时,DHCP服务器不可能要求客户工作站提供一个已鉴别的用户身份)。这种状况非常危险,因为通过一些城区的连接示意图,就可以找到很多可用的无线连接。
从安全的观点来看,应该假设在网络结点之间所有的通信链路都有被突破的可能。由于这个原因,商业网络用户采取加密的方法来保护他们通信的机密性,尽管出于性能的考虑,商业网络更倾向于采用加强物理和管理上的安全来保护本地连接,但还是可以对局部的网络通信进行加密。
2.假冒
在很多情况下,有一种比采用窃听技术获取网络信息更简单的方法:假冒另一个人或者另外一个进程。如果攻击者可以直接获取相同的数据,那么他们就不会冒险从一根电缆线上去感应信息,或者费力地从很多通信中分离出其中的一个通信了。
在广域网中采用假冒技术比在局域网中具有更大的威胁。在局域网中有更好的方法获取对其他用户的访问。例如,攻击者可以直接坐到一台无人注意的工作站旁,然后开始“工作”。但是,即使是在局域网环境中,假冒攻击也是不容忽视的,因为局域网有时会在未经安全考虑的情况下就被连接到一个更大的网络中去。
在假冒攻击中,攻击者有几种方式可供选择:
●猜测目标的身份和鉴别细节。
●从一个以前的通信或者通过窃听技术获取目标的身份和鉴别细节。
●绕过目标计算机上的鉴别机制或使其失效。
●使用一个不需要鉴别的目标。
●使用一个采用众所周知的鉴别方法的目标。
下面对每一种选择方式进行介绍。
(1)通过猜测突破鉴别
密码猜测的来源是很多用户选择了默认密码或容易被猜出的密码。在一个值得信赖的环境中,如一个办公用LAN,密码可能仅仅是一个象征性的信号,表明该用户不想让其他人使用这台工作站或者这个账户。有时,受到密码保护的工作站上含有一些敏感的数据,如员工的薪水清单或者关于一些新产品的信息。一些用户可能认为只要有密码就可以使有好奇心的同事知趣地走开,他们似乎没有必要防范一心要搞破坏的攻击者。然而,一旦这种值得信赖的环境连接到了一个不能信赖的较大范围的网络中,所有采用简单密码的用户就会成为很容易攻击的目标。实际情况是,一些系统原本没有连接到较大的网络中,因此它们的用户开始阶段处在一个较少暴露的环境中,一旦进行了连接,这种状况就被明显地改变了。
(2)以偷听或者窃听突破鉴别
由于分布式和客户端/服务器计算环境不断增加,一些用户常常对几台联网的计算机都有访问权限。为了禁止任何外人使用这些访问权限,就要求在主机之间进行鉴别。这些访问可能直接由用户输入,也可能通过主机对主机鉴别协议代表用户自动做这些事情。不论是在哪种情况下,都要求将账户和鉴别细节传送到目标主机。当这些内容在网络上传输时,它们就暴露在网络上任何一个正在监视该通信的人面前。这些同样的鉴别细节可以被一个假冒者反复使用,直到它们被改变为止。
由于显式地传输一个密码是一个明显的弱点,所以开发出了一些新的协议,它们可以使密码不离开用户的工作站。此时,保管和使用等细节就显得非常重要了。
微软公司的LAN Manager是一种早期用于实现连网的方法,它采用了一种密码交换机制,使得密码自身不会显式地传输出去。当需要传输密码时,所传送的只是一个加密的哈希代码。密码可以由多达14个字符组成,其中,可以包含大小写字母、数字或者一些特殊字符,则密码的每个位置有67种可能的选择,总共有6714种可能——这是一个令人生畏的工作因数(Work Factor)。然而,这14个字符并不是分布在整个哈希表中的,它们被分成子串分两次发送出去,分别代表字符1~7和8~14。如果密码中只有7个或者不到7个字符,则第二个子串全用Null替代,从而可以立即被识别。一个包含8个字符的密码,在第二个子串中有1个字符和6个Null,因此,只需进行67次猜测就可以找出这个字符。即使在最大情况下,对一个包含14个字符的密码,工作因数会从6714下降到677+677=2×677。这些工作因数也大约相当于一个100亿的不同因数。LAN Manager鉴别仍保留在很多后来出现的系统之中(包括Windows NT),只是作为一种可选项使用,以支持向下兼容像Windows 95/98这样的系统。这个例子说明了为什么安全和加密都是很重要的,而且必须从设计和实现的概念阶段就开始由专家对其进行严密监控。
(3)避开鉴别
很显然,鉴别只有在它运行的时候才有效。对于一个有弱点或者有缺陷的鉴别机制来说,任何系统或者个人都可以绕开该鉴别过程而访问该系统。
在一个典型的操作系统缺陷中,用于接收输入密码的缓冲区大小是固定的,并对所有输入的字符进行计数,包括用于改错的退格符。如果用于输入的字符数量超过了缓冲区的容纳能力,就会出现溢出,从而导致操作系统省略对密码的比较,并把它当做经过了正确鉴别的密码一样对待。这些缺陷或者弱点可以被任何寻求访问的人所利用。(www.xing528.com)
许多网络主机,尤其是连接到广域网上的主机,运行的操作系统很多都是UNIX System V或者BSD UNIX。在一个局部网络环境中,很多用户都不知道正在使用的是哪一种操作系统;当然也有少数人知道,或有能力知道这些信息,另外也有少数人对利用操作系统的缺陷很感兴趣。然而,在广域网中,一些黑客会定期扫描网络,以搜寻正在运行的有弱点或者缺陷的操作系统的主机。因此,连接到广域网(尤其是Internet)会将这些缺陷暴露给更多企图利用它们的人。
(4)不存在的鉴别
如果有两台计算机供一些使用功能相同的用户存储数据和运行程序,并且每一台计算机在每一个用户第一次访问时都要对其进行鉴别,那么有些用户可能会认为计算机对计算机(Computer-to-Computer)或者本地用户对远程进程(Local User-to-Remote Process)的鉴别是没有必要的。这两台计算机及其用户同处于一个值得信赖的环境中,重复鉴别将增加复杂性,这看起来有些多余。
然而,这种假设是不正确的。为了说明这个问题,来看看UNIX系统的处理方法。在UNIX系统中,.rhosts文件列出了所有可信任主机,.rlogin文件列出了所有可信任用户,它们都被允许不经鉴别就可以访问系统。使用这些文件的目的是为了支持已经经过其所在域的主机鉴别过的用户进行计算机对计算机的连接。这些“可信任主机”也可以被局外人所利用:他们可以通过一个鉴别弱点(如一个猜出来的密码)获取对一个系统的访问,然后就可以实现对另外一个系统的访问,只要这个系统接受来自其可信任列表中的真实用户。
攻击者也可能知道一个系统有一些身份不需要经过鉴别。一些系统有Guest或者Anonymous账户,以便允许其他人可以访问系统对所有人发布的信息。例如,所有在线目录的图书馆可能想把这个目录提供给任何人进行搜索,一家公司可能会允许任何人访问它的一些报告。一个用户可以用Guest登录系统,并获取一些公开的有用信息。通常,这些系统不会对这些账号要求密码,或者只是向用户显示一条消息,提示他们在要求输入密码的地方输入Guest(或者用户的名字,只需要任何一个看起来像人名的任何字符串都行)。这些账户都允许未经鉴别的用户进行访问。
(5)众所周知的鉴别
鉴别数据应该是唯一的,而且很难被猜出来。然而,遗憾的是,采用方便的鉴别数据和众所周知的鉴别方案,有时会使得这种保护形同虚设。例如,一家计算机制造商计划使用统一的密码,以便它的远程维护人员可以访问遍布世界各地的任何一个客户的计算机。幸运的是,在该计划付诸实施之前,安全专家们指出了其中潜在的危险。
系统网络管理协议(SNMP)广泛应用于网络设备(如路由器和交换机)的远程管理,不支持普通的用户。SNMP使用了一个公用字符串(Community String),这是一个重要的密码,用于公用设备彼此之间的交互。然而,网络设备被设计成可以进行带有最小配置的快速安装,并且很多网络管理员并不改变这个安装在一个路由器或者交换机中默认的公用字符串。这种疏忽使得这些在网络周界上的设备很容易受到多种SNMP的攻击。
目前,一些销售商仍然喜欢在出售计算机时附带安装一个系统管理员账号和默认密码。有些系统管理员也忘记了改变他们的密码或者删除这些账号。
(6)欺骗
通过猜测或者获取一个实体(用户、账户、进程、结点和设备等)的网络鉴别证书后,攻击者可以用该实体的身份进行一个完整的通信。在假冒方式中,攻击者扮演了一个“合法”的实体。与此密切相关的是欺骗(Spoofing)。欺骗是指一名攻击者在网络的另一端以不真实的身份与其他用户交互。欺骗方式包括伪装、会话劫持和中间人攻击。
1)伪装(Masquerade)是指一台主机假装成另一台主机。伪装的常见例子是混淆URL。域名很容易被混淆,域名的类型也很容易被人们搞混。例如,xyz.com,xyz.org和xyz.net可能是3个不同的组织机构,也可能只有一个(假设xyz.com)是某个真正存在的组织机构的域名,而其他两个是由某个具有伪装企图的人注册的相似域名。名称中有无连字符(如coca-cola.com和cocacola.com)以及容易混淆的名称(如citibank.com和citybank.com)也都是实施伪装的候选名称。
假设攻击者想要攻击一家真正的银行——芝加哥First Blue Bank。该银行的域名是Blue Bank.com,因此,攻击者注册了一个域名Blue-Bank.com,然后,用Blue-Bank.com建立一个网站,还将从真正的BlueBank.com上下载的首页作为这个网站的首页,并使用真正的Blue Bank图标等,以使这个网站看起来尽可能像First Blue Bank的网站。最后,攻击者“邀请”人们使用他们的姓名、账号以及密码或者PIN登录这个网站。这种访问重定向可以采用很多种方法来完成。例如,可以在某些有影响的网站上花钱申请一个横幅广告,使它链接到这个站点,而不是真正的银行站点;或者可以发邮件给一些人,邀请他们访问这个站点。在从几个真正的银行用户处收集了一些个人信息之后,攻击者可以删除这个链接,将这个链接传递给真正的Blue Bank银行,或者继续收集更多的信息。攻击者甚至可以不留痕迹地将这个链接转换成一个真正的Blue Bank的已鉴别访问,这样,这些用户就永远不会意识到背后发生的事情。
这种攻击的另一种变化形式是“钓鱼欺诈”(Phishing)。攻击者发送了E-mail,包含有真实的Blue Bank的标志,诱使用户单击该链接,然后将受害者“带到”Blue Bank网站。这种诱骗方法想获得受害者的账户,或者想通过金钱奖励让受害者回答调查题(从而需要账号与PIN来返还金钱),或其他好像合法的解释。这个链接可能是攻击者的域Blue-Bank.com,该链接可能写着“点击这里”可访问你的账户(“点击这里”链接到假冒的网站),或者可能针对URL使用其他小把戏来愚弄受害者。
在另一种伪装方法中,攻击者利用了受害者网页服务器的一个缺陷,从而可以覆盖受害者的主页。然而,“高明”的攻击者可能要狡猾得多,他们不会将真正的网站弄得面目全非,而是尽量模仿原来的站点建立一个虚假的站点,以便获取一些敏感的信息(姓名、鉴别号、信用卡号等),或者诱导用户进行真正的交易。例如,如果有一家书店A的网站被另一家书店B巧妙地替换了,那么,用户还以为是在跟书店A做交易,殊不知订单的处理、填单以及付账等操作都被书店B在背后接管了。“钓鱼欺诈”已成为一个严重的问题。
2)会话劫持(Session Hijacking)是指截取并维持一个由其他实体开始的会话。假设有两个实体已经进入了一个会话,然后第三个实体截取了它们的通信并以其中某一方的名义与另一方进行会话。仍以书店为例来说明这项技术。如果书店B采用窃听技术窃听了在用户和书店A之间传递的数据包,书店B最初只需要监视这些信息流,让书店A去完成那些不容易做的工作,如显示售货清单以及说服用户购买等。然后,当用户填完了订单,并发出订购信息的时候,书店B截取内容是“我要付账”的数据包,然后与用户进行接下来的工作:获取邮购地址和信用卡号等。对书店A而言,这次交易看起来像是一次没有完成的交易:用户仅仅是进来逛了一圈,但由于某些原因,在购买之前决定到其他地方再去看看。这样,书店B就劫持了这次会话。
另一种与此不同的例子涉及交互式会话,如使用Telnet。如果一名系统管理员以特权账户的身份进行远程登录,使用会话劫持工具可以介入该通信并向系统发出命令,就好像这些命令是由系统管理员发出的一样。
3)中间人攻击。在会话劫持中要求在两个实体之间进行的会话有第三方介入,而中间人攻击(Man-in-the-Middle)是一种与此相似的攻击形式,也要求有一个实体侵入两个会话的实体之间。它们之间的区别在于,中间人攻击通常在会话的开始就参与进来了,而会话劫持发生在一个会话建立之后。其实它们之间的区别仅仅是一种语义上的区别,而在实际使用中却没有多大的意义。中间人攻击常常通过协议来描述,如图6-4所示。
图6-4 中间人攻击
●A向B发送“我是A”的报文,并给出了自己的身份。此报文被中间人C截获,C把此报文原封不动地转发给B。B选择一个不重数RB发送给A,但同样被C截获后也照样转发给A。
●中间人C用自己的私钥SKC对RB加密后发回给B,使B误以为是A发来的。A收到RB后也用自己的私钥SKA对RB加密后发回给B,中途被C截获并丢弃。B向A索取其公钥,此报文被C截获后转发给A。
●C把自己的公钥PKC冒充是A的发送给B,而C也截获到A发送给B的公钥PKA。
●B用收到的公钥PKC(以为是A的)对数据加密发送给A。C截获后用自己的私钥SKC解密,复制一份留下,再用A的公钥PKA对数据加密后发送给A。A收到数据后,用自己的私钥SKA解密,以为和B进行了保密通信。其实,B发送给A的加密数据已被中间人C截获并解密了一份,但A和B却都不知道。
3.消息机密性面临的威胁
由于使用了公共网络,攻击者可以很容易破坏消息的机密性(也可能是消息的完整性)。采用前面所讲过的窃听和假冒攻击可以导致消息失去机密性和完整性。下面讨论可能影响消息机密性的其他几种弱点。
(1)误传
有时,因为网络硬件或者软件中存在一些缺陷,可能会导致消息被误传。其中,经常出现的情况是整个消息丢失了,这是一个完整性或者可用性问题。然而,偶尔也会出现目的地址被修改或者由于某些处理单元失效,从而导致消息被错误地传给了其他人。但是,所有这些“随机”事件都是相当罕见的。
与网络缺陷相比,人为的错误出现得更为频繁。例如,将一个地址100064,30652输成了10064,30652或100065,30642,或者将David Ian Walker的缩写diw输成了idw或iw,类似的事情数不胜数。计算机网络管理员通过无意义的长串数字或“神秘的”首字符缩写去识别不同的人,难免会出现错误,而使用有意义的一些词,如iwalker,犯错误的可能性会小些。
(2)暴露
为了保护消息的机密性,必须对从它被创建开始到被释放为止的整个过程进行跟踪。在整个过程中,消息的内容将暴露在临时缓冲区中,或者遍及整个网络的交换器、路由器、网关和中间主机中,也可能出现在建立、格式化和表示消息的进程工作区中。被动窃听是一种暴露消息的方式,同时也是对传统网络结构的破坏,因为在传统网络结构中,消息只传送到它的目的地。最后要指出的是,在消息的出发点、目的地或者任何一个中间结点通过截取方式都可以导致消息的暴露。
(3)流量分析
有时,不仅消息自身是需要保密的,就连存在这条消息这个事实都是需要保密的。例如,在战争时期,如果敌人看到了某个指挥部与一个特别行动小组之间有大量的网络流量,他们就可以推测出对方正在策划一项与该小组有关的重大行动计划;在商业环境中,如果发现一家公司的总经理向另一家竞争公司的总经理发送消息,就能让人推测到他们企图垄断或共谋制定价格。在这些情况下,既需要保护消息的内容,也需要保护标识发送者和接收者的报头信息。
4.消息完整性面临的威胁
在许多情况下,通信的完整性或者正确性与其机密性至少是同等重要的。事实上,在很多情况下完整性是极为重要的,如传递鉴别数据。
人们依赖电子消息来作为司法证据并指导他们的行动,这种情况越来越多。例如,如果某人收到一条来自一个好朋友的消息,让他在下周星期二的晚上到某家酒馆去喝两杯,他很可能会在约定时间准时到达那里。与此类似,假如某人的上司给他发了一条消息,让他立即停止正在做的项目A中的所有工作,转而将所有精力投向项目B,他也可能会遵从命令。只要这些消息的内容是符合情理的,人们就会采取相应的行动,就好像人们收到了一封签名信件、一个电话或者进行了一次面对面的交谈一样。
然而,攻击者可能会利用用户对消息的信任来误导用户。特别值得注意的是,攻击者可能会:
●改变部分甚至全部消息内容。
●完整地替换一条消息,包括其中的日期、时间以及发送者/接收者的身份。
●重用一条以前的旧消息。
●摘录不同的消息片段,组合成一条消息。
●改变消息的来源。
●改变消息的目标。
●毁坏或者删除消息。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。