一种基于区块链的云取证方案,采用区块链的全新理念,以去中心化、去信任化的方式来解决无论是存证方还是保全方都无法篡改保全在区块链上的电子证据,并实现电子证据的可验证和可追溯。
#云取证系统总体架构设计##西南科技大学#
电子取证技术虽然是打击计算机犯罪和计算机网络犯罪的关键技术,但是在云计算环境下,传统的电子取证技术和方法面临着诸多新的挑战。
云取证与传统的电子取证相比面临着数据分散、数据控制有限、取证监督链难以实现、多租户环境等诸多困难,目前学术界也已经提出了不少关于云取证的技术方案,但是这些方案并没有完全解决云计算对取证工作的挑战,尤其是在 CSPs(云服务提供者)、调查者、用户等不诚实的场景,以及证据监督链不完整的问题。本课题为了克服以上问题,提出了一种基于区块链的云取证方案,采用区块链的全新理念,以去中心化、去信任化的方式来解决无论是存证方还是保全方都无法篡改保全在区块链上的电子证据,并实现电子证据的可验证和可追溯。 借助区块链的全新思想,把电子数据记录在区块链上,并结合加密算法、时间戳、数字签名等技术,设计并搭建基于区块链的云取证系统。系统主要采用区块链分布式数据库的特点,即采用 P2P 网络技术实现系统的去中心化、使用加密算法保证用户数据的安全性、使用 Merkle 树技术保证数据的不可篡改及可追溯、使用共识算法保障计算节点间数据的一致性、且通过时间戳技术保证数据在某个特定时间段或者某个特定时间之前的存在性以及采用首尾相连的链式数据结构等技术,设计了一种去中心化的、可验证、不可篡改的云取证系统。
云取证系统总体架构设计
1.1 云取证系统总体架构
由图1所示,本系统的核心是由 n 个节点组成的 P2P 网络,每个节点各自维护相同的证据链,即区块链中的证据信息。在此结构中,区块链相当于一种点对点的分布式数据库,存储各用户的保全信息,它以一种改进的共识算法来保障节点间保全数据的一致性,并以加密算法及电子签名技术保障了用户数据的安全性和隐私性,同时通过时间戳技术、Merkle Tree 算法及区块
首尾相连的链式数据结构,形成去中心化、去信任、公开、透明、不可篡改、可验证、可追溯的云取证系统。
1.2 云取证系统技术架构
本系统的技术体系如图 2所示:
其中,系统开发工具为 Eclipse,开发语言为 Java,开发、运行、测试服务器为 Tomcat8.0
。HTML、CSS、AJAX、Java Script、Jquery 及 Bootstrap 等技术用于实现系统浏览器的
GUI,目的是为终端用户(系统用户和系统管理员)提供一个便于操作的用户友好界面。
Spring 框架(包括 Spring MVC, Spring Core,Spring ORM, Spring AOP,Spring DAO, Spring Batch 等)My Batis, DBCP/JDBC 技术用于实现系统的整体框架,支持与数据层 My Sql, XML
等的连接,并为前台提供 JSON 数据格式的支持,整体框架由 Log4J 提供日志记录支持。
2 云取证系统功能结构设计
系统14 个功能模块来完成,浏览器端主要功能为:用户注册、用户登录、实名认证、证据上传、证据列表查看、证据信息查看、证据信息验证、证据下载、申请出证等;服务器端主要功能
为:身份认证审核、证书发放、节点管理、区块链管理等。系统总体功能结构图如图 3所示:
3 云取证系统数据库设计数据库设计 E-R 图
云取证系统主要的实体包括用户信息表、节点信息表、操作日志记录表、
用户上传证据信息表、Merkle Tree 叶子节点信息表、用户验证信息表、用户
证书信息表、区块信息表、用户与证据的关联表、区块与证据的关联表。数
据库设计的 E-R 模型如图 4所示。
4 根据以上 E-R 模型图各表汇总表图5所示:
分享自作者西南科技大学 徐蕾 黄晓芳教授