2. 北京工业大学 信息学部, 北京 100124
2. Faculty of Information Technology, Beijing University of Technology, Beijing 100124, China
随着移动互联网和SDN技术的普遍使用, 用户跨域接入网络的需求增长很快, 网络接入身份认证面临了巨大的挑战. 传统的接入认证方式依赖于认证服务器, 可以很好地支持用户在SDN域内移动, FlowNAC[1]与SDFAC[2]均使用扩展后的IEEE802.1x协议, 由可信第三方设备根据用户提交的身份信息对接入者进行认证. 文献[3]在SDN网络的控制器中设计安全内核SEK, 并加入了身份认证功能. 文献[4]则给出基于OpenFlow的身份认证控制器SNAC.
跨域用户身份认证不仅依赖于两个域的认证服务器, 还依赖于两个域之间事先建立的信任关系. Eduroam[5]在所有相关的域中建立了一套域间信任机制, 实现用户使用原域的合法账号, 就能在全球已加入Eduroam联盟的其它域登录并访问网络. 用户的信息通过用户当前所在域的认证服务器转发给上一级认证服务器, 再转发到用户所在域的服务器, 最后再将应答发送给接入域. 文献[6]介绍并讨论了将Eduroam部署到SDN中的相关问题. 文献[7]提出分布式跨域认证系统. 在该系统中, 用户在经过各自域的认证服务器认证后, 由安全通信模块完成跨域的认证信息交互.
无论是本域接入还是跨域接入, 上述接入认证方案均由专门的认证服务器实现对用户身份的认证. 但是, 若既要满足用户认证上网, 又要方便用户随时随地接入网络, 在认证服务器之间事先建立认证信任关系存在一定的技术复杂性和可行性, 无法很好地支持用户灵活跨域上网的认证需求, 因此需要研究新的网络接入认证方法.
本文研究去中心化的网络接入身份认证, 要求接入身份认证方法既不依赖于认证服务器, 同时又不用事先建立域间认证信任关系. 借鉴区块链技术[8–11], 本文提出了在无需相互信任的主机间设计共识机制实现身份认证, 同时记录认证结果支持认证结果可追溯的方案. 论文在SDN网络中设计并实现了去中心化的接入身份认证方案BchainNAC.
1 问题描述定义1. 集合
定义2. 集合
本文研究的主要问题是利用
(1) 在域和域之间无法事先建立信任关系或者是在接入域中无法事先为用户建立帐号等情况下, 利用接入申请者公开的身份信息进行身份验证, 本文利用接入申请者的公钥信息来进行身份认证.
(2) 为了不依赖于认证服务器解决跨域用户接入身份认证, 本文借鉴区块链技术的去中心化思想, 利用已经接入网络的主机对申请者的身份分别进行认证并达成共识.
(3) 为实现认证结果的可追溯性, 研究认证结果的存储方法. 本文利用区块链存储技术, 对认证结果进行存储, 支持认证结果可追溯.
2 基于非交互的零知识身份认证证明假设申请接入网络的主机
$\begin{gathered} A{\rm{ = Base58check(concat(left(SHA256(SHA256}} \hfill \\ {\rm{ (RIPEMD160(SHA256(K))))))) }} \hfill \\ \end{gathered} $ | (1) |
其中,
(1) 验证申请信息的数据格式是否符合系统规则.
系统规则包括数据结构正确、输入输出表不为空、申请信息的大小不能小于最小字节等.
(2) 验证
(3) 验证
区块链基础架构的共识层中封装许多共识算法[16–19]. 本文改进实用拜占庭容错算法[20,21], 设计了
为保证
区块是记录共识状态的数据单元, 由块头和块身组成. 区块块头中主要包括前一区块散列值、下一区块散列值、时间戳[22]、共识结果、区块高度, 各参数的主要作用分别为:
前一区块散列值、下一区块散列值: 实现新生区块与前一区块、下一区块的链接, 以便该区块与前后区块形成先后顺序, 在区块间形成链状结构.
时间戳: 记录当前区块的写入时间, 为数据增加时间维度, 使其具有极强的可验证性和可追溯性.
共识结果: 记录本次共识的结果.
区块高度: 记录当前已存储的区块链中区块的个数, 用
针对每一台申请加入网络的主机
集合
(1) 实用拜占庭容错算法中的节点既可以成为发起共识的申请者, 也可以成为达成共识的参与者, 而本文研究的网络中集合
(2) 实用拜占庭容错算法只需要对申请者的请求达成共识, 而本文中的共识算法除了需要对申请者的请求达成共识之外, 为实现共识结果可追溯, 存储共识结果还需要对生成认证结果存储区块达成共识. 因此, 本文中的共识算法需要分别对
假设网络初始化后已经存在一定数量的主机. 依据拜占庭容错算法可知, 只有参与共识的错误节点数
定义3. 视图是一次共识从开始到结束所使用的全部数据的数据集合. 每个视图分配一个编号
假设每次产生区块的时间间隔为
步骤1.
$P = (h + v)od n$ | (2) |
随机决定主节点
步骤2. 主节点发起共识.
(1) 主节点
(2) 主节点提取本地存储的区块信息生成包含存储区块版本号、前一区块散列值、
(3) 主节点
步骤3. 副本节点参与共识.
(1) 副本节点
(2) 副本节点
(3) 副本节点
步骤4.
(1)
(2) 如果在当前视图下
步骤5.
(1)
(2) 主节点
(3) 在收到主节点
依据以上对去中心化的网络接入身份认证问题的研究, 本文在SDN网络[24–27]中设计并实现了去中心化的接入身份认证方案BchainNAC. 搭建如图2所示的原型环境.
实验环境如下: 一台OpenDaylight控制器[28,29]、一台普通交换机、3台OpenFlow交换机、4台主机. 在交换协议开发平台上部署Open VSwitch[30,31](开放式虚拟交换机, 简称OVS)模拟SDN交换机. 使用网桥建立OpenFlow交换机与控制器的连接, 由普通交换机作为中转实现控制器与多台OpenFlow交换机连接. 主机
测试场景: 向原型实验环境中逐渐加入50台主机, 且每10台为一组, 划分为5组.
将从申请者发起接入申请到申请者获得认证结果所用的时延记作
测试结果及分析: 参与共识的主机数与完成接入申请所用时延成正比. 从1台到50台接入SDN,
以组为单位, 分别统计参与共识的主机的CPU利用率、内存的使用率, 实验结果如图4、图5所示.
测试结果及分析: 参与共识的主机CPU、内存消耗不大, 且每台主机的CPU利用率维持在0.5%、内存使用率维持在0.67%.
将身份认证共识分成两个部分: 对接入者身份达成共识、通知申请者认证结果和其他节点存储认证结果. 前者使用的时延记作
测量结果及分析: 对接入者身份达成共识所用时延为身份认证阶段主要时延. 通过分析, 得知影响共识的主要因素包括: 参与共识的主机的个数; 主机之间通信的质量; 加、解密算法的复杂度.
通过以上实验可知, 在SDN网络中, 去中心化的接入身份认证所用时延会随着接入SDN网络中主机数的增多而有所提升, 但增幅稳定, 在接受范围之内. 主机因参与共识消耗的CPU及内存较低. 通过分析身份认证共识, 可以从影响共识的因素入手, 优化共识过程.
5 总结
本文研究去中心化的网络接入身份认证问题, 提出的身份认证方案不泄露除自身公钥以外的任何额外信息, 既满足移动主机接入网络的灵活需求, 又充分考虑网络中主机的不确定性. 下一步将继续优化共识机制的效率, 以便在更大规模网络中推广应用.
[1] |
Matias J, Garay J, Mendiola A, et al. FlowNAC: Flow-based network access control. Third European Workshop on Software Defined Networks. London, UK: IEEE. 2014. 79–84. [doi: 10.1109/EWSDN.2014.39]
|
[2] |
王秀磊, 张国敏, 胡超, 等. SDFAC: 软件定义的流接入控制机制. 通信学报, 2015, 36(S1): 188-196. |
[3] |
Nayak A, Reimers A, Feamster N, et al. Resonance: Dynamic access control for enterprise networks. Proceedings of the 1st ACM Workshop on Research on Enterprise Networking. 2009. 11–18. [doi: 10.1145/1592681.1592684]
|
[4] |
Lamport L, Shostak R, Pease M. The Byzantine generals problem. ACM Transactions on Programming Languages and Systems, 1982, 4(3): 382-401. DOI:10.1145/357172.357176 |
[5] |
Eduroam Web site: https://www.eduroam.org.
|
[6] |
公绪晓, 付中南, 吕洁. 基于eduroam和SDN的无线漫游认证授权技术研究. 华东师范大学学报(自然科学版), 2015(S1): 157-162. |
[7] |
樊蕊. 跨域身份认证系统的研究与实现[硕士学位论文]. 西安: 西安电子科技大学, 2007.
|
[8] |
袁勇, 王飞跃. 区块链技术发展现状与展望. 自动化学报, 2016, 42(4): 481-494. |
[9] |
Swan M. Blockchain thinking: the brain as a decentralized autonomous corporation. IEEE Technology and Society Magazine, 2015, 34(4): 41-52. DOI:10.1109/MTS.2015.2494358 |
[10] |
Wilson D, Ateniese G. From pretty good to great: Enhancing PGP using bitcoin and the blockchain. Network and System Security. In: Qiu M, Xu S, Yung M, Zhang H, eds. Network and System Security. NSS 2015. Lecture Notes in Computer Science, vol 9408. Springer, Cham. 2015. [doi: 10.1007/978-3-319-25645-0_25]
|
[11] |
Kraft D. Difficulty control for blockchain-based consensus systems. Peer-to-Peer Networking and Applications, 2016, 9(2): 397-413. DOI:10.1007/s12083-015-0347-x |
[12] |
李琳, 岳建华. 基于零知识证明的匿名身份认证机制. 计算机科学, 2013, 40(12): 197-199. DOI:10.3969/j.issn.1002-137X.2013.12.041 |
[13] |
李殿伟, 王正义, 赵俊阁. 椭圆曲线密码体制安全性分析. 计算机技术与发展, 2012, 22(4): 227-230. |
[14] |
Base58check web site. https://en.bitcoin.it/wiki/Base58 Check_encoding.
|
[15] |
韩家炜, 坎伯. 数据挖掘: 概念与技术(第3版). 机械工业出版社, 2012. |
[16] |
Marshall B, Alon R, Manuel S, et al. Proofs of Useful Work. http://eprint.iacr.org/2017/203.pdf. [2017-2-27] .
|
[17] |
韩璇, 刘亚敏. 区块链技术中的共识机制研究. 信息网络安全, 2017(9): 147-152. DOI:10.3969/j.issn.1671-1122.2017.09.034 |
[18] |
Daniel Larimer. 授权股权证明机制白皮书. http://www.8btc.com/dpos_bitfarm. [2014-04] .
|
[19] |
卢风顺, 宋君强, 银福康, 等. CPU/GPU协同并行计算研究综述. 计算机科学, 2011, 38(3): 5-9. DOI:10.3969/j.issn.1002-137X.2011.03.002 |
[20] |
Yu D, He S, Huang Y, et al. A fast parallel matrix inversion algorithm based on heterogeneous multicore architectures. 2015 IEEE Global Conference on Signal and Information Processing (GlobalSIP). Orlando, FL, USA. 2015. [doi: 10.1109/GlobalSIP.2015.7418328]
|
[21] |
范捷, 易乐天, 舒继武. 拜占庭系统技术研究综述. 软件学报, 2013(6): 1346-1360. |
[22] |
王秀群. 可实用的拜占庭容错系统理论研究[博士学位论文]. 杭州: 浙江大学, 2007.
|
[23] |
Haber S, Stornetta WS. How to time-stamp a digital document. Journal of Cryptology, 1991, 3(2): 99-111. |
[24] |
张朝昆, 崔勇, 唐翯祎, 等. 软件定义网络(SDN)研究进展. 软件学报, 2015, 26(1): 62-81. |
[25] |
左青云, 陈鸣, 赵广松, 等. 基于OpenFlow的SDN技术研究. 软件学报, 2013(5): 1078-1097. DOI:10.3724/SP.J.1001.2013.04390 |
[26] |
江国龙, 付斌章, 陈明宇, 等. SDN控制器的调研和量化分析. 计算机科学与探索, 2014, 8(6): 653-664. |
[27] |
王蒙蒙, 刘建伟, 陈杰, 等. 软件定义网络: 安全模型、机制及研究进展. 软件学报, 2016, 27(4): 969-992. DOI:10.133280.cnki.jos.005020 |
[28] |
许名广, 刘亚萍, 邓文平. 网络控制器OpenDaylight的研究与分析. 计算机科学, 2015, 42(S1): 249-252. |
[29] |
唐宏, 刘汉江, 陈前锋, 等. OpenDaylight应用指南. 电信科学, 2017, 33(S1): 267. |
[30] |
杨帆, 晏思宇, 黄韬. OVS的编程扩展技术. 电信科学, 2017, 33(5): 21-28. |
[31] |
王文涛, 王奇枫, 郭峰, 等. 基于Open vSwitch的SDN网络平台构建方法. 中南民族大学学报(自然科学版), 2014, 33(4): 99-104. DOI:10.3969/j.issn.1672-4321.2014.04.023 |