文档
»文档»技术文件»了解网关连接服务器

了解网关连接服务器

支持大规模网关部署场景在自动化和安全的方法,罗拉®的网关必须遵循一个加入的过程,类似于用于终端设备在LoRaWAN®网络。网关连接过程将网关的一生中的两个主要阶段:生产和部署。

在本文中,我们首先看网关从制造业的旅程,直到部署。接下来,我们将讨论谁拥有一个网关,网关连接服务器的概述,在深入的细节相关的api。

本文假设读者熟悉LoRaWAN网络,罗拉基本™站,这篇文章中描述的“网关连接过程”5件事你需要知道的关于LoRaWAN-based网关

LoRa-based网关的旅程

图1演示了两个阶段的网关的旅程。通常,LoRa-based网关的生命始于设计,然后实现制造阶段。生产阶段可能包括某种形式的个性化,即秘密是嵌入到网关的持久存储。

1:网关生产和部署阶段

网关是出售后,买方在LoRaWAN网络部署它,它连接到一个LoRaWAN网络服务器(LNS)。的部署阶段可能是重复多次的生活网关和可能需要网关更新LNS的凭证,举个例子,在迁移到一个新的LNS。这允许解决方案提供商灵活的网络供应商的选择。

制造阶段

在生产阶段,生产网关与通用的或定制的LNS固件。

通用LNS固件

通用LNS固件通常不包括特定的LNS端点配置或相应的LNS网关的凭证。在这种情况下,在制造业、LNS网关将连接的端点在部署是未知的。相反,为了一个网关连接到适当的LNS,这些信息必须在每个配置网关部署之前。然而,通用LNS固件也可能包含额外的嵌入的秘密。

自定义LNS固件

总的来说,自定义LNS固件包括gateway-specific凭证和LNS-endpoint配置细节。然而,客户固件通常需要一个最低采购量与制造商和特殊协议。这些类型的安排只有大型LoRaWAN运营商。此外,gateway-specific LNS端点的凭证必须与网关制造商和网关之间的所有者。这是如此,LNS网关将连接的端点在部署在制造业而闻名。

部署阶段

在部署期间,必须配置网关LNS端点,并必须配置适当的LNS授权证书。的配置更新协议(杯)可以用于配置网关和分配相应的身份验证凭证。

网关所有权

定义网关所有权并不是一个简单的任务。在本文中,我们考虑到人,组织或其他合法实体负责管理一个网关的LNS端点和相应的凭证作为网关所有者。此外,门户所有者也可以控制签署的执行代码。根据这个定义,一个所有者可以是下列一个或多个实体:

  • 制造商——以适当的支持协议,网关制造商可能会提供网关管理服务
  • 网络运营商——有线电视运营商完全控制调制解调器安装在人们的家庭;类似地,公用事业公司管理米安装在房屋
  • 解决方案或服务提供者——一个完整的解决方案包括网关管理的一部分
  • 最终用户——最终用户可以管理自己的网关管理个人无线网关

所有权的证明

连接网关LoRaWAN网络,你必须能够证明所有权。你怎么这么做?

网关应该能够获得一个秘密从gateway-specific主密钥,通常嵌入在制造业。所有权证明,一个实体必须提供适当的秘密,只能以一种安全的物理交互与网关,或与一个真正的购买的记录。我们将把这个秘密要求销

网关连接服务器

网关服务器加入解耦了LNS凭证从制造业的配置,使网关迁移LNS提供者之间的网关。生产和部署阶段使用网关连接服务器时如图2所示。在这种情况下,门户所有者没有完全控制在配置一个LNS端点和LNS凭证与网关制造商共享。

2:生产与网关连接服务器和部署阶段

至关重要的是,网关连接服务器可以验证都声称从网关从所有者和身份验证令牌。为此,网关连接服务器必须能够验证的有效性要求针和身份验证令牌使用双硬件安全模块(HSM),有相同的批处理根关键信息HSM期间使用网关制造业。批根关键是唯一的秘密,是两者之间的分享hsm(用于制造和相关的一个网关连接服务器)。一批网关包含一系列网关MAC地址共享一个密钥派生计划使用一个共同的批根键。批处理根键从未离开过双胞胎hsm的安全域。

