收藏 分享(赏)

rfid系统密钥无线生成算法.doc

上传人:无敌 文档编号:161289 上传时间:2018-03-22 格式:DOC 页数:11 大小:117KB
下载 相关 举报
rfid系统密钥无线生成算法.doc_第1页
第1页 / 共11页
rfid系统密钥无线生成算法.doc_第2页
第2页 / 共11页
rfid系统密钥无线生成算法.doc_第3页
第3页 / 共11页
rfid系统密钥无线生成算法.doc_第4页
第4页 / 共11页
rfid系统密钥无线生成算法.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、RFID 系统密钥无线生成算法 斯进 简碧园 刘道微 浙江警察学院计算机与信息技术系 广州科技职业技术学院信息工程学院 摘 要: 为解决标签与读写器之间的共享密钥因事先设置好而存在的安全缺陷问题, 提出一种共享密钥无线生成算法。采用无线生成密钥的方式, 将读写器产生的随机数通过字合成运算函数进行加密, 通过动态的方法生成标签与读写器之间的共享密钥值, 使得共享密钥值不需要事先进行设置。全面的安全性分析结果表明, 该算法可以解决安全缺陷, 在计算量及实现所需的门电路方面优于现有算法。关键词: 物联网; 密钥生成; 随机数; 射频识别; 交叉位运算; 标签标识符; 作者简介:斯进 (1976-)

2、, 女, 浙江衢州人, 讲师, 研究方向为网络安全;作者简介:简碧园 (1983-) , 男, 广州梅州人, 硕士, 讲师, 研究方向为计算机网络及云计算技术;作者简介:刘道微 (1989-) , 男, 湖北襄阳人, 硕士, 研究方向为信息安全。E-mail:收稿日期:2016-09-08基金:国家自然科学基金项目 (U1509219) Wireless key generation algorithm for RFID systemSI Jin JIAN Bi-yuan LIU Dao-wei Department of Computer and Information Technology

3、, Zhejiang Police College; School of Information Engineering, Guangzhou Vocational College of Science and Technology; Abstract: To solve the existing security problem caused by the pre-set shared private key between the tag and the reader, a wireless generation algorithm for the shared private key w

4、as proposed.The wireless key generation was adopted, random number generated using the reader was encrypted using word synthesis arithmetic function.Through the dynamic generation method, shared key value between tag and reader was produced, hence the key value did not need to be set in advance to s

5、hare.Results of comprehensive security analysis show that the proposed algorithm can solve the security defects and it is superior to the existing algorithms in terms of computational complexity and required gate circuits.Keyword: internet of things; key generation; random number; RFID; crossover; t

6、ags ID; Received: 2016-09-080 引言在现代运用的射频识别 (radio frequency identification, RFID) 系统中, 该系统可看成是由标签 Tag、读写器 Reader、数据库 Data-Base 这 3 部分实体组成1,2。其中因读写器 Reader 与数据库 Data-Base 之间信息是通过有线链路完成交换, 故读写器 Reader 与数据库 Data-Base 之间的通信可认为安全, 因此本文中将读写器及数据库看成一个整体3,4;而读写器与标签之间的传输是通过无线传输方式进行通信的, 该方式下存在一定的安全缺陷。其中读写器与标签之

7、间的共享密钥的安全性将直接影响两者之间传输的数据是否安全可靠, 因此共享密钥的安全是通信过程中要重点保证安全的对象5,6。标签端的计算能力尤其受限, 无法进行传统的大量计算7,8, 在现代运用的RFID 系统中, 系统中的标签一端与读写器一端之间的共享密钥很多时候都是事先进行设置9,10。这样虽然在一定程度上减少了标签端的计算量, 但同时也存在一定的安全隐患针, 攻击者可以通过一些攻击手段来获得初始密钥值, 从而进一步获取其它隐私的信息, 因此这种方式产生的密钥具有一定的安全缺陷11,12。文献13提出了一种密钥无线生成的算法, 但是该算法存在一定的安全缺陷及实现成本略高的问题。首先文献13中

