物联网的产品生产履历管理系统的制作方法

文档序号:12182739阅读:255来源:国知局
物联网的产品生产履历管理系统的制作方法与工艺

本发明是有关于一种云端服务应用的系统,特别是有关于一种使用物联网连接架构的产品生产履历管理系统。



背景技术:

随着科技之快速发展与经济之结构巨变,传统「企业对企业」之竞争形态已演变为「供应链对供应链」的竞争局面。提升供应链信息整合功能,以改善物流效率及降低物流成本,是现今企业创造竞争力的重要课题。随着「无线射频识别」(Radio Frequency Identification,RFID)技术的进步,RFID已逐渐被采用于供应链活动与流程改造。

使用物联网的管理系统,有助于提高产业竞争力的两种特性因子分别为效率性与完整性。首先,就效率性而言,不只是在一定时间内把产品送至客户手中而已,还要加上在同时间内把不同的产品送至不同的客户手中的整合性配送方式。其次,就完整性而言,不只有提供产品的实体完整性,还要提供产品内容信息,包括产品的生产履历、产品是否为真品等。厂商为了提升这两种特性,必须要取得产品本身的实时信息,因此藉由物联网结合感测组件(例如:RFID、电子卷标)技术配合云端监控系统,即可协助消费者、企业与其伙伴(经销商),能够在第一时间提供产品的实时信息。

藉由配置在产品上的感测组件与云端监控系统所提供的实时信息,可提高顾客对于产品的完整性的满意度。产品的完整性不单只有实体产品的完整性,其产品内容的信息的提供,也是产品完整性的考虑方面。而且针产品从原物料取得、产品制造过程至产品出厂出之后,一直到顾客的手中,在这个过程中,可以透过物联网对产品实时信息的掌控,实时提供消费者对所要购买的产品信息,可以对所要购买的产品质量或是真伪作进一步的评估。

能够形成上述这些应用,是因为物联网(Internet of Things;IOT)连接架构的建立。物联网是藉由一个高度整合的云端网络,将每个人与周遭的事物 全部连接在一个网络内;例如:制造者、消费者、机器、生产原料、产品生产过程、物流管理、产品销售状况、消费习惯等,所有从产品制造到产品销售,进而到根据这些产品销售状况的大数据(big data),推断或预估出消费者的消费习惯等,都可以通过配置在产品上的感测组件(例如:RFID、电子卷标)与软件程序连接到物联网平台。同样的,物联网在效率和安全是最重要的二个关键条件,然而,效率和安全却是两个互相抵触的指标。因此,如何兼顾效率和安全是物流管理系统能否成功应用的关键。



技术实现要素:

为了将上述的需求实际运用在企业运营上,本发明之一主要目的在于提供一种物联网的产品生产履历管理系统,包括:客户端装置,为具有无线通信功能的装置,藉由特定用户标识符确认该客户端装置为物联网中的其中之一的客户端装置;云端装置,具有与客户端通信之功能,用以确认该客户端装置为物联网中的其中之一的客户端装置;第一代理伺服装置,具有第一网址及第一密码,并能与云端装置通信;第二代理伺服装置,具有第二网址及第二密码,并能与客户端装置通信;其中,于特定用户标识符确认客户端装置为物联网中的其中之一的客户端装置后,客户端装置将所要查询的产品数据只能经由第一网址及第一密码与第一代理伺服装置通信,再由第一代理伺服装置与云端装置通信,以便在云端装置将客户端装置所要查询的产品数据与产品生产履历数据库进行比对后,云端装置并将产品生产履历数据库中的讯息只能经由第二网址及第二密码与第二代理伺服装置通信,以便由第二代理伺服装置将产品生产履历数据库中的讯息传送至客户端装置。

经由本发明使用代理伺服装置所建立的物联网架构,除了可以提高物联网产品生产履历的管理系统的速度及降低运营的成本外;特别是在当有黑客在讯息传递过程进行窜改、盗用或否认等行为时,都可藉由本发明的安全认证来防止密码遭窜改或盗用,故可以确保产品生产履历的管理系统的安全 性。

本发明之另一主要目的在于提供一种物联网的产品生产履历管理系统,包括:多个客户端装置,每一个客户端装置均为具有无线或有线通信功能的装置,且每一个客户端装置均具有一个特定的用户标识符;云端装置,具有与客户端装置通信之功能,藉由特定用户标识符确认每一个客户端装置均为物联网中的其中之一的客户端装置,且云端装置中已建立至少一个产品生产履历数据库;多个第一代理伺服装置,每一个第一代理伺服装置具有一个网址及密码,并能与云端装置通信;多个第二代理伺服装置,每一个第二代理伺服装置具有第二网址及第二密码,并能与客户端装置通信;其中,于每一个特定用户标识符确认客户端装置为物联网中的其中之一的客户端装置后,每一个客户端装置将所要查询的产品数据只能经由每一个第一网址及第一密码与配对后的每一个第一代理伺服装置通信,再由每一个第一代理伺服装置与云端装置通信,以便在云端装置将客户端装置所要查询的每一个产品数据与每一产品生产履历数据库进行比对后,云端装置并将每一个产品生产履历数据库中的讯息只能经由每一个第二网址及第二密码与配对后的每一个第二代理伺服装置通信,以便由每一个第二代理伺服装置将每一个产品生产履历数据库中的讯息传送至每一个客户端装置。

经由本发明使用代理伺服装置所建立的物联网架构,除了可以提高物联网产品生产履历的管理系统的速度及降低运营的成本外;特别是在当有黑客在讯息传递过程进行窜改、盗用或否认等行为时,都可藉由本发明的安全认证来防止密码遭窜改或盗用,故可以确保产品生产履历的管理系统的安全性。

附图说明

图1A是物联网连接架构示意图;

图1B,是物联网连接架构另一实施例的示意图;