制造阶段的HSM人性化网关,网关主密钥,这是来自批根键。网关就可以自动获得身份验证令牌和索赔别针从这个网关主密钥,如图3所示。注意,第二个HSM是连接到网关连接服务器并持有相同的批处理根键。

3:网关钥匙,令牌和索赔

协助网关所有者,索赔销应该是一起印在网关标签对应的MAC地址,或者可以用一个API从网关读取索赔销本身。另外,为了证明拥有大量的网关,索赔针可以通过一个安全的过程与特定制造商为客户将大量订购。在这里,声称销是一个网关的秘密所有权证明。

API概述

在其核心,网关连接服务器提供了两个重要的API,网关API和业主API。的网关API实现服务器端身份验证的协议,由罗拉基本站。的主人API允许网关用户配置LNS端点和相应的凭证,以及安排通用签名更新。

在下面几节中我们将关注所有者API的基本功能:

  • 索赔网关使用嵌入式索赔的秘密
  • 设置凭证和uri LNS和杯子
  • 删除一个网关(允许其他业主索赔,例如)
  • 添加一个网关(这是一个一般情况下覆盖网关没有嵌入式的授权令牌和索赔的秘密)

网关API描述在长度罗拉基本站杯协议文档。先进的所有者API的功能将在以后的一篇文章的主题。

主人API:索赔

用来声明一个网关或一组网关为指定的所有者。索赔gateway-dependent字符串。网关可以执行任何操作之前(例如设置、信息、删除等)必须由一个所有者声称。

POST / api / v1 /网关/索赔

响应标头:

状态码:

JSON请求单:

{
“ownerid”: ID6
“网关”:ID6 EUI64或MAC
“声称”:字符串
}

JSON请求批量:

{
“ownerid”: ID6
“网关”:[{“网关”:ID6,“声称”:字符串},…)
}

JSON响应:

(
{
“网关”:ID6
“错误”:字符串/ /只有失败
}
. .
]

示例请求:

帖子/ api / v1 /网关/索赔HTTP / 1.1
主持人:gwjs.sm.tc: 9193
内容类型:application / json
{
“ownerid”:“:: 1”,
“网关”:“00-00-00-FF-FE-00-0A-BC”,
“说”:“VfjK89h3”
}

示例响应:

HTTP / 1.1 200 OK
内容类型:application / json;utf - 8字符集=
[{“网关”:“0:ff: fe00: abc”}]

主人API:设置

允许一个所有者配置端点URI和相应的凭证。端点uri和凭证LNS和杯子都是可配置的实例。

POST / api / v1 /网关设置

响应标头:

状态码:

JSON请求单:

{
“ownerid”: ID6
“网关”:ID6
“cupsUri”:字符串/ / URI
“cupsKey”: B64STR/ /字节的DER键或HTTP“授权”头(包括\ r \ n)
“cupsCrt”: B64STR/ /字节的证书
“cupsTrust”: B64STR/ /字节的证书
“lnsUri”:字符串/ / URI
“lnsKey”: B64STR/ /字节的DER键或HTTP“授权”头(包括\ r \ n)
“lnsCrt”: B64STR/ /字节的证书
“lnsTrust”: B64STR/ /字节的证书
“fwcrc”: INT/ /固件CRC
“fwafter”: ISOTIME/ / ISO时间字符串之后提供一个固件更新一次。
}

JSON请求批量:

{
“ownerid”: ID6
“网关”:
(
{
“网关”:ID6
“cupsUri”:字符串/ / URI
“cupsKey”: B64STR/ /字节的DER键或HTTP“授权”头(包括\ r \ n)
“cupsCrt”: B64STR/ /字节的证书
“cupsTrust”: B64STR/ /字节的证书
“lnsUri”:字符串/ / URI
“lnsKey”: B64STR/ /字节的DER键或HTTP“授权”头(包括\ r \ n)
“lnsCrt”: B64STR/ /字节的证书
“lnsTrust”: B64STR/ /字节的证书
“fwcrc”: INT/ /固件CRC
}
. .
]
}

JSON请求混合:

