具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种访问方法,包括:
步骤101:接收设备管理DM网关扇出的操作命令和操作命令的授权信息;其中,操作命令和授权信息是DM服务器触发DM网关扇出的,授权信息包括加密字符串,加密字符串是DM服务器根据预设的密钥和算法,对DM服务器的标识、DM网关的配置时间和操作命令的消息摘要算法第五版MD5值进行加密的字符串;
步骤102:根据授权信息确定操作命令是否为DM服务器授权的命令;
步骤103:如果是,则执行操作命令。
需要说明的是:上述步骤的执行主体是一个DM客户端,在本发明实施例中所涉及的DM客户端包括但不限于各种操作系统的移动电话,便携计算机等无线手持设备。
优选地,本实施例中,根据所述授权信息确定所述操作命令是否为所述DM服务器授权的命令,包括:
根据预定的密钥对所述授权信息进行解密,得到DM服务器的标识、网关的配置时间和操作命令的MD5值;
确定网关的配置时间是否大于当前存储的时间;
如果是,则确定操作命令为DM服务器授权的命令。
可选地,本实施例中,根据预设的密钥对所述授权信息进行解密,得到DM服务器的标识、网关的配置时间和操作命令的MD5值,之前还包括:
将接收到的所述授权信息设置为有效性字符串,所述有效性表示所述授权信息是所述DM服务器通过所述DM网关发出的。
相应地,确定所述操作命令为所述DM服务器授权的命令,之后还包括:
将执行标志位修改为所述DM网关字符串等同于所述DM服务器字符串的执行方式。
具体的,执行操作命令,包括:
确定接收到的所述操作命令的MD5值是否与所述解密出的MD5值相等;
如果是,则确定所述执行标志位是否为所述DM网关字符串等同于所述DM服务器字符串的执行方式;
如果是,则将所述操作命令中的所述DM网关标识等同于所述DM服务器标识处理,执行所述操作命令。
进一步地,本实施例中,本实施例提供的方法还包括:
若所述操作命令中包含所述DM服务器的地址,查询所述DM服务器地址对应的预存的对象信息,确定所述DM网关是否为授权网关;
如果是,则将所述操作命令中的所述DM网关标识等同于所述DM服务器标识处理,执行所述操作命令。
本发明实施例提供的技术方案,在OMA DM系统中设置代理网关,采用对命令授权的机制,使网关代替DM服务器能够与DM客户端安全的进行交互,降低DM服务器的工作量,从而提高工作效率。
实施例2
参见图2,本发明实施例提供了一种访问方法,包括:
步骤201:设备管理DM服务器与DM客户端进行会话连接,约定密钥Key和对称加密算法A。
本实施例中,在OMA DM系统中引入了DM GW(Device ManagementGateway,设备管理网关),通过DM网关对DM客户端进行管理。其中,DM服务器、DM网关、DM客户端均符合OMA DM的规范。代理模式下,DM服务器可以通过OMA DM协议管理DM网关,DM网关也可以通过OMA DM协议或其它设备管理协议来管理DM客户端。DM网关上可供DM服务器管理的MO(Management Object,管理对象)可以保存DM客户端的设备信息,分组信息,配置信息,管理命令等信息;其中MO包括但不限于:Inventory MO(设备库管理对象)、Config MO(配置管理对象)或Fanout MO(批量转发命令管理对象)。
本实施例中,在引入DM Gateway设备以后,如果DM网关工作在代理模式下(即DM服务器-DM网关之间,DM网关-DM客户端之间各保持一个DM会话),且同时向一个或多个DM客户端发送设备管理命令的时候,需要使用Fanout机制。参见图3,此Fanout MO保存在DM GW上,Fanout子树下面的节点功能如下:
1.FanoutCommands由DM服务器填充,是对DM客户端的管理命令;
2.TargetGroupRef对应Config MO管理对象中DevGroup子树下面定义的群组的ID(Identity,身份标识号码),DM网关根据此ID找到目标DM客户端;
3.Start为可执行节点,由DM服务器触发执行,将FanoutCommands的命令批量扇出至目标DM客户端。
本实施例的应用场景为:DM服务器DMS001,通过DM网关GW001对目标DM客户端组GROUP002(包含DEV001,DEV003等DM客户端)进行管理。其中需要对组GROUP002下属的所有DM客户端上的./settings/wap_settings/CNN节点进行批量更新。此处选定DEV003作为实施DM客户端来描述步骤。假设此时DM客户端DEV003上的此节点的ACL权限为:Add=DMS001&Delete=DMS001+DMS22313&Replace=DMS001&Get=*,即DMS001可以执行ADD操作,DMS001和DMS22313可以执行DELETE操作,DMS001可以执行REPLACE操作;所有人可以执行GET操作。
具体的,DM客户端DEV003在DM网关GW001完成注册,DM网关GW001向DM服务器DMS001发出注册信息,触发DM服务器DMS001完成对新入DM客户端DEV003的Bootstrap。此时DM客户端DEV003和DM服务器约定了只有DM服务器和DM客户端知晓的密钥Key_1和算法A。本实施例中,同组目标DM客户端使用统一密钥和算法,例如:DM服务器DMS001上用表格的形式存放密钥和算法索引,如表1所示。
表1
GroupID |
DevID |
密钥 |
算法 |
GROUP002 |
DEV001 |
Key_1 |
A |
GROUP002 |
DEV003 |
Key_1 |
A |
GROUP004 |
DEV002 |
Key_2 |
B |
DM客户端DEV003在DM网关GW001上注册,DM客户端DEV003上以表格的形式存放密钥和算法索引,如表2所示。
表2
SerID |
GWID |
密钥 |
算法 |
DMS001 |
GW001 |
Key_1 |
A |
DMS009 |
|
Key_31 |
M |
DMS231 |
|
|
|
本实施例中,DM客户端上也可以用DMAcc(DM Account,DM账户信息)存储此密钥和算法信息。DMAcc对象用于保存建立连接的必要信息。此对象内容只可以被创建者修改,即可以被该DM服务器修改,保证了DM网关无权更改此信息。
步骤202:DM服务器通过发起DM会话对DM网关进行配置,将操作命令写入DM网关的节点内,并对该命令进行授权。
本实施例中,DM服务器DMS001通过发起DM会话对DM网关GW001进行配置,将操作命令写入DM网关GW001的节点内,并对该命令进行授权。具体的,在DM网关GW001上设置一个对命令授权的标识,譬如:扩展DM网关GW001上Fanout MO对象,在其中增加Authority标识,这是一个DM网关GW001无法,无权更改的一次性标识符,用于表示DM服务器对DM网关上的此条FanoutCommands命令的授权,如图4所示,扩充图3所示的Fanout MO子树后的Fanout MO对象,节点<X>/Authority只能被创建其<x>节点DM服务器更改,DM网关没有权限修改,DM网关只能对其转发。
其中,对命令进行授权的具体方法如下:用约定的Key和加密算法A加密如下信息:DM服务器的标识(可以是服务器地址或ID),一次性递增计数器,命令串哈希值。例如:DMSERVER01,Timestamp,MD5(Message Digest AlgorithmMD5,消息摘要算法第五版)。其中DMSERVER01是DM服务器的地址信息,Timestamp是DM服务器设置此值的时间点,也就是DM网关的配置时间,使用POSIX(可移植性操作系统接口)格式,用于保证此Authority的一次性使用。本实施例中提及的Timestamp不单指时间戳,表示的是一个一次性递增计数器。本实施例中,写入FanoutCommands的例子如下:
其中,对上述命令授权的方法是:DMS001计算上述命令的MD5值,记为MD5-1;取得此时DMS001服务器时间,记为Timestamp1。DMS001用算法A和密钥Key_1加密字串:DMS001::??::Timestamp1::??:MD5-1其中::??::用于分割字符串。此时,DMS得到加密后的字串E-String,将其写入网关上Fanout MO的Authority节点内,即对操作命令进行授权。
步骤203:DM服务器触发执行DM网关上的Start节点。
本实施例中,DM服务器DMS001触发执行DM网关GW001该命令<x>/FanoutMO上的Start节点。
步骤204:DM网关确定目标DM客户端,向所有目标DM客户端发出授权信息。
本实施例中,DM网关确定目标DM客户端,用扩展Alert对所有目标DM客户端发出授权信息。其中,Alert是一条DM命令,用不同的数字标识用途,可以触发不同的约定行为。譬如1100号Alert用于指示DM客户端把Alert命令内携带的内容显示到屏幕上。其中,1227-1299为保留扩展用编号。本实施例中,DM网关用扩展的Alert1298向DM客户端发出Authority信息为例进行说明,如下所示扩展的Alert1298:
步骤205:根据授权信息确定操作命令是否为授权命令,如果是,则执行步骤206,否则返回错误值。
本实施例中,DM客户端根据授权信息确定操作命令是否为授权命令,具体包括:
1)DM客户端DEV003收到Alert1298,随即处理字串E-String,用约定的密钥Key_1和算法A解读出字串DMS001,Timestamp1,和MD5-1。
本实施例中,DM网关与DM客户端事先预定好扩展命令的用途,如1298Alert,用来向DM客户端发送授权信息,DM客户端接收到该命令后,就知道这条命令是DM服务器触发DM网关扇出的,所以可选地,本实施例中,在处理字串E-String之前,将收到的授权信息设置为有效性字符串,有效性表明该消息是DM服务器通过DM网关发出的。可选地,DM客户端收到1298的Alert对这条数据的有效性设置为1,表示该消息是DM服务器通过DM网关发出的,当然也可以通过其它形式来表示有效性,本实施例在此不做具体限定。其中,DM网关(不通过DMS管理)自行发起会话时,是不需要这条数据标记的;此数据标记专用于DM服务器通过DM网关发起会话的情形。本实施例中,DM客户端可以将A解读出字串DMS001,Timestamp1,和MD5-1,用数组或链表或结构体或者表格的方式进行存储,将数组或链表或是结构体或是表格简称为授权表。本实施例中,DM客户端DEV003内用表格的方式建立的授权表,如表3所示:
表3
授权信息 |
服务器地址 |
标识符 |
命令MD5 |
有效性 |
E-String |
DMS001 |
Timestamp1 |
MD5-1 |
1 |
2)DM客户端确定DM网关的配置时间是否大于DM客户端当前存储的时间,如果是,则确定操作命令为DM服务器授权的命令。
优选地,在确定出操作命令为DM服务器授权的命令之后,用接收到的DM网关的配置时间更新当前存储的时间值,以便后续接收到命令后,对后续命令进行确定。进一步地,修改执行标志位,该执行标志位用于表明DM客户端执行命令的方式,本实施例中,确定出操作命令为DM服务器授权的命令之后,将执行标志位修改为将DM网关字符串等同于DM服务器字符串的执行方式。其中,可以将执行标志位设为1,表示将网关字符串等同于DM服务器字符串执行操作命令的执行方式,当执行标志位为0时,表示执行DM网关的操作命令。当然,也可以用其它方式表示执行标志位代表的不同执行方式,本实施例对此不做具体限定。
本实施例中,如表4所示,DM客户端DEV003内全局变量存储Timestamp2=0x11332244和标志位Flag=0,若接收到的Authority内Timestamp1为0x22334455,则更新DM客户端上Timestamp值,并且执行标志位设置为1,更新后如表5所示:
表4
Timestamp |
0x11332244 |
Flag |
0 |
表5
Timestamp |
0x22334455 |
Flag |
1 |
本实施例中,若解读出的DM网关的配置时间小于等于DM客户端当前存储的时间,表示此Authority被使用过,则放弃执行后续命令,执行标志位Flag保持0(初始为0),返回错误值。
步骤206:DM客户端返回验证结果,通知DM网关发送预存的操作命令。
本实施例中,DM客户端DEV003对授权信息进行验证通过后,返回DM网关扩展的Alert 1299,其中,包含此授权信息。返回的扩展Alert 1299,如下所示:
步骤207:DM网关根据DM客户端返回的授权值查询需要扇出的操作命令,将该操作命令扇出给DM客户端。
本实施例中,DM网关由于同时处理很多DM客户端信息,需要根据返回的Authority值即E-String值查询需要扇出的命令,查到后对DM客户端DEV003发出FanoutCommands内预存的命令。
其中,步骤203-207为DM客户端接收网关扇出的授权信息和操作命令,并确定操作命令是否为DM服务器授权的命令的过程。
步骤208:DM客户端将操作命令中的DM网关标识等同于DM服务器标识处理,执行操作命令。
本实施例中,优选地,DM客户端收到命令后,确定该命令是否为有效性命令,如果是,则确定接收到的扇出命令的MD5值是否与预存的MD5值相等,如果是,则确定执行标志位表示的执行方式是否为将DM网关标识等同于DM服务器标识的执行方式;如果是,则将命令中的DM网关标识等同于DM服务器标识处理,执行命令。
本实施例中,查询步骤205中的授权表中的有效性字段,若为1则说明是DM服务器通过DM网关发出Fanout命令,继而,比较命令哈希值即MD5值,来决定是否执行,如果该数据项不存在,或者有效性为0,则说明是DM网关自行发起的会话,则此处不确定MD5值,正常方式执行。其中,正常方式就是正常的DM会话,此时DM服务提供方就是DM网关,比如DM网关有如下命令对如下节点>./settings/wap_settings/CNN做替换工作:
本实施例中,通过进行MD5值比较后,根据DM客户端的执行标志位Flag来选择执行命令的方式,譬如采用原执行方式或者执行方式A(将GW001字串等同DMS001字串处理)。如,此次操作是DM网关发送到DM客户端的,目的是ReplaceDM客户端上节点./settings/wap_settings/CNN;而此时此节点的ACL操作权限仍然为Add=DMS001&Delete=DMS001+DMS22313&Replace=DMS001&Get=*;如前述,通过MD5校验后,DM客户端确定执行标志位Flag,Flag若为0,则DM客户端正常执行,而此时命令的发送方式DM网关GW001,节点的操作权限上没有DM网关Rplace=GW001的属性。所以,此时执行结果为一个425错误返回。其中,返回错误425的命令如下所示:
本实施例中,引入DM网关后,命令是DM网关代发的,DM客户端感知的为DM网关地址,DM客户端理论上若工作于PROXY代理模式下,工作时,应不接受服务器DM会话,只接收DM网关DM会话。Flag若为1:DM客户端采用“执行方法A”,即运行时,将GW001字串内部替换为DMS001字串,这样就达到了不更改ACL而执行权限传递的目的。执行完毕后优选地,将标志位Flag置0,授权表有效性置0(或删除授权表项)。此时执行结果为:
步骤209:DM客户端将执行完操作命令的结果反馈给DM网关。
本实施例中,DM客户端执行完操作命令后,将执行结果反馈给DM网关,此处与现有技术中DM客户端执行完操作命令后,将执行结果反馈给DM服务器一样,在此本实施例不再赘述。
需要说明的是:步骤201,步骤202以及步骤209为可选步骤。
本发明实施例提供的技术方案的有益效果是:通过在OMA DM系统中设置代理网关,并采用对命令授权的机制,降低DM服务器的工作量,从而提高工作效率,并增加了系统的安全性。
实施例3
参见图5,本实施例提供了一种访问方法,若操作命令中包含DM服务器的地址,查询DM服务器地址对应的预存的对象信息,确定DM网关是否为授权网关;如果是,则将操作命令中的DM网关标识等同于DM服务器标识处理,执行操作命令。具体包括:
步骤301:DM服务器查询DM网关是否为完全可信网关。
本实施例的应用场景是:DM网关由运营商部署,或者DM网关提前获得DM管理服务商分发的证书,即DM网关为完全可信网关。本实施例中,DM服务器查询DM网关是否为完全可信网关的方法可以为直接查询证书或约定字串;可以为到第三方查询网关证书信息,譬如:在DM客户端在网关注册后,DM网关向DMS服务器发起注册消息,告知DM服务器自己为可信网关,此时DM服务器还不能相信是否应该完全对网关授权,判定其为可信DM网关,还是需要其他证书或其他签约信息来判定。
步骤302:确认信任网关后,DM服务器发起DM会话修改DM客户端上该DM服务器对应的设备管理对象信息。
具体来说,每个DM服务器,对应地在被管理DM客户端上都存在一个DMAcc对象。此处,扩展<x>/ToConRef/<x>/Conref节点信息,即新建X节点,并对ConRef字段赋值:TRUSTED::??::GW001。其中,TRUSTED表示信任,GW001表示其信任网关GW001,::??::用于分割字串。对于一个DM服务器管理多个授权网关的例子,可以扩充多个X节点,建立多个类似的授权字串。
步骤303:DM服务器执行网关上的Start节点,触发网关将节点中的预存命令扇出给目标DM客户端。
本实施例中,DM服务器执行网关上Fanout MO中的Start节点,触发网关将节点FanoutCommands中的预存命令扇出给目标DM客户端。如下所示命令:
步骤304:当DM服务器触发执行start节点时,目标DM客户端接收DM网关扇出的操作命令,操作命令中携带DM服务器的地址。
本实施例中,DM网关收到触发,扩充原FanoutCommands命令到一个Sequence队列中,在其中用一个扩展Alert 1296标识出DM服务器地址(DM服务器地址假设为DMSERVER01)。例如:
步骤305:目标DM客户端查询DM服务器的地址对应的预存的设备管理对象信息,确定DM网关是否为授权网关;如果是,则DM客户端执行操作命令。
本实施例中,DM网关向目标DM客户端扇出扩充完毕的命令,DM客户端收到命令后,解读出Alert 1296中携带的DM服务器地址,例如DMSERVER01。查询DM客户端上DMSERVER01对应的DMAcc对象信息,查询<x>/ToConRef/<x>/下的节点值,若发现值为TRUSTED::??::GW001的节点,则可以确立DM服务器对DM网关GW001的授权。若确立了授权关系,则执行命令包中Sequence内的后续命令。当查询ACL属性值时,处理DM网关地址字串时按照DM服务器地址字串对待。若未发现相应授权信息,则正常执行后续命令,此时发生访问权限不足的425错误信息。
此步骤中的处理节点访问的方式同实施例2中的执行方式A,本实施例在此不再赘述。
可选的,本实施例中,目标DM客户端执行完扇出命令后了,向网关反馈结果。
需要说明的是:步骤301及步骤302为可选步骤。
本是实施例提供的方法的有益效果是:在OMADM系统中设置已授权的代理网关,通过代理网关管理DM客户端,不仅提高了DM服务器的工作效率,而且也增加了系统的安全性。
实施例4
参见图6,本发明实施例提供了一种设备管理DM客户端,包括:接收模块401、确定模块402、执行模块403。
接收模块401,用于接收DM网关扇出的操作命令和所述操作命令的授权信息;其中,所述操作命令和所述授权信息是DM服务器触发所述DM网关扇出的,所述授权信息包括加密字符串,所述加密字符串是所述DM服务器根据预设的密钥和算法,对所述DM服务器的标识、所述DM网关的配置时间和所述操作命令的消息摘要算法第五版MD5值进行加密的字符串;
确定模块402,用于根据所述授权信息确定所述操作命令是否为所述DM服务器授权的命令;
执行模块403,用于当所述确定模块的确定结果为是时,执行所述操作命令。
参见图7,可选的,确定模块402包括:
设置模块402a,用于将所述接收模块接收到的所述授权信息设置为有效性字符串,所述有效性表示所述授权信息是所述DM服务器通过所述DM网关发出的;
解密模块402b,用于根据预定的密钥对所述授权信息进行解密,得到所述DM服务器的标识、所述DM网关的配置时间和所述操作命令的MD5值;
第一确定模块402c,用于确定所述DM网关的配置时间是否大于当前存储的时间;如果是,则确定所述操作命令为所述DM服务器授权的命令;
修改模块402d,用于所述第一确定模块确定所述操作命令为所述DM服务器授权的命令之后,将执行标志位修改为将所述DM网关字符串等同于所述DM服务器字符串的执行方式;
可选的,所述执行模块403,包括:
第二确定模块403a,用于确定所述接收模块接收到的所述操作命令的MD5值是否与所述解密模块解密出的MD5值相等;
第三确定模块403b,用于当所述第二确定模块的确定结果为是时,则确定所述执行标志位是否为所述DM网关字符串等同于所述DM服务器字符串的执行方式;
第一执行模块403c,用于如果所述第二确定模块的确定结果为是,则将所述操作命令中的所述DM网关标识等同于所述DM服务器标识处理,执行所述操作命令。
参见图7,可选地,本实施例中的DM客户端还包括:
查询模块404,用于若所述接收模块接收到的所述操作命令中包含所述DM服务器的地址,查询所述DM服务器地址对应的预存的对象信息,确定所述DM网关是否为授权网关。
参见图8,本发明实施例提供了一种设备管理DM网关,包括:接收模块501、发送模块502。
接收模块501,用于接收DM服务器的配置的操作命令和授权信息;所述授权信息包括加密字符串,所述加密字符串是所述DM服务器根据预设的密钥和算法,对所述DM服务器的标识、所述网关的配置时间和所述操作命令的消息摘要算法第五版MD5值进行加密的字符串;
发送模块502,用于接收所述DM服务器的触发,将所述操作命令和授权信息扇出给DM客户端,以使所述DM客户端根据所述授权信息对所述操作命令进行验证后,执行所述操作命令。
参见图9,本发明实施例提供了一种设备管理DM服务器,包括:配置模块601、触发模块602。
配置模块601,用于对DM网关配置操作命令和授权信息,所述授权信息包括加密字符串,所述加密字符串是所述服务器根据预设的密钥和算法,对所述服务器的标识、所述DM网关的配置时间和所述操作命令的消息摘要算法第五版MD5值进行加密的字符串;
触发模块602,用于触发所述DM网关向DM客户端扇出所述操作命令和授权信息,以使所述DM客户端根据所述授权信息对所述操作命令进行验证后,执行所述操作命令。
本发明实施例还提供了一种访问系统,该系统包括:上述的DM客户端、DM网关和DM服务器。
本发明实施例提供的装置的有益效果是:在OMA DM系统中设置代理网关,采用对命令授权的机制,使网关代替服务器能够与DM客户端安全的进行交互,降低DM服务器的工作量,从而提高工作效率。
本实施例提供的装置,具体可以,与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例提供的上述技术方案的全部或部分可以通过程序指令相关的硬件来完成,所述程序可以存储在可读取的存储介质中,该存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。