图2,是使用物联网架构建立生产履历与产品生产履历管理系统的示意 图;

图3A,是本发明产品生产履历的文字内容示意图;

图3B,是本发明产品生产履历的文字与图案内容示意图;

图3C,是本发明产品生产履历的产品保固数据内容示意图;

图4,是本发明使用物联网建立生产履历及查询生产履历的流程图;以及

图5,是本发明使用物联网建立生产履历及查询生产履历的另一实施例流程图。

具体实施方式

为使本发明之目的、技术特征及优点,能更为相关技术领域人员所了解并得以实施本发明,在此配合所附图式,于后续之说明书阐明本发明之技术特征与实施方式,并列举较佳实施例进一步说明,然以下实施例说明并非用以限定本发明,且以下文中所对照之图式,系表达与本发明特征有关之示意。

首先,请参考图1A,是本发明的物联网连接架构示意图。如图1A所示,物联网连接架构是由客户端装置(client device)100、云端装置(cloud device)500及至少一个代理装置(broker device)700所组成;其中,客户端装置100为一种具有无线通信功能且具有特定用户标识符的装置;云端装置500,具有与客户端100通信之功能,藉由客户端100的特定用户标识符确认客户端装置100为该物联网中的其中之一的客户端装置100;以及代理伺服装置700,具有其网址及密码,并能与云端装置500通信。

在本发明的物联网连接架构中,客户端装置100可以是一种随时变动的浮动IP地址(Internet Protocol Address),也可以是一种固定IP的无线通信功能的装置(例如:个人计算机、笔记本计算机、智能型手机、智能型便携设备、智能型读取装置等),并且每一个客户端装置100都具有独特性的标识符(例如:制造厂商于出厂时所设定的编码;又例如:MAC Address等硬件数据),以便用来产生客户端装置100的通用唯一标识符(Universally Unique Identifier;缩写为uuid),用以辨识或防止黑客侵入。此外,在本发明的物联网连接架构中,云端装置500是一种固定式域名系统(Domain Name System;缩写为DNS),其具有服务器(sever)之功能并且具有与每一个客户端装置100进行无 线通信之功能,同时云端装置500至少是由接收/发射接口模块、数据处理模块及内存模块等装置所组成;因此,云端装置500已经记录着所有属于本发明物联网中的所有客户端的uuid并已储存在内存模块530中,形成数据库。再者,代理伺服装置700是一种可随时变动的浮动IP,其最主要的工作是将确认是为物联网中的客户端装置100所传送的编码数据串在接收后,直接传送出至云端装置500;特别要说明的是,代理伺服装置700在收到客户端装置所传送的数据串后,不做任何处理,而是直接将接收到的资料串直接传送出去,在云端装置500收到代理伺服装置700的数据串后,再经过解碼后,才会对客户端装置100所传送的数据串进行处理。很明显的,在本发明的物联网连接架构中,在整个客户端装置100将数据串递给云端装置500的过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率,可以大幅度的提高物联网的安全性。

而在本发明的物联网连接架构的较佳实施例中,可以将多个客户端装置100分为多个群组,每一个群组分别对应或配对至一个代理伺服装置700,故在本发明的物联网连接架构中,可以有多个代理伺服装置700,如图1B所示。当云端装置500判断其中一个代理伺服装置700遭受黑客攻击后,可以选择将被攻击的代理伺服装置700关闭,或再重新建立一个新的代理伺服装置700的网址及密码,可以更确保本发明物联网的安全性。此外,在本发明的实施例中,代理伺服装置700是选择使用MQTT(Message Queuing Telemetry Transport)的通信标准(protocol)来做数据串的传送。由于MQTT是为了物联网而设计的协议,特别是基于发布/订阅模式的轻量级消息传输协议,其为IBM的Andy Stanford-Clark博士及Arcom公司的Arlen Nipper博士于1999年发明;最初是为大量计算能力有限且工作在低带宽、不可靠的网络的远程传感器和控制设备之间的通讯而设计的协议。因此,MQTT具有传输资料小且轻巧的优点,可以在带宽及速度上都有极大优势;也由于其所需要的网络带宽是很低的,因而使得其所需要的硬件资源也是低的,故可以将物联网系统或是使用此物联网架构的各种商业运营系统(例如物流管理或是产品的生产履历的建立与查询或是产品真伪度的辨识等)之效率性提升;也因此可以有效地降低商业运营的成本。

接着,详细说明本发明的物联网实际完成连接的过程及其方法。

请继续参考图1A,首先,由客户端装置100向云端装置500进行登录(如图1A中的S1标示的通信方向),例如:客户端装置100通过https向云端装置500登录,以便启动物联网系统。接着,当云端装置500收到客户端装置100的请求后(如图1A中的S2标示的通信方向),云端装置500会先验证客户端装置100所使用的硬件uuid(如MAC Address)是否已经储存在云端装置500的数据库中;若确认客户端装置100所使用的硬件uuid(如MAC Address)Address已经储存在云端装置500的数据库时,则产生一个客户辩证码(client uuid);接着,云端装置500产生一对专属客户使用的密钥;在本发明的较佳实施例中,此密钥是使用RSM非对称式密钥(Asymmetric Key);故可以产生出一对client_pub_key及client_pri_key;其中,RSM非对称式密钥具有解碼时间长,所以安全性高。此外,在另一个较佳实施例中,云端装置500还可以选择性的产生一个客户端装置100专属的对称式密钥(Symmetric Key)client_share_key。故在本发明的较佳实施例中,可以选择性的将RSM非对称式密钥及对称式密钥配合使用;由于,对称式密钥具有译码时间短,相对地安全性较低,因此需要随时变动client_share_key,以确保安全性;为此,云端装置500还会进一步产生/设定一个变动的时间(share_key_expiry date time),藉由不定时的更改share_key_expiry date time来提升安全性;故当云端装置500侦测到随时变动的client_share_key已经超过了share_key_expiry date time设定变动的时间后,即会自动产生新的client_share_key,以确保安全性。当云端装置500在确认一个客户端装置100的硬件uuid(如MAC Address)数据与储存在数据库中相同时,则判断此客户端装置100为本物联网中的客户端,之后,云端装置500会将所产生的uuid及密钥等讯息回传至客户端装置100(如图1A中的S3标示的标通信方向),这些回传至客户端装置100的讯息包括:client_uuid、sever_pub_key(此sever_pub_key即是client_pub_key;因为所有客户端装置100都会使用同一个pub_key,所以又可称为sever_pub_key)及client_pri_key。