为了简化设置大量的网关,可以指定参数共同网关在顶层混合的请求。下面的代码示例显示了一个混合请求的URI和信任基础顶部的LNS指定水平,和gateway-specific单独指定客户端证书和密钥。

{
“ownerid”: ID6
“lnsUri”:字符串
“lnsTrust”: B64STR
“网关”:
(
{
“网关”:ID6
“lnsKey”: B64STR
“lnsCrt”: B64STR
}
. .
]
}

JSON响应:

(
{
“网关”:ID6
“错误”:字符串/ /只有失败
}
. .
]

详细描述

API调用允许一个所有者为杯和LNS服务器实现配置相应的uri罗拉基本站协议。uri编码为ASCII。所有凭证参数(信任、证书和密钥)和Base64编码。

注意:如果没有指定一个参数,其价值将合并现有的价值在网关服务器数据库连接。

当使用HTTP(杯)或Web Socket (LNS)作为uri,所有凭证参数可以省略。它们的值将被设置为零,也就是说,没有服务器身份验证和认证的客户将被启用。换句话说,将不安全的通信通道。

当使用HTTPS(杯)或者Web Socket安全(LNS),信任必须指定服务器身份验证。此外,如果证书并不是空的,基于证书的客户端身份验证要求的关键是Base64编码字符串格式私钥的网关。如果证书参数不存在或空字节字符串,关键参数必须以base64编码的字符串包含授权HTTP报头,它将用于基于客户端身份验证。

示例请求

帖子/ api / v1 /网关设置HTTP / 1.1
主持人:gwjs.sm.tc: 9193
内容类型:application / json

             
{
“ownerid”:“:: 1”,
“网关”:“就是:ff: fe: 00:0a: bc”,
“cupsUri”:“http://some.cups.com: 7654”,
:“cupsKey QXV0aG9yaXphdGlvbjogU29tZVNlY3JldEdhdGV3YXlUb2tlbiE = "
}

示例响应

HTTP / 1.1 200 OK
内容类型:application / json;utf - 8字符集=

             
[{“网关”:“0:ff: fe00: abc”}]

主人API:删除

删除一个网关或设置网关的当前所有者。删除一个网关有效版本(“取消声明”)从网关连接服务器。这允许网关的所有权被改变。

POST / api / v1 /网关/删除

响应标头:

状态码:

JSON请求单:

{
“ownerid”: ID6
“网关”:ID6
}

JSON请求批量:

{
“ownerid”: ID6
“网关”:[ID6, . .)
}

JSON响应

(
{
“网关”:ID6
“错误”:字符串/ /只有失败
},
. .
]

示例请求

帖子/ api / v1 /网关/删除HTTP / 1.1
主持人:gwjs.sm.tc: 9193
内容类型:application / json
{
“ownerid”:“:: 1”,
“网关”:“00-00-00-FF-FE-00-0A-BC”
}
}

示例响应

HTTP / 1.1 200 OK
内容类型:application / json;utf - 8字符集=
[{“网关”:“0:ff: fe00: abc”}]

主人API:添加

添加一个网关为指定的所有者。这个操作是网关没有生产的嵌入式声称的秘密。网关是由所有者来说,隐式地宣称这是补充道。同样应该在相应的使用杯*。key罗拉基本站配置文件。添加一个网关将会失败如果网关已经存在或与现有的批处理冲突。

要求的数量添加操作是严格限制/所有者。默认的上限是64。

令牌是一个字符串。相同的字符串应该放在一个适当的HTTP头(即\r \ n在相应的行尾分隔符杯*。key罗拉基本站主文件夹中的文件。

注意:杯* crt应该是空的或删除。

例子cups.key

授权:令牌\ r \ n

示例请求

帖子/ api / v1 /网关/添加HTTP / 1.1
主持人:gwjs.sm.tc: 9193
内容类型:application / json
{
“ownerid”:“:: 1”,
“网关”:“00-00-00-FF-FE-00-0A-BC”,
:“flavorid Kerlink”,
“令牌”:“HJg87hjgsadi8732kh = = "
}

示例响应

HTTP / 1.1 200 OK
内容类型:application / json;utf - 8字符集=
[{“网关”:“0:ff: fe00: abc”}]
Baidu
map