8、假设攻击者无法截获标签发送给读写器的信息, 但在实际应用过程中, 此假设并不成立, 攻击者是可以截获标签与读写器之间一个完整的通信信息的。其次文献13中的算法在读写器和标签两端都有随机数产生器, 标签里面会因为随机数产生器的存在使得成本增加。最后文献13中的算法在整个传输过程中全部采用文明传输, 使得攻击者可以很容易获取一些信息。因此综合上面的描述, 会发现文献13中的算法存在一定的安全问题。在上述算法思想基础之上, 本文算法利用标签 ID 左右两部分的值、读写器产生的随机数来实现共享密钥的无线生成;同时传输过程中会对要传输的数据采用字合成运算加密方法进行加密, 从而保证攻击者不再轻易获得信息

9、。1 本文密钥无线生成算法读写器端含有一个随机数生成器, 同时存放有所有标签的 ID, 以及相对应 ID的左右两部分值 IDi_R 和 IDi_L。标签端存放有自身的 ID, 以及相对应 ID 的左右两部分值 ID_R 和 ID_L。1.1 字合成运算的实现设 X 和 Y 都是 L 位长度的二进制数, X=x 1x2x3xL, Y=y1y2y3yL;其中, x i, yi取值范围为0, 1, i=1, 2, , L, Syn (X, Y) =Y L-M+1YL-M+2YLX1X2XL-M;字合成运算 Syn (X, Y) 是指由 X 的前 L-M 位与 Y 的后 M 位组合而形成新的 L 位数

10、组;其中 M 的设定为:M=Hw (Y) , 也可以为 M=L-Hw (Y) ;或者是 M=Hw (X) , 也可以为 M=L-Hw (X) ;或者是 M=Hd (X, Y) , 也可以为 M=L-Hd (X, Y) ;Hw (X) 表示为 X 的汉明重量, Hw (Y) 表示为 Y 的汉明重量, Hd (X, Y) 表示为 X与 Y 的汉明距离。例如, 取长度 L=12, 设 X=111000110110, Y=011001011101, 设定 M=Hw (Y) =7, 则根据上述字合成运算的定义可以得到 Syn (X, Y) =101110111100, 具体运算过程如图 1 所示。该运算

11、只需要移位以及按位或运算既可以实现, 从而可以有效降低标签的计算量和存储空间, 最终达到降低标签成本的目标, 可以实现标签所有权的超轻量级转移。上例中 M 可以根据需要设定其它不同的数值, 在这里不再一一的列出其实现的过程, 并且在运用过程中 M 的值要保密, 以防攻击者恶意攻击, M 的值保密, 使得攻击者没有办法简单的进行攻击, 从而增加了攻击者的攻击难度, 可以提高协议的安全性。图 1 字合成运算 下载原图1.2 符号说明R:RFID 系统中的读写器;T:RFID 系统中的标签;n:标签的总个数;i:第 i 个标签的编号 (长度为 2L 位) ;r1:RFID 系统中的读写器端产生的第一

12、个长度为 2L 位的随机数;r2:RFID 系统中的读写器端产生的第二个长度为 2L 位的随机数;r:RFID 系统中的读写器端产生的第三个长度为 2L 位的随机数;k:RFID 系统中的读写器一端与标签一端之间的共享密钥值 (长度为 2L 位) ;ki:读写器与第 i 个标签之间的共享密钥 (长度为 2L 位) ;ID_L:RFID 系统中的标签一端标识符 ID 的左半部分 (长度为 2L 位) ;ID_R:RFID 系统中的标签一端标识符 ID 的右半部分 (长度为 2L 位) ;IDi_L:RFID 系统中的第 i 个标签标识符 ID 的左半部分 (左半部分为 2L 位长度的值) ;ID

13、i_R:RFID 系统中的第 i 个标签标识符 ID 的右半部分 (右半部分为 2L 位长度的值) ;:异或运算;Syn (x, y) :字合成运算。1.3 密钥生成算法(1) 单个标签密钥生成为一个标签无线生成密钥的方法, 如图 2 所示。图 2 单个标签密钥生成算法 下载原图算法描述如下:1) 首先读写器向标签发送一个“密钥无线生成请求命令 Request”;2) 标签在收到读写器传送来的命令以后, 标签首先计算 A=ID_RID_L, 然后将 (A, i) 传给读写器;3) 读写器收到信息后, 首先读写器查看是否存在相对应的 I, 若没有, 说明标签是攻击者伪造的, 通信终止;若有, 然

