2.5 物联网安全基础技术
回顾互联网发展的历程,物联网的安全必须引起重视,互联网的今天将是物联网的明天。作为一种多网络融合的网络,物联网安全涉及网络的不同层次,在这些独立的网络中已实际应用了多种安全技术。特别是移动通信网和互联网的安全研究已经历了较长的时间,但对多网融合背景下的物联网来说,由于网络的复杂性、资源的局限性,因此对物联网安全产生了新的威胁,也提出了新的研究内容。
在不久的未来,解决物联网安全问题将可能比现在解决互联网安全问题显得更为迫切和困难。在物联网发展之初,就需要对物联网总体安全需求和安全体系结构进行深入研究,建立基于普适、异构环境下的可信物联网的安全机制,以保证基于物联网应用业务的整体安全性、便捷性和可靠性。
目前,物联网安全技术的发展还处于起步阶段。物联网虽然不是全新的概念,其中的感知层、网络层、应用层的相关技术和应用已经起步多年,但是物联网作为一个整体概念还是新兴事物。其中,虽然有众多的安全威胁,但是目前很多的物联网应用中,较少考虑安全问题,因此物联网安全作为一个整体概念,基本还处于起步阶段。
2.5.1 多业务、多层次数据安全传输技术
从信息安全的机密性、完整性和可靠性来分析物联网的网络层安全需求,数据安全传输是其核心内容。物联网是一个多网融合应用的网络,将来的物联网应用必然是一个支持多业务、多通道的宽带传输应用,其数据安全传输技术是一个多业务、多层次数据加密传输技术,需要加密传输的数据内容可能包括感知层采集的语音、数据、图像等业务数据,通过专用的数据安全传输技术保证数据在空中无线信道和有线信道中的传输安全。
物联网承载网络支撑的业务将是多业务并存状态,不同业务、不同设备之间流量差别很大,对安全性的要求也不尽相同,需要针对此特点研究适宜的数据安全传输技术,既满足安全性能要求,又不能破坏负荷平衡,实现多业务并行加密处理。数据安全传输技术需要重点研究终端和网络的数据安全传输体系结构,通过可编程加密技术和密码算法引擎设计的研究,满足物联网多业务、多层次加密并发处理需求。数据安全传输体系结构可以支持不同加密算法建立独立的高速加密信道,同时对不同业务和数据传输速率的通信信息执行网络层安全服务。为提高数据安全传输体系结构的通用性和优化体系系列化设计思路,数据加密技术可深入研究将密码功能模块和通信模块整合设计的技术,研究标准化中间件接口设计、封装、复用技术。
2.5.2 身份认证技术
目前身份认证技术主要分为3类:一是判定声称者知道口令等秘密;二是判定声称者拥有智能卡、USBKey等设备;三是判定声称者固有的指纹、声音等特征,前两类属于密码技术范畴。物联网中常见的身份认证技术如下。
1.RFID身份认证
当前关于RFID的认证协议主要有基于哈希函数的RFID认证协议、基于状态的RFID认证协议、基于密钥加密的RFID认证协议等,具体如下。
(1)基于哈希函数的RFID认证协议。协议的私密性、安全性借助了单向哈希函数的安全性。设有一个单向哈希函数h(),令z=h(ID),可以知道,从ID计算出z很容易,但不可能从z推导出ID,这样的不可逆性就可以在很大程度上抵抗窃听攻击。另外,阅读器在每次通信时都有一个随机数r生成,一般用CRC(Cyclic Redundancy Check,循环冗余校验)算法设计哈希函数h(),并结合更新后的标签ID,可以有效地抵抗重放攻击和位置检测。但这种认证协议一旦攻击者非法终止了一个会话,就很容易导致ID更新非同步攻击或标签的位置检测攻击,且不能有效抵抗假冒攻击。有研究人员提出了一种基于哈希函数的RFID认证协议,用标签ID的哈希函数值作为虚拟ID来应答阅读器的查询,并在每次通信时服务器都更新标签的虚拟ID,通过变化标签虚拟ID来保证RFID的私密性,而把真实的标签ID存储在后台数据库,以此来有效防止位置追踪。该协议可以有效防止重放攻击、窃听和位置追踪攻击,但当第三方恶意阻断阅读器与标签之间的最后一次会话时,标签的虚拟ID就不能更新了,那么标签在下一次会话时就会发出与上一次相同的信息h(ID),这样就会引起位置追踪攻击,进而威胁到标签的私密性。
(2)基于状态的RFID认证协议。为了保证RFID系统在会话被非法结束时仍然是安全的,有安全企业提出了一种基于状态的RFID认证协议。该协议中设置了一个有标记的标签,其中标记flag的值只能是0或1,flag=0表示上一次结束的会话是安全的;flag=1则表示不安全。标签可以借助其上flag的值,判断上一次会话的结束是否是正常的,进一步判断是否受到了ID更新非同步攻击。该协议仍然利用单向哈希函数的安全性来抵抗窃听攻击,设h()是一个单向哈希函数,令z=h(ID),由z推导计算出ID是不可能的。这样就可以借助每次通信时产生新的随机数及更新的标签ID来防止重放攻击与位置追踪攻击。然而,如果在某次通信时,有攻击者恶意阻断了最后一次会话,这时就有可能出现标记flag=0的情况,标签ID没有被更新,而后台数据库中的标签ID被服务器更新了,从而导致了非同步问题。
(3)基于密钥加密的RFID认证协议。为了提高RFID系统的私密性和安全性,人们开始把密钥系统引入到RFID认证协议中。为了优化一种基于对称密钥体系的请求应答认证协议,使其不会出现一个标签的密钥被泄露,整个系统随之破坏的情况,提出了一种RFID认证协议,该协议中阅读器与每个标签共享的密钥都不同,但该协议又存在缺点,即在拥有大量标签的RFID系统中,会导致认证的计算非常困难,每次认证系统都要查找到某个标签自身的密钥。有研究机构已经证明基于公钥加密系统的认证协议可以提供RFID系统更好的安全性和私密性,但是由于RFID标签,特别是低成本的RFID标签,其存储空间和计算能力都有限,而一般的公钥加密算法对设备存储空间大小及计算能力的强弱又有较高的要求,因此设计RFID认证协议时要考虑选择哪种公钥加密算法最合适。
2.无线传感器网络的身份认证
当前在无线传感器网络上的身份认证协议主要有TinyPk认证协议、强用户认证协议和基于密钥共享的认证协议等。WSN TinyPk认证协议方案需要有一个可信任中心(CA),一般由基站充当这个角色。该认证协议中任何外部组织(EP)要与传感器节点建立联系就必须有公/私密钥对,同时它的公钥用可信任中心的私钥签名,以此来建立其合法身份。WSN TinyPk认证协议采用请求应答机制。首先EP发出请求信息。请求信息包含两部分的内容:第一,自己的公钥,并用CA的私钥进行签名;第二,由一个信息校验值和一个时间标记组成,用EP自己的私钥进行签名。这里信息的完整性由信息校验值来保证,而用时间标记来对抗重播。请求信息包到达节点后,该信息包的第一部分会被节点预置的CA公钥进行验证以确认EP身份,并与此同时获得EP的公钥;然后再借助此公钥去验证信息包的第二部分,并取得信息校验值和时间标记;最后再根据该信息去验证第三方的合法身份。
基于密钥共享的WSN认证协议。基于密钥共享的WSN认证协议的提出基于两个密码学的概念,即密钥共享和组群同意。该协议中网络由多个进行通信的子群构成,每个子组群通过为其配备的基站进行通信。协议认证的流程为:目标节点t试图在无线传感器网络中完成认证并取得合法的身份,首先它和它所属子群的基站共享着一个其他节点所不知道的密钥;然后与其共享这一密钥的基站会把这一密钥分割成n-1份。这n-1份共享密钥会被基站分发给t以外的n-1个节点,接收到其共享密钥的节点a,会选取其后续节点b作为验证节点,之后所有收到这n-1份共享密钥的节点都会把收到的密钥发送给b,b收到这些共享密钥后,用它们恢复出原密钥S′。这时t也把原密钥S发送给b,b将恢复出的S′与t发送来的S进行比较,相同就发送一个表示确认的判定包;否则就发送一个表示拒绝的判定包。
上面的这一过程会在每一个收到共享密钥的节点上进行,当任一节点收到n-2个判定包后,若发现表示确认的判定包超过了半数,则代表节点t通过了该节点对它的认证。该协议在认证过程中采用了密钥共享和子组群同意的方式,而没有采用任何消耗高的加、解密方案,因此它具有容错性好、计算效率和认证强度高的优点。不过在认证过程中,一个节点的认证需要子组群内其余所有节点的协同通信,这就带来了在广播判定包时容易造成信息碰撞的缺点。
基于WSN的强用户认证协议。与TinyPk认证协议相比,基于WSN的强用户认证协议在两个方面有所完善。一方面,认证协议没有采用传统的单一认证,而是采用了n认证的认证方式。传统的单一认证是指外部组织(EP)只要通过了任意一台主机或节点上的认证,就能够获得合法身份进入网络;而n认证是指外部组织(EP)想要获得合法身份进入网络,就必须至少通过通信范围内n个节点中n-t个节点的认证。其中,n为在外部组织(EP)通信范围内节点的平均个数,t为该协议能够承受的最大被捕获节点数,即在外部组织(EP)通信范围内的n个节点中,当被捕获节点数超过t时,这个协议就无效了。另一方面,此协议的公钥算法采用的是基于椭圆曲线的公钥加密算法(ECC),而不是RSA,因此其密钥的长度更短。借助ECC算法,该协议中的节点不仅能够进行加密和验证签名操作,还能够进行解密和签名操作。
3.基于PKI/WPKI的轻量级认证技术
提供丰富的M2M数据业务是物联网应用的一个重要特点,这些M2M数据业务的应用具有一定的安全需求,部分特殊业务具有较高的安全保密要求。充分利用现有互联网和移动通信技术和设施,是物联网应用快速发展和建设的重要方向。随着多网融合下物联网应用的不断发展,对于未来物联网承载网络层、提供安全可靠的终端设备轻量级鉴别认证和访问控制应用提出了迫切需求。
PKI(公钥基础设施)是一个用公钥技术来实施和提供安全服务的、具有普适性的安全基础设施。PKI技术采用证书管理公钥,通过第三方的可信任机构(认证中心)把用户的其他标志信息(设备编号、身份证号、名称等)捆绑在一起,来验证用户的身份。WPKI(Wireless PKI)就是为满足无线通信安全需求而发展起来的。它可应用于移动终端等无线终端,为用户提供身份认证、访问控制和授权、传输保密、资料完整性、不可否认性等安全服务。基于PKI/WPKI的轻量级认证技术的研究目标是以PKI/WPKI为基础,开展物联网应用系统轻量级鉴别认证、访问控制的体系研究,提出物联网应用系统的轻量级鉴别认证和访问控制架构及解决方案,实现对终端设备接入认证、异构网络互连的身份认证及对应用的细粒度访问控制。
基于PKI/WPKI的轻量级认证技术研究内容包括以下几个方面。
(1)物联网安全认证体系。
重点研究在物联网应用系统中,如何基于PKI/WPKI系统实现终端设备和网络之间的双向认证,研究保证PKI/WPKI能够向终端设备安全发放设备证书的方式。
(2)终端身份安全存储。
重点研究终端身份信息在终端设备中的安全存储方式及终端身份信息的保护。重点关注在终端设备遗失的情况下,终端设备的身份信息、密钥、安全参数等关键信息不能被读取和破解,从而保证整个网络系统的安全。
(3)身份认证协议。
研究并设计终端设备与物联网承载网络之间的双向认证协议。终端设备与互联网和移动通信网络核心网之间的认证分别采用PKI或WPKI颁发的证书进行认证,对于异构网络之间在进行通信之前也需要进行双向认证。从而保证只有持有信任的CA机构颁发的合法证书的终端设备才能接入持有合法证书的物联网系统。
(4)分布式身份认证技术。
物联网应用业务的特点是:接入设备多,分布地域广。在网络系统上建立身份认证时,如果采用集中式的方式在响应速度方面不能达到要求,就会给网络的建设带来一定的影响,因此需要建立分布式的轻量级鉴别认证系统。并且对分布式终端身份认证技术、系统部署方式、身份信息在分布式轻量级鉴别认证系统中的安全、可靠传输进行研究。
4.新型身份认证技术
身份认证用于确认对应用进行访问的用户身份。身份认证的方法一般基于以下一个或几个因素:静态口令;用户所拥有的东西,如令牌、智能卡等;用户所具有的生物特征,如指纹、虹膜、动态签名等。在对身份认证安全性要求较高的情形下,通常会选择以上因素中的两个,从而构成“双因素认证”。目前最常见的身份认证方式是用户名/静态口令,还有基于智能卡、动态令牌、USB Key、短信密码和生物识别技术等。在物联网中也将综合运用这些身份认证技术,特别是生物识别技术及零知识身份认证技术。
(1)生物识别技术。
生物识别技术通过计算机与光学、声学、生物传感器和生物统计学原理等高科技手段密切结合,利用人体固有的生理特性(如指纹、掌形、虹膜、人脸等)和行为特征(如动态签名、声纹、步态等)来进行个人身份的鉴定。目前指纹识别技术已经得到了广泛的应用,而面部识别、声音识别、步态识别、基因识别、静脉等其他高科技的生物识别技术也处于实验研究之中。基于生物识别技术的身份认证被认为是最安全的身份认证技术,将来能够被广泛地应用于物联网环境。
(2)零知识身份认证技术。
通常的身份认证都要求传输口令或其他能够识别用户身份的信息,而零知识身份认证技术不用传输这些信息,也能够识别用户的身份。
被认证方P掌握某些密钥信息,P设法想让认证方V相信他确实掌握那些信息,但又不想让V也知道那些信息。被认证方P掌握的密钥信息可以是某些长期没有解决的猜想问题的证明(如费马最后的定理、图的三色问题),也可以是缺乏有效算法的难题解法(如大数因式分解等),信息的本质是可以验证的,即可通过具体的步骤来检验它的正确性。
2.5.3 用户身份和权限管理技术
1.统一身份管理及访问控制系统
统一身份管理及访问控制系统是通过构建企业级用户目录管理,实现不同用户群体之间统一认证,将大量分散的信息和系统进行整合和互连,形成整体企业的信息中心和应用中心。该系统使企业员工通过单一的入口安全地访问企业内部全部信息与应用,为员工集中获取企业内部信息提供渠道,为处理企业内部IT系统应用提供统一窗口。
(1)系统架构。
系统采用先进的面向服务的体系架构,基于PKI理论体系,提供身份认证、单点登录、访问授权、策略管理等相关产品,这些产品以服务的形式展现,用户能方便地使用这些服务,形成企业一站式信息服务平台。
在各功能模块的实现和划分上,充分考虑各功能之间的最小耦合性,在对外提供的服务接口设计中,严格按照面向服务思想进行设计,在内部具体实现中,采用CORBA、DCOM、J2EE体系结构,确保各模块的跨平台特性,面向服务的体系架构如图2-2所示。
应用程序使用服务时,通过统一身份管理及访问控制系统提供的服务定位器,配置相关服务接口,各服务之间通过服务代理可以组合成新的服务供服务定位器调用。各服务之间相对独立,任何一个安全功能的调整和增减,不会造成应用程序调用的修改和重复开发,应用程序使用服务的关系如图2-3所示。
CA安全基础设施可以采用自建方式,也可以选择第三方CA,具体包括以下几个主要功能模块。
图2-2 面向服务的体系架构
图2-3 应用程序使用服务的关系
①认证中心(AuthDB)。存储企业用户目录,完成对用户身份、角色等信息的统一管理。
②授权和访问管理系统(AAMS)。用户的授权、角色分配;访问策略的定制和管理;用户授权信息的自动同步;用户访问的实时监控、安全审计。
③身份认证服务(AuthService、AuthAgent)。身份认证前置(AuthAgent)为应用系统提供安全认证服务接口、中转认证和访问请求;身份认证服务(AuthService)完成对用户身份的认证和角色的转换。
④访问控制服务(AccsService、UIDPlugIn)。应用系统插件(UIDPlugIn)从应用系统获取单点登录所需的用户信息;用户单点登录过程中,生成访问业务系统的请求,对敏感信息加密签名。
⑤CA中心及数字证书网上受理系统。用户身份认证和单点登录过程中所需证书的签发;用户身份认证凭证(USB智能密钥)的制作。
(2)身份管理和认证。
为了实现门户及相关系统的统一认证,建设统一的身份管理中心,身份管理中心集中对用户身份进行管理,如图2-4所示。目前存在以下几种身份管理情况。
图2-4 身份管理认证过程
①统一采用密钥棒(CA证书)进行身份管理。
②完全采用“用户名+口令”进行身份管理。
③部分用户采用密钥,部分用户采用“用户名+口令”。
第一种情况,有统一的身份标志,只要授权就能实现各自门户和系统的统一认证。
第二种情况,在本地系统依然采用“用户名+口令”认证,在互访其他系统时,将所有用户绑定到一个或几个特定权限的证书角色上,实现系统之间互访。
第三种情况,可以采用两个登录入口,即“用户名+口令”登录入口和证书登录入口,两个入口不能同时被一个用户使用,即有证书的不能用“用户名+口令”登录认证。在进行统一认证时,有证书的用户在授权后,可以直接进行系统间的访问,没有证书的用户,在通过“用户名+口令”认证后,绑定到特定的角色证书上实现统一认证。
(3)统一身份凭证管理。
统一身份凭证是UID实现SSO的基础,在结构上统一存储,分散管理。身份凭证在UID系统中主要选用“数字证书+用户信息”,“用户名+口令+用户信息”作为身份凭证的补充。当用户业务系统众多时,无论访问哪个系统,都采用统一的认证凭证,用户不需要记住各系统对应的用户名和口令,身份管理逻辑如图2-5所示。
图2-5 身份凭证管理逻辑
身份管理流程如下。
①证书受理采用集中受理模式,所有员工的数字证书通过网上受理中心统一提交到CA中心签发。
②所有员工证书统一存放在CA中心LDAP数据库中。
③建立企业认证体系,由总认证中心和分认证中心组成。
④总认证中心的证书库直接采用网上受理系统的证书库,总认证中心可负责所有员工的统一认证。
⑤分认证中心的证书库采用同步定时分发机制,从总LDAP数据库中获取证书信息。
⑥各业务系统或门户需要认证时,采用就近原则,到离业务系统最近的认证中心进行认证;若认证失败,则可以直接到总认证中心进行认证。
⑦所有认证中心采用负载均衡技术,保证认证效率和速度。
信息资源接入整合各种信息资源,通过标准XML语言将信息资源进行接入和使用。
信息资源接入逻辑如图2-6所示。
图2-6 信息资源接入逻辑
(4)技术原理。
①身份认证。数字证书身份认证系统采用CA数字证书和数字签名等技术进行身份识别,将代表用户身份的数字证书和相应的私钥存储在密码钥匙(USB接口的智能卡)中,私钥不出卡,保证了唯一性和安全性。身份认证技术原理如图2-7所示。认证时,由密码钥匙完成数字签名和加密,敏感信息以密文形式在网络中传输,具有更高的安全性,从而解决了网络环境中的用户身份认证问题。
图2-7 身份认证技术原理
系统简单易用,将数字证书这一“复杂”的工具隐藏在系统后台,使用者不需要了解安全知识就能方便使用;同时,系统支持第三方CA(如CTCA),可为政府、军队和企业提供集成的安全认证解决方案。
②统一用户管理。统一用户管理平台的统一用户管理功能主要分为两部分:一部分是用户信息的导入;另一部分是用户信息的同步。
平台用户信息可以采用手动或自动方式获取,对于少量用户信息的获取,可以采用手工输入的方式,对于大批量的用户信息获取则采用自动方式。批量用户信息导入采用预先定义的接口,从预先选定好的用户信息最全的应用系统或人力资源系统中,或者AD、LDAP中导入用户信息。根据预先定义好的接口,可以实现用户信息字段的自动匹配、用户信息自动分类、用户角色信息匹配、用户权限信息自动分配等功能,便于对用户单点登录的授权和应用系统操作权限授权。
用户信息同步方式可分为两种:以外部信息为主由系统自动同步到各个应用系统的模式和以平台为主自动同步到各个应用系统的模式。以外部信息为主的模式适用于用户已经建立了人力资源或类似系统的情况,用户仍然使用人力资源系统统一管理所有用户信息,但信息的同步由平台自动完成;以平台为主的模式适用于用户的各个应用系统分散管理用户信息的情况,在这种模式下所有的用户信息由平台管理,信息的增、删、改自动同步到各个应用系统中。
③统一权限管理。用户授权的基础是对用户的统一管理,对于在用户信息库中新注册的用户,通过自动授权或手工授权方式,为用户分配角色、对应用系统的访问权限、应用系统操作权限,完成对用户的授权。如果用户在用户信息库中被删除,则其相应的授权信息也将被删除。完整的用户授权流程如下。
a.用户信息统一管理,包括用户的注册、用户信息变更、用户注销。
b.权限管理系统自动获取新增(或注销)用户信息,并根据设置自动分配(或删除)默认权限和用户角色。
c.用户管理员可以基于角色调整用户授权(适用于用户权限批量处理)或直接调整单个用户的授权。
d.授权信息记录到用户属性证书或用户信息库(关系型数据库、LDAP目录服务)中。
e.用户登录到应用系统,由身份认证系统检验用户的权限信息并返回给应用系统,满足应用系统的权限要求可以进行操作,否则拒绝操作。
f.用户的授权信息和操作信息均被记录到日志中,可以形成完整的用户授权表、用户访问统计表。
典型授权管理模型如图2-8所示。
④单点登录。基于数字证书的单点登录技术,使各信息资源和防护系统成为一个有机的整体。通过在各信息资源端安装访问控制代理中间件,与防护系统的认证服务器通信,利用系统提供的安全保障和信息服务共享安全优势。其原理如下。
a.每个信息资源配置一个访问代理,并为不同的代理分配不同的数字证书,用来保证和系统服务之间的安全通信。
b.用户登录中心后,根据用户提供的数字证书确认用户的身份。
c.访问一个具体的信息资源时,系统服务用访问代理对应的数字证书,把用户的身份信息加密后以数字信封的形式传递给相应的信息资源服务器。
d.信息资源服务器在接收到数字信封后,通过访问代理进行解密验证,得到用户身份;根据用户身份进行内部权限的认证。
图2-8 典型授权管理模型
第一,唯一身份凭证。统一身份管理及访问控制系统用户数据独立于各应用系统,对于数字证书的用户来说,用户证书的序列号在平台是唯一的。对于非证书用户来说,平台用户ID(Passport)是唯一的,由其作为平台用户的统一标志,唯一身份凭证示意图如图2-9所示。
在通过平台统一认证后,可以从登录认证结果中获取平台用户证书的序列号或平台用户ID,再由其映射不同应用系统的用户账户,最后用映射后的账户访问相应的应用系统。
当增加一个应用系统时,只需要增加平台用户证书序列号或平台用户ID与该应用系统账户的一个映射关系即可,不会对其他应用系统产生任何影响,从而解决登录认证时不同应用系统之间用户交叉和用户账户不同的问题。单点登录过程均通过安全通道来保证数据传输的安全。
图2-9 唯一身份凭证示意图
第二,B/S应用系统接入。由于B/S结构应用系统用户均采用浏览器登录和访问应用系统,因此采用统一认证门户。在统一认证门户登录认证成功后,再访问具体B/S应用系统。B/S应用系统接入平台的架构如图2-10所示。
图2-10 B/S应用系统接入平台的架构
系统提供两种应用系统接入方式,以快速实现单点登录。一是反向代理方式:实现方式为松耦合。应用系统无须开发、改动。对于不能改动或没有原厂商配合的应用系统,可以使用该方式接入统一用户管理平台。采用反向代理模块和UID的单点登录(SSO)认证服务进行交互验证用户信息,完成应用系统单点登录。二是Plug-in方式:实现方式为紧耦合,采用集成插件的方式与UID的单点登录(SSO)认证服务进行交互验证用户信息,完成应用系统单点登录。紧耦合方式提供多种API,通过简单调用即可实现单点登录。
第三,C/S应用系统接入。对于C/S应用系统的接入,实现方式是用户在登录系统门户后,单击相应的C/S应用系统图标,然后启用Windows的消息机制,将认证的请求发送到C/S应用服务器进行认证。认证通过后,在用户端启用相应的客户端程序。
第四,安全通道。UID提供的安全通道是利用数字签名进行身份认证的,采用数字信封进行信息加密的基于SSL协议的安全通道产品,实现了服务器端和客户端嵌入式的数据安全隔离机制。安全通道示意图如图2-11所示。
图2-11 安全通道
安全通道的主要作用是在两个通信应用程序之间提供私密性和可靠性,这个过程通过3个元素来完成。
一是握手协议:负责协商用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法和认证方式,并使用公钥技术来生成共享密钥。
二是记录协议:用于交换应用数据。应用程序消息被分割成可管理的数据块,同时还可以压缩并产生一个MAC(消息认证代码),然后结果被加密并传输。接收方接收数据并对它解密,校验MAC,解压并重新组合,把结果提供给应用程序协议。
三是警告协议:用于标示在什么时候发生了错误或两个主机之间的会话在什么时候终止。
第五,业务系统访问权限的控制。UID用户是一个大的用户集合,通过系统认证的用户并不一定能访问所有接入UID中心的业务系统。系统用户对业务系统的访问权限通过用户分组和访问控制策略进行控制。例如,按照用户所属企业或部门分组,该组可访问相应企业部门的业务系统;按照用户角色分组,如财务人员分组,可以访问财务相关的业务系统;同时,中心用户与业务系统映射表中设置的用户访问权限标志,可针对单个用户访问某个业务的权限进行停用/启用。
2.OpenID和OAuth
(1)OpenID.
OpenID是一套身份验证系统。与目前流行的网站账号系统(Passport)相比,OpenID具有开放性及分散式的特点。它不基于某一应用网站的注册程序,而且不限于单一网站的登录使用。OpenID账号可以在任何OpenID应用网站使用,从而避免了多次注册、填写身份资料的烦琐过程。简而言之,OpenID就是一套以用户为中心的分散式身份验证系统,用户只需要注册、获取OpenID之后,就可以凭借此OpenID账号在多个网站之间自由登录,而不用每打开一个网站都需要注册账号,原理如图2-12所示。
图2-12 OpenID的使用原理
目前互联网上的账号管理方式有两种:单一账号系统和通行证。一些只提供单一服务的网站采用用户账号管理模式,用户注册后使用此账号可以在其网站上实现所有功能操作。Google、163、微软等提供多套服务的网站采用通行证的账号管理程序。用户在注册一次之后,使用该账号可以在这些网站所属群中自由使用。
OpenID比普通的通行证更扩大化。OpenID不局限于某一个网站或网站群,它可以在任意OpenID应用网站中自由穿梭。假设已经拥有一个在A网站注册获得的OpenID账号,B网站支持OpenID账号登录使用,而且从未登录过。此时,在B网站的相应登录界面输入OpenID账号进行登录,浏览器会自动转向A网站的某个页面进行身份验证。这时只要输入在A网站注册时提供的密码登录A网站,对B网站进行验证管理(永久允许、只允许一次或不允许)后,页面又会自动转到B网站。如果选择允许,就会登录进入B网站。这时用户就可以以OpenID账户身份使用B网站的所有功能操作。
实际的多个OpenID应用网站与OpenID账号的操作会更简单,A操作中实现了身份验证及相应个人资料的选择。也就是说,使用A网站提供的一个OpenID账号实现了B、C、D、E、F网站的登录操作。
在OpenID简易流程中可以看到是多个网站围绕一个网站提供的账号进行活动,在上面的例子中B~F等网站称为OpenID应用网站,是指支持OpenID账号登录使用全部网站功能的网站。而例子中的A网站就是OpenID服务网站,是指提供OpenID账号注册服务的。
OpenID应用网站和服务网站是可以相同的,也就是说,一个网站既可以提供OpenID账号注册,也可以提供OpenID账号使用。
目前OpenID服务网站的增长速度远远超过了应用网站,可以在OpenID Providers页面查看服务网站列表,或者到OpenID服务商和支援网站列表查看挑选出来的OpenID服务网站和应用网站。
(2)OAuth.
OAuth是OpenID的一个补充,但是完全不同的服务。OAuth是一种开放的协议,为桌面程序或基于BS的Web应用提供一种简单的、标准的方式去访问需要用户授权的API服务。OAuth类似于Flickr Auth、Google's AuthSub、Yahoo's BBAuth、Facebook Auth等。OAuth认证授权具有以下特点。
①简单:不管是OAuth服务提供者,还是应用开发者,都很容易理解与使用。
②安全:没有涉及用户密钥等信息,更安全、更灵活。
③开放:任何服务提供商都可以实现OAuth,任何软件开发商都可以使用OAuth。
OAuth协议为用户资源的授权提供了一个安全的、开放的、简易的标准。与以往的授权方式不同的是,OAuth的授权不会使第三方触及用户的账号信息(如用户名与密码),即第三方无须使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAuth是安全的。同时,任何第三方都可以使用OAuth认证服务,任何服务提供商都可以实现自身的OAuth认证服务,因此OAuth是开放的。业界提供了OAuth的多种实现,如PHP、JavaScript、Java、Ruby等各种语言开发包,大大节约了程序员的时间,因此OAuth是简易的。目前互联网很多服务(如Open API)、很多大公司(如Google、Yahoo、Microsoft等)都提供了OAuth认证服务,这些都足以说明OAuth标准逐渐成为开放资源授权的标准。
典型案例:如果一个用户拥有两项服务,一项是图片在线存储服务A,另一项是图片在线打印服务B,那么Oauth的典型需求如图2-13所示。由于服务A与服务B是由两家不同的服务提供商提供的,因此用户在这两家服务提供商的网站上各自注册了两个账号,假设这两个用户名各不相同,密码也各不相同。当用户要使用服务B打印存储在服务A上的图片时,用户该如何处理?方法一:用户可以先将待打印的图片从服务A上下载下来并上传到服务B上打印,这种方法安全但处理比较烦琐,且效率低;方法二:用户将在服务A上注册的用户名与密码提供给服务B,服务B使用用户的账号再去服务A处下载待打印的图片,这种方法效率是提高了,但是安全性大大降低了,服务B可以使用用户的用户名与密码去服务A上查看甚至篡改用户的资源。
图2-13 Oauth的典型需求
很多公司和个人都尝试解决这类问题,包括Google、Yahoo、Microsoft等,这也促使OAuth项目组的产生。OAuth是由Blaine Cook、Chris Messina、Larry Halff及David Recordon共同发起的,目的在于为API访问授权提供一个开放的标准。OAuth规范的1.0版于2007年12月4日发布。
OAuth认证授权仅3个步骤:获取未授权的Request Token、获取用户授权的Request Token、用授权的Request Token换取Access Token。
当应用得到Access Token后,就可以有权访问用户授权的资源了。由此可以看出,这3个步骤就是对应OAuth的3个URL服务地址。上面的3个步骤中,每个步骤分别请求一个URL,在得到上一步的相关信息后再去请求接下来的URL,直到拥有Access Token为止。
用OAuth实现上述典型案例:当服务B(打印服务)要访问用户的服务A(图片服务)时,通过OAuth机制,服务B向服务A请求未经用户授权的Request Token后,服务A将引导用户在服务A的网站上登录,并询问用户是否将图片服务授权给服务B。用户同意后,服务B就可以访问用户在服务A上的图片服务。整个过程服务B没有触及用户在服务A中的账号信息,如图2-14所示。
图2-14 OAuth典型应用
OAuth(开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片、视频、联系人列表等),而无须将用户名和密码提供给第三方应用。
OAuth给用户提供一个令牌,而不是使用用户名和密码来访问存放在特定网站中服务提供方的数据。每一个令牌授权一个特定的网站(如视频编辑网站)在特定的时段(如接下来的两小时)内访问特定的资源(如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问存储在其他服务提供方上的信息,而不需要共享访问许可或服务提供方的所有内容。
在认证和授权的过程中涉及的三方内容如下。
①服务提供方:用户使用服务提供方来存储受保护的资源,如照片、视频、联系人列表等。
②用户:存放在服务提供方的受保护的资源的拥有者。
③客户端:要访问服务提供方资源的第三方应用,通常是网站,如提供照片打印服务的网站;在认证过程之前,客户端要向服务提供方申请客户端标志。
使用OAuth进行认证和授权的过程如下。
①用户访问客户端的网站,想操作用户存放在服务提供方的资源。
②客户端向服务提供方请求一个临时令牌。
③服务提供方验证客户端的身份后,授予一个临时令牌。
④客户端获得临时令牌后,将用户引导至服务提供方的授权页面请求用户授权,在这个过程中将临时令牌和客户端的回调连接发送给服务提供方。
⑤用户在服务提供方的网站上输入用户名和密码,然后授权该客户端访问所请求的资源。
⑥授权成功后,服务提供方引导用户返回客户端的网站。
⑦客户端根据临时令牌从服务提供方那里获取访问令牌。
⑧服务提供方根据临时令牌和用户的授权情况授予客户端访问令牌。
⑨客户端使用获取的访问令牌访问存放在服务提供方上的受保护的资源。
2.5.4 本地计算环境安全防护技术
1.主机监控技术
主机监控技术包括集成登录控制、外设控制、主机防火墙、安全审计等多种安全防护机制和自身安全保护机制。
(1)登录控制机制在操作系统安全登录认证机制上加入了自定义的登录认证功能,以实现更高性能的登录认证功能。同时,采用基于USBKey的硬件令牌存储用户身份证书,USBKey有物理上的防篡改机制,可以有效地保护用户身份证书,防止恶意代码盗取用户身份。
(2)外设控制部分可以对计算机外设接口进行访问控制,提供禁用和可用两种可控制状态,能够防止违规使用外部设备或外挂式存储设备。
(3)主机防火墙既可以基于IP进行网络访问控制,也可以基于接口进行网络访问控制,能够抵御多种网络攻击,为主机接入网络访问网络资源提供了主机侧的安全防护能力。
(4)安全审计能够审计移动存储介质在终端的使用情况、用户登录情况、外设操作使用情况、网络访问行为情况、打印操作情况、操作系统文件共享情况。
2.安全操作系统
操作系统的安全在计算机系统的整体安全中起着至关重要的作用。1985年,美国国防部颁布的可信计算机系统评测标准,提出了安全操作系统设计在安全策略、客体标志、主体标志、审计、保证、连续保护6个方面的安全要求。TCSEC标准(Trusted Computer System Evaluation Criteria)把计算机系统的安全分为A、B、C、D4个等级,从D开始,等级逐渐提高,系统可信度也随之增加。安全操作系统的设计主要以TCSEC为蓝本来进行研究。
3.恶意代码防治技术
恶意代码防治技术主要包括基于特征的扫描技术、校验和技术、恶意代码分析技术和基于沙箱的防治技术。
(1)基于特征的扫描技术源于模式匹配的思想。扫描程序工作之前,必须先建立恶意代码的特征文件,根据特征文件中的特征串,在扫描文件中进行匹配查找。用户通过更新特征文件更新执行扫描的恶意代码防治软件,查找最新版本的恶意代码。
(2)校验和技术主要使用Hash和循环冗余码等检查文件的完整性。未有恶意代码的系统首先会生成检测数据,然后周期性地使用校验和法检测文件的改变情况。校验和法可以检测未知恶意代码对文件的修改。
(3)恶意代码分析技术可以分为静态分析方法和动态分析方法。其中,静态分析方法有反恶意代码软件的检查、字符串分析、脚本分析、静态反汇编分析和反编译分析;动态分析包括文件检测、进程检测、注册表检测、网络活动检测和动态反汇编分析等。静态分析和动态分析是互补的,对恶意代码分析先执行静态分析后再进行动态分析比单独执行任一种更为有效。
(4)基于沙箱(Sandbox)的防治技术是指根据系统中每一个可执行程序的访问资源,以及系统赋予的权限建立应用程序的沙箱,从而限制恶意代码的运行。每个应用程序都运行在自己的且受保护的“沙箱”中,不能影响其他程序的运行。虚拟机就可以看成一种“沙箱”,后文对此还将进行探讨。
4.可信计算技术
为了从网络终端的体系结构入手解决网络安全问题,业界产生了构建可信计算平台的设想。主要思路是在终端的通用计算平台(如PC、服务器和移动设备等)中嵌入一块物理防篡改芯片TPM(Trusted Platform Module,可信平台模块),作为信任根和安全防护的基础,实施信任链、封装存储和远程证明等安全机制,目前已形成了大量的标准规范。可信计算主要包括信任根与信任链、封装存储及远程证明等技术。
信任根是计算平台中加入的可信第三方,是可信计算平台可信的基础。可信计算平台启动时,以一种受保护的方式进行,要求所有的执行代码和配置信息在其被使用或执行前要进行完整性度量。这样一级度量一级,并存储度量结果的信任传递过程,就构成了信任链。
封装存储是指被TPM加密的敏感数据(如密钥)只能被TPM解密,同时在加密时可将平台的配置状态信息“封装”起来,规定解密时必须具备相符的平台配置状态(PCR值)时才能解密。
远程证明是指可信计算平台向质询的一方证明平台的真实可信,包括身份认证和报告平台完整性状态两方面的内容。
2.5.5 网络安全管理技术
网络安全管理技术的安全事件关联分析包括基于规则的安全事件关联分析技术和统计关联分析技术。基于规则的关联是指将攻击的特征(一系列按一定顺序发生的安全事件)预定义在规则库中,当检测到的一系列安全事件与规则匹配时,触发规则。基于规则的关联主要用于发现已知的攻击,具体包括限定关联、顺序关联和阈值关联。
统计关联使用某种算法对发生的安全事件进行计算,获得定义某些统计量(如网络安全态势或事件威胁等级)的数值。通过一段时间的学习得出这些数值的正常范围。然后计算正在发生的安全事件对这些数值的影响,一旦偏离了正常范围,则判定发生了异常行为。
简单的安全联动过程包括事件检测、联动双方通信和联动响应3个步骤。首先事件检测设备(如IDS)与联动响应设备(如防火墙)通过联动协议建立起通信信道。当事件检测设备检测到安全事件时,联动双方首先要建立起稳定而可靠的连接,通过认证确认对方身份后,事件检测设备将安全事件消息通过联动协议加密发送给联动响应设备,后者发送一个消息应答,并通过解析安全事件消息进行联动响应。联动结束后,联动响应设备与事件检测设备断开连接。因此,一次简单联动的过程除了检测安全事件和联动响应,还包括联动的双方通过联动协议进行通信的过程,包括建立连接、数据传输、断开连接3个阶段。
1.物联网安全管理面临的问题
物联网规模庞大、系统复杂,其中包括各种网络设备、服务器、工作站、业务系统等。安全领域也逐步发展成复杂和多样的子领域,如访问控制、入侵检测、身份认证等。这些安全子领域通常在各个业务系统中独立建立,随着大规模安全设施的部署,安全管理成本不断上升,同时这些安全基础设施产品及其产生的信息管理成为日益突出的问题。物联网安全管理的问题主要有以下几个方面。
(1)海量事件。企业中存在的各种IT设备提供大量的安全信息,特别是安全系统,如安全事件管理系统和漏洞扫描系统等。这些数量庞大的信息致使管理员疲于应付,容易忽略一些重要但是数量较少的告警。海量事件是现代企业安全管理和审计面临的主要挑战之一。
(2)孤立的安全信息。相对独立的IT设备产生相对孤立的安全信息。企业缺乏智能的关联分析方法来分析多个安全信息之间的联系,从而揭示安全信息的本质。例如,什么样的安全事件是真正的安全事件,它是否真正影响到业务系统的运行等。
(3)响应缺乏保障。安全问题和隐患被挖掘出来,但是缺少一个良好的机制去保证相应的安全措施得到良好执行。至今困扰许多企业的安全问题之一的弱口令就是响应缺乏保障的结果。
(4)知识“孤岛”。许多前沿的安全技术往往只有企业内部少数人员了解,他们缺少将这些知识共享以提高企业整体的安全水平的途径。目前安全领域越来越庞大,分支也越来越多,各方面的专家缺少一个沟通的平台来保证这些知识的不断积累和发布。
(5)安全策略缺乏管理。随着安全知识水平的提高,企业在自身发展过程中往往制定了大量的安全制度和规定,但是数量的庞大并不能代表安全策略的完善,反而安全策略版本混乱、内容重复和片面、关键制度缺失等问题依然不同程度地在企业中存在。
(6)习惯冲突。以往的运维工作都是基于“资产+网络”的运维,但是安全却是基于安全事件的运维。企业每出现一个安全问题就需要进行一次大范围的维护,如出现病毒问题就会使安全运维工作不同于以往的运维工作习惯。
随着物联网技术的飞速发展,网络安全逐渐成为影响网络进一步发展的关键问题。为提升用户业务平台系统的安全性及网络安全管理水平,增强竞争力,物联网安全管理从单一的安全产品管理发展到安全事件管理,最后发展到安全管理系统,即作为一个系统工程需要进行周密的规划设计。
2.物联网安全管理需求
安全管理系统的建设需求主要表现在以下几个方面。
(1)通过安全管理系统的建设,可以完善物联网的安全管理组织机构、安全管理规章制度,指导安全建设和安全维护工作,建立一套有效的物联网的安全预警和响应机制。
(2)能够提供有效的安全管理手段,能充分提高以前安全系统功能组件(如入侵检测、反病毒等)投资的效率,降低相应的人工成本,改善安全体系的效果。
(3)通过对网络上不同安全基础设施产品的统一管理,解决安全产品的“孤岛”问题,建立统一的安全策略,集中管理,有效地降低复杂性,提高工作效率,进一步降低系统建设维护成本,降低经济成本和人工成本。
(4)优化工作流程促进规程的执行,减轻管理人员的工作负担,增强管理人员的控制力度。
(5)实时动态监控网络能够有效地保障业务系统安全、稳定运行,及时发现隐患,缩短响应时间和处理时间,有效地降低安全灾害所带来的损失,保障骨干网络的可用性及可控性,同时也可以提高客户服务水平,间接地提高客户满意度。
(6)通过对安全信息的深度挖掘和信息关联,提取出真正有价值的信息,一方面便于快速分析原因,及时采取措施;另一方面为管理人员提供分析决策的数据支持,提高管理水平。
(7)通过信息化手段对资源进行有效的信息管理,有助于提高企业的资产管理水平,从而提高企业的经济效益和企业的市场竞争力等。
3.物联网安全管理系统建设目标
安全管理系统的建设是一项长期的工作,综合考虑实际工作的需求、当前的技术条件及相关产品的成熟度,安全管理系统的建设工作应按照分阶段、有重点建设的方式来规划。根据各阶段具体的安全需求,确定各阶段工作的重点,集中力量攻克重点建设目标,以保证阶段性目标的实现。建设的同时需要注意完善相关的管理制度和流程,保证安全管理系统与企业业务的有机融合和有效使用。对于IP网安全管理系统的建设,建议分近期目标、中期目标和长期目标3个阶段来实现。
(1)近期目标。以较为成熟的相关技术为基础,根据当前最迫切的安全管理工作需求制定,包括安全风险管理、安全策略管理、安全响应管理的基本需求。
(2)中期目标。在近期目标基础上提高内部各系统之间的集成度和可用度,扩大管理范围,增强各功能模块,初步实现与其他信息系统的交互和安全管理的自动化流程。
(3)长期目标。实现安全管理系统的集成化、自动化、智能化,保证信息、知识充分的挖掘和共享,为高水平管理工作和高效率的安全响应工作提供良好的技术平台。
4.物联网安全管理框架
根据物联网网络结构与安全威胁分层分析,得出物联网安全管理框架如图2-15所示。它分为应用安全、网络安全、感知安全和安全管理4个层次。前3个层次为具体的安全措施,安全管理则覆盖以上3个层次,对所有安全设备进行统一管理和控制。
图2-15 物联网安全管理框架
具体来说,安全管理包括设备管理、拓扑管理、事件管理、策略管理和应急管理。设备管理是指对安全设备的统一在线或离线管理,并实现设备间的联动联防。拓扑管理是指对安全设备的拓扑结构、工作状态和连接关系进行管理。事件管理是指对安全设备上报的安全事件进行统一格式处理、过滤和排序等操作。策略管理是指灵活设置安全设备的策略。应急管理是指发生重大安全事件时安全设备和管理人员之间的应急联动。
安全管理能够对全网安全态势进行统一监控,在统一的界面下完成对所有安全设备统一管理,实时反映全网的安全状况,能够对产生的安全态势数据进行汇聚、过滤、标准化、优先级排序和关联分析处理,提高安全事件的应急响应处置能力,同时还能实现各类安全设备的联防联动,有效防范复杂攻击行为。
安全管理系统是实现试验信息系统整体安全防护的核心,促使各种安全机制和设备间的联动和优势互补,避免出现安全设备各自独立、无法协同防御问题,通过建立“保护—检测—响应—恢复”的动态安全防御体系,可实现对全网安全态势进行统一监控,实时反映全网的安全状况,对安全设备进行统一的管理,实现全网安全事件的上报、归并,帮助安全运维人员准确判断安全事件,制定全局安全策略,实现对安全事件应急响应处理、各类安全设备的联防联动。
安全管理系统架构如图2-16所示。
图2-16 安全管理系统架构
综合网络安全管理技术在有线及无线通信环境下,对各种安全防护设备进行有效管理和配置,并在攻击等情况下协同各安全防护设备采取相应的措施,同时向用户展示全网安全态势。综合网络安全管理技术体制如图2-17所示。
图2-17 综合网络安全管理技术体制
安全管理技术采用两级管理体制。一级安全管理设备主要负责制定全网的安全防护管理规划,集中管理用户的安全参数,可为全网安全防护设备规划安全域和相应的安全策略。同时,直接管理二级安全管理设备,并通过二级安全管理在线监控全网安全防护设备、收集安全状态。
二级安全管理设备主要用途是针对子网的安全设备进行配置和管理,负责分配子网安全设备的参数,并负责子网内用户漫游、动态重组时的安全管理;汇集该子网内用户安全信息;接受上级管理并支持对下级的管理。
5.基于SOA的安全管理系统设计
物联网的网络结构是一个有线和无线结合、多网融合的网络,为了满足物联网互联互通的要求,并结合物联网物物相连的特点,采用基于SOA的架构来实现安全管理系统。面向服务的架构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。Web服务(Web Services)是一套开放的技术标准,也是一套被设计用来实现网络上的计算机能够彼此互操作的软件体系。这套体系标准需要很多技术(如SOAP和WSDL等)来协同工作。
基于SOA的安全管理系统架构如图2-18所示。
图2-18 基于SOA的安全管理系统架构
管理平台分为管理客户端、后台服务两大部分,管理客户端和后台服务通过SOAP描述的XML文件进行通信。其中,管理客户端采用前述的Eclipse RCP结构的应用程序框架实现,由部署在RCP框架中的6个插件构成。后台服务由Web服务实现,通过WSDL描述的接口进行发布。其中,Hibernate作为一个服务负责程序中的持久层,读/写MySQL数据库,供其他服务调用。服务之间保持了标准的调用接口,实现了极其松散的耦合性。例如,本数据库的Hibernate和报表服务,在其他应用中也可以调用。
管理客户端采用Eclipse开发RCP应用,按照需求分为7个模块:设备管理、操作员、策略中心、模块管理中心、系统设置、用户、审计。各个模块都采用插件式独立开发,每个模块都有对应的plugin.xml来部署该插件。
SOAP负责通信和多项附加协议所保证的安全等各个方面。SOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。SOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。SOAP利用XML技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。
SOAP确立了Web服务中的通信框架,确立了服务提供方和服务请求者的物理交互方式,则WSDL就起到了SOAP中关键的服务契约作用。WSDL(Web Services Description Language)是一种用来描述Web服务和说明如何与Web服务通信的XML语言。Web服务描述语言(WSDL)基于XML语言,用于描述Web服务及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。开发工具既能根据Web服务生成WSDL文档,又能导入WSDL文档,生成调用相应Web服务的代码。采用Power Designer作为数据库建模工具,通过建模工具创建数据库代码。
2.5.6 基于多网络融合的网络安全接入技术
由于物联网的应用越来越广泛,人们对接入网络技术的需求也越来越强烈,对于物联网产业来说,接入网络技术有着广阔的发展前景,因此它已经成为当前物联网的核心研究技术,也是物联网应用和物联网产业发展的热点问题。接入网络技术最终要解决的是如何将成千上万的物联网终端快捷、高效、安全地融入物联网应用业务体系,这关系到物联网终端用户所能得到的物联网服务的类型、服务质量、资费等切身利益问题,因此也是物联网未来建设中需要解决的一个重要问题。
物联网以终端感知网络为触角,以运行在大型服务器上的程序为大脑,实现对客观世界的有效感知及有力控制。其中,连接终端感知网络与服务器的桥梁便是各类网络接入技术,包括GSM、TD-SCDMA等蜂窝网络与WLAN、WPAN等专用无线网络,以及Internet等各种IP网络。物联网接入技术主要用于实现物联网信息的双向传递和控制,重点在于适应物物通信需求的无线接入网和核心网的网络改造和优化,以及满足低功耗、低速率等物物通信特点的网络层通信和组网技术。
基于多网融合的网络安全接入技术研究内容包括以下几方面。
1.IPv6安全接入与应用
构成现今互联网技术基石的IPv4,在面临地址资源枯竭的困境下,显然已无法为地球上存在的万事万物都分配一个IP地址,而这又恰恰是物联网实现的关键。作为下一代网络协议,IPv6凭借着丰富的地址资源及支持动态路由机制等优势,能够满足物联网对通信网络在地址、网络自组织及扩展性等诸多方面的要求。在IP基础协议栈的设计方面,IPv6将IPSec协议嵌入基础的协议栈中,通信的两端可以启用IPSec加密通信的信息和通信的过程。网络中的黑客将不能采用中间人攻击的方法对通信过程进行破坏或劫持。同时,黑客即使截取了节点的通信数据包,也会因为无法解码而不能窃取通信节点的信息。从整体来看,使用IPv6不仅能满足物联网的地址需求,还能满足物联网对节点移动性、节点冗余、基于流的服务质量保障的需求,很有希望成为物联网应用的基础网络安全技术。
然而,在物联网中应用IPv6,并不能简单地“拿来就用”,而是需要进行一次适配,对IPv6协议栈和路由机制进行相应的精简,以满足对网络低功耗、低存储容量和低传输速率的要求。由于IPv6协议栈过于庞大复杂,并不匹配物联网中互连对象,因此,虽然IPv6可为每个终端设备分配一个独立的IP地址,但承载网络需要和外网之间进行一次转换,起到IP地址压缩和简化翻译的功能。目前,相关标准化组织已开始积极推动精简IPv6协议栈的工作。例如,IETF已成立了LowPAN和RoLL两个工作组进行相关技术标准的研究工作。与传统方式相比,IPv6能支持更多的节点组网,但对传感器节点功耗、存储、处理器能力要求更高,因此成本也更高。另外,IPv6协议的流标签位于IPv6包头,容易被伪造,易产生服务盗用的安全问题。因此,在IPv6中流标签的应用需要开发相应的认证加密机制。同时,为了避免流标签使用过程中发生冲突,还要增加源节点的流标签使用控制的机制,保证在流标签使用过程中不会被误用。
2.满足多网融合的安全接入网关
多网融合环境下的物联网安全接入需要一套比较完整的系统架构,这种架构可以是一种泛在网多层组织架构。底层是传感器网络,通过终端安全接入设备或物联网网关接入承载网络。物联网的接入方式是多种多样的,通过网关设备将多种接入手段整合起来,统一接入到电信网络的关键设备,网关可满足局部区域短距离通信的接入需求,实现与公共网络的连接,同时完成转发、控制、信令交换和编解码等功能,而终端管理、安全认证等功能保证了物联网业务的质量和安全。物联网网关的安全接入设计有以下三大功能。
(1)网关可以把协议转换,同时可以实现移动通信网和互联网之间的信息转换。
(2)接入网关可以提供基础的管理服务,对终端设备提供身份认证、访问控制等安全管控服务。
(3)通过统一的安全接入网关,将各种网络进行互连整合,可以借助安全接入网关平台迅速开展物联网业务的安全应用。
总而言之,安全接入网关设计技术需要研究统一建设标准、规范的物联网接入、融合的管理平台,充分利用新一代宽带无线网络,建立全面的物联网网络安全接入平台,提供覆盖广泛、接入安全、高速便捷、统一协议栈的分布网络接入设备,满足大规模物联网终端快捷、高效、安全的融入物联网应用的业务体系。
2.5.7 通信网络环境安全防护技术
物联网的安全特征体现了感知信息的多样性、网络环境的多样性和应用需求的多样性,呈现出网络的规模和数据的处理量大,决策控制复杂,给安全研究提出了新的挑战。依靠互联网和移动通信网络为主要承载网络的物联网具有相对完整的安全保护能力,但是由于物联网中节点数量庞大,而且以集群方式存在,因此当感染蠕虫病毒或遭遇僵尸网络攻击时,由于大量中毒机器同时发送数据造成网络拥塞,因此容易爆发拒绝服务攻击。此外,现有通信网络的安全架构都是从人的通信角度设计的,并不适用于物联网终端的通信。使用现有安全机制会割裂物联网机器间的逻辑关系。
物联网通信网络环境安全防护技术体系结构如图2-19所示,需要从3个层次考虑。其中,在应用环境层次需要考虑的安全防护技术主要有可信机制、身份认证、访问控制、安全审计等;在网络环境层次需要考虑的安全防护技术有无线网安全、虚拟专网、传输安全、防火墙、入侵检测、安全审计等;信息安全基础核心技术主要是物联网通信网络环境的支撑性技术,包括密码技术、高速密码芯片、PKI/WPKI基础设施、网络安全管控平台等。
图2-19 物联网通信网络环境安全防护技术体系结构
2.5.8 密码技术
1.密码学基础
密码技术是以研究数据保密为目的,对存储或传输的信息采取秘密保护措施以防止信息被第三者窃取的技术。密码技术是信息安全的核心技术,已经渗透到大部分安全产品中,并正向芯片化方向发展。
密码技术是一门古老而深奥的学科,对一般人来说是陌生的,因为长期以来,它只在很小的范围内,如军事、外交、情报等部门使用。信息的秘密性要求被存储或传输的数据信息是经过伪装的,即使数据被非法的第三方窃取或窃听都无法破译其中的内容。要达到这样的目的,必须采用密码技术。
密码技术的基本原理及基本思想是在加密密钥Ke的控制下,采用加密函数(加密算法)E将要保护的数据(明文M)加密成密文C,以便使第三方无法理解它的真实含义。此加密过程通常记为C=E(M,Ke)。而解密则是在解密密钥Kd的控制下,通过解密函数(解密算法)D对密文C进行反变换后,将其还原成明文M,此过程记为M=D(C,Kd),密码原理框图如图2-20所示。
图2-20 密码原理框图
密码学研究包含两部分内容:加密算法的设计和研究及密码分析和破译。窃密者与报文接收方的区别在于:不知道解密密钥,无法轻易将密文还原为明文。
加密技术的密码体制分为对称密钥体制和非对称密钥体制两种。相应地,对数据加密的技术也分为两类,即对称加密(私人密钥加密)和非对称加密(公开密钥加密)。密钥保护也是防止攻击的重点。
密码技术仍然是物联网安全的核心技术,能够解决物联网中数据产生、存储、传输等安全问题。物联网安全问题的解决措施都需要以如下所述的密码技术为支撑来解决。
(1)低功耗、低成本的安全RFID标签。以密码算法为基础,研究对抗物理攻击、能量分析和暴力破解的安全RFID标签,同时选用或设计全新密码算法,降低运算复杂度,采用异步电路和绝热电路等芯片设计手段严格控制芯片功耗和成本。
(2)无线传感器网络安全。基于密码算法,研究针对无线传感器节点带宽和能量有限、无人值守、应用耦合紧密等特点的节点自身安全和路由协议安全技术。利用节点入网身份和健康状态认证及路由协议的自组织等手段,确保整个无线传感器网络安全、可靠地运行。
(3)安全管理。研究适合RFID标签和传感器节点数量大、分散性高、可控性差等特点的密钥管理技术,研究降低密钥管理复杂度的新算法、新手段,降低物联网安全系统的安装和运维成本。
(4)智能处理安全。分析物联网智能处理中间件安全漏洞和应对措施,利用基于密码算法的安全协议,提出物联网智能处理平台中间件的安全解决方案。
(5)安全芯片。研究适合物联网RFID、传感器和网络传输、智能分析的安全芯片技术,结合新的密码算法,解决传统密码算法在RFID和传感器中功耗较高的问题。
2.物联网应用的密码技术体制
在物联网中将会运用到基于对称密钥和非对称密钥的两种密码体制下的所有相关安全技术,如SSL VPN、PKI等。但由于物联网自身的特点,如在物联网中的部分终端不具备与计算机同样强大的计算处理能力,因此在选择密码算法时,必须考虑选择占用系统资源少或轻型的密码算法,如基于椭圆曲线的密码算法。由于应用有保护用户隐私的需求,因此必须采用一些新的加密技术(如全同态加密等)来实现对数据的加密。
(1)轻量级密码算法。轻量级密码算法是随着物联网和普适计算的迅速发展,RFID标签、智能卡、无线传感器等资源受限的嵌入式设备的广泛应用,而被提出的一类软硬件实现所需资源少、功耗低的密码算法。“轻量级”并不意味着密码算法安全性的缺失,而是表明密码算法是在安全、成本和性能之间进行权衡的设计。尽管AES算法等传统分组密码算法已在众多领域得到了成功应用,但在资源受限的环境中,这些算法并不是最佳选择。解决安全强度与资源消耗矛盾的一般方法是使用轻量级密码技术。例如,智能卡,其芯片面积不能太大,必须考虑密码算法硬件实现时所需的门电路数目(GE数),甚至为了进一步缩小芯片面积,要将算法设计成(近似)对称结构,保证加解密流程一致或相似;某些应用对信息处理的时效性要求非常高,需要密码算法的加解密速度非常快,能够在同一时钟周期内完成的指令越多越好。近几年,国内外提出的轻量级密码算法可以分为轻量级分组密码、轻量级流密码、轻量级公钥密码和轻量级Hash函数,其中以轻量级分组密码算法居多。密码研究相关领域的学者已经开始对轻量级密码算法进行大量研究,这些研究主要集中在轻量级密码算法的设计、安全性分析及实现性能评估等方面。
国际标准化组织正在制定轻量级密码的相关标准,而CLEFIA密码算法和PRESENT密码算法已经在2012年成为轻量级密码算法的ISO标准。KLEIN和ITUbee是近两年提出的轻量级分组密码算法,它们与大多数面向硬件实现而设计的轻量级密码不同的一点是采用了面向软件实现的设计思想,这使得它们不仅适用于资源受限设备,而且很适合在无线传感器上采用灵活且便于维护的软件实现方式。KLEIN是基于SPN结构设计的面向软件实现的一个轻量级分组密码算法族。KLEIN的分组长度为固定的64位,算法密钥有64位、80位、96位3种长度可选,依据密钥长度记为KLEIN-64/80/96,对应的迭代轮数分别为12/16/20轮。在分组密码的设计中,分组长度和密钥长度是影响密码算法安全性和性能的两个重要因素。考虑到在资源受限环境下数据流的吞吐率不会很高,而密钥寄存器和中间结果对内存空间有很大影响,这意味着数据加密和认证不需要太大的分组长度和密钥长度。从安全性角度考虑,64位的密钥可能无法提供足够的安全强度。设计者建议可将KLEIN-64用于构建单向散列函数或消息认证码,KLEIN-80和KLEIN-96用于数据加密。由于在资源受限环境应用中80位的密钥长度是比较合适的选择,因此本书主要研究80位密钥长度的KLEIN算法,即KLEIN-80。
ITUbee是基于Feistel结构设计且面向软件实现的轻量级分组密码算法,ITUbee的分组长度和密钥长度均为80位。为了减少算法运行时的功耗,ITUbee没有密钥扩展。一般情况下,没有密钥扩展的密码算法大多是基于SPN结构的,如LED和PRINCE。就目前所知,唯一基于Feistel结构且有简单的密钥扩展的密码算法是GOST。然而,基于Feistel结构且没有密钥扩展或只有简单的密钥扩展的密码算法容易像GOST一样遭受相关密钥攻击。为了避免此缺陷,ITUbee的轮函数在设计时采用了新的方法,轮密钥在每轮的两个非线性操作之间被注入。ITUbee的轮函数共迭代执行20轮,且在顶层和底层都有密钥白话层。
近几年出现的典型轻量级密码算法通常具有以下典型特征。
①Feistel结构和SPN结构是轻量级密码算法中较为常用的结构。由于学术界对Feistel结构和SPN结构的安全性已经研究很久了,因此在设计密码算法时,一般优先考虑这两种结构,但考虑到硬件实现原因具体应用时会有所不同。例如,LBlock算法整体采用了Feistel结构,但采用了与Twofish算法类似的变换,即把Feistel结构中直接输出的那一支数据进行循环移位后再输出。其原因是:尽管LBlock算法的轮函数为SP结构,但P置换为字节,因此,循环移位和P置换一起可以起到更好的扩散作用。虽然加入这个循环移位后解密算法与加密算法不一致,但仍十分相似,且额外的硬件代价很小。TWIS算法整体采用了四分支的广义Feistel结构,但在轮函数的设计上与LBlock算法采用的策略类似,其扩散性仍由循环移位和字节置换的复合来实现;PRINCE算法整体采用了SPN结构,但为了使算法加解密类似,设计者精心设计了算法的轮函数,引进了α反射特性的概念,只要将加密密钥k换成k⊕α即可保证加解密流程一致;PRINTCIPHER算法整体也是SPN结构,但算法在采用动态S盒技术的同时,引进了动态P置换技术,其目的是增加算法的安全强度。另外,为了硬件实现时能够节约资源,很多算法整体上被设计成具有一定的对称性,而为了提高安全性,设计者通常会引进加常数的方法来打破这种对称性,这一步或放在轮函数的设计中,或放在密钥扩展算法的设计中。例如,每一轮PRINTCIPHER算法低位字节都会异或上不同的常数,在PRESENT算法和LBlock算法的密钥扩展算法中,密钥字节的某些位置会与相应轮的计数进行异或。
②轻量级密码算法的非线性组件采用小规模的S盒。轻量级分组密码算法的S盒不再是8×8,比较流行的规模是4×4,如PRESENT算法和LBlock算法,也有的算法采用3×3的S盒,如PRINTCIPHER算法,这主要是因为小规模S盒的实现代价相对要小得多。在传统密码算法S盒的选取标准中,往往会避免S盒不动点的存在,但在轻量级分组密码的设计中,这条标准已被弱化,如PRESENT算法的S盒没有不动点,但PRINTCIPHER算法的S盒具有两个不动点。另外,SIMON算法没有采用S盒,其非线性变换通过模加、异或和循环移位的混合运算来实现。从单轮上讲,采用新的非线性设计理念较传统算法(如AES)的非线性略有下降,但是同时在很大程度上也降低了实现代价。
③算法的线性组件通常采用比特置换、字节置换和异或等简单运算。例如,PRESENT算法和PRINTCIPHER算法均采用了位层面上的置换来实现算法的扩散效果。LBlock算法的扩散效果是通过改进Feistel结构,由字节置换和循环移位来实现;PRINCE算法采用了和AES算法类似的SP网络结构,但扩散层引进了二元矩阵使其达到较好的扩散效果和实现性能。部分算法,如LED算法和KLEIN算法的扩散层采用了有限域上的矩阵乘法,但是具体参数的选取都考虑了算法的实现性能。例如,LED算法的线性扩散层,可通过迭代类似线性反馈移位寄存器的方式来实现。
④算法的密钥扩展方案相对简单,部分算法甚至直接采用种子密钥作为轮密钥。例如,PRESENT算法和LBlock算法,连续两轮甚至更多轮的轮密钥之间有很多位是相同的。Piccolo算法的轮密钥则通过置换种子密钥后再异或常数得到;PRINCE算法的种子密钥分两部分,其中,一部分经过一个线性扩展后用于白化明文和密文,另一部分密钥直接用作轮密钥。又如,PRINTCIPHER算法和LED算法没有密钥扩展算法,直接将种子密钥用作轮密钥。尽管相关密钥攻击可能会从理论上对算法构成安全威胁,但在实际使用时,密钥一般通过硬件方式固定,从而否定了这些攻击的实施可能。
(2)全同态加密技术。全同态加密也称为隐私同态,是一项全新的加密技术,它能够使系统在无须读取敏感数据的情况下处理这些数据,从而可以保护用户的隐私信息不被泄露。
记加密操作为E,明文为m,加密得e,即e=E(m),m=E'(e)。已知针对明文有操作f,针对E可构造F,使得F(e)=E[f(m)],这样E就是一个针对f的同态加密算法。在使用同态加密技术的情况下,可以把本地加密得到的e交给应用系统,在应用系统进行操作F,拿回F(e)后,在本地系统进行解密,就得到了f(m)。这样敏感信息m不会在本地系统以外的其他网络和系统中出现,从而确保其不会被第三方知道。例如,远程服务提供商收到客户发来的加密医疗记录数据,借助全同态加密技术,提供商可以像以往一样处理数据却不必破解密码。处理结果以加密的方式发回给客户,客户在自己的系统上进行解密读取。
但是由于全同态加密算法非常难以构造,因此至今还没有出现成熟的应用,但在这方面的研究一直没有中断过,在2009年9月,IBM研究员Craig Gentry声明找到了一种全同态加密算法,从而在全同态加密技术的应用方面迈出了一大步。但目前该技术还处于研究的初级阶段,需要不断的实验和优化。
(3)轻型加密技术。轻型加密(也称为选择加密或部分加密),是一种应用于多媒体数据的加密技术。它将加密与多媒体编/解码过程融合一体,不加密全部的多媒体数据,而是加密一定比例的、对多媒体解码影响大的、带有丰富信息的数据,从而减小了系统的处理负荷。目前轻型加密技术涵盖视频和音频数据的加密,如基于视频压缩模型的加密、MPGE4 IPMP和JPEG2000等国际标准所采纳的轻型加密技术。轻型加密技术降低了加密对系统的软/硬件资源的要求,特别适合于物联网环境中终端计算处理能力较弱的情况,但该项技术要投入使用,还需要在保密强度、密钥管理等方面进行进一步的研究。
(4)安全多方计算。对于安全多方计算问题,如果存在安全可信第三方(Trusted Third Party,TTP),则安全多方计算协议要解决的问题就可以迎刃而解:每个参与者把自己的输入x1,x2,…,xn通过安全信道交给可信第三方,由可信第三方来计算Z=f(x1,x2,…,xn),再将Z公布给所有参与者。但是现实中很难找到这样的可信第三方。安全多方计算理论最早出现于19世纪80年代,Yao为了解决两个百万富翁在不泄露自己财富的情况下判断出谁最富有的问题,提出了安全两方计算模型。随后被扩展为安全多方计算的模型。
物联网中终端设备的身份认证和网络数据完整性是不可忽视的安全问题,物联网中的每个实体只有认证了身份的真实性,才能证明是合法的用户,数据消息才能传送给实体,才能进行进一步的通信。同时认证方案还必须考虑物联网的低计算能力、低存储能力的特点。互联网中的传统认证方法通常需要消耗较大的计算成本和计算能量,所以不适用于资源受限的物联网。目前关于物联网中的认证协议可以分为两个类别:一种是有证书的认证;另一种是无证书的认证。在有证书的认证协议中,物联网中的每个实体都必须有自己的数字签名。
Kothmayr等在2013年根据数据包传输层安全性协议(Datagram Transport Layer Security,DTLS)提出了物联网中的端到端的认证握手协议。由于DTLS协议使用基于RSA的非对称加密方案,因此会消耗较高的计算成本和计算能量,同时,由于该方案是基于公钥基础设施(Public Key Infrastructure,PKI)的,因此还存在公钥证书的分发、撤销、管理和维护的开销。所以,为了避免上述问题,也有一些人提出了基于椭圆曲线的认证协议。相比基于RSA的协议,基于椭圆曲线的算法更能吸引人们的研究,成为更有意义的研究方向,因为基于椭圆曲线的算法可以减少计算成本,并且在相同的安全水平下具有更少的密钥长度。
2014年,Porambage等提出了物联网中基于证书的认证协议,在物联网中,有一个中心实体即基站,负责处理和分析传感器节点所收集到的信息,而分布式的传感器节点负责感知、收集信息、交换信息、传递信息。所以,对于端到端的通信需要合适的认证来确保可靠的连接。有国外学者提出的两个阶段的认证协议可以允许传感器节点和终端用户进行身份的互相认证,并且可以对通信的连接进行初始化操作。另外,该协议具有较低的计算成本和较高的安全性能,所以适用于物联网中的认证。对基于无证书的认证协议是基于密码学操作的,如异或运算、哈希函数、对称加密等。2014年,Turkanovi等提出了一个用户认证和异构无线传感器网络中的密钥分配的方案。该方案设计了一个轻量级的密钥协商协议,可以允许一个终端用户和一个传感器节点进行会话密钥的协商。该方案可以提供用户、传感器节点、基站之间的互相认证。另外,该方案仅使用了简单的哈希函数和异或运算,所以对于资源受限的物联网环境比较适合。
2015年,Khemissa和Tandjaoui提出了一个轻量级的关于物联网在电子医疗的应用中认证的协议。他们首先指出了安全问题是物联网应用发展的主要障碍,在这些障碍中,对于通信连接的不同实体的身份认证和交换信息的机密性是主要需要考虑的问题。为了让基站能够安全得到传感器节点收集的有关医疗健康的数据,他们提出的方案可以做到传感器节点和基站之间的互相认证。另外,该方案有较低的计算成本和计算能量的消耗。
物联网传感器节点负责收集、传输、处理通过感知物理世界所得到的消息,但是由于传感器节点通常布置在无人值守的环境中,因此信息非常容易被窃取或篡改。另外,传感器节点还具有资源受限的特点,所以不能采用计算成本高、能量消耗大的算法来保护数据信息,但是收集的数据对用户通常都是敏感的、重要的,所以有必要保证数据的安全。认证的方法可以防止非法的用户对数据进行访问,而访问控制可以确保用户只能得到与自己有关的信息,其他用户的信息不能被访问。
2014年,国外学者提出了一个适用于无线传感器网络的访问控制方案,他们首先集中于简单而高效的互相认证方法的研究及基于椭圆曲线的密钥分配问题的实现,利用椭圆曲线可以降低存储和计算成本。同时,他们采用基于属性的访问控制方法来实现对数据信息的访问控制,基于属性的访问控制方法是一个更灵活、扩展性更高的方法,可以用抽象的身份、角色、信息资源作为实体的属性。另外,该基于属性的访问控制方法既可以支持在复杂系统中的非常精细的访问控制,又可以支持大规模用户的动态访问。
2013年,Gusmeroli等提出了采用基于性能的方法来实现物联网中的访问控制,该方法可以允许企业团体甚至个人管理他们自己的访问控制过程。该方法具有权利转让、性能撤销等特点,权利转让支持一个实体将权利转让给另一个实体,这个转让可以在每个阶段都能被控制。合法的实体也可以进行性能的撤销。对于物联网中数据的机密性、完整性、认证性、不可否认性等的实现就需要加密和签名等密码工具,加密能够实现消息的机密性和完整性,而签名能够实现消息的不可否认性和认证性。为了实现加密同时又降低计算成本,有的方案采用协商会话密钥的方法,然后利用会话密钥采用对称加密的方法来实现消息的机密性;有的研究则使用签密体制来同时实现对消息的加密和签名。签密体制是一个高性能的密码体制,只需在一个逻辑步骤内就能同时实现公钥加密和签名,所以比对消息先签名再加密的方法会明显降低计算成本。由于签密体制能够以低成本同时实现消息的机密性、完整性、认证性、不可否认性,因此签密体制非常适用于资源受限的环境。
2001年,Zhou等提出了一种基于椭圆曲线的短签密体制来解决物联网中有关数据的机密性、完整性、认证性等问题,相比于其他典型的基于离散对数的RSA和基于椭圆曲线的签密体制,该体制更能适应于物联网中资源受限的环境,并且由于计算和通信的成本较低,因此该体制能够更好地满足物联网中有关安全协议的要求。但是,有的签密方案不一定能够在物联网中进行应用。为了减少无线传感器网络的负担,一个比较好的解决方案就是使用基于身份的密码体制(Identity-Based Cryptography,IBC)。一些使用基于身份的密码体制去解决无线传感器网络中的安全问题的方案相继出现,相比于传统的PKI环境,IBC主要的优点为不存在公钥证书的管理和维护问题。基于身份的签密体制中发送方和接收方均使用相同的环境。为了设计一个安全的方案来保证数据从传感器节点到服务器的安全传输,一个可能的方案是无线传感器部分使用基于身份的环境,而服务器部分使用基于公钥基础设施的环境。
如果还希望保护传感器节点的隐私,则可以把签密和环签名结合起来组成一个环签密体制。环签密体制可以允许一个发送者以一组用户的名义匿名地对一个消息进行签密,接收者知道密文来自发送组中的其中一个成员,但是不能确定发送者具体是谁,所以可以保护发送者的隐私。2003年,Huang等提出了基于公钥密码学的密钥生成协议,在传感器节点和用户之间生成会话密钥,该协议主要是利用传感器节点和用户的性能不同的特点,双方交换被认证机构认证的证书,再从证书中互相提取对方的公钥,但是私钥只有在双方完成协议之后才能产生,这样敌手就能重放一个合法的证书,再和传感器节点重复执行协议,就会导致对用户的拒绝服务,并且在传感器节点发现重放的证书之前会浪费大量的资源进行计算和通信。之后,Tian等又发现了该协议存在的另一个安全问题,一个用户在和传感器节点运行协议之后,就会知道这个节点的长期的私钥。2007年,Kim等提出了用双线性对设计的基于身份的密钥生成的协议,由于提出的协议是基于身份的,因此比Huang提出的协议能减少通信成本,但是由于存在双线性对的运算,便增加了计算的成本,同时存在用户认证延迟的问题,也会同样引起拒绝服务的问题。之后,国内学者提出了另一种基于对运算的密码体制,相比于Kim的协议,相同的通信成本下,缩小了基于对的点乘运算,降低了运算成本,但是也没有提供对用户的认证。在2011年,Yasmin等提出了一种高效的和安全的基于身份的会话密钥生成协议,并且可以对用户的身份进行认证,该协议使用用户的身份标识符作为公钥,私钥由一个可信的第三方私钥生成中心产生,所以取消了公钥证书,降低了公钥证书的存储和对证书进行合法性验证的成本,并且该协议中没有涉及双线性对的运算,因此,效率更高,更能适应于传感器节点资源受限的环境。2012年,Philip等提出了在物联网中的一种认证协议和访问控制方法。该文章采用了基于椭圆曲线密码体制的认证协议,注册机构可以产生密钥对。访问控制算法根据当前的带宽情况来决定一个新的连接请求是否被接受,通过安全性分析,这种方法能抵抗窃听攻击、中间人攻击、密钥控制攻击和重放攻击。2013年,Shim等提出了一种有效的基于身份的广播签名认证方案,该方案能产生较短的广播认证消息,从而降低了通信的成本。
2.5.9 密钥管理技术
1.对称与非对称密钥管理
对于是否产生公私密钥,密钥管理方案可分为对称与非对称密钥管理两类。对称密钥管理是在一个加密网络中通信双方都相同的密钥及算法来对要加密的信息进行加密,其特点是:加密简单,密钥的长度很短,系统的开销非常小,通常被人们认为是非常适合物联网这种网络资源受限的情形,所以它在物联网中的应用非常成熟和广泛。非对称密钥管理是指传感器的节点拥有公钥和私钥。公钥与私钥是不同的两种密钥,公钥是一个大家都知道的参数,用来加密;私钥是只有用户知道的参数,用于解密。这种密钥管理方法在计算上是安全的,但是对网络资源的开销非常大,在计算、存储、通信等能力缺乏的物联网感知层中,开始被认为不适用,但随着研究的深入,一些特殊的非对称加密算法可以得到很好的应用。安全性方面,非对称密码远远高于对称密码。
2.分布式密钥管理
物联网的多源异构性,使密钥管理显得更为困难,特别是基于大规模网络应用为主的物联网业务系统,密钥管理是制约物联网信息机密性的主要瓶颈。密码应用系统是物联网安全的基础,是实现感知信息隐私保护的手段之一。
对于互联网,由于不存在计算资源的限制,因此非对称和对称密钥系统都适用。互联网面临的安全问题主要来源于其最初的开放式管理模式的设计,是一种没有严格管理中心的网络。移动通信网是一种相对集中式管理的网络,而物联网节点由于计算资源的限制,对密钥管理提出了更多的要求,因此,物联网的密钥管理面临两个主要问题:一是如何构建一个贯穿多个网络的统一密钥管理系统,并与物联网的网络安全体系结构相适应;二是如何解决物联网网络传输业务的密钥管理,如密钥的产生、分发、存储、更新和销毁等。
物联网的密钥管理可以采用集中式管理方式和分布式管理方式两种模式。集中式管理方式通过在核心网络侧构建统一的密钥管理中心来负责整个物联网的密钥管理,物联网应用节点接入核心承载网络时,通过与密钥管理中心进行交互,实现对网络中各节点的密钥管理;分布式管理方式通过在物联网承载网络中构建不同层次、不同区域、不同网络的区域密钥管理中心,形成层次式密钥管理网络结构,由区域密钥管理中心负责接入设备的密钥管理,顶层管理密钥中心负责区域密钥管理中心的密钥管理。
物联网的多源异构性使得分布式密钥管理方式将是未来密钥管理技术的研究重点。物联网的密钥管理中心的设计在很大程度上受到物联网终端自身特征的限制,因此在物联网的分布式密钥管理设计需求上与互联网和移动通信网络及其他传统IP网络有所不同,特别要充分考虑物联网设备的限制和网络组网与路由的特征。物联网分布式密钥管理技术的研究内容主要包括:分布式密钥管理系统网络架构;高安全性的密钥产生、分发、更新和销毁机制;密码应用安全防护机制;物联网传输监控机制等。
3.静态与动态密钥管理
在静态密钥管理中,网络中的每个节点被预分配了一些密钥,然后在后续的过程中节点间通过一种协商机制来生成静态密钥,密钥在网络运行期间不予更新和撤销,这样密钥无须频繁更新,然而带来的问题也是严峻的:节点容易被捕获而且会导致整个网络安全性极大地降低。在动态密钥管理中,网络会周期性地实行密钥的分配、协商和撤销,这样的好处是可以使节点密钥处于动态更新状态,敌手即使截获了节点也无法获取实时密钥,动态与静态相比较,其复杂度会加大,一定程度上加大了网络的负担。
4.随机与确定密钥管理
随机密钥管理方式是通过随机获取的,使得节点能够灵活部署,并且密钥分配简单,但是带来的问题是存储需求加大,密钥分配具有盲目性,这种方式的密钥连通概率在0和1之间。在确定密钥管理方式中,密钥是确定获得的,其密钥以1的概率成功确定。确定密钥管理方式相对来说实现比较简单,可以快速实现网络中相关密钥对的生成,成功的概率高,网络的存储需求小,但是部署的灵活性不如随机密钥管理,密钥协商的计算及通信开销较大。
5.物联网中典型的密钥管理技术
(1)E-G方案。
首个随机密钥预分配方案是由Eschenauer和Gligor提出的,通常被称为E-G方案。这个方案在初始阶段会生成一个密钥池及相应的记录,节点会在这个密钥池中选择一些密钥出来,这样会随机地出现两个节点拿到了相同的密钥对。而在密钥对发现过程中,节点先进行相邻节点的发现,如果在相邻节点找到了密钥对就直接建立关系;如果没有找到,则可以通过选择密钥路径,间接地建立节点间的密钥对。这种方案的优点是:与单一共享密钥方案相比,安全性更高,与每对节点都存在共享密钥的方案相比,存储开销降低了。相关研究资料表明,在10000个节点的物联网无线传感器网络中,为了保证所有节点全部连通,每个节点只需在100000的密钥池中随机选择250个密钥即可。
缺点在于这种方案是一个概率模型,只具有一定的连通概率,如果某一个节点或一组节点,与它们临近的节点之间没有共享密钥,则不能保证网络一定是安全连通的,还存在密钥环中密钥利用率低下及不同节点间建立了同样的共享密钥的问题。同时,这种方案比较适合节点众多、密度很大的网络。
(2)q-composite随机密钥预分配方案。
E-G方案因相邻节点间只存在一个共用的密钥而产生了一系列的隐患,为了完善这个问题,chan提出了q-composite方案。这个方案的改进之处是在节点间需达到q个共用的密钥才能够建立密钥对。在这种情况下,随着密钥对的增加,敌手的攻击难度也会提高,付出的代价就是对存储的要求也会不断提高。这种方案的关键点在于q值的确定。
这种方案的优点是:敌手破坏通信链路的难度会随着共享密钥数的增大而不断增大,与普通的随机密钥预分配方案相比,这种方案安全性较高。同时,如果网络中的受损节点数比较少,这种方案的抗毁性会比普通的随机密钥预分配方案要好。但如果受损节点数比较多,那么该方案整体效果将不明显。
这种方案的缺点在于:由于复杂度提高了,因此网络的连通性降低了,同时由于节点数没有受到限制,因此比较容易受到节点复制攻击。如果受损节点数比较多,那么该方案整体效果将不明显。
(3)密钥矩阵密钥预分配方案。
密钥矩阵密钥预分配方案是Blom等提出来的。这种方案在节点部署前,首先由网络中的部署服务器生成(λ+1)×N的线性无关矩阵G,以及(λ+1)×(λ+1)的对称矩阵D,其中矩阵G是对外公开的,矩阵D是保密的。计算可以得出N×(λ+1)矩阵A=(D·G)T,如果K=A·G,则拥有一对密钥Ki j=Kji。这种方案的优点是:让随机两个节点都可以共用密钥;缺点是对于计算资源的消耗是非常大的,并且,其私有矩阵一旦被破解,整个网络都会被破解,将会造成严重的后果。
对于上述缺点,Du提出了基于图论的预分配思想。图论的使用方案具有了层次化。在存储空间相同的前提下,这种方案比随机密钥预分配方案要更好,因为此方案增强了节点抵抗捕获攻击的能力。实验结果表明,当选择合适时,密钥矩阵被破解的概率会相应减小,同时也使网络连通抗毁性提高。但带来的问题就是网络中的连通性有所降低,存在着许多孤立的节点,而且对于资源受限的网络来说,计算资源消耗过多。
(4)多项式密钥预分配方案。
Blundo等提出使用多项式来解决一对秘密信息分配问题的方案。这种方案使用的是一种特殊的多项式,定义为对称二元多项式Q(x,y),节点Ki拥有Q(x,y)和Q(i,y),其他节点的计算方法是Si,j=Q(x,y)=Sj,i。这种方案其实是Blom方案中基于多项式的特例,所以也具有Blom方案的安全性质。
在此基础上,Liu提出了相关改进的密钥预分配方案。
①使用随机的子集合的密钥预分配方案。该方案中,在网络节点部署前先生成一个多项式池,它在有限域中具有随机的特征,而且其中具有多个对应的多项式。节点首先会在中间选取一些多项式出来,存储在节点内部。一对节点通过对多项式及节点的识别获得双方之间的共用密钥从而建立通信密钥。这种方案使网络的延展更加方便,但网络中节点的识别率会减小。
②使用网格结构的密钥预分配方案。在这种方案中,网格中的点可以得出一个坐标,可以根据这个坐标得出一个编号,每一个不同的编号对应一个多项式。网络部署后,相邻节点之间可以交换它们的坐标点,从而可以知道对方的密钥,形成一对。
(5)层次密钥生成方案。
有人认为不同的消息类型应具有不同的安全需求,单一的密钥无法满足不同消息的多种需求,所以需要多种密钥机制并存。以这种思想为起点,Zhu提出了一种多层次的密钥建立方案。在这种方案中提出了多种层次的密钥管理,是具有多重类型的策略设计方案。其中,私钥是由网络中事先设置的最主要的用来加密的密钥和一个方程函数最终产生的,这样生成的方式主要是为了加强网络中各个节点之间的数据交流,对传输过程中的数据进行加密处理,保护数据的安全性。在这个策略中不同的密钥生成的方式也不一样,其中对密钥是由实现生成的主要密钥和哈希通过一定的算法生成的,而簇密钥是由网络点通过不同的方式随意生成的,其作用是为了对需要本地传送的数据进行加密处理。
这种方案的优点是:对多种通信方式都支持,同时单个节点的损毁对其他节点的安全性不造成影响;不足之处是:对网络资源的开销太大,对节点的存储空间和计算能力要求较高,如果主密钥被破解,那么整个网络将会存在重大的安全隐患。
(6)动态密钥管理方案。
国外的一些学者首先提出了一种利用组合原理的密钥管理方案EBS。在这种方案中,首先会设置一个独特的集合,称为EBS。它是由不同的小类型集合构成的,这个集合与节点数、密钥数及密钥更新的信息数有关。这种方案保证任意两个节点之间能存在共享密钥,让节点通信效率比较高,同时对硬件设备的需求比价低,不需要很大的消费。但是容易被破解,只需要得到比较少的数据就能够将密钥破解。Younis等以上述方案为基础提出了一种改进的基于地理位置信息的SHELL方案。在这种方案中,网络中不同的节点根据所处的区域不同,以及网络中分配的空间区域的不同创建出许多的簇。在这些簇中都会分配那些通信能力比较强、数据处理速度快的作为簇头节点,而簇头就会安排下面的子节点根据所处的不同区域,为其他节点生成不同的密钥。生成了密钥之后,这些节点就会在网络中找寻具有一样的密钥对。这种方法导致如果簇头被攻击,整个簇的安全都会受到威胁。Eltoweissy等又在上述方案的基础上重新设计了一种针对小区间的组合密钥管理方案,这种方案主要分为3个层次,包括控制节点、簇头和普通节点。在这个方案中使用了比第一种方案多一级的对密钥进行处理的方式,这样就能够保证在簇头被破坏之后,重要信息也不会更多地被敌方获取。
2.5.10 分布式安全管控技术
物联网业务的网络安全支撑平台有着不同的安全策略,如分布式密钥管理、安全防护、防火墙、应用访问控制、授权管理等,这些安全支撑平台要为上层服务管理和大规模行业应用建立起一个高效、可信、可管、可控的物联网应用系统,而大规模、多平台、多业务、多通道的网络特性,对物联网的网络安全管控提出了新的挑战。
从目前的物联网应用来看,都是各个行业自己建设系统,多数情况下将运营商网络视为单纯的数据管道。这样做的缺点是:缺乏对平台的管理和维护,缺乏对业务数据的监控和管理,缺少对终端维护服务的监管,以及对网络流量、业务优先级等缺少一个控制手段。由于缺乏对终端设备的有效管控手段,因此缺乏对终端设备工作状态、安全态势的有效管理机制。因此,如何建立有效的多网融合的分布式安全管控架构,建立一个跨越多网的统一网络安全管控模型,形成有效的分布式安全管控系统是物联网安全的重要研究方向之一。
分布式网络管理技术是近几年发展起来的以面向对象为基础的支持分布式应用的软件技术,它实现了异构环境下对象的可互操作性,有效地实现了系统集成。分布式对象技术采用面向对象设计思想来实现网络通信,支持面向对象的多层多级结构模型,可以在不同区域、不同机器的管理节点或管理对象之间相互传递信息,共同协作实现系统功能。从发展前景来看,采用分布式网络管理技术来对物联网终端设备及网络进行安全管控的发展趋势已经非常明显。
在分布式网络管理体系架构中会有多个平等的管理节点,系统按照一定的区域和管理业务功能定义每个管理节点。这种体系架构可以是一种能够反映网络连接关系的结构,也可以是一种反映等级管理关系的结构,甚至可以是一种反映分布应用的结构。分布式网络管理体系架构中各个区域管理节点之间通过专用的安全通信中间件进行数据传输。分布式网络管理体系架构易于规模的扩展,由于它使用了管理域的概念对全网进行分割,因此,只要通过增加管理节点的数目和重新定义管理域便可以很方便地适应网络规模的动态变化,弥补传统网络管理系统的不足,充分体现分布式环境下的区域自治、区域间协作等特点,对于大规模物联网应用下的终端设备及网络进行全面管理有明显的优势。物联网分布式安全管控技术的主要内容包括分布式终端设备安全管控的组织体系结构、分布式网络管控系统数据同步与数据共享机制、分布式网络管控系统终端访问响应与服务器集群技术、适应于分布式网络环境下的安全管控业务设计技术、分布式网络环境下基于数字证书的终端鉴权认证技术和分布式网络管控系统的网络与信息安全技术等关键技术。
2.5.11 信息完整性保护技术
在传统网络中采用数字签名和数字水印等技术对信息进行完整性保护,在物联网环境中,仍然会运用到这些技术。
1.数字签名技术
数字签名是附加在一段信息上的一组数据,这组数据基于对信息进行的密码变换,能够被接收者用来确认信息的来源及其完整性,从而防止数据被篡改和伪造。公钥密码体制和私钥密码体制都可以获得数字签名,目前主要的数字签名技术都是基于公钥密码体制(PKI)的,常用的数字签名算法包括RSA、ElGamal、Guillou-Quisquarter、ECC等。基于对特殊应用的需求,研究人员又提出了盲签名、代理签名、群签名、门限签名、多重签名等多种数字签名方案,其中的盲签名、群签名等方案都可以用于物联网中的用户隐私保护。
在盲签名中,签名者不能获取所签署消息的具体内容,消息拥有者先将消息盲化,然后让签名者对盲化后的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。在这个过程中,签名者不知道他所签署消息的具体内容,也无法知道这是他哪次签署的。盲签名技术能够广泛地应用于电子商务、电子投票等活动中,具有良好的应用前景,但目前大多数盲签名方案研究尚处于起步阶段,如群盲签名、利用广义ElGamal型签名等。如何设计高效的盲签名方案,从而构建安全、实用的盲签名的应用将是一个重要的研究方向。
2.数字水印技术
数字水印技术将与多媒体内容相关或不相关的一些标志信息嵌入到图像、音频、视频等多媒体载体中,在不影响原内容使用价值的前提下,可以通过这些隐藏信息确认内容的创建者、购买者或鉴别多媒体内容是否真实完整。数字水印具有不可感知性、鲁棒性、盲检测性、确定性等特点。典型的算法包括空域算法、变换域算法、压缩域算法、生理模型算法等,其中变换域数字水印技术是当前数字水印技术的主流。目前,主要的数字水印研究还是在图像水印方面,而且大都是理论上的研究,研究重点包括水印检测差错率估计与快速检测算法,以及包含人眼视觉系统、人耳听觉系统特性利用在内的水印系统模型、水印算法安全性论证等方面。近年来,我国在数字水印领域的研究也从跟踪国外技术逐步转向自主研究,许多大学和研究所纷纷致力于水印技术的研究,但该技术还处于起步阶段,还有很多不完善的地方,特别是在该技术的产业化发展方面。随着我国物联网的大力建设,会涉及大量多媒体完整性保护和知识产权保护等方面的需求,相反,也会进一步推动水印技术的不断发展。
2.5.12 访问控制技术
访问控制可以限制用户对应用中关键资源的访问,防止非法用户进入系统及合法用户对系统资源的非法使用。在传统的访问控制中,一般采用自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)技术,随着分布式应用环境的出现,又发展出了基于属性的访问控制(ABBC)、基于任务的访问控制(TBAC)、基于对象的访问控制(OBAC)等多种访问控制技术。
1.基于角色的访问控制
基于角色访问控制模型(RBAC)中,权限和角色相关,角色是实现访问控制策略的基本语义实体。用户(User)被当作相应角色(Role)的成员而获得角色的权限(Permission)。
基于角色的访问控制的核心思想是将权限同角色关联起来,而用户的授权则通过赋予相应的角色来完成,用户所能访问的权限就由该用户所拥有的所有角色的权限集合的并集决定。角色之间可以有继承、限制等逻辑关系,并通过这些关系影响用户和权限的实际对应。
整个访问控制过程分为两个部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离,角色可以看成是一个表达访问控制策略的语义结构,它可以表示承担特定工作的资格。
2.基于属性的访问控制
面向服务的体系结构(Service-Oriented Architecture,SOA)和网格环境的出现打破了传统的封闭式的信息系统,使得平台独立的系统之间以松耦合的接口实现互连。在这种环境下,要求能够基于访问的上下文建立访问控制策略,处理主体和客体的异构性和变化性。传统的基于用户角色的访问控制模型已不适用于这样的环境。基于属性的访问控制不直接在主体与客体之间定义授权,而是利用它们关联的属性作为授权决策的基础,利用属性表达式描述访问策略。它能够根据相关实体属性的动态变化,适时更新访问控制决策,从而提供一种更细粒度、更加灵活的访问控制方法。
3.基于任务的访问控制
基于任务的访问控制(TBAC)是一种以任务为中心的,并采用动态授权的主动安全模型。在授予用户访问权限时,不仅依赖于主体、客体,还依赖于主体当前执行的任务、任务的状态。当任务处于活动状态时,主体就拥有访问权限;一旦任务被挂起,主体拥有的访问权限就被冻结;如果任务恢复执行,那么主体将重新拥有访问权限;如果任务处于终止状态,那么主体拥有的权限就会被撤销。TBAC从任务的角度,对权限进行动态管理,适合分布式计算环境和多点访问控制的信息处理控制,但这种技术的模型比较复杂。
4.基于对象的访问控制
基于对象的访问控制将访问控制列表与受控对象相关联,并将访问控制选项设计成为用户、组或角色及其对应权限的集合;同时允许策略和规则进行重用、继承和派生操作。这对于信息量大、信息更新变化频繁的应用系统非常有用,可以减轻由于信息资源的派生、演化和重组带来的分配、设定角色权限等的工作量。
5.物联网防火墙
(1)包过滤技术。包过滤技术又分为静态包过滤和动态包过滤。
静态包过滤运行在网络层,根据IP包的源地址、目的地址、应用协议、源接口号、目的接口号来决定是否放行一个包。其优点是:对网络性能基本上没有影响,成本很低,路由器与一般的操作系统都支持。缺点是:工作在网络层,只检查IP和TCP的包头;不检查包的数据,提供的安全性不高;缺乏状态信息,IP易被假冒和欺骗;规则很好写,但很难写正确,规则测试困难,以及保护的等级低。
动态包过滤是静态包过滤技术的发展和演化,它与静态包过滤技术的不同点在于:动态包过滤防火墙知道一个新的连接和一个已经建立的连接的不同点,而静态包过滤技术对此一无所知。对于已经建立的连接,动态包过滤防火墙将状态信息写进常驻内存的状态表,后来的包的信息与状态表中的信息进行比较,该动作是在操作系统的内核中完成的。因此,动态包过滤增加了很多的安全性,其速度和效率都较高,成本低,但仍具有与静态包过滤技术相同的缺点。
(2)电路网关。电路网关工作在会话层。电路网关在执行包过滤功能的基础上,增加一个握手再证实及建立连接的序列号的合法性检查的过程。同时,电路网关还要对客户端进行认证,使其安全性有所提高。认证程序决定用户是否是可信的,一旦认证通过,客户端便发起TCP握手标志,并确保相关的序列号是正确的、连贯的,这样该会话才是合法的。一旦会话有效,便开始执行包过滤规则的检查。电路网关对网络性能的影响不是很大,中断了网络连接,其安全性要比包过滤高。
(3)应用网关。应用网关截获所有进和出的包,运行代理机制,通过网关来复制和转发信息,其功能像一个代理服务器,防止任何直接连接出现。应用网关的代理是与具体应用相关的,每一种应用需要一个具体的代理,代理检查包的所有数据,包括包头和数据,以及工作在OSI的第七层。由于应用协议规定了所有的规程,因此较为容易设计过滤规则。应用代理要比包过滤更容易配置和管理。通过检查完整的包,应用网关是目前最安全的防火墙。
然而,应用网关由于与具体应用相关,因此支持的应用总是有限的,而且性能低下也是妨碍应用网关推广的一个重要因素。
(4)状态检测包过滤。状态检测综合了很多动态包过滤、电路网关和应用网关的功能。状态检测包过滤有一个最基本的功能,即检查所有开放系统互联(Open System Interconnect,OSI)七层的信息,但主要工作在网络层,而且主要采用动态包过滤的工作模式。
状态检测包过滤也能像电路网关那样工作,决定在一个会话中的包是否是正常的。状态检测也能作为一个最小化的应用网关,对某些内容进行检查,但也与应用网关相同,一旦采用这些功能,防火墙的性能也是直线下降的。
从很大程度上来说,状态检测防火墙的成功,不完全是一个技术上的成功,而是一个市场概念的成功。状态检测对很多技术进行了简化,然后进行组合。状态检测包过滤并没有克服技术上的局限性。
(5)切换代理。切换代理是动态包过滤和电路网关的一种混合型防火墙。切换代理首先作为一个电路代理来执行RFC(Internet标准)规定的三次握手和认证要求,然后切换到动态包过滤模式。因此,开始时,切换代理工作在网络的会话层,在认证完成并建立连接之后,转到网络层。因此,切换代理又称为自适应防火墙,在安全性和效率之间取得了一定程度的平衡。
切换代理比传统的电路网关对网络性能的影响小,三次握手检查机制降低了IP假冒和欺骗的可能性,但是切换代理并没有中断网络连接,因此安全性比电路网关更低,另外,切换代理防火墙的规则也不易设计。
6.物联网跨域网闸
物理隔离是指在完全断开网络物理连接的基础上,实现合法信息的共享,隔离的目的不在于断开,而在于更安全地实现信息的受控共享。实施物理隔离技术的安全设备通常称为物理隔离网闸,安置在两个不同安全等级的网络之间,并使用数据“摆渡”的方式实现两个网络之间的信息交换。“摆渡”意味着物理隔离网闸在任意时刻只能与一个网络建立非TCP/IP的数据连接,即当它与外网相连时,它与内网的连接必须是断开的,反之亦然。内、外网在同一时刻永不连接。
2.5.13 隐私保护技术
物联网中将承载大量涉及人们日常生活的隐私信息(如位置信息、健康状况等),如果不能解决用户隐私信息的保护问题,很多物联网应用将难以大规模的商业化。当前,隐私保护领域的研究工作主要集中于如何设计隐私保护原则和算法,更好地达到安全性和易用性之间的平衡。
隐私保护技术大体可以分为基于数据失真、基于数据加密和基于限制发布3类技术。作为新兴的研究热点,隐私保护技术不论在理论研究还是在实际应用方面,都具有非常重要的价值。在国内,对隐私保护技术的研究也受到学术界的关注与重视,国内已有多个高校课题组开展了相关的研究工作。国内关于隐私保护技术的研究目前主要集中于基于数据失真或数据加密技术方面的研究,如基于隐私保护分类挖掘算法、关联规则挖掘、分布式数据的隐私保持协同过滤推荐、网格访问控制等。
1.基于数据失真的技术
基于数据失真的技术是使敏感数据失真,但同时保持某些数据或数据属性不变的方法。例如,采用添加噪声、交换等技术对原始数据进行扰动处理,但要求保证处理后的数据仍然可以保持某些统计方面的性质。当前,基于数据失真的隐私保护技术包括随机化、阻塞、交换、凝聚等。
2.基于数据加密的技术
基于数据加密的技术采用加密技术在数据挖掘过程中隐藏敏感数据的方法。多用于分布式应用环境中,如安全多方计算(Secure Multiparty Computation,SMC)。
安全多方计算最早是由Andrew C.Yao在1982年通过“姚式百万富翁问题”提出的,现在成为信息安全领域的一个重要研究方向。安全多方计算是指在一个互不信任的多用户网络中,各用户能够通过网络来协同完成可靠地计算任务,同时又能保持各自数据的安全性。这样就能够解决一组互不信任的参与方之间保护隐私的协同计算问题,确保输入的独立性,又保证计算的正确性,同时不泄露各输入值给参与计算的其他成员。
在多方安全计算中,n个成员P1,P2,…,Pn分别持有密钥的输入X1,X2,…,Xn,然后计算函数值f(X1,X2,…,Xn)。在这个过程中,每个成员Pi仅知道自己的输入数据Xi,而最后的计算结果会返回给每个成员。
当前,关于SMC的主要研究工作集中于降低计算开销、优化分布式计算协议及以SMC为工具解决问题等。
3.基于限制发布的技术
限制发布即有选择地发布原始数据、不发布或发布精度较低的敏感数据,以实现隐私保护。当前此类技术的研究集中于“数据匿名化”,即在隐私披露风险和数据精度间进行折中,有选择地发布敏感数据及可能披露敏感数据的信息,但保证对敏感数据及隐私的披露风险在可允许范围内。数据匿名化研究主要集中在两个方面:一方面是研究设计更好的匿名化原则,使遵循此原则发布的数据既能很好地保护隐私,又具有较大的利用价值;另一方面是针对特定匿名化原则设计更“高效”的匿名化算法。随着数据匿名化研究的逐渐深入,如何实现匿名化技术的实际应用,成为当前研究者关注的焦点。例如,如何采用匿名化技术,实现对数据库的安全查询,以保证敏感信息无泄露等。
2.5.14 入侵检测技术
由于在物联网中完全依靠密码体制不能抵御所有攻击,因此常采用入侵检测技术作为信息安全的第二道防线。入侵检测技术是一种检测网络中违反安全策略行为的技术,能及时发现并报告系统中未授权或异常的现象。按照参与检测节点是否主动发送消息分为被动监听检测和主动监听检测。被动监听检测主要是通过监听网络流量的方法展开,而主动监听检测是指检测节点通过发送探测包来反馈或接收其他节点发来的消息,然后通过对这些消息进行一定的分析来检测。
1.误用检测技术
误用检测技术也称为基于知识的检测技术或模式匹配检测技术。它是假设所有的网络攻击行为和方法都具有一定的模式或特征,如果把以往发现的所有网络攻击的特征总结出来并建立一个入侵规则库,那么IDS(入侵检测系统)可以将当前捕获到的网络行为特征与入侵规则库中的特征信息进行比较,如果匹配,则当前行为就被认定为入侵行为。这个比较过程可以很简单(如通过字符串匹配以寻找一个简单的条目或指令),也可以很复杂(如利用正规的数学表达式来表达安全状态的变化)。
2.异常检测技术
异常检测技术也称为基于行为的检测技术,是指根据用户的行为和系统资源的使用状况来判断是否存在网络攻击。异常检测技术首先假设网络攻击行为是异常的,区别于所有的正常行为。如果能够为用户和系统的所有正常行为总结活动规律并建立行为模型,那么入侵检测系统可以将当前捕获到的网络行为与行为模型相对比,如果入侵行为偏离了正常的行为轨迹,就可以被检测出来。
异常检测技术先定义一组系统正常活动的阈值,如CPU利用率、内存利用率、文件校验和等,然后将系统运行时的数值与所定义的“正常”情况比较,得出是否有被攻击的迹象。这种检测方式的核心在于如何分析系统运行情况。
根据数据来源的不同,可以把入侵检测系统分为主机型和网络型两类。
(1)主机型入侵检测。这类入侵检测系统一般称为主机入侵检测系统(Host Intrusion Detection System,HIDS)。它往往以系统日志、应用程序日志等作为数据源,当然也可以通过其他手段(如监督系统调用)从所在的主机收集信息进行分析。主机入侵检测系统一般保护的是所在的系统。主机入侵检测系统的优点是:对分析“可能的攻击行为”非常有用,误报率低。缺点是:安装了入侵检测系统后会降低应用系统的效率,同时会带来一些额外的安全问题,如安装了主机入侵检测系统后,将本来不允许安全管理员有权力访问的服务器变成可以访问了。另外,它依赖于系统的日志功能,若系统没有配置日志功能,则必须重新配置,这将会给运行中的系统带来不可预见的性能影响。主机入侵检测系统只能检测到自身的主机,不能监视到网络上的情况。如果全面部署主机入侵检测系统的代价较大,企业中很难用主机入侵检测系统保护所有主机,只能选择部分主机保护。那些未安装主机入侵检测系统的机器将成为保护的盲点,入侵者可以利用这些机器达到攻击目标。
(2)网络型入侵检测。这类入侵检测系统一般称为网络入侵检测系统(Network Intrusion Detection System,NIDS)。它的数据源则是网络上的数据包。一般情况下,将网卡设置成混杂模式(promise mode),监听所有本网段内的数据包并进行判断,担负着保护整个网段的任务。
基于网络的入侵检测系统具有以下明显的优点。①隐蔽性好。通常单独配置一台机器专门用作网络入侵检测探测器,不运行其他的应用程序,不提供网络服务,因此可以只将网卡设为混杂模式,而不设置IP地址,因而在网络上不被其他主机所见,不容易遭受来自网络上的攻击。②预先制止。在网络边缘上布置网络IDS的探测器,能够在攻击者还未接入网络时就被发现并制止。③能检测出HIDS所不能检测到的攻击。Ping of Death通过发送过长(大于65535)的IP包使得目标系统崩溃,因此驻留在该崩溃主机上的HIDS也将停止工作。而由于NIDS所监控的包不是发给它所驻留的主机,因此能够检测出这类攻击。④较少的探测器。由于使用一个探测器就可以保护一个共享总线的网段,因此不需要很多的探测器。相反地,如果基于主机,则在每个主机上都需要一个代理,这样花费就昂贵,而且难以管理。⑤攻击者不易转移证据。网络IDS使用正在发生的网络通信数据包进行实时检测,所以攻击者无法转移证据。而许多黑客都熟知日志文件记录问题,掌握了通过修改这些文件来掩盖作案痕迹的方法,从而躲避主机IDS的检测。正因为这些特点,目前大部分入侵检测系统都是基于网络的实现方式。
2.5.15 病毒检测技术
目前主流的防病毒软件大都采用基于特征值扫描的技术,但这种技术不能检测出尚未被病毒特征库收录的病毒,而且如果病毒被加密也不能被及时地检测出来。因此,病毒防护技术需要从传统的、被动的特征码扫描技术及校验和技术向智能型、主动型的虚拟机技术、启发式扫描技术等方向发展。
1.虚拟机杀毒
随着病毒技术的发展,压缩和加密技术逐渐成熟起来,从而使很多病毒的特征不再容易被提取。虚拟机杀毒技术能够创造一个虚拟运行环境,将病毒在虚拟环境中激活,查看它的执行情况。由于加密的病毒在执行时最终还是要解密的,因此可以在其解密之后再通过特征值查毒法对其进行查杀。但虚拟机技术在应用时面临的一个最大的难题就是如何解决资源占用问题。
2.启发式扫描
新病毒不断出现,传统的特征值查毒法完全不可能查出新出现的病毒。启发式扫描技术是一种主动防御式的病毒防护技术,可分为静态式启发和动态式启发。一个病毒总存在其与普通程序不同的地方,如它会格式化硬盘、重定位、改回文件时间、修改文件大小、能够传染等,通过在各个层面进行病毒属性的确定和加权,就能发现新的病毒。
3.病毒免疫
病毒免疫技术来源于生物免疫技术,它的设计目标是不依赖于病毒库的更新而让计算机具有对所有病毒的抵抗能力。普通防毒软件的最大缺点是总要等到病毒出现后才能制定出清除它的办法,并且还要用户及时升级到新的病毒库。这就让病毒有更多的机会去蔓延传播,而病毒免疫则完全打破这种思路,它可以让计算机具有自然抵抗新病毒的能力,当有新病毒感染计算机系统时不用升级病毒库而同样可以侦测出它。
2.5.16 漏洞挖掘技术
漏洞(Vulnerability)是在物联网的硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统,以及损害信息系统安全性(包括可靠性、可用性、保密性、完整性、可控性、抗抵赖性)。与bug等不同的是:漏洞可以视为安全性逻辑缺陷,通常情况下,这种缺陷并不影响软件的正常功能和使用,但是如果有攻击者成功利用它,这个缺陷就可能导致信息系统软件去执行攻击者指定的恶意代码;而bug是功能性逻辑缺陷,一般会影响软件的正常功能,如返回错误的结果、显示错误的界面等。
传统的安全攻击方式是直接诱骗受害者单击恶意程序的EXE可执行文件,现在随着用户警惕性的提高和反病毒软件的智能化,此方法越来越难成功起效。由于利用漏洞来植入木马或运行其他恶意代码比传统方法更自动化、更隐蔽、更难发现且成功率更高,因此攻防研究的焦点现在越来越多地集中在对漏洞的发现和利用上。漏洞一旦被别有用心的攻击者发现,就可能被用于在未授权的情况下访问或破坏系统,从而危害计算机系统安全。相应地,为了减少安全威胁,通过研究主动发现部分漏洞,并且及时修补,对保障信息安全具有重要的意义。利用漏洞进行攻击大致可以分为漏洞挖掘、漏洞分析和漏洞利用3个步骤。漏洞挖掘是后两步的基础,也是整个攻击的难点所在。
从技术角度看,漏洞挖掘可以视为一种深入的测试(QA),通过测试来找到导致软件出错的情况。当前流行的漏洞挖掘方法有很多,如数据流分析、Fuzzing测试、动态调试、二进制比对技术等,可以大致归为静态分析和动态分析两大类。但是在实际挖掘过程中一般结合选用多种方法,并不局限于某一类。
静态分析技术是指在程序非运行情况下,对程序的源代码进行分析,直接在程序的逻辑上寻找潜在的漏洞,这方面的方法和理论有很多,主要包括源代码扫描分析技术和二进制审核比对技术。源代码扫描分析技术也就是源代码审核,是指利用人工或自动化的工具来分析阅读程序的源代码,通过检测程序中不符合安全规则的文件结构、命名规则、函数、堆栈指针等,找到可能产生安全漏洞的代码,这种分析要求熟练掌握编程语言,并预先定义出不安全代码的审查规则,通过表达式匹配的方法检查源代码。具体的方法和理论包括词法分析、控制流分析、数据流分析、符号执行、类型验证系统、抽象解释、模型检测、自动定理证明、边界检验系统、状态机系统等。目前使用较为广泛的是词法分析、控制流分析和数据流分析。词法分析不仅包括编译器中的词法分析,还包括语法和语义分析。这类工具如Flawfinder、RATS等都是通过对源代码进行词法分析,然后从特征数据库中匹配感兴趣的内容进行上下文分析,然后对有问题的代码位置进行报警。特征数据库包含的主要是会产生安全问题的函数,如gets、strcpy、printf、sprintf。针对不同的目标函数,词法分析工具会调用不同的处理函数来对危险函数的参数进行分析。词法分析能够进行自动化的检测,但是由于词法分析无法对程序的上下文进行必要的分析,因此误报率和漏报率都非常高。控制流分析的任务是发现程序的执行流与数据操作相关的特征。程序对数据的操作在某个单元(即基本块)内是顺序的,但在全局范围内,数据操作不是简单的顺序结构,而是包含多种控制结构。因此,进行全局数据分析必须考虑程序执行流的影响,必须建立在控制流分析的基础之上。控制流分析的基本方法是标识程序的基本块,构造反映程序控制流程的有向图,分析这个有向图从而得到控制结构信息。因此,控制流分析建立在基本块和控制流图两个基本的实体上。基本块是控制流分析的基础,是构成控制流图的基本单元,它是单入口单出口的顺序语句序列,分支和跳转语句不出现在序列的中间;而控制流图提供了程序控制结构的信息,包括顺序结构、分支结构和循环结构等,它能够反映程序动态执行时所有可能的路径。控制流分析的使用非常普遍,目前许多编译器(如gcc)内嵌了此功能,用以对程序进行更好的优化。在程序脆弱性检查和验证方面,其他静态分析技术通常会结合控制流分析使用,以提高精确度。
动态分析方法是对程序进行动态的检测,在调试器的空间中运行目标程序,那么调试器就可以监测程序运行过程中的运行状态、内存使用状况及寄存器的值等信息,经过分析发现可能存在的漏洞。具体可以从代码流和数据流两方面进行动态分析:设置断点可以动态跟踪目标程序代码流,以检测函数调用前后的堆栈信息及调用参数;构造特殊的数据传入程序,然后跟踪数据流并分析,则可能触发潜在漏洞并报出错误,最后对此结果进行分析。动态分析需要借助调试器工具,如SoftIce、ollyDbg、WinDbg等是比较强大的动态跟踪调试器。常见的动态分析方法有输入追踪测试法、堆栈比较法、故障注入分析法等。堆栈比较法的一个实例是StackGuard和Stackshield,它们都是GNU C编译器的扩展工具,用于检测函数调用的返回地址是否正常,也就是说,主要检测基于堆栈溢出的缓冲区溢出漏洞。其中,StackGuard会在程序中的函数运行前,在栈空间中的返回地址栈变量数据之间插入一个“Canary word”标志,这样如果函数调用时发生了缓冲区溢出,那么函数调用返回前通过检查发现这个“Canary word”的值有变化就可以确定此函数有漏洞或有人进行了缓冲区溢出攻击。Stackshield是对前者的改进,它创建了一个新的堆栈用于备份被保护函数的返回地址。在被保护函数开始处会新加一段代码,此段代码的作用是将函数返回地址复制到一张特殊的表中;同样,在被保护函数的结尾处也增加一段代码将函数返回地址从表中复制回堆栈。通过这些操作来保证函数能正确返回。虽然说这两种工具更关注的是缓冲区溢出攻击的发现和抑制,但是通过一些修改就可以用来检测某段程序的某个函数是否有缓冲区溢出漏洞的隐患。
2.5.17 叛逆者追踪技术
多媒体数字产品(音频、视频、图像)在网络中发布和传播时,有些恶意的授权用户,会通过恶意泄露自己的授权密钥给其他非授权用户以得到私利,或者几个授权用户通过共谋制造出密钥给其他非授权用户使用。那些恶意的授权用户被称为叛逆者,而非授权用户被称为盗版者。在这种情况下,非授权用户就得到了授权信息,从而侵犯了数据提供商的权益。为解决这个问题,Chor、Fiat、Naor在1994年给出了一种叛逆者追踪系统,从此之后,叛逆者追踪技术受到了人们的广泛关注和研究。在叛徒者追踪系统中,每个授权用户都有与其身份一一对应的密钥。在这个系统中有一个追踪程序来实现追踪的功能。内容提供商截获一个非法解码器后,可以利用追踪程序至少确定一个叛逆者的身份。虽然追踪程序无法完全消除盗版,但是可以找出并惩罚叛逆者,给予非法传播者极大的威慑作用。
1994年,Chor等给出的是一种基于概率论的叛逆者追踪系统,这种系统需要用户存储的解密密钥的数量及通信所耗带宽都是随着用户数量增长而增长的,会造成过大的系统和通信开销。为解决这个问题,Naor和Pinkas在1998年建立了门限叛逆者追踪系统,这个系统减少了所需存储空间,并且降低了通信消耗。由于叛逆者可以直接将解密出来的明文传播到其他用户或直接传播到网络上来获取利益。因此为了防止这种情况的发生,Fiat和Tassa在1999年提出了一种可以解决重放攻击的基于数字水印的动态叛逆者追踪方案。Safavi-Naini和Wang在2003年提出了一个可以达到防止叛逆者将解密明文传播给其他用户或网络的机制——序列叛逆者追踪体制。该体制在解决延迟重放攻击的同时还提高了运行效率。Pfitzmann在1996年首先提出了非对称叛逆者追踪机制,这个机制解决了对称方案的问题,只有授权用户自己知道自己的解密密钥,数据提供商无法进行陷害而叛逆者也无法抵赖。但是由于效率太低,因此无法在实际中得到应用。Kurosawa和Desmedt在1998年提出了公钥叛逆者追踪机制,然而这个机制不能抵抗共谋攻击。Boneh和Franklin在1999年提出了一种能对单个叛徒者和若干共谋进行黑盒追踪的公钥叛逆者追踪方案。Kiayias和Yung在2002年提出了一个黑盒追踪系统,它能够在多用户的情况下依然使密文明文比恒定。然而在全追踪的情况下,密文大小与用户数量N呈线性关系。Dan Boneh和Moni Naor在2008年给出了基于指纹码的叛徒者追踪系统。2006年,Dan Boneh等引入秘密线性广播加密协议(Private Linear Broadcast Encryption,PLBE),基于PLBE,他们提出了完全抗共谋的叛徒者追踪机制,然而这种机制的密文长度与用户数量呈线性关系。而且在这种机制中,追踪公钥是必须保密的,也就是说,只有数据提供商才能进行追踪。Dan Boneh和Brent Waters在2006年提出了一种可以公共追踪的叛逆者追踪机制,在这个机制中追踪密钥是公开的,也就是任何人都可以进行追踪。
叛逆者追踪技术可以广泛应用于物联网中,用于对多媒体资源等进行版权保护,发现信息泄露者并进行相关责任的追究。
2.5.18 应用安全技术
信息处理安全主要体现在物联网应用层中,其中,中间件主要实现网络层与物联网应用服务间的接口和能力调用,包括对企业的分析整合、共享、智能处理、管理等,具体体现为一系列的业务支持平台、管理平台、信息处理平台、智能计算平台、中间件平台等。应用层则主要包含各类应用,如监控服务、智能电网、工业监控、绿色农业、智能家居、环境监控、公共安全等。
应用层的安全问题主要来自各类新兴业务及应用的相关业务平台。恶意代码及各类软件系统自身漏洞和可能的设计缺陷是物联网应用系统的重要威胁之一。同时由于涉及多领域、多行业,因此物联网广域范围的海量数据信息处理和业务控制策略目前在安全性和可靠性方面仍存在较多技术瓶颈且难以突破,特别是业务控制和管理、业务逻辑、中间件、业务系统关键接口等环境安全问题尤为突出。
1.中间件技术安全问题
如果把物联网系统和人体作比较,感知层好比人体的四肢,传输层好比人的身体和内脏,那么应用层就好比人的大脑,软件和中间件是物联网系统的灵魂和中枢神经。在物联网中,中间件处于物联网的集成服务器端和感知层、传输层的嵌入式设备中。其中,服务器端中间件称为物联网业务基础中间件,一般都是基于传统的中间件(应用服务器、ESB/MQ等)构建,加入设备连接和图形化组态展示等模块;嵌入式中间件是一些支持不同通信协议的模块和运行环境。中间件的特点是它固化了很多通用功能,不过在具体应用中大多需要二次开发来实现个性化的行业业务需求,因此所有物联网中间件都要提供快速开发(RAD)工具。
2.云计算安全问题
物联网的特征之一是智能处理,是指利用云计算、模糊识别等各种智能计算技术,对海量的数据和信息进行分析和处理,对物体实施智能化的控制。云计算作为一种新兴的计算模式,能够很好地给物联网提供技术支撑。一方面,物联网的发展需要云计算强大的处理和存储能力作为支撑。从量上看,物联网将使用数量惊人的传感器采集到海量数据。这些数据需要通过无线传感网、宽带互联网向某些存储和处理设施汇聚,而使用云计算来承载这些任务具有非常显著的性价比优势;从质上看,使用云计算设施对这些数据进行处理、分析、挖掘,可以更加迅速、准确、智能地对物理世界进行管理和控制,使人类可以更加及时、精细地管理物理世界,从而达到“智慧”的状态,大幅提高资源利用率和社会生产力水平。云计算凭借其强大的处理能力、存储能力和极高的性价比必将成为物联网的后台支撑平台。另一方面,物联网将成为云计算最大的用户,为云计算取得更大商业成功奠定基石。