另外,若当云端装置500收到客户端装置100的请求后,云端装置500比对出客户端装置100所使用的硬件uuid(如MAC Address)并不在云端装 置500的数据库中时,及判断此客户端装置100所使用的硬件uuid(如MAC Address)并非本物联网中的客户端装置,则将此硬件uuid(如MAC Address)讯息储存在另一个数据库中,以便后续比对。特别要说明,S3通信方向的回传机制,一般而言,是不会有错误的,但是还是有发生错误的机制;例如,等待Server反映时间过久导致此次联机失败,则会再由客户端装置100重新执行一次,但是此时的云端装置500会判定此次的硬件uuid(如MAC Address)已经在数据库中被记录,因而还是会将此硬件uuid(如MAC Address)对应的uuid回传,此时,云端装置500所产生并回传给客户端装置100的一对密钥会更新。因此,即便有假的装置使用任何方法仿冒此客户端装置100的硬件uuid(如MAC Address)也无法取得相同密钥。换句话说,只会有一个确定的uuid能存活在系统中。

接着,如图1A中的S4标示的通信方向,当客户端装置100以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码)通过https“要求”取得client_share_key、share_key_expiry date time、MQTT_Broker IP及MQTT_Broker账号及密码(username/password);而当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将client_share_key、share_key_expiry date time、MQTT_Broker IP及MQTT_Broker账号及密码等以client_pub_key编码后回传至客户端装置100(如图1A中的S5标示的通信方向)。

此外,在本发明的一个较佳实施例中,MQTT_Broker的IP、账号及密码可以选择分两次取得;例如,第一次(如图1A中的S4标示的通信方向),客户端装置100以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码)通过https“要求”取得client_share_key、share_key_expiry date time及MQTT_Broker IP;而当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将client_share_key、share_key_expiry date time及MQTT_Broker IP等以client_pub_key编码后回传至客户端装置100(如图1A中的S5标示的通信方向)。第二次(如图1A中的S6标示的通信 方向),客户端装置100再以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码),通过https“要求”取得MQTT_Broker账号及密码;而当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将MQTT_Broker账号及密码等以client_pub_key编码后回传至客户端装置100(如图1A中的S7标示的通信方向)。特别要说明的,第一次及第二次所要取得的内容中,只要求将MQTT_Broker的IP、账号及密码分两次取得,其他并不加以限制。

很明显地,在客户端装置100与云端装置500进行辨识与确认的过程中,所使用的https是属于混合型密码防骇、安全通讯协议(Secure Sockets Layer;SSL)或传输层安全协议(Transport Layer Security;TLS),其本身属于公认的安全协议,且云端装置500端所需要有的公认凭证,可以由客户端装置100端藉由认证中心的数字签名来确认讯息是否由云端装置500直接传出;因此,当有黑客在讯息传递过程进行窜改、盗用或否认等行为时,都可藉由这些安全认证来防止密码遭窜改或盗用。

接着,如图1A中的S8标示的通信方向,当客户端装置100自云端装置500取得相关数据后,客户端装置100随即会与代理伺服装置700进行连接;但在进行与连接代理伺服装置700前,必须确认所收到的讯息必须完整,此完整的讯息包括:1.Sever_pub_key;2.Client_pri_key;3.MQTT_Broker IP;4.MQTT_Broker username/password;5.client_Share_key;6.Share_key_expiry date time。当客户端装置100在确认收到完整的讯息后,会使用client_share_key将client_uuid及客户端装置100所要传给云端的数据内容(data involved)进行编码后,再上传至代理伺服装置700(即MQTT Broker)。

在本发明的较佳实施例中,客户端装置100会进一步检查Share_key_expiry date time的时效是否已经到期(例如:到期日为2015/0501);如果已经过了Share_key_expiry date time的时效时(例如:检查期日的结果为2015/0502),则客户端装置100会重新以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码),通过https要求取得新的share_key_expiry date time讯息;而当云端装置500收到转成乱码的client_uuid后,即会根据 sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将新的share_key_expiry date time以client_pub_key编码后回传至客户端装置100。此外,为增加安全性,share_key-_expiry date time所设定的时间可以是周期性的,也可以是随机变量的,可以由云端装置500决定。

当客户端装置100在确认已收到完整的讯息后,此时客户端装置100已经知道代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码,故客户端装置100可以将编码的client_uuid及数据串(例如:产品的生产履历等)上传至代理伺服装置700(如图1A中的S8标示的通信方向);接着,代理伺服装置700在收到客户端装置100所上传的编码client_uuid及数据串(例如:产品的生产履历等)后,随即将客户端装置100所上传的讯息直接(也就是说,不做任何处理)传送给云端装置500端;很明显地,整个物联网在客户端装置100将其讯息串递给云端装置500的过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率。由于代理伺服装置700只是将客户端装置100上传的数据直接传送给云端装置500,故可以降低代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码被破解的机率,可以更增加物联网通信过程的安全性。