14、后读写器利用相对应的自身存放的IDi_L 和 IDi_R 的值来计算 IDi_RIDi_L, 并将计算结果与接收到的 A 进行比对。如果不相等, 说明标签是攻击者伪造的, 通信终止;如果相等, 然后读写器产生两个随机数 r1 和 r2, 再接着就开始计算 B=IDi_Rr1 和 D=IDi_Lr2, 最后将 (B, D) 传给标签;4) 标签在收到读写器发送来的 (B, D) 以后, 标签首先通过自身存放的 ID_R和 ID_L 计算得到随机数 r1 和 r2, 具体计算过程如下:r1=BID_R, r2=DID_L。然后标签利用计算得到的随机数 r1、r2 以及自身存放的ID_R、ID_L

15、来计算 E=Syn (ID_R, r1) Syn (ID_L, r2) , 最后把信息 (E, i) 传送给读写器;5) 读写器收到信息之后, 首先读写器找到自身存放的且相对应的IDi_R、IDi_L, 然后利用 IDi_R、IDi_L、r1、r2 来计算 E=Syn (IDi_R, r1) Syn (IDi_L, r2) , 并将 E的值与 E 的值进行对比, 如果两者值不相等, 说明标签是攻击者伪造的, 通信终止;若相等, 然后读写器就利用IDi_R、IDi_L、r1、r2 来计算 ki=Syn (r1, IDi_R) Syn (r2, IDi_L) 和F=Syn (r1, IDi_R)

16、Syn (r2, IDi_L) 6) 标签收到信息后, 标签首先通过计算得到的随机数 r1、r2 以及自身存放的ID_R、ID_L 来计算 F=Syn (r1, ID_R) Syn (r2, ID_L) 若相等, 然后标签就利用 ID_R、ID_L、r1、r2 来计算 k=Syn (r1, ID_R) Syn (r2, ID_L) , 并将 k 作为自身与读写器之间的共享密钥。(2) 批量密钥生成为一批标签同时生成不同的个体密钥的方法, 如图 3 所示。图 3 批量密钥生成算法 下载原图算法描述如下:1) 首先读写器向所有标签发送“密钥生成请求命令 Request”;2) 标签在收到读写器传送

17、来的命令以后, 标签首先计算 G=IDi_RIDi_L, 然后将 (G, i) 传给读写器;3) 读写器在接收到标签传送来的 (G, i) 之后, 读写器检索是否存在相对应的I, 如果不存在, 说明标签是攻击者伪造的, 通信终止;若有, 然后读写器利用相对应的自身存放的 IDi_L 和 IDi_R 的值来计算 IDi_RIDi_L, 并将计算结果与接收到的 G 进行比对。如果两者值不相等, 说明标签是攻击者伪造的, 通信终止;若两者值相等, 读写器产生随机数 r1 和 r2, 再接着就开始计算H=IDi_Rr1 和 M=IDi_Lr2, 最后将 (H, M, i) 发送给组内的所有标签;4)

18、标签在收到读写器发送来的 (H, M, i) 以后, 标签比对接收到的 i 与自身的编号是否相等, 若两者值不相等, 标签不存放该信息;若一致, 标签就通过自身存放的 ID_R 和 ID_L 计算得到随机数 r1 和 r2, 具体计算过程如下:r1=HID_R, r2=MID_L。然后标签利用计算得到的随机数 r1、r2 以及自身存放的 ID_R、ID_L 来计算 N=Syn (r1, ID_R) Syn (r2, ID_L) , 最后将信息 (N, i) 传送给读写器;5) 读写器接收到信息后, 找到自身存放的且相对应的 IDi_R、IDi_L, 然后利用 IDi_R、IDi_L、r1、r2

19、 来计算 N=Syn (r1, IDi_R) Syn (r2, IDi_L) , 并将 N的值与 N 的值进行对比, 如果两者的值不相等, 说明标签是攻击者伪造的, 通信终止;若相等, 然后读写器就利用 IDi_R、IDi_L、r1、r2 来计算ki=Syn (IDi_R, r1) Syn (IDi_L, r2) 和 Q=Syn (IDi_R, r1) Syn (IDi_L, r2) 6) 标签接收到信息后, 标签首先验证接收到的 i 与自身存放的编号是否一致, 若不一致, 标签就舍弃该消息;若一致, 标签就通过计算得到的随机数 r1、r2以及自身存放的 ID_R、ID_L 来计算 Q=Syn

