以太网(企业内部网、国际互联网)、无线通信网(蜂窝电话、WiFi)和电力线通信(PLC)等网络设备由服务器或基站以及网络节点或网络设备构成,批量生产的网络设备根据具体的网络容量进行组装。为了得到一个受控的高可靠性网络系统,开发人员面临两大设计挑战:必须对所有连接到网络的设备进行认证;允许通过服务器进行远程升级。
对接入网络的设备进行授权认证非常困难。未经许可的设备可能会通过破环系统性能、干扰用户从而直接危害到供应商的收益。但是,网络认证功能同时也为供应商提供了二次商机,即通过服务器对购买升级功能的用户设备进行升级。
几大网络认证方法比较
认证过程是建立两个目标(这里指服务器和网络设备)之间身份鉴定的过程。认证过程必须避免未经授权的制造商或克隆厂商从事的伪造或仿真活动。身份认证的最佳途径是采用系统令牌,网络设备处理器结合认证令牌进行通信,从而对设备进行鉴定。通过适当配置认证令牌限制设备的接入,最终达到杜绝假冒伪劣网络设备的接入。
本地网的服务器距离网络设备近,很难通过制造商进行升级。例如,带有附属模块(例如墨盒)的打印机,其中,服务器是打印机中的微处理器,网络设备就是那些模块。
远程网络的服务器工作环境安全,但是服务供应商保持对其的接入权限。远程网络存在一些如不安全的通信链路等潜在问题,但其确实为实际应用提供了便利:根据中心服务器的判定,可以在完成网络安装后进行扩容和侦测网络的攻击者(图1)。
图1: 设备交付用户使用后,网络运营商通常无权接入局域网(左侧) ;远程网络(右侧)即使在交付用户使用后也具有接入权限。
认真研究远程服务器的工作环境,对照几种接入控制的成本和优势,可以使你在具体系统中应用到最佳的认证方法。认证方案包括:简单的密码认证、对称密钥认证、公钥认证、散列认证等。以下内容还讨论了网络设备升级功能的优势。
简单的密码认证 最简单的认证方法就是判断密码是否正确。这种方法成本最低,因为不需要额外的硬件或软件支持加密/认证算法。由于密码为透明传输,即通过通信链路传输,很容易被截取并在以后复制(图2),由此可见,简单的密码检验方案的安全性很差。
图2: 密码检验的第3步通信容易造成密钥被窃取
对于基本的密码认证来说,网络设备和服务器必须有一个公认的密钥,如果网络设备具有一个唯一的识别码,可以利用该识别码构成设备唯一的密钥。
对称密钥认证 利用加密算法将安全信息从网络设备发送到服务器,安全设备需要将加密密钥编程到网络设备中。实际应用中有两种类型的加密密钥:对称密钥和非对称密钥(公钥/私钥)。对称密钥在服务器和网络设备上共用同一密钥(图3)。
图3: 对称密钥认证中,随机质询可以避免重复的响应通信
利用处理器实现这一认证比较简单,但比简单的密码检验要繁琐。由于服务器和网络设备之间的通信数据经过加密,无法被攻击者仿真,这种方法具有较高的安全性。另一方面,对称加密算法通常仅采用简单的运算,例如“或”运算和移位,具体实施成本并不高,利用微处理器即可实现。
该方案的前提是:网络设备和服务器必须具备公用的对称加密密钥,如果网络设备具有唯一的识别码,则可利用识别码构成设备的唯一密钥。
非对称密钥认证 非对称加密系统(公钥/私钥)不共用同一密钥,每台设备包含一个私钥和一个公钥。证书可以安装到网络设备以便验证其授权。由于公钥/私钥算法涉及到大量的计算,实施方案需要占用较大的存储空间和CPU资源,成本较高(图4)。例如,RSA公钥加密需要模幂运算。另外,还需要注意采用这类加密算法的器件受美国政府的出口限制。
该方案的前提是:网络设备必须装载包含网络设备公钥的证书,用服务器私钥加密。用服务器公钥解密后,可以验证网络设备的合法性。
基于散列算法的认证 散列(Hash)算法是将一串字符转换成较短的、固定长度的数值或加密信息,以此代表原来的字符串。散列加密(特别是安全散列算法将其部分输入作为密钥)也可用于认证(图5)。