接着,如图1A中的S9标示的通信方向,云端装置500在接收到代理伺服装置700所直接传送的数据(即经过编码后的client_uuid及数据串)后,随即使用client_share_key进行译码(Decode),并且会验证所收到的client_uuid及数据串(例如:产品的生产履历等)是否完整及正确;如果正确时,则再储存至内存模块530中,等待用户将这些收到的数据串(例如:产品的生产履历等)进行特定的应用;例如:建立至少一个产品的生产履历数据库;若验证所收到的client_uuid及数据串不完整或不正确时,则进行记录。要说明的是,要验证出不正确的讯息的目的,是可以由物联网系统借着人工智能作深度学习或人为增加、更改或修正的验证机制,来防止或降低被骇成功的机率。在本实施例中,不正确的讯息包括,例如:(1)由网络爬虫抓取新闻发现当下某些商品的伪品猖獗;又亦或是(2)程序一开始便设定的同一个client_uuid,竟然在同一时间出现在两个完全不同的地方,此时物联网系统会通知公司稽查人员 或提出警告,而稽查人员可做出的处置方式至少有观察或忽略等动作,达到事先预警及防骇的功效;又亦或是(3)装置500本身持续受到某特定代理伺服装置700传送可疑信息时,例如:不明的client_uuid信息时;当不正确的讯息持续出现时,则判断代理伺服装置700可能被黑客攻击,则云端装置500可以选择关闭此代理伺服装置700(如图1A中的S10标示的通信方向)。

在本发明的实施例中,client_share_key编码方式可以配合哈希函数来防止窜改,其中哈希函数可以选择MD5、SHA-1或SHA-256等。同时,client_share_key也可以配合不同的译码(decode)方式,例如:区块密码、串流密码、ECB模式或是前述的混合方法等,除了可以更有效的提高破解难度外,还可以不损失解碼时间。

请参考图1B,是本发明的物联网连接架构另一实施例的示意图。如图1B所示,物联网连接架构是由复数个客户端装置100所组成、云端装置500及至少一个代理装置700所组成;其中,每一个客户端装置100均为具有无线通信功能且具有特定用户标识符的装置;云端装置500,具有与每一个客户端100通信之功能,藉由每一个客户端100各自独有的特定用户标识符来确认客户端装置100为物联网中的其中之一的客户端装置100;代理伺服装置700,具有其网址及密码,并能与云端装置500通信。由于图1B的实施例与图1A的实施例在基本连接的架构是相同的,而两者之间的差异仅在于云端装置500提供每一个代理伺服装置的网址、账号及密码予至少一个物联网中的客户端装置100并形成配对后,这些被配对后的客户端装置100只能与配对的代理伺服装置700通信,并再由代理伺服装置700与云端装置500通信,以便将每一个客户端装置100上的数据串传至云端装置500中。故图1B的物联网实际完成连接的过程简要说明如下。

请继续参考图1B,首先,每一个客户端装置100各自过https向云端装置500进行登录。接着,当云端装置500分别收到每一个客户端装置100的请求后,云端装置500会先验证每一个客户端装置100所使用的硬件uuid(如MAC Address)是否已经储存在云端装置500的数据库中;若确认每一个客户端装置100所使用的硬件uuid(如MAC Address)都已经储存在云端装置500的数据库时,则分别产生每一个客户各自的辩证码(client uuid);接着, 云端装置500根据每一个客户端装置100产生一对专属客户使用的密钥;当云端装置500判断每一个客户端装置100均为本物联网中的客户端之后,云端装置500会将所产生的每一个uuid及密钥等讯息回传至相应的每一个客户端装置100中,这些回传至每一个客户端装置100的讯息包括:client_uuid、sever_pub_key及client_pri_key。

接着,每一个客户端装置100可以将其编码后的client_uuid通过https“要求”取得client_share_key、share_key_expiry date time、MQTT_Broker IP及MQTT_Broker账号及密码(username/password);而当云端装置500收到转成乱码的client_uuid后,即会根据各自的sever_pri_key进行译码,以确认每一个收到的client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将client_share_key、share_key_expiry date time、MQTT_Broker IP及MQTT_Broker账号及密码等以client_pub_key编码后回传至客户端装置100。例如:将代理装置(Broker-1)的IP、账号及密码回传给Client-1~Client-5;将代理装置(Broker-2)的IP、账号及密码回传给Client-6~Client-15;将代理装置(Broker-3)的IP、账号及密码回传给Client-16~Client-50;很明显的,本物联网已经将50个各别的客户端装置100分别配对由3个代理伺服装置700来与云端装置500通信。接着,当每一个客户端装置100各自透过云端装置500取得相关数据后,客户端装置100随即会与其所获得的配对的代理伺服装置700进行连接;同时,当每一个客户端装置100确认其由云端装置500所收到的讯息已包括:1.Sever_pub_key;2.Client_pri_key;3.MQTT_Broker IP;4.MQTT_Broker username/password;5.Client_Share_key;6.Share_key_expiry date time后,会使用client_share_key将client_uuid及此客户端装置100所要传给云端的数据内容进行编码后,再上传至代理伺服装置700(即MQTT Broker)。

由于,当每一个客户端装置100在确认已收到完整的讯息后,此时客户端装置100已经知道其所配对的代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码,故客户端装置100可以将编码client_uuid及讯息串(例如:产品的生产履历等)上传至配对的代理伺服装置700;接着,每一个代理伺服装置700在收到配对的客户端装置100所上传的编码client_uuid 及讯息串(例如:产品的生产履历等)后,随即将客户端装置100所上传的讯息直接(也就是说,不做任何处理)传送给云端装置500端;很明显地,整个物联网在客户端装置100将其讯息串递给云端装置500的过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率。由于每一个代理伺服装置700只是将客户端装置100上传的数据直接传送给云端装置500,故可以降低代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码被破解的机率,可以更增加物联网通信过程的安全性。接着,云端装置500在接收到每一个代理伺服装置700所直接传送的数据(即经过编码后的client_uuid及数据串)后,随即使用每一个client_share_key进行译码,并且会验证所收到的client_uuid及数据串(例如:产品的生产履历等)是否完整及正确;如果正确时,则再储存至内存模块530中,等待用户将这些收到的数据串进行特定的应用;例如:建立至少一个产品的生产履历数据库;若验证所收到的client_uuid及数据串不完整或不正确时,则进行记录;在本实施例中,不正确讯息的产生可能包括:每一个client发布信息频率有一定的规律性,如若产生某client以不正常或过多频率来发布的信息,则视为不正确的讯息;或代理伺服装置700本身频率发布信息非经MQTT方式,而试图连接云端装置500等;当不正确的讯息持续出现时,则判断代理伺服装置700可能被黑客攻击;则云端装置500可以选择关闭此代理伺服装置700。