20、 (ID_R, r1) Syn (ID_L, r2) 若相等, 然后标签就利用 ID_R、ID_L、r1、r2 来计算 k=Syn (ID_R, r1) Syn (ID_L, r2) , 并将 k 作为自身与读写器之间的共享密钥。(3) 群组密钥生成为一批标签同时生成一个唯一的共享密钥的方法这种类型:读写器为一组标签同时生成一个共同的组密钥, 即:群组密钥生成。如图 4 所示。算法描述如下:1) 读写器向组内所有标签发送“密钥生成请求命令 Request”;2) 标签收到信息后, 将自身的 IDi_L 传给读写器;图 4 群组密钥生成算法 下载原图3) 读写器收到信息后, 开始一个一个对比接收

21、的 IDi_L 与储存的信息是否完全一样, 如果存在差异, 说明存在标签没有响应, 读写器将再次发送“密钥生成请求命令 Request”;否则, 表明所有标签均已响应, 读写器产生一个随机数 r, 然后计算 k 的值, 其中 k=Cro (ID1_R, r) Cro (ID2_R, r) Cro (IDn_R, r) , 计算 ki 的值, 其中 ki=kCro (IDi_R, i) , 把 k 作为群组共享密钥, 把 ki 作为标签 Ti 计算密钥的生成因子;4) 读写器将信息 (IDi_L, ki) 传给响应的每个标签;5) 标签接收信息后, 比对接收的 IDi_L 是否与自身的一致, 如

22、果完全一样, 标签计算 k 的值, 其中 k=kiCro (ID_R, i) ;否则, 标签不保存该消息。2 安全性分析本节将从被动攻击和主动攻击两个角度进行安全性分析, 并且分析的同时针对3 种不同场景的应用也给出相对应的安全性分析。2.1 被动攻击针对单个标签密钥生成情况, 攻击者可以截获 A, B, D, E, F 完整的信息, 但是攻击者还是没有办法破解出任何有用的信息。首先 A 是由 ID_R 和 ID_L 进行异或运算得到的, 攻击者不知晓这两个具体的数值, 没办法破解出有用的信息;其次在 B 和 D 两个信息中, 一共有 4 个量, 即 r1, r2, IDi_R, IDi_L,

23、 在这 4个量中, 攻击者事先不知晓任何一个, 因此也没有办法破解出有用的信息;接着在 E 和 F 中, 都是运用字合成运算方法对要传输的信息进行加密之后再传输的, 这样攻击者更是没有办法获得任何有用的信息;然后 E 和 F 中, 密钥计算过程用到的随机数每次都是不同的, 使得攻击者无法破解;最后生成的共享密钥也没有在上述过程中传输, 所以攻击者即便是获取一个完整的通信过程信息, 仍然无法获知任何有用的信息, 因此该种情况下本文的算法可以抵抗被动攻击。针对批量密钥生成情况, 攻击者可以截获 G, H, M, N, Q 完整的信息, 但是攻击者还是没有办法破解出任何有用的信息。首先 G 是由 I

24、Di_R 和 IDi_L 进行异或运算得到的, 攻击者不知晓这两个具体的数值, 没办法破解出有用的信息;其次在 H 和 M 两个信息中, 一共有 4 个量, 即 r1, r2, IDi_R, IDi_L, 在这 4 个量中, 攻击者事先不知晓任何一个, 因此也没有办法破解出有用的信息;接着在N 和 Q 中, 都是字合成运算方法对要传输的信息进行加密之后再传输的, 这样攻击者更是没有办法获得任何有用的信息;然后 N 和 Q 中, 密钥计算过程用到的随机数每次都是不同的, 使得攻击者无法破解;最后生成的共享密钥也没有在上述过程中传输, 所以攻击者即便是获取一个完整的通信过程信息, 仍然无法获知任何

