收藏官网首页
查看: 2338|回复: 0

[问答] 机智云 M2M 安全机制

77

主题

89

帖子

1938

积分

金牌会员

Rank: 6Rank: 6

积分
1938
跳转到指定楼层
楼主
 楼主| 发表于 2022-6-27 20:20:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发

一、机智云安全机制描述

设备首次连接云端时自动注册。注册需提供一个由云端生成的随机字符串product_key并预烧录到设备的固件中, 以及一个由设备随机生成的密匙passcode。设备注册成功后,会收到一个由云端统一分配的did。设备注册成功后,每次连接云端时都必须使用did和passcode登陆云端。

用户在使用手机App前,必须要先在云端注册生成用户帐号。

用户想通过手机控制设备前,必须先与该设备绑定。绑定的过程其实就是获取设备的did和passcode的过程。需要能物理接触设备权限的用户才能获取设备的passcode。当用户按下设备的某个按钮后,设备会在短时间内处于可被配对状态,这时用户可以通过手机获取到设备的did和passcoce。手机会把用户与设备的绑定信息同步到云端。

用户在内网的环境下,必须要首先通过设备的passcode登陆设备。只有登陆了设备的手机才能控制设备。

用户在因特网的环境下,必须要登陆云端,且当用户有对该设备具有访问权限时(也就是用户与设备存在绑定关系)才能远程和设备交互。

当设备的passcode泄露后,设备可以重新随机生成新的passcode并通知到云端。基于原设备passcode的用户绑定自动失效。

所有在因特网场景下的网络通讯全部采用SSL/TLS加密。

设备passcode只会存在于机器与机器之间的通讯,用户无需接触passcode也无需知道设备的passcode是什么。

客户端连接云端的TCP服务端口后,如不发送登陆指令而只是长期占用该端口资源,30秒后,云端自动会断开该客户端的连接并释放该端口资源。

请求云端的数据包中,如出现格式不正确或超出允许的权限,该TCP连接会马上被断开,避免对云端或其它在线用户造成干扰。 

二、各种攻击行为分析

攻击者得知设备的id后(如设备的MAC地址)想远程控制该设备。由于用户需要先绑定设备(获取到设备的did和passcode)后,凭did远程控制设备才能成功。单靠设备id(如设备的MAC地址)是不能控制设备的。

攻击者假冒设备的身份连接云端,用于接收用户对设备的控制信息,从而得知用户对设备的使用情况。因为所有设备在首次连接云端时都生成一个随机的passcode并向云端注册得到did,后每次连接云端时都必须使用did和passcode登陆云端,攻击者因没有正确的设备passcode所以无法假冒设备的身份连接云端,因此无法监控用户对设备的使用情况。

攻击者进入到设备所在的局域网(可以是以朋友的身份到设备的拥有者家里作客),偿试在内网的环境下控制设备。因为在在内网的环境下,必须要首先通过设备的passcode登陆设备才能控制设备,而攻击者无法物理接触设备(如果能物理接触设备就什么权限都有了,因此不考虑这种情况),所以攻击者无法获取设备的passcode,进而无法在内网的环境下控制设备。

攻击者想通过检测(监听)用户与设备远程交互的信息流的方式得到设备的passcode,或得知手机与设备交互的信息内容。由于手机与云端,设备与云端在不安全的因特网环境下的通讯全部使用了SSL/TLS加密,所以攻击者很难通过检测通讯信息流的方式获取设备passcode或手机与设备的通讯内容等信息。

保存有用户密码或设备的passcode手机丢失。用户密码可以通过网站或另一台手机的方式重置。设备passcode可以通过按下设备上的重置passcode按钮重新设置一个新的passcode。

设备转让所有权后,原用户想继续控制该设备。新用户接手设备后,给设备设置一个新的passcode即可。基于原设备passcode的用户绑定自动失效,原用户无法再控制该设备。

机智云Web应用程序安全

一、用户登录和权限系统

首先,用户必须登录才能够访问机智云Portal,使用邮箱和密码进行登录。登录过程中传输的密码是不可逆加密后的密文,即使HTTP传输被**,密码也不会泄露。如果用户的登录邮箱泄露,攻击者可能会使用邮箱重置密码,这时系统会发送一封重置密码的邮件到用户的邮箱当中,点击里面的链接才可进行密码重置,只要用户邮箱密码没有同时泄露,攻击者就无法重置密码。另外,密码在数据库中的存储形式也是不可逆加密后的密文,即使是管理员也无法知道用户的密码。

其次,系统还强制了https方式访问,这样就使传输数据更加安全。

再次,系统实现了基于作粒度的权限管理,对每个用户都分配了对应的角色以及作权限。系统后台的角色有超级管理员,普通管理员,对于每个二级域名的用户自定义Portal也有对应的管理员、开发人员和销售人员等角色。不同的角色有不同的权限,对于敏感**作,还需要输入短信验证码进行验证,这样即使某个人员的密码被人窃取,对系统的危害也可以得到隔离,不会影响整个系统的运营。

二、防XSS

XSS全称Cross Site Scripting,叫做跨站脚本攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。

对于动态输入的内容,系统将所有特殊字符做了转义,再次显示该内容时,所有特殊字符都以其它字符代替,如‘>’显示为‘>’等,这样就使所有客户端脚本注入攻击失效。

系统对于存储用户登录session的cookie设置为HttpOnly,表示这个cookie只有服务端才能访问,客户端脚本是无法访问的。这样用户的浏览器运行了攻击者发送过来的攻击脚本,攻击者也无法获取到用户的登录cookie,防止了攻击者使用用户登录cookie绕过密码验证。

三、防CSRF

CSRF全称Cross-site request forgery,叫做跨站请求伪造。当用户登录一个A网站时,他的A网站登录cookie自动存储在浏览器上,这时如果他在网络上与攻击者聊天,并且攻击者发来一张图片,里面包含了A网站的一个表单请求URL,并预先设置好请求参数,用户点击之后,不知不觉就向A网站发送了这个请求,因为这时用户已经登录A网站,所以这个请求将被执行。

机智云系统通过在每个表单里设置一个隐藏的 CSRF Token来防止 CSRF 攻击,其他参数攻击者都可以预先设置好,但是CSRF Token是每次访问都从服务器动态获取的,攻击者无法伪造,这样就有效防止攻击者进行CSRF攻击。

四、防SQL 注入

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的**作,其主要原因是程序使用用户传入的参数进行SQL语句动态拼接,并且没有细致过滤所有非法输入导致。

机智云系统使用ORM系统进行数据库**作,在程序中并不会动态拼接任何SQL语句,可以有效防止SQL注入攻击。

五、防文件上传攻击

文件上传攻击是指攻击者通过Web应用的文件上传功能,上传恶意执行的脚本,如果系统没有设置好文件路径权限,攻击者将可以通过访问上传的恶意脚本文件,达到执行恶意脚本,进而破坏系统的目的。

机智云系统对可执行脚本目录和静态文件目录做了严格的区分,静态文件目录完全没有执行权限。另外,对于用户上传的文件,系统直接已二进制的方式存储在数据库中,恶意脚本根本没有执行的机会。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表