综合上述,本发明之物联网连接架构的主要技术手段,是在云端装置500确认每一个客户端装置100均为本物联网的用户后,云端装置500会将代理伺服装置700的MQTT_Broker IP、MQTT_Broker账号及密码回传给每一个客户端装置100,之后,每一个客户端装置100根据所收到的MQTT_Broker IP、MQTT_Broker账号及密码与代理伺服装置700连接,并且将每一个客户端装置100所要传送的数据串(例如:产品的生产履历等)编码后,一起上传至代理伺服装置700;接着,代理伺服装置700在不对客户端装置100传送的数据串(例如:产品的生产履历等)进行处理的状况下,直接将客户端装置100传送的数据串传递至云端装置500进行译码及处理。很明显的,本发明的物联网连接架构分为两个阶段进行连接,并且在第一阶段完成客户端装置 100的辨识后,客户端装置100在第二阶段中,只能与代理伺服装置700连接;由于第一阶段是在客户端装置100进行连接之前就已完成,故当客户端装置100正是传递数据串时,均只能与代理伺服装置700连接及通信;因此,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率,可以有效的提高物联网连接架构的安全性。

再接着,进一步说明本发明使用物联网架构建立产品生产履历与产品生产履历管理系统的实施方式。

请参考图2,本发明之使用物联网架构建立生产履历与产品生产履历管理系统的实施例示意图。如图2所示,客户端装置100可以是制造商端的读写装置,可以将产品的从每一个制造步骤一直到运送到卖场的整个生产及运送历程,以时间轴作为产品生产履历内容的要项记录之后,在完成图1A或图1B中的S1-S7的确认后(即已经确认每一个客户端装置100均为物联网中的其中一个客户端装置,并且每一个客户端装置100已经取得所要连接的代理伺服装置700的网址及密码),客户端装置100即可以将生产历程的内容数据经过编码后,传递至代理伺服装置700,而代理伺服装置700在收到这些讯息后,代理伺服装置700在不对客户端装置100传送的数据串(例如:产品的生产履历等)进行处理的状况下,直接将客户端装置100传送的数据串传递至云端装置500进行译码及处理,以便在云端装置500的内存模块530中建立一个生产履历数据库,此生产履历数据库可以记载每一个产品从每一个制造步骤一直到运送到卖场的整个生产历程;由于客户端装置100在传递生产履历的数据至云端装置500时,均只能与配对的代理伺服装置700连接及通信;因此,在整个生产履历数据库建立的过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率,可以有效的提高物联网建立生产履历数据库的安全性。

接着,说明本发明之物联网产品生产履历的管理系统的实施方式。请再参考图2,当物联网已在云端装置500的内存模块530中建立了生产履历数据库后,云端装置500可以根据用户的要求(此使用者已经过确认为登录的使用者,例如:智能型手机),将其所要查询产品的生产履历、生产履历数据的类型(即选择文字、图片、语音或是影片等)或是保固数据,透过S11标示的 通信方向,由另一个代理伺服装置700’传递至用户的通讯装置100上显示。由于云端装置500可以设定代理伺服装置700’的IP、账号及密码,故当云端装置500要将产品的生产履历或是保固数据传递给用户时,同样的,其均只能经过代理伺服装置700’的IP、账号及密码与代理伺服装置700’连接及通信;因此,在云端装置500将用户所要查询的产品的生产履历或是保固数据等讯息传送到用户的智能型手机上的整个过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率,可以有效的提高物联网生产履历数据库的安全性。

很明显的,本发明的物联网产品生产履历的管理系统在特定用户标识符确认客户端装置100为物联网中的其中之一的客户端装置后,客户端装置100将所要查询的产品数据只能经由代理伺服装置700’的网址及密码与代理伺服装置700’通信,再由代理伺服装置700’直接与云端装置500通信,以便在云端装置500将客户端装置100所要查询的产品数据与产品生产履历数据库进行比对后,云端装置500并将产品生产履历数据库中的讯息只能经由另一代理伺服装置700’的网址及密码与代理伺服装置700’通信,以便由代理伺服装置700’将产品生产履历数据库中的讯息传送至客户端装置100。

而在本发明的较佳实施例中,还可以进一步在以时间轴作为产品生产履历内容的要项记录中,建立详细的内容型态记录,此详细的内容型态可以使用如图3A所示的文字,或是如图3B所示的文字与图片,或是语音或是影像等,建立在云端装置500的生产履历数据库中。此外,也可以建立一个产品保固数据所形成的数据库,其中,产品保固数据至少包括产品的货品编号、产品的上架日期、产品出厂日期、产地、产品制造商及制造商地址及产品材质等数据,图3C所示。

再接着,详细说明本发明的物联网连接架构的生产履历建立及查询的连接方法及过程,透过本物联网连接架构的连接方法及过程,可以更清楚的了解本发明使用代理伺服装置700之创新点。

请参考图4,是本发明的使用物联网建立产品生产履历及产品生产履历管理方法的流程图。如图4所示,本发明的使用物联网建立产品生产履历及产品生产履历管理方法包括:

步骤1:由客户端装置100向云端装置500进行登录,例如:客户端装置100通过https向云端装置500登录,以便启动物联网系统。

