小孩佩戴防走失,紧急情况下能和父母通话,儿童安全手表面世以来解决了很多家长的烦恼。然而,最近有人发现,许多所谓的安全手表有可能会被黑客利用的漏洞,导致儿童被不法分子实时监控。
由于目前国家对于儿童安全手表没有任何规范,市场上此类产品在信息安全、辐射强度等方面的质量参差不齐,如果不仔细鉴别,打着“安全”旗号的手表反而会让儿童更不安全。
安全手表成“定时炸弹”
打开淘宝搜索“儿童安全手表”,共有5600多个商家,涵盖几十个品牌。除了360、华为、搜狗等知名品牌之外,还有很多来自于深圳的小公司。这些公司的生产模式大同小异,从方案商那里拿电路板方案和公共模具,贴牌生产,实际上是山寨产品。
业内人士透露,现在市面上一共有10多家方案商,多靠卖方案为生。由于在儿童手表领域没有积累和研究,这些产品在软硬件上都存在瑕疵。
这次出现严重高危漏洞的方案就来自于深圳一家公司,该方案被应用在亦青藤、守护星、智多星、优者、智力快车等几十个品牌的产品上。按照这些品牌的儿童智能手表出货量估算,影响儿童可能高达百万。
根据漏洞发现者发布在乌云平台的描述,这个漏洞是一个服务端漏洞。黑客利用该漏洞可以读取佩戴此类手表的儿童的地理位置、活动轨迹、实时环境声音等。随后,智能设备安全的NumenTeam小组也证实了这一发现。
“不法分子如果和黑客联手,就能清楚地知道孩子什么时候上下学,什么时候独自步行,安全手表会把孩子暴露在危险中。”
缺少标准山寨横行
作为一个小品类,过去一年儿童安全手表市场经历了快速发展,功能也在原先定位的基础上加上了通话、社交、游戏等。但因为门槛低且缺乏行业标准,大量山寨产品进入市场。
儿童安全手表的第一诉求是“防拐”。目前GPS+LBS+Wi-Fi的定位、安全区域的设定及主动的信息提醒成为所有此类手表的标配。定位需要发射和接收信号,多多少少有辐射。为了减少辐射,华为荣耀小K、360儿童卫士等产品将天线嵌入到表盘里。
“我们采用间歇式定位手段,避免持续工作。在室外采用GPS,在室内则优先采用Wi-Fi,两者的辐射都比较小。”赵君说。按照国家规定,手机需要经过SAR(人体暴露于射频电磁场的热效应)标准测试,无线终端暂时不用。
因为不需要备案,山寨厂商为了追求利润,材料选择比较随意。一位业内人士透露,以表带和电池为例,不同材料成本差40%左右,山寨厂商的一只手表成本价可能只有150元左右,因此其售价可以低于200元,只及知名品牌三分之一。
赵君表示,目前360儿童手表团队有10个人专门负责安全,主要是防止有人通过恶意手段入侵软件云平台,或者通过进场干扰,恶意模拟家长联系儿童。
他建议,家长为孩子选择手表不要贪图便宜,最好选择正规大公司,同时查看表带、表身的材质,优先选择有相应国家合格证件的产品。
小品牌厂商手表的漏洞还存在哪些危险?”
1、有可能导致佩戴儿童智能手表的小孩所在位置泄漏。尤其是家里比较富裕的孩子,可能借助手表漏洞,获取孩子地理位置,发生绑架等危险。
2、有可能监听儿童智能手表周边的声音。现在很多有手表都用通话、监听、录音等功能,通过这些漏洞,不法分子可随时听到孩子声音,了解孩子所处环境、若手表放在家里,也随时可录制到家长的对话,无论对于小孩子和家长,都存在比较大的隐私泄漏危险。
3、有可能切断家长与孩子的联系。这样即便有手表,也没有任何用处,会直接导致家长与孩子失联,有可能引发更多意外危险发生。
4、有可能家长及孩子的电话、身份等信息泄漏。由于家长使用APP绑定孩子手表,家长手机号、孩子身份证号等相关信息都会被不法分子窃取,会带来很多信息泄漏引发的麻烦。
( 责任编辑: 刘长利 )
鉴于目前市面上的儿童智能手表鱼龙混杂,家长在选购时还应该认准大品牌,最好具有自主设计方案能力,配备良好的售后服务及软件升级能力等,远离贴牌和山寨儿童智能手表。
此外,家长在下载App前,先给手机杀毒,以免手机自带的木马程序泄漏孩子和家长的信息。
FreeMarker template error:
The following has evaluated to null or missing:
==> zxzx.logo [in template "zixun/baoguang_xiangxi.ftl" at line 269, column 30]
Tip: If the failing expression is known to be legally null/missing, either specify a default value with myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthessis: (myOptionVar.foo)!myDefault, (myOptionVar.foo)??
The failing instruction (FTL stack trace):
----------
==> #if zxzx.logo != "" [in template "zixun/baoguang_xiangxi.ftl" at line 269, column 25]
----------
Java stack trace (for programmers):
----------
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:98)
at freemarker.core.EvalUtil.compare(EvalUtil.java:230)
at freemarker.core.EvalUtil.compare(EvalUtil.java:148)
at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:103)
at freemarker.core.IfBlock.accept(IfBlock.java:82)
at freemarker.core.Environment.visit(Environment.java:265)
at freemarker.core.MixedContent.accept(MixedContent.java:93)
at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:193)
at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
at freemarker.core.Environment.visitByHiddingParent(Environment.java:286)
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:86)
at freemarker.core.Environment.visit(Environment.java:265)
at freemarker.core.MixedContent.accept(MixedContent.java:93)
at freemarker.core.Environment.visit(Environment.java:265)
at freemarker.core.Environment.process(Environment.java:243)
at freemarker.template.Template.process(Template.java:277)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283)
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233)
at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167)
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:669)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:574)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.modu.secure.html.filter.CacheFilter.doFilter(CacheFilter.java:90)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.modu.secure.util.AppUrlFilter.sendMsite(AppUrlFilter.java:311)
at com.modu.secure.util.AppUrlFilter.doFilter(AppUrlFilter.java:135)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:748)