25、有用的信息, 因此该种情况下本文的算法可以抵抗被动攻击。针对群组密钥生成情况, 攻击者可以获得 IDi_L 和 ki 这个值, 但是对于攻击者而言没有任何用。首先共享密钥在生成的过程中, 不仅没有用到 IDi_L, 而且用到的 IDi_R 在整个通信过程中根本没有出现中, 这样攻击者根本没有办法破解出有用的信息;其次共享密钥的生成过程中, 会用到读写器产生的随机数 r, 而随机数 r 除了读写器知道之外, 其他人是不可能知晓的;接着共享密钥在生成的过程中, 采用字合成运算进行加密, 同时与每个标签的 IDi_R 都有关系, 即便是攻击者可以获取一些标签的 IDi_R, 但是对于攻击者而言还是没

26、有用处的, 因为只要其中任何一个地方出错, 攻击者均是得不出正确的共享密钥值的。2.2 主动攻击(1) 攻击者伪装成合法的读写器针对单个标签密钥生成情况, 攻击者伪装成合法的读写器向标签发送 Request命令, 可以得到 A 的信息, 但是因为攻击者不知道相对应标签的 IDi_R 和IDi_L 的值, 因此攻击者没有办法计算出正确的 B 和 D 的值, 标签在接收到 B和 D 的值之后, 通过计算可以得到假的随机数 r1 和 r2, 再将计算的 E 的值传给攻击者, 而此时攻击者无法验证 E 的真伪, 同时在下一步中, 标签可以通过F 的值来验证读写器的合法性, 攻击者并没有获得任何有用的信

27、息, 比如:攻击者没有破解出 ID_L 和 ID_R, 因此该种情况下本文的算法可以抵抗主动攻击。针对批量密钥生成情况, 攻击者伪装成合法的读写器向标签发送 Request 命令, 可以得到 G 的信息, 但是因为攻击者不知道相对应标签的 IDi_R 和 IDi_L 的值, 因此攻击者没有办法计算出正确的 H 和 M 的值, 标签在接收到 H 和 M 的值之后, 通过计算可以得到假的随机数 r1 和 r2, 再将计算的 N 的值传给攻击者, 而此时攻击者无法验证 N 的真伪, 同时在下一步中, 标签可以通过 Q 的值来验证读写器的合法性, 攻击者并没有获得任何有用的信息, 比如:攻击者没有破解

28、出ID_L 和 ID_R, 因此该种情况下本文的算法可以抵抗主动攻击。针对群组密钥生成情况, 攻击者伪装成合法的读写器向标签发送 Request 命令, 即便是攻击者之前已经获取所有标签的 IDi_L 的值, 但是共享密钥的计算与标签的 IDi_L 是没有任何关系的, 同时标签的 IDi_L 与标签的 IDi_R 之间是没有任何关系的, 因此即使攻击者知道标签的 IDi_L 也是没有任何用处的, 同时共享密钥的计算过程中采用字合成运算进行加密, 在传输的过程中信息也是通过加密以后在传给标签的, 攻击者也只能截获 ki 的值, 而有此值想要计算出共享密钥 k 的值是可不能的, 因为攻击者不知晓相

29、对应标签的 IDi_L 的值, 因此该种情况下本文的算法可以抵抗主动攻击。(2) 攻击者伪装成合法标签针对单个标签密钥生成情况。即便是攻击者已经通过伪装成合法的读写器获取所有标签计算出 A 的值, 但是攻击者在第三步骤中没有办法通过计算得到读写器产生的随机数 r1 和 r2 的值, 那么攻击者计算出的 E 的值将会在第四步中被读写器识别出是假的, 识别出标签是攻击者伪造的, 通信终止, 攻击者未获得隐私消息, 因此该种情况下本文的算法可以抵抗主动攻击。针对批量密钥生成情况, 攻击者伪装成合法的标签, 会响应读写器发送来的信息。即便是攻击者已经通过伪装成合法的读写器获取所有标签计算出 G 的值,

30、 但是攻击者在第三步骤中没有办法通过计算得到读写器产生的随机数 r1 和 r2的值, 那么攻击者计算出的 N 的值将会在第四步中被读写器识别出是假的, 识别出标签是攻击者伪造的, 通信终止, 攻击者未获得隐私消息, 因此该种情况下本文的算法可以抵抗主动攻击。针对群组密钥生成情况, 攻击者伪装成合法的标签, 会响应读写器发送来的信息。该种情况下的共享密钥的计算过程中没有使用到标签的 IDi_L 的值, 而是使用的标签的 IDi_R 的值, 但是这个值在通信过程中并没有出现过, 仍没有办法破解出共享密钥的值, 并且共享密钥的计算过程中用到读写器产生的随机数r, 随机数每次都是不一样的, 这样更加增

