爱吱声

标题: 汽车遥控防盗器安全吗 [打印本页]

作者: code_abc    时间: 2012-4-5 23:09
标题: 汽车遥控防盗器安全吗
本帖最后由 code_abc 于 2012-4-6 20:21 编辑
2 p1 [6 u' B- u  s
* \( e+ b* b! P! X9 l    微博在吵架,我来做科普。
3 o9 O: W, R' J1 X& @; h) v% {* Y
6 }6 L5 B4 v0 i5 L; d  d" R    之前有个报道说有一伙偷车贼在停车场通过干扰汽车遥控器的锁车信号来偷车,如果你是下车后随便按一下锁门按钮就走的马大哈的话,就要小心了。不过这则消息后来传成有一伙高科技的偷车贼能够通过监听遥控器和汽车之间的通信,破解出通信密码,然后就能把车开走。听起来很神奇,也有一定道理。那么事实是怎么样呢?# ]( ~- Q2 C7 C

2 Y1 U5 ?& W1 L' E$ u: [    首先,干扰锁门信号那个可能是真的,不过比较容易被发觉,成功率不会很高。小心一点就好了。另外,新的遥控锁会自动检测钥匙在不在感应范围内,如果不在就会自动锁车,干扰信号可能帮忙把车给锁好了。- D! W8 f8 i* [' j/ f/ X
. n0 H. V5 Y1 N! O& S* f/ Y8 B
    而后面那种说法就目前我能查到的资料来看,基本是不可能的。
/ m9 n" u6 t# T! d4 L; t) [  F! O1 C* L* j% ~7 j
    监听遥控和车内接收器的通信相对比较简单,虽然遥控器的发射功率很低。但是现在要搞一个高灵敏的接收机还是很容易的,作为一个无线电专业的本科生我可以很确定的说,要在50米内监听钥匙发出的信号,接收机的成本不超过10元人民币。在网上买适合的元件自己组装调试,大致只需要2天功夫而且不需要任何昂贵的仪器。由于各地无线电管理条例对无线电发射装置使用的频段有严格规定,因此找出各种汽车遥控器发射频率也不是一件很麻烦的事情。有些国家和地区甚至直接规定了这类设备使用的频点,比如欧洲某些地方就要求汽车遥控钥匙的发射频率必须在433.92 MHz,上下限分别是433.05和434.79 MHz。另外,从载波解调出基带信号也不困难,具体的就不细说了。因为这不是重点。1 E" \4 r- G% L, ^4 R  q
2 S- D* N* O0 ]2 U
    重点是,我们拿到这个通信编码——遥控器和车内接收器之间的通信是二进制编码,能否打开车门。这个问题在90年代早期的时候是可以的,那时这些编码是未经加密的明码,而且是固定的。其格式主要包括一个地址码和一个操作码。每辆车都有一个不同的地址码,当收到遥控信号时会自动比较本车的地址码和信号中的是否一致,如果一致那么就会执行动作码指定的动作。这种方式很容易被回放攻击,也就是只要回放或者复制出监听到的内容就可以把车开走。由于动作码很少,实际只要解出地址码,就可以复制出各种遥控信号。包括开门/关门、开灯/关灯等等。这种高科技偷车的黄金时代理所当然地只持续了很短的时间。这种简陋的遥控方式很快被取代了。以下是新方法的一个简单描述。- G1 |  B6 n7 w

  N/ a) Q, @1 i* l! ^6 [$ |     新的遥控码一般分成操作码、序列号和安全码三部分。操作码和序列号是明文传输,而安全码则是靠一个伪随机算法计算出来的随机数,这个随机数和序列号相对应,一个序列号对应一个随机数。每次我们按下遥控器按钮序列号都会增加,并重新生成一个(伪)随机的安全码。接收机会根据序列号计算随机数,如果匹配那么就表示验证成功,执行操作码规定的动作。并且记录这次成功操作的系列号。下次再收到遥控信号时,在计算随机数做匹配前会比较发送过来的序列号,新的序列号必须大于最后一次成功操作的序列号。这样回放攻击的威胁就被简单地解除了。序列号是明码传输的,所以手欠的同学也不用担心,没事的时候在办公室狂按遥控器不会让钥匙和汽车失去同步。只要你钥匙上的序列号大于汽车上保存的,就是让汽车里的计算机多算几次而已。8 ^; d: r0 v  |7 v% P0 ~# t& y

  d, O, k- Y: G! w7 N    由于安全码通常有足够的长度(某个常用芯片是28位),使用穷举法试密码就算一秒钟可以试10次,也差不多要1年的时间。比较靠谱的办法就是对(伪)随机算法做破解。
* p6 W8 L2 o# t5 @/ E$ A: D
6 F4 C7 Z6 ?  v' b' H/ z     还真有人这样尝试过。话说现在汽车遥控器的芯片主要是由KEELOG(Microchip?)这个公司生产。绝大多数品牌的车用的都是这个芯片。不过,这个算法是保密的!
2 h, e6 w* C4 T- q2 G* v/ X
* |  d' T' g5 v# O. d1 a    大家有没有一种熟悉的感觉——曾经的DVD悲剧?
8 B" P; l( ?, K0 x, h. w4 G3 {: p" N8 C
     07年的时候,有一家机构声称破解了KeeLog的算法,当然这个破解时间比较长,在车库停车的那点时间是搞不定的。然而,这个破解据称是颠覆性的,因为破解者声称他们找到了算法的弱点,以及破解出KeeLog给几个车厂的密钥!这样,他们可以任意复制各个厂家的电子钥匙!诡异的是这个事情没怎么传出来,令我对国内微博的传输效率非常失望。9 W- v: D" {4 W+ k1 Y  I
8 ?# e7 g/ ?& M* l, G5 [/ V
    KeeLog好歹修补了这个漏洞,详情不知。不过08年继续有报道KeeLog再次被破解,也是通过监听信号,分析攻击。不过这次KeeLog官方明确否认报道的真实性。然而同时升级了他们的产品。
2 L/ B1 G2 m5 u$ ]6 l: _- P4 S5 u* }5 ?4 f6 g, }% {
    那么,汽车遥控防盗器安全吗?8 E. ]7 q5 p$ s% |