步骤2:当云端装置500收到客户端装置100的请求后,云端装置500会先验证客户端装置100所使用的硬件uuid(如MAC Address)是否已经储存在云端装置500的数据库中。

步骤3:当云端装置500确认客户端装置100所使用的硬件uuid(如MAC Address)已经储存在云端装置500的数据库时,则判断客户端装置100数据正确,其为本物联网中的客户端装置100,则云端装置500会产生一个客户辩证码(client uuid)、一对专属客户使用的密钥。在本实施例中,此密钥是使用安全性高的RSM非对称式密钥(Asymmetric Key);故可以产生出一对client_pub_key及client_pri_key;并且将其所产生的uuid及密钥等讯息回传客户端装置100,这些回传客户端装置100的讯息包括:client_uuid、sever_pub_key(此sever_pub_key即是client_pub_key。此外,若当云端装置500收到客户端装置100的请求后,云端装置500比对出客户端装置100所使用的硬件uuid(如MAC Address)并不在云端装置500的数据库中时,及判断此客户端装置100所使用的硬件uuid(如MAC Address)并非本物联网中的客户端装置,则将此一硬件uuid(如MAC Address)讯息储存在另一数据库中,以便后续比对。

步骤4:客户端装置100判断云端装置500所产生的uuid及密钥等讯息是否以正确收到;当客户端装置100确认已经正确地收到uuid及密钥等讯息后,客户端装置100随即会以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码)通过https向云端装置500要求取得client_share_key、代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码(username/password)。

步骤5:当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将client_share_key、代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码等以client_pub_key编码后回传至客户端装置100。

步骤6:当客户端装置100自云端装置500取得相关数据后,客户端装置100随即会使用client_pri_key进行译码,并确认所收到的讯息必须完整,此完整的讯息包括:1.Sever_pub_key;2.Client_pri_key;3.MQTT_Broker IP;4.MQTT_Broker username/password;5.client_Share_key。当客户端装置100在确认收到完整的讯息后,即会与代理伺服装置700进行连接;若客户端装置100判断所收到的讯息不完整时,会回到步骤4,重新要求向云端装置500要求取得client_share_key、代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码(username/password)。

步骤7:客户端装置100使用MQTT_Broker IP及MQTT_Broker账号及密码连接代理伺服装置700;同时,也使用client_share_key将client_uuid及客户端装置100所要传给云端装置500的数据内容(例如:产品的生产履历等)进行编码后,再上传至代理伺服装置700。

步骤8:代理伺服装置700在收到客户端装置100所上传的编码client_uuid及讯息串(例如:产品的生产履历等)后,随即将客户端装置100所上传的讯息直接(也就是说,不做任何处理)传送给云端装置500端。

步骤9:云端装置500在接收到代理伺服装置700所直接传送的数据后,随即使用client_share_key进行译码,并且会验证所收到的client_uuid及数据串(例如:产品的生产履历等)是否完整及正确。

步骤10:云端装置500判断所收到的client_uuid及数据串完整及正确时,则将译码后的客户端数据串(例如:产品的生产履历等)储存至内存模块530中,等待用户将这些收到的数据串进行特定的应用,例如,在云端装置500中完成了产品的生产履历数据库的建立;若验证所收到的client_uuid及数据串不完整或不正确时,则进行记录;在本实施例中,不正确的讯息包括(1)某ip对应到的client_uuid不正确,则可能有盗用问题(2)若某client_uuid有配合上Geo Location的数据上传,可以藉由验证GeoLocation的合理性来验证(是否某个client_uuid这一分钟在亚洲,下一分钟在北美);当不正确的讯息持续出现时,则判断代理伺服装置700可能被黑客攻击;则云端装置500可以选择关闭此代理伺服装置700。

很明显地,在整个物联网架构的连接方法过程中,从步骤1至步骤6都 是在每一个客户端装置100出厂前就与云端装置500完成连接,即每一个客户端装置100出厂后,就已经自云端装置500获得完整的讯息包括:1.Sever_pub_key;2.Client_pri_key;3.MQTT_Broker IP;4.MQTT_Broker username/password;5.client_Share_key。当物联网系统启动后,每一个客户端装置100所要传送给云端装置500处理的数据串,都会根据MQTT_Broker IP传送至代理伺服装置700,再由代理伺服装置700直接将客户端装置100数据串传送给云端装置500。故自步骤7至步骤10之间的讯息传递过程中(即产品生产履历数据库的建立过程中),云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率。由于代理伺服装置700只是将客户端装置100上传的数据直接传送给云端装置500,故可以降低代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码被破解的机率,可以更增加物联网通信过程的安全性。

接着,当一位消费者使用智能型手机在网络上看到某一产品,并且想要购买此产品时,消费者可以透过网络上所标示的产品编号(货号)或是QR Code等,查看此产品的生产履历或是保固数据,其查询过程说明如下。

首先,消费者可以先建立其所使用的智能型手机与本发明的物联网完成身分辨识的程序;例如下载本发明物联网的APP软件,经由图4的步骤1至步骤6的过程,让消费者使用智能型手机已在本发明的物联网完成身分辨识的程序,即消费者使用智能型手机的硬件uuid(如MAC Address)已经储存在云端装置500的数据库中;接着,当消费者可以透过其所使用的智能型手机,将想要查询的产品编号(货号)或是QR Code,以及要查看此产品的生产履历或是保固数据等数据串,都会经由步骤7,根据MQTT_Broker IP传送至代理伺服装置700,再经步骤8,由代理伺服装置700直接将消费者想要查询的数据串传送给云端装置500。再接着,经由步骤9,云端装置500判断所收到的client_uuid及数据串完整及正确时,则会经由步骤11,根据译码后的消费者数据串,至产品生产履历数据库中比对所要查询的产品编号(货号)或是QR Code是否已建立;如果比对到消费者想要查询的产品编号(货号)或是QR Code之后,云端装置500还会进一步查看消费者所要查询的产品的生产履历或是保固数据的型态是否存在;如果有符合消费者所要查询的产品的 生产履历或是保固数据的型态时,云端装置500即会经由步骤12,与代理伺服装置700’连接,并将消费者所要查询的产品的生产履历或是保固数据的型态传送至代理伺服装置700’,再由代理伺服装置700’直接将产品的生产履历或是保固数据的型态传送至消费者的智能型手机,使得消费者可以透过智能型手机上的显示器看到所要购买的产品生产履历或是保固数据。

