应用

技术

物联网世界 >> 解决方案 >> 物联网方案
企业注册个人注册登录

物联网终端安全接入方法研究与设计

  随着信息化建设的快速发展。基于物联网的应用也越来越多。用户终端可方便地接入网络以获取各种资源。安全性要求贯穿于整个物联网体系架构的各个层次中。忽略对网络底层的通信保护无疑会使网络上层直接面对危机四伏的物联网环境。目前终端都是通过交换机接入网络。交换机仅作为接入设备,连接用户端与网络,对于与其相连的客户机不作任何的判断和限制。任意机器都可以通过交换机接入整个网络:这种状况不仅造成管理的混乱,用户可以随意地改动IP及连接。而且无法对外来计算机的接入进行有效的控制。从而对网络中的资源形成很大的威胁。因此。必须对接入网络的客户机进行身份认证。这对于安全要求很高的网络环境是刻不容缓的。

  笔者在本文中提出一种基于数字证书或用户名/口令以及终端完整性的客户机身份认证方式,实现了与网络接入设备端口的认证连接,能有效地约束非法用户通过接人设备来访问网络资源。

  1.802.1X和Radius协议简介

  802.1X协议是基于Client/Server的访问控制和认证协议。它可以限制未经授权的用户/设备通过接入端口访问网络。在获得LAN提供的各种业务之前。802.1x对连接到交换机端口上的用户/设备进行认证。在认证通过之前。802.1x只允许基于局域网的扩展认证协议(EAPOL)的数据通过设备连接的交换机端口;认证通过以后,正常的数据可以顺利地通过以太网端口。

  Radius(Remote Authentication Dial In User Service) 协议最初是由Livingston公司提出的,原先的目的是为拨号用户进行认证和计费。后来经过多次改进。形成了一项通用的认证计费协议。Radius是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,现在任何运行RadiuS客户端软件的计算机都可以成为Radius的客户端。Radius协议的认证机制灵活,可以采用PAP、CHAP或者Unix登录认证等多种方式。Radius是一种可扩展的协议,它进行的全部工作都是基于Attribute—Length—Value的向量进行的。

  2.系统的组成

  考虑到兼容性。此方案基于802.1x协议设计实现。系统主要由3部分(使用证书时还需要CA认证服务器)组成:

  a)客户端

  通过网线与交换机直接物理相连。获取终端的完整性信息(包括系统更新补丁信息、杀毒软件和防火墙信息、硬件的完整性信息等)。组成EAP包发给交换机。认证成功之后。通过定时器检测终端的完整性信息是否符合约定的策略。一旦完整性信息不符合约定的策略。则主动向交换机发送EAPOL—logoff包,断开网络连接。

  b)支持802.1x协议的交换机

  交换机是本系统的重要组成部分之一,起数据包的中转作用。把认证客户端的接人请求转发给Radius认证服务器认证。并且接受Radius认证服务器下发的允许接入或者拒绝接入消息。如果允许接入,交换机将会打开端口,允许终端正常的数据包通过;否则,交换机将会关闭端口。丢弃终端的任何数据包(EAP数据包除外)。

  c)RadiUS认证服务器

  Radius认证服务器使用UDP协议与交换机交互。它是本系统的授权者。按照约定的策略来验证终端的接入请求,然后授权交换机作响应的动作。如果终端验证通过。那么Radius认证服务器将会发送EAP—Success数据包给交换机。交换机打开相应的端口:否则Radius认证服务器将会发送EAP—Failure数据包给交换机。交换机关闭相应的端口。

  3.工作流程

  客户以提交数字证书或用户名/口令,(同时需提交CPK数字签名)以及客户端完整性数据的方式。请求认证服务器验证。验证通过则打开网络通道,否则拒绝客户接人网络,如图1所示。

  图1 认证流程

  以使用用户名和密码的认证方式为例。整个方案的工作流程如下:

  a)当终端有访问网络的需求时打开客户端程序。输入已经申请并登记过的用户名和密码。发起连接请求(EAPOL—Start报文)。此时,认证客户端程序将发出请求认证的报文给交换机。启动认证过程。

  b)交换机收到请求认证的数据帧后。将发出一个请求帧(EAP—Request/Identity报文)要求认证客户端发送输入的用户名。

  c)认证客户端程序响应交换机发出的请求。将用户名信息通过数据帧(EAP—Response/Identity报文)发送给交换机。交换机将认证客户端发送的数据帧经过封包处理后(Radius Access—Request报文)送给认证服务器进行处理。

  d)Radius服务器收到交换机转发的用户名后。将该信息与数据库中的用户名表对比。找到该用户名对应的密码信息。用随机生成的加密字对它进行加密处理。同时也将此加密字通过RadiusAccess—Challenge报文发送给交换机。由交换机转发给客户端程序。

  e)认证客户端程序收到由交换机传来的加密字(EAP—Request/MD5 Challenge报文)后。用该加密字对密码部分进行加密处理(此种加密算法通常是不可逆的,生成EAP—Response/MD5 Challenge报文)。认证客户端首先获取终端的完整性信息。然后附上CPK签名信息。最后把终端完整性信息和CPK签名信息串接到EAP—Response/MD5一Chal1enge报文中并通过交换机传给Radius认证服务器。

  f)Radius认证服务器将收到的、已加密的密码信息(Radius Access—Request报文)和本地经过加密运算后的密码信息进行对比。如果相同。则认为该用户为合法用户。Radius服务器按照既定的策略验证签名信息和验证终端的完整性信息。例如系统补丁信息等。只有签名信息正确并且终端完整性信息符合设定的策略。Radius认证服务器才会向交换机发送Radius Access—Accept报文。

  g)交换机收到认证通过消息后将端口改为授权状态。允许用户通过端口访问网络。在此期间,交换机通过向客户端定期发送握手报文对用户的在线情况进行监测。在缺省情况下。两次握手请求报文都得不到客户端的应答。交换机就会让用户下线。防止用户因为异常原因下线而交换机无法感知。

  h)认证客户端也可以发送EAPOL—Logoff报文给交换机,主动要求下线。交换机把端口状态从授权状态改变成未授权状态。并向认证客户端发送EAP—Failure报文。

  4.结束语

  本文在802.1x协议的基础上对EAP—MD5认证方法进行了扩展。把系统补丁信息、杀毒软件信息以及硬件信息等作为终端完整性度量。签名算法方面,由于组合公钥(CPK)基于椭圆曲线密码学,而椭圆曲线密码具有密钥短、运算快的优点,因此组合公钥签名可以很短。故选取组合公钥签名方案。在EAP—Response/MD5一Challenge报文中插入终端完整性信息和签名信息。发给交换机。再由交换机将此信息发给后台的RadiUS认证服务器。进行完整性校验。测试结果表明,方案满足物联网终端安全接入的基本功能需求。