, }# T4 B+ F, O5 Q% G7 Q
    个人看法,如果使用了类似KeeLog这种技术的还是安全的,其安全性大致和使用U盾玩网上支付差不多。以上技术都是来自国外的网站,讨论的也是国外品牌的车辆。国内的怎么样呢?要不,各位谁寄条钥匙过来我瞧瞧?
! F/ Y7 S! O2 J; n( ]$ D. y: K  e( R, c5 C" F

9 Y5 `3 ^- _' B  d补两个连接0 y( Q# G) F, ]* p6 X+ C
Researchers Crack KeeLoq Code for Car Keys1 M( A8 b3 P+ T0 c7 [8 t" c
( ]; w! k* T, l: d/ a8 o6 K
1 p6 S- W) r6 ?4 E% K
Researchers crack KeeLoq RFID technology - Again
作者: 橡树村    时间: 2012-4-5 23:30
微博这次吵架和我有关系。
" H& T# \$ U# _7 D/ |2 N
$ A5 d% e5 b  S去年我在剃刀和三思吵架的某个微博里面插了一句,问这个事情。/ {' J. }2 e3 D

9 \# i/ R& d" e: m, e当时一个朋友的确在停车场丢东西了,车锁没有任何破坏的痕迹,里面稍微值点钱的物品都被搬走了。然后向停车场的人打听,就说有帮尼日利亚人,有啥设备,能破解车的密码云云。所以我就问了一声。当时三思就说遇到这个没招,人家把你的指令收到啦,剃刀说一般也就是个干扰器,先不说破译密码是否可行,可行的话,偷车里面东西的贼也不至于用这么高端的东西干这个活。吵架自此开始。
/ F# k" S6 U8 Z! r4 ]
8 l7 I' f& K* x# A, e后来南非的确破获了几个使用干扰器干烧锁车信号的团伙,这些人在停车场看到人锁车的时候发送干扰信号,如果车主自己不小心,实际上车就没锁,那么车里面的东西可不就任人拿了。当时南非警察直接说,锁车的时候确认一下锁好,听到声音,确认双闪了,就没事了。也的确如此,这个传言也就没了,类似事情也没再听说过。这个事情我发微博了,剃刀知道。三思对我的关注抽疯一样,有时关注有时取消,她看没看到我就不知道了。
$ S8 R) C" j& }3 f! _/ [- H) I+ H' z6 X0 f3 L8 x# ]+ s! o; P
最近这不就又吵起来了。
3 e1 B' h  d& y+ w( O1 O1 p5 Q5 X, q; h' [6 e8 ]5 }
这两个人一直不对付,吵了很久很久了。后来吵架根本就不是争论是非,而是比谁的粉丝声音大了。6 J5 x$ p' T! x- @5 m* h+ @

作者: code_abc    时间: 2012-4-5 23:46
橡树村 发表于 2012-4-5 23:30 0 v& Q$ J# h% g) n  \# E9 q. T
微博这次吵架和我有关系。) a+ O$ ?4 f: @" o, e! `9 @

3 N2 w+ `! j6 ~) X# F去年我在剃刀和三思吵架的某个微博里面插了一句,问这个事情。

; V/ a! f- b7 F# X5 b7 p我发现这些破解的研究机构还有后续的报道都很有职业道德,其实公开资料很少。破解者直接把报告给了厂家。网上找不到具体漏洞的细节。不过从公开内容来看,基础破解过程不是一般的偷车贼能干的活。
9 H4 |* z7 L6 C9 }7 H. n1 F9 M$ F* q" f) Q2 q7 p
起先是一个不太道德的俄罗斯网站入侵了KeeLog的服务器盗取并公开了他们的算法,然后比利时和以色列的两个大学一伙人分析了这个算法,搞出了07年的事件。08年则是德国人用差分功耗分析再次声称破解了一部分密钥。  Y& }: f  q& K/ Y/ ^7 D" s6 h

! k, I1 ?; T1 o* d4 f6 z* k1 [- P差分功耗分析是通过分析加密电路的功耗变化来猜具体的处理过程和参与运算的数据位。需要高分辨率的电流采样功能和比较高深的算法知识。属于一种旁路攻击——就是根本不看你的算法和实现,在几个假设基础上通过你的耗电来推算密钥。3 @8 \  Q) F9 P) _  i
. h& a6 z1 `% Z& Y! T8 M
我上面的贴子写的太简单了。
作者: sduivy    时间: 2012-4-6 08:56
code_abc 发表于 2012-4-5 23:46 ; d4 o' B  }* j7 T$ \3 }  l
我发现这些破解的研究机构还有后续的报道都很有职业道德,其实公开资料很少。破解者直接把报告给了厂家。 ...

0 q7 y+ b; U" r这些破解者的目的是啥呢?兴趣?
作者: code_abc    时间: 2012-4-6 12:48
本帖最后由 code_abc 于 2012-4-6 12:49 编辑
* l8 l' }' d0 x! J0 b8 r9 B0 E/ c! c+ [- V" x. t
汽车遥控防盗器安全吗 (续篇)
" S: l# Q' B  y8 X9 x' t9 L! p  S, M+ M8 _
  《汽车遥控防盗器安全吗》写的有点粗糙,里面介绍的东西总的来说有点过时了。在IT、电子技术日新月异的今天,四、五年前的报道差不多可以进博物馆了。何况里面还有更老的技术。另外,作为职业IT人士居然在文章中强调自己的无线电专业学历,而对精彩的破解算法的过程一笔带过,真是一种背叛。所以下面我在来说一些新一点的,有些IT味道的内容。
! E: \8 e5 x; P# t) e
6 {% ^1 @7 T* k# P    目前大多数车主还在使用类似遥控器的钥匙,也就是那种按一下按钮才能开门锁车的钥匙,这种安全系统英文称之为Remote Keyless Entry(RKE,我翻译为遥控无钥门证,搞汽车的同学麻烦给我一个权威的说法……)。新一代的钥匙系统叫Passive Keyless Entry(PKE,我翻译成被动无钥门证),这个系统估计有人已经在用了,通常一些高档车,新车都会提供这一选项。和RKE不同的地方在于,这个PKE系统不需要用户掏出钥匙,只要身上带着钥匙走近自己的车就可以开门,进去之后也不用把钥匙掏出来插进点火器。至需要按一下车上的“开始”按钮(这一定是微软的工程师干的)就可以把车开走了。相应的你下车关门走人之后,车子会自动把们窗锁好。和微软一样,非常贴心的设计。
" i; {0 b  [3 i* l3 I
" v" P. G9 F9 F! `% Q    在介绍PKE工作原理前跑一下题,前一篇写出来之后有人对钥匙系统的加密能力提出疑问——为何这么弱,为何不使用已经证明是安全的密码协议。我的回复过于轻率,在这里展开一下,顺便为后面的介绍打个基础。
; G8 h: Z( i* m: J' y- W& q
( I/ P5 O3 k7 H  k    首先,钥匙系统要解决的问题是身份验证问题,不是信息保密传输问题。加密和身份验证有关系但又有本质的区别。身份验证通常的方式是让被验证者证明自己知道什么东西,或拥有什么东西。举个例子,在猜猜我是谁的诈骗游戏中,诈骗方通过语言技巧窃取“我应该知道什么”的信息,而你在后续交谈中则使用“你应该知道什么”来验证对方自称的身份。这就是一种身份认证,如果对方通过别的渠道获取了你的同学、朋友的经历,那么你就容易上当受骗,这种通过事先获取验证信息,再告诉你让你相信诈骗者身份的攻击方法,在信息安全领域里称之为回放攻击。' H' Z/ [8 V! J3 `
+ \. p' P! [4 A1 U2 u: z0 O# |+ c
    为了防止回放攻击,我们需要在验证过程中加入随机效应。比如你和朋友共同知道100件事情,而骗子如果只知道其中几件就只有很小的概率在电话中让你上当。当然了,骗子可以和你多玩几次或者找多个人来玩这个游戏,小概率事件多次重复中奖的概率就大大提高了。所以,你看我们人工验证的方式是多么地不靠谱啊。不过计算机就不同,计算机产生随机数的结果可以很多,即使可以快速重试很多次,在极小的概率面前中奖的可能性还是非常渺茫的。所以这里的身份验证主要是依赖随机数生成而不是加密。有人也许会说,通过密钥交换协议每次生成一条随机密钥来加密身份信息不也可以吗?确实可以,不过我们先不考虑实现协议的硬件开销、功耗问题。只看协议本身,这个协议也要使用随机数。攻击者有两条路来进行攻击,通过破解随机数算法来破解密钥从而得到身份信息。或者通过分析每次加密的身份信息来获取密钥或者反推身份信息,因为每次加密的信息都是相同的,只是密钥不同,分析起来可能有快捷的方法。由于密钥交换协议本身不能用来验证身份,所以这种方法并不见得比仅靠随机数生成来得严密。
: I% B( m. r! T* ?. g0 G
4 x( {+ R- [6 Y9 H8 v0 Y    计算机产生的随机数其实不是真随机,事实上是一组有随机特性的可预测数列——是伪随机数。通常的伪随机算法包含一个种子和一个密钥。在钥匙系统里,钥匙和汽车都有一组相同的种子和密钥,因此双方生成的为随机数是可以匹配的。钥匙系统的身份验证归根到底就是验证对方是否知道种子和密钥。
! n& S7 T$ t3 y* ]0 o5 U* e, I5 I5 b" ~: h* x1 L4 y1 k
    事实上,这种依靠随机数生成来验证身份的方法也是有标准的。在我们平时使用的非接触式门禁系统或其他射频身份识别系统中有不少用的也是这种技术。0 _1 k6 \* Z( Q* x2 k' W

& q0 o: d  y; D- \( M    回过头来继续讲汽车防盗系统PKE——被动无钥门证。这个其实是在传统遥控的基础上进行改进的。主要区别是这种系统中汽车会定期发送一个150KHz(不同系统频率不同,不过都是低频信号),这个信号里面包含汽车本身的身份码。当钥匙进入这个低频信号范围的时候就会发出回应信息。这时候车子就知道主人来到自己身边了,因此会准备好开锁。当主人坐进车子的时候,点火开关也马上准备好等着主人按下。在这个过程中,汽车和钥匙一般是采用挑战回应模式相互验证的。这样要比上一篇所描述的钥匙单向提供验证信息更为复杂。而且汽车发出的低频信号影响范围很小,大致只有不到20厘米的距离。天线一般安放在车门把手和车内的驾驶台上,这样是为了确认钥匙就在附近。然而这个看起来还不错的系统还是有一定缺陷的。# ?5 s$ k$ R. Y. @
+ D- b$ E. H8 b0 \
    去年(2011年)有人声称使用中继攻击方法可以破解这种系统,在8个厂家的10台车上做了验证[1]。其方法是把汽车发射的低频信号,通过一个接收天线收下来,再通过馈线连接到另一个天线上。这样把汽车的检测信号传送到远离汽车的钥匙旁边,触发钥匙回应和开锁。由于钥匙回应信号是通过UHF发射理论上可以传输100米以上,这样仅仅中继汽车的检测信号就能让远离钥匙的人在车旁开门,当把天线放在驾驶台的时候,甚至可以启动汽车。3 Q1 b' _+ m4 P8 x1 u6 P

2 r6 `  d' m  _0 M9 e% I* o    图片来自参考文章- v* j: |. E; y; d8 F2 a. _

* F" |# H0 T9 z) ?) E' z% _( W/ I; c1 W' o; d3 E$ H3 e
    虽然拖着一条电缆的贼比较猥琐,但是这个方案稍作改进就非常时尚了。实际操作中可以将汽车的低频信号调制到一个射频载波上,这样就可以省去那条笨重的馈线,采用无线转发的方式进行中继。同样的钥匙信号也可以用相同的方法进行无线中继。所以当你在餐厅大快朵颐的时候,旁桌的人也许就能帮助车库的贼把的车子开走!1 a+ P0 X# B; `% t. ]; y2 ?

, N' [1 j3 {0 A% b: ~    这种采用物理信号直接中继的攻击方式,也算是一种旁路攻击。在这里算法和加密什么的都不起作用。因为这个系统的一个弱点在于钥匙位置检测依赖于简单的低频检测信号,系统假设只有在很短的距离内钥匙才能收到检测信号。一旦这个假设被电磁中继破坏整个系统就不再安全了。因此良好的PKE系统必须有安全有效的距离检测手段。
* Y9 q2 l) E, J' j' Z8 H6 B$ i  F! H; |; f7 R0 U
    从上面描述我们可以看到一个教训,安全系统只要有一个漏洞,攻击者就可以把一辆卡车开过去。8 q/ M( D, {- C
$ @- N5 a3 e/ A/ k' `' w

0 l9 f2 f+ I6 O1 B+ a+ L2 a! E% V+ R
[1] Relay Attacks on Passive Keyless Entry and Start Systems in Modern Cars. x8 v2 r( ?3 x% n2 S
, L; q; s% w. @/ m( A
Aur´elien Francillon, Boris Danev, Srdjan Capkun, n  J, l) s. H8 N4 r. @& ?

5 `: D8 w6 I  cDepartment of Computer Science
3 @$ l9 X& h, x/ P) p+ f
3 M9 F3 a1 Y: k- a% q, U8 ZETH Zurich+ O: n7 z  j$ k6 g$ f
, b- f2 ?6 o1 h5 m+ [$ r
       8092 Zurich, Switzerland
0 `0 y5 B$ W  s+ ^4 I6 ^2 F
2 E, [2 B3 T  D: P- A0 `faurelien.francillon, boris.danev, srdjan.capkung@inf.ethz.ch
作者: code_abc    时间: 2012-4-6 13:08
sduivy 发表于 2012-4-6 08:56 : b/ a. q; p& D) m$ G
这些破解者的目的是啥呢?兴趣?
7 s0 A* J  \# p  F( ]9 _7 [
也许吧。我想正规的安全研究领域这些不过是日常工作的一部分。科研院校、企事业单位里的科研人员也要找课题啊。碰上个能吸引眼球(也许还能吸引资金)难度又不太高的课题不容易。
作者: 小剪子    时间: 2012-5-2 09:11
sduivy 发表于 2012-4-6 08:56 # `3 E* A0 t% k+ Z* ~
这些破解者的目的是啥呢?兴趣?

8 g$ I, h: B- E( d很多这方面的高手后来都成了安全顾问了
作者: 爱思伯爵    时间: 2012-5-3 14:33
俺的车车在遥控锁门后后视镜就会卷起来,所以如果被干扰了没有锁上是看得出来的。
作者: 就爱抬杠    时间: 2012-5-4 05:04
code_abc 发表于 2012-4-6 12:48 * b0 w' d. j: ?
汽车遥控防盗器安全吗 (续篇)
6 M7 V$ ^8 D, v1 t1 |' H! Y" b; V: w8 Z7 F" ]9 l# R
  《汽车遥控防盗器安全吗》写的有点粗糙,里面介绍的东西总的来说有点过时 ...

( H2 j& M' v6 V这个思路好。话说花功夫琢磨怎么开保险柜不如直接把保险柜抱走,确实很多加密算法出口是个弱点,人家才不耐烦管你里面怎么算来算去。
作者: lybgy    时间: 2012-5-6 10:27
看来以后锁完车要拉一下门
作者: 宇文泰    时间: 2012-5-7 22:59
车上有一个PCU
2 s2 }( m8 x; A3 G
7 Q% W, n3 u4 c/ ^
作者: 包子    时间: 2012-5-8 22:11
很不幸,目前土鳖国大量充斥着楼主所说的原始遥控防盗器,价格在300左右都是。
作者: 湖绿    时间: 2012-5-12 09:47
爱思伯爵 发表于 2012-5-3 14:33 # {( h9 a( v/ X$ F5 A" U' f, T
俺的车车在遥控锁门后后视镜就会卷起来,所以如果被干扰了没有锁上是看得出来的。 ...
- [& P0 i: d& [8 ]$ ^
这个信号和尾灯双闪没分别
作者: iamray    时间: 2012-5-15 12:06
有次在一个工地的确碰到干扰了,还好走的时候拉了一下车门,才发现车没锁。反复按遥控器,发现都锁不上,只好一人坐车上等,郁闷死了。但当时看附近好像也没有闲杂人等,不知道干扰源再那里。
作者: 知之后哀    时间: 2012-5-16 00:31
为啥坐着等 不是还有机械钥匙可以用么~~
作者: 潜水将军    时间: 2012-8-23 14:01
这个不是干扰,而是破解,破解有两种途径:7 z# o  z+ c5 r  w; u1 y
1、空中捕获信号;& n# q. Y8 W& u7 p
2、穷举法硬破解。8 X6 J( c# Z/ z4 n
现在绝大多数汽车中控锁的无线通讯是单向的,采用滚码加密,但滚码可被破解,穷举法用不了多长时间,而空中捕获信号的话则可以大大减少破解的时间。) N" p/ l8 @- K* c7 l
解决这个问题的根本办法是采用双向多次通讯,这时可采用DES等加密强度相对滚码要大得多的算法,这个靠便携式设备是无法在短时间内破解的,如果在通讯上再使用扩频或跳频通讯,可以进一步大大增加信号被捕获的难度,破解自然就难上加难了。2 L) E* z8 P4 V1 |6 a
双向通讯的中控锁在市场上有,价格稍高,中控锁基本上由售车店“免费”配,所以成本变得很敏感,多数产品还是单向滚码制的。
作者: 燕庐敕    时间: 2012-8-23 17:03
code_abc 发表于 2012-4-6 13:08
9 d5 o# g; V0 F- ^7 h4 e' |也许吧。我想正规的安全研究领域这些不过是日常工作的一部分。科研院校、企事业单位里的科研人员也要找课 ...
  `; r/ ?6 @' j" j# v2 _3 @- I
现在新的PEPS系统,只有你走到车旁去拉门把手(称为PSU)或者按门把手的一个键(称为HSU)时,才会有低频信号发出检测。当然,你跑去拉门,然后接受信号还是可以的。
作者: lcxbbb    时间: 2012-8-23 21:34
要不怎么说道高一尺魔高一丈呢~~~
作者: 潜水将军    时间: 2012-8-25 17:20
iamray 发表于 2012-5-15 12:06
: n5 N1 b8 {0 n: ?有次在一个工地的确碰到干扰了,还好走的时候拉了一下车门,才发现车没锁。反复按遥控器,发现都锁不上,只 ...
6 Q4 K2 ?, o2 I+ g2 o& K
干扰可以来自火花,比如电焊、有刷电机等等,如果干扰场强强于发射机信号场强,那么接收机就无法收到上锁的信号,自然无法执行相应动作,用干扰发射机也可以实现,这招仅对粗心的人士有效。
作者: dragonnj    时间: 2012-8-27 09:07
早几年,在广州听一开车师父说,他们那的小偷晚上到小区,一按开锁器,所有相同的电子锁都开了,然后一辆辆的都开走。




欢迎光临 爱吱声 (http://129.226.69.186/bbs/) Powered by Discuz! X3.2