由于云端装置500可以设定代理伺服装置700’的IP、账号及密码,故当云端装置500要将产品的生产履历或是保固数据传递给用户时,同样的,其均只能经过代理伺服装置700’的IP、账号及密码与代理伺服装置700’连接及通信;因此,在云端装置500将用户所要查询的产品的生产履历或是保固数据等讯息传送到用户的智能型手机上的整个过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率,可以有效的提高云端装置500及物联网生产履历数据库的安全性。

接着,请参考图5,是本发明使用物联网建立产品生产履历及产品生产履历管理方法的另一个实施例的流程图。如图5所示,本发明的使用物联网建立产品生产履历及产品生产履历管理的方法包括:

步骤1:由客户端装置100向云端装置500进行登录,例如:客户端装置100通过https向云端装置500登录,以便启动物联网系统。

步骤2:当云端装置500收到客户端装置100的请求后,云端装置500会先验证客户端装置100所使用的硬件uuid(如MAC Address)是否已经储存在云端装置500的数据库中。

步骤3:当云端装置500确认客户端装置100所使用的硬件uuid(如MAC Address)已经储存在云端装置500的数据库时,则判断客户端装置100数据正确,其为本物联网中的客户端装置100,则云端装置500会产生一个客户辩证码(client uuid)、一对专属客户使用的密钥。在本实施例中,此密钥是使用安全性高的RSM非对称式密钥(Asymmetric Key);故可以产生出一对client_pub_key及client_pri_key;并且将其所产生的uuid及密钥等讯息回传客户端装置100,这些回传客户端装置100的讯息包括:client_uuid、sever_pub_key(此sever_pub_key即是client_pub_key。此外,若当云端装置500收到客户端装置100的请求后,云端装置500比对出客户端装置100所 使用的硬件uuid(如MAC Address)并不在云端装置500的数据库中时,及判断此客户端装置100所使用的硬件uuid(如MAC Address)并非本物联网中的客户端装置,则将此硬件uuid(如MAC Address)讯息储存在另一个数据库中,以便后续比对。

步骤4:客户端装置100判断云端装置500所产生的uuid及密钥等讯息是否以正确收到;当客户端装置100确认已经正确地收到uuid及密钥等讯息后,客户端装置100随即会以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码)通过https向云端装置500要求取得client_share_key、share_key_expiry date time、代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码(username/password)。

在本发明的较佳实施例中,此密钥是使用RSM非对称式密钥(Asymmetric Key);故可以产生出一对client_pub_key及client_pri_key;其中,RSM非对称式密钥具有解碼时间长,所以安全性高。此外,在另一个较佳实施例中,云端装置500还可以选择性的产生一个客户端装置100专属的对称式密钥(Symmetric Key)client_share_key。故在本发明的较佳实施例中,可以选择性的将RSM非对称式密钥及对称式密钥配合使用;由于,对称式密钥具有译码时间短,相对地安全性较低,因此需要随时变动client_share_key,以确保安全性;为此,云端装置500还会进一步产生一个随时变动的share_key_expiry date time,藉由不定时的更改client_share_key来提升安全性;故当云端装置500侦测到随时变动的client_share_key已经超过了设定变动的时间后,即会自动产生新的client_share_key,以确保安全性。

步骤5:当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将client_share_key、share_key_expiry date time、代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码等以client_pub_key编码后回传至客户端装置100。

步骤6:当客户端装置100自云端装置500取得相关数据后,客户端装置100随即会使用client_pri_key进行译码,并确认所收到的讯息必须完整,此完整的讯息包括:1.Sever_pub_key;2.Client_pri_key;3.MQTT_Broker IP; 4.MQTT_Broker username/password;5.client_Share_key;6.share_key_expiry date time。当客户端装置100在确认收到完整的讯息后,即会与代理伺服装置700进行连接;若客户端装置100判断所收到的讯息不完整时,会回到步骤4,重新要求向云端装置500要求取得。

步骤7:客户端装置100使用MQTT_Broker IP及MQTT_Broker账号及密码连接代理伺服装置700;同时,也使用client_share_key将client_uuid及客户端装置100所要传给云端装置500的数据内容(例如:产品的生产履历等)进行编码后,再上传至代理伺服装置700。

步骤8:客户端装置100检查Share_key_expiry date time的时效是否已经到期;若检查结果尚未到期后,则编码后的client_uuid及数据串(例如:产品的生产履历等)内容上传至代理伺服装置700;若检查结果为过期状态后,则会回到步骤4,重新要求向云端装置500要求取得新的Share_key_expiry date time。例如:到期日为2015/0501时;如果检查结果已经过了Share_key_expiry date time的时效时(例如:检查期日的结果为2015/0502),则客户端装置100会重新以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码),通过https要求取得新的share_key_expiry date time;而当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将新的share_key_expiry date time以client_pub_key编码后回传至客户端装置100。此外,为增加安全性,share_key_expiry date time所设定的时间可以是周期性的,也可以是随机变量的,可以由云端装置500决定。

步骤9:代理伺服装置700在收到客户端装置100所上传的编码client_uuid及讯息串(例如:产品的生产履历等)后,随即将客户端装置100所上传的讯息直接(也就是说,不做任何处理)传送给云端装置500端。