31、大攻击者破解的难度, 因此该种情况下本文的算法可以抵抗主动攻击。表 1 中是本文算法与其它算法进行的安全性比较的结果。其中表示可以抵抗该种攻击, 表示无法抵抗该种攻击。表 1 算法的安全性比较 下载原表 3 性能分析表 2 是本文算法与其它算法进行的性能比较结果。表 2 中:文献13中, 标签产生的随机数 r1, 读写器产生的随机数 r2, 共享密钥 K, 标签的标识符 ID 长度都是 L 位;本文中, 读写器产生的随机数 r, 共享密钥 K 长度都是 L 位, 而标签的标识符 ID 长度是 2L 位。LFSR 表示线性移位寄存函数, XOR 表示异或运算。存放空间方面, 在文献13中, 标签

32、端需要存放r1、r2、K 和 ID 这 4 个量, 因此存放空间为 4L;本文中, 标签端需要存放 r、K和 ID 这 3 个量, 存放空间同样为 4L。计算量方面, 在文献13中, 标签端需要产生一个随机数, 而产生一个随机数需要比较复杂的计算;但在本文中, 标签端不需要产生随机数, 异或运算量较小, 两者进行异或运算的次数仅仅相差一次, 故在异或运算计算量方面两者相差不大, 可以忽略, 综上分析可得, 本文算法在标签端的计算量要远远少于文献13中标签端的计算量。成本方面, 因本文改进的算法中标签端不需要产生随机数, 因此不需要装有随机数产生器, 从而使得标签端门电路的总个数大大减少, 最终

33、使得标签的成本降低。表 2 算法的性能比较 下载原表 4 结束语在现有的 RFID 系统中, 标签与读写器之间的双向认证的安全性很大程度上依赖于两者之间的共享密钥的安全性, 而现有的 RFID 系统, 标签与读写器之间的共享密钥一般都是事先设置好的, 但是此种方式存在一定的安全隐患, 攻击者可以通过某些手段获取该共享密钥, 进行伪装成合法的读写器骗取合法用户的隐私。为解决上面的问题, 本文提出一种解决方案。文中给出解决方案的具体实现步骤, 同时对解决方案的安全性及性能两方面进行深入分析, 阐述出了解决方案的安全性。参考文献1MA Changshe.Low cost RFID authentic

34、ation protocol with forward privacyJ.Chinese Journal of Computers, 2011, 34 (8) :1387-1398 (in Chinese) .马昌社.前向隐私安全的低成本 RFID 认证协议J.计算机学报, 2011, 34 (8) :1387-1398. 2TAO Yuan, ZHOU Xi, MA Yupeng, et al.Mobile mutual authentication protocol based on Hash functionJ.Journal of Computer Applications, 2016

35、, 36 (3) :657-660 (in Chinese) .陶源, 周喜, 马玉鹏, 等.基于 Hash函数的移动双向认证协议J.计算机应用, 2016, 36 (3) :657-660. 3Mamun MSI, Miyaji A, Rahman MS.A secure and private RFID authentication protocol under SLPN problemG.LNCS7645:International Conference on Network and System Security.Berlin:Springer, 2012:476-489. 4Chen

36、 M, Luo W, Mo Z, et al.An efficient tag search protocol in large-scale RFID systemsC/Proceedings of the 32nd IEEE International Conference on Computer Communication, 2013:899-907. 5LIU Daowei, LING Jie, YANG Xin.Animproved RFID authentication protocol with backward privacyJ.Computer Science, 2016, 43 (8) :128-130 (in Chinese) .刘道微, 凌捷, 杨昕.一种改进的满足后向隐私的RFID 认证协议J.计算机科学, 2016, 43 (8) :128-130. 6Alomair B, Cuellar J, Poovendran R.Scalable RFID systems:A privacy preserving protocol with constant time identificationJ.IEEE Trans on Parallel and Distributed Systems, 2012, 23 (8) :1-10.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 期刊/会议论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报