步骤10:云端装置500在接收到代理伺服装置700所直接传送的数据后,随即使用client_share_key进行译码,并且会验证所收到的client_uuid及数据串(例如:产品的生产履历等)是否完整及正确。

步骤11:云端装置500判断所收到的client_uuid及数据串(例如:产品的生产履历等)完整及正确时,则将译码后的客户端数据串储存至内存模块530 中,等待用户将这些收到的数据串(例如:产品的生产履历等)进行特定的处理及应用;若验证所收到的client_uuid及数据串不完整或不正确时,则进行记录;在本实施例中,不正确的讯息包括(1)某ip对应到的client_uuid不正确,则可能有盗用问题(2)若某client_uuid有配合上Geo Location的数据上传,可以藉由验证GeoLocation的合理性来验证(是否某个client_uuid这一分钟在亚洲,下一分钟在北美)。当不正确的讯息持续出现时,则判断代理伺服装置700可能被黑客攻击;则云端装置500可以选择关闭此代理伺服装置700。

很明显地,在整个物联网架构的连接方法过程中,从步骤1至步骤6都是在每一个客户端装置100出厂前就与云端装置500完成连接,即每一个客户端装置100出厂后,就已经自云端装置500获得完整的讯息包括:1.Sever_pub_key;2.Client_pri_key;3.MQTT_Broker IP;4.MQTT_Broker username/password;5.client_Share_key;6.share_key_expiry date time。当物联网系统启动后,每一个客户端装置100所要传送给云端装置500处理的数据串,都会根据MQTT_Broker IP传送至代理伺服装置700,再由代理伺服装置700直接将客户端装置100数据串传送给云端装置500。故自步骤7至步骤10之间的讯息传递过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率。由于代理伺服装置700只是将客户端装置100上传的数据直接传送给云端装置500,故可以降低代理伺服装置700的MQTT_Broker IP及MQTT_Broker账号及密码被破解的机率,可以更增加物联网通信过程的安全性。

接着,本发明还可以在图5的步骤4中,将客户端装置100向云端装置500取得代理伺服装置700的MQTT_Broker IP、MQTT_Broker账号及MQTT_Broker密码的过程,分为两次来执行;例如:第一次是客户端装置100以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码)通过https要求取得client_share_key及MQTT_Broker IP;而当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将client_share_key及MQTT_Broker IP等以client_pub_key编码后回传至客 户端装置100;第二次是客户端装置100再以编码后的client_uuid(即client_uuid会根据sever_pub_key转成乱码),通过https要求取得MQTT_Broker账号及密码;而当云端装置500收到转成乱码的client_uuid后,即会根据sever_pri_key进行译码,以确认client_uuid是否正确;待云端装置500确认client_uuid正确后,云端装置500将MQTT_Broker账号及密码等以client_pub_key编码后回传至客户端装置100。特别要说明的,第一次及第二次所要取得的内容中,只要求将MQTT_Broker的IP、账号及密码分两次取得,其他并不加以限制。

接着,当多位消费者使用各自的智能型手机在网络上分别看到某一个产品,并且想要购买此产品时,消费者可以透过网络上所标示的产品编号(货号)或是QR Code等,查看此产品的生产履历或是保固数据,其管理过程说明如下。

首先,每一位消费者可以先建立其所使用的智能型手机与本发明的物联网完成身分辨识的程序;例如:每一位消费者都已下载本发明物联网的APP软件,经由图4的步骤1至步骤6的过程,让每一位消费者所使用智能型手机已在本发明的物联网完成身分辨识的程序,即每一位消费者所使用智能型手机的硬件uuid(如MAC Address)均已经储存在云端装置500的数据库中;接着,当每一位消费者透过其所使用的智能型手机,将想要查询的产品编号(货号)或是QR Code,以及要查看此产品的生产履历或是保固数据等数据串,都会经由步骤7至步骤8,根据每一位消费者所配对好的MQTT_Broker IP传送至代理伺服装置700,再经步骤9,由代理伺服装置700直接将消费者想要查询的数据串传送给云端装置500。再接着,经由步骤10,云端装置500判断所收到的client_uuid及数据串完整及正确时,则会经由步骤12,根据解碼后的每一位消费者的数据串,至产品生产履历数据库中比对所要查询的产品编号(货号)或是QR Code是否已建立;如果比对到每一位消费者想要查询的产品编号(货号)或是QR Code之后,云端装置500还会进一步查看消费者所要查询的产品的生产履历或是保固数据的型态是否存在;如果有符合消费者所要查询的产品的生产履历或是保固数据的型态时,云端装置500即会经由步骤13,与代理伺服装置700’连接,并将每一位消费者所要查询的产品的 生产履历或是保固数据的型态传送至另一个代理伺服装置700’,再由代理伺服装置700’直接将产品的生产履历或是保固数据的型态传送至每一位消费者的智能型手机,使得每一位消费者可以透过智能型手机上的显示器看到所要购买的产品生产履历或是保固数据。很明显的,在云端装置500也可以与多个代理伺服装置700’通信,且每一个代理伺服装置700’可以与多个消费者形成配对。

由于云端装置500可以设定代理伺服装置700’的IP、账号及密码,故当云端装置500要将产品的生产履历或是保固数据传递给用户时,同样的,其均只能经过代理伺服装置700’的IP、账号及密码与代理伺服装置700’连接及通信;因此,在云端装置500将用户所要查询的产品的生产履历或是保固数据等讯息传送到用户的智能型手机上的整个过程中,云端装置500并不会直接暴露出自己的地址,故可以降低云端装置500被黑客攻击的机率,可以有效的提高云端装置500及物联网生产履历数据库的安全性。

虽然本发明以前述之较佳实施例揭露如上,然其并非用以限定本发明,任何熟习本领域技艺者,在不脱离本发明之精神和范围内,当可作些许之更动与润饰,因此本发明之专利保护范围须视本说明书所附之申请专利范围所界定者为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1