文│ 南京邮电大学 计算机学院、网络空间安全学院 孙国梓 王纪涛
当前,由于因特网已经是我们生活密不可分的一部分,一些违法事件会广泛利用因特网这一工具进行。因此很多犯罪痕迹都会残留在因特网中,只要这些犯罪痕迹符合两高一部"电子证据若干规定",那么就能以这些电子数据作为证据进行举证。尽管如此,在因特网庞大的信息量下,电子数据的来源数不胜数,这使得从因特网中获得有效数据变得困难。这两年来,区块链技术的出现,又让电子数据多了一个源头,而区块链的匿名特性导致对区块链数据取证的方式与传统取证方式有所改变。本文主要对区块链取证的方式进行探析,有效克服区块链取证的难点,推进计算机取证领域的发展。
一、区块链与犯罪
自从2016年区块链技术在国内兴起之后,各行各业都希望与区块链技术相结合,尝试着擦出新的火花。然而,一些不法分子也注意到了区块链技术的优势,他们将区块链与犯罪结合了起来,想通过区块链技术让他们能更加顺利地进行违法行为。直到现在为止,与区块链相关的犯罪已经数不胜数,诈骗、黑客攻击、金融犯罪、色情行业等等行业都有运用区块链技术的现象。
1. 区块链诈骗
区块链界可以分为三个圈子,分别是链圈、矿圈和币圈。说到区块链诈骗,与它相关性更紧密的主要是币圈。区块链上的加密虚拟货币就像股价一样波动不定,它甚至比股价更加无法预测,从而有些人就会通过发行自己的区块链货币,也就是常说的ICO发售来诱导其他对区块链一无所知的人买他们发行的区块链货币(这些币通常被称为山寨币或空气币)。通常整个诈骗过程都会先让买币的人尝到甜头,等发售人觉得涨得差不多了,就开始进入我们常说的“割韭菜”环节。实际上这样的一个项目毫无价值,只能说是一种基于区块链技术的新型诈骗行为。
2. 黑客攻击
传统的黑客攻击大部分是基于网络的,因此当黑客对其他计算机进行攻击大多有网络信息在攻击过程中留下痕迹。当区块链技术出现之后,有些黑客一直在尝试使用区块链DNS(域名服务器)作为隐藏他们恶意行为的一种方式。传统的DNS顶级域名(TLD)是由中央授权机构进行控制,而区块链DNS是一种基于区块链特性的分布式DNS,它的顶级域名不受任何一个单一中央机构控制,它通过在区块链中共享的DNS查询表来查询IP地址,整个查询请求过程与传统的DNS运用了不一样的技术。在这样的情况下,无法通过区块链域名来查询到背后操纵者的个人信息,让执法人员很难处理一些垃圾网站。
3. 金融犯罪
北京市检察院经济犯罪检察部主任、检察官姜淑珍说:“近年来,假借P2P名义搭建自融平台,通过发布虚假的债权转让项目为自身融资的案件逐年增多,危害愈来愈大。另外,以虚拟货币和区块链名义实施非法集资的行为也开始出现”。可以看出,区块链也引起了一些不法分子进行金融犯罪,这类犯罪通常涉及资金巨大、扩散速度快、波及地区广。
4. 色情行业
色情行业也是很多不法分子聚集的领域。通常一些不良视频在网络中传播都会被网络执法人员监管,定期会对因特网上的一些不良网页进行清理。区块链的特性似乎给这个行业带来了“便利”,由于不法分子运用区块链永久存储特性,将一些不良资源存储在区块链中,这就让执法人员不能正常将区块链上的内容删除。尽管可以强制关闭那些不良网页,但原始的数据不会被删除,不法分子就能“东山再起”,这就让色情行业变得更加泛滥,对未成年人的影响也不可预计。
5. 其他犯罪
区块链技术能被用于各行各业,但用在犯罪行为上会让执法人员非常难处理。当前,还有很多其他的犯罪都用上区块链技术,最知名的就是暗网市场,这种通过比特币进行交易的类似淘宝的市场上有很多不法分子进行毒品、枪支、绑架、甚至是暗杀的交易,可怕的是这些交易由于比特币账户的匿名性很难追踪交易者的真实身份。因此当下,对于区块链的取证非常重要,只有在区块链取证上有新的突破,才能将这些“眼皮底下”的违法分子绳之以法。
二、区块链取证面临的问题
如今,区块链与犯罪结合的事件越来越多,区块链取证就显得更加重要。然而,区块链取证面临着一些问题,这些问题都是区块链取证需要重点考虑的方面。只有解决这些问题才能让区块链取证发展得更加成熟。
1. 用户匿名性
区块链取证最大的难点就在于其用户匿名性,在这种特性之下,用户的真实身份很难去追踪和验证。尽管用户在区块链网络中的行为都是公开透明的,凭借这些交易行为确实可以利用大数据分析技术来对交易双方的真实身份进行推断,但这种方式的推断具有很大的主观性。因此,就现有技术来说,在区块链网络中想要得到某个用户地址对应的用户真实身份是异常艰难的。
2. 智能合约“内部交易”隐蔽性
区块链1.0到区块链2.0最大的变化就是提出了“智能合约”。智能合约是一种图灵完备的编程语言,用户可以通过智能合约来进行具有复杂逻辑的操作,而在区块链网络中所有的行为都以交易来表示,用户调用智能合约进行读写操作也都是一笔笔交易,这种用户调用智能合约的交易称为“外部交易”,在区块链网络中外部交易是公开透明的,所有的外部交易都会记录在区块中。但区块链中有一种交易是不可见的,就是智能合约的内部交易,内部交易就是合约调用合约的交易,这类交易与外部交易不同,它具有隐蔽性。事实上,这些合约调用合约的交易中也包含着大量的信息,若想更好地进行区块链取证,这类数据信息必不可少。区块链取证人员若想得到这些信息,必定需要对某个区块链平台的源码进行修改,用修改源码的方式来将这些内部交易数据信息显示出来,这对取证人员的区块链源码熟悉程度有很大的要求,因此这也是区块链取证的一大难题。
三、区块链取证可行性
当下区块链取证的困难很多,但不代表无法进行。区块链本身的很多特性都为区块链取证的可行性提供了理论支持。不可篡改性、可溯源性以及永久存储性都是区块链取证可行的体现。
1. 不可篡改特性
尽管区块链取证存在着很多问题,但其本身的某些特性也让区块链取证有很大可行性。取证过程中首先就要保证数据的完整性,也就是确保数据没有受到任何破坏,这一原则在区块链取证中就可以淡化,因为区块链具有不可篡改的特性,一切数据只要上链就不能被任何人修改,所以区块链中的数据都是完整的。这一点让区块链取证人员不需要做任何措施就能得到区块链中完整不受破坏的数据信息,大大减少了取证人员的负担。
2. 可溯源特性
取证原则的第二点就是必须保证“证据连续性”,即在证据提交给法庭时,必须能够说明在证据从最初的获取状态到在法庭上出现状态之间的任何变化,但最好还是尽量在这一过程中没有任何变化。就这一原则来说,区块链的可溯源特性完全符合,由于区块链是按时间戳顺序来产生区块,也就是说整个区块链从第一个区块开始到当前区块是按照时间顺序来连接的,再加上其不可篡改的特性,取证人员只需要能获取区块信息,那这些信息就是完整且连续的。从这两点来看区块链的特性与取证原则匹配度非常高,这也说明区块链取证的可行性。
3. 永久存储特性
由不可篡改和可溯源特性为前提,区块链就能具有永久存储特性。在区块链中的操作,无论用户读取、修改或删除数据,都不会将之前的行为覆盖。就删除操作来说,用户通过智能合约删除了某一个数据,并不是删除了先前存储该数据的交易,而是新增的一笔交易来表示该数据被删除,所有在区块链中哪怕是对同一个数据变量进行一系列操作,每个时间进行的操作都会被完全、连续且永久地保存下来。这使得取证人员无需担心数据会被消除,从而让区块链取证的可行性进一步提升。
四、区块链取证对策与建议
针对区块链面临的问题以及它的可行性,本文提出了区块链取证的对策与建议。主要谈论了区块链取证应该获取哪些内容、基本的区块链取证流程、区块链应用的取证以及对暗网取证的手段。
1. 区块链取证内容
由于区块链网络是一种新的网络架构,取证人员应该要明确对区块链进行取证时,哪些信息是需要获取的。主要可以从下面几个方面来对区块链进行取证:
账户地址/钱包地址(Address)
区块链客户端(Client)
交易信息(Transaction)
矿工(Miner)
智能合约地址(Smart Contract Address)
用户调用智能合约情况
2. 区块链取证流程
区块链取证目前还没有明确的执行流程,但可以从整体上归为以账户地址为出发点和以交易为出发点两类,执行的出发点不同导致执行的流程也有所不同。
1)以账户地址为出发点
这类方式,首先需要获得区块链上的账户地址,假设现在有账户地址A,我们可以利用现有的区块链浏览器搜索这个账户地址的活动,也可以直接读取区块数据库文件通过编程筛选出与A账户相关的活动。再根据发生事件的时间范围与A账户活动的时间进行比较,通过比较判断A账户是否具有嫌疑,若具有嫌疑就将A账户添加到嫌疑账户列表,接下来再搜索与A账户有接触的其他账户,依次循环搜索,最后具有嫌疑的账户都记录在嫌疑账户列表中。将这些嫌疑账户进一步分析,判断是不是具有组织性或团体性,同时将这些账户通证的流向记录分析,最终得到一份完整的归档取证报告。
2)以交易为出发点
这类方式,首先是已经知道了有嫌疑的交易Hash值,利用交易Hash值在区块链浏览器中查询交易的账户地址,将这些账户地址列为嫌疑账户,或者直接读取区块数据库文件,通过交易Hash值来搜索该交易的具体情况,后者属于直接操作原数据,更安全。整理出嫌疑账户之后,下面的操作与“以账户地址为出发点”的方式相同,按照同样的流程整理出一份归档取证报告即可。
3)区块链应用取证流程
对区块链应用的取证与对区块链进行取证是两种不同的情况。前者相对于后者来说,多了应用软件层,对区块链应用进行取证首先是要从应用软件入手。取证人员需要安装被取证的区块链应用软件,根据预处理文件、注册表MRUs、程序链接、加密驱动器、网络驱动器以及可移动驱动器来识别区块链钱包程序。因为既然是区块链应用,区块链层一定与该应用软件有频繁的交互,而应用软件需要以某个区块链账户的身份与区块链进行交互。这部分其实属于非区块链取证的范畴,以传统的取证方式从区块链应用软件与区块链传递的数据信息中得到与之相关的区块链账户。接下来其实就是前面所谈的区块链取证,对这些获得的区块链账户进行查询,查询他们的交易情况、通证流向、活动时间等等信息,从大量的数据中得到有效的信息,形成归档取证报告。
4)暗网中的取证手段
比特币是区块链的第一款应用,它的价值更多是体现在暗网(Dark Network)中。在暗网中的非法交易尽管是透明的,但由于比特币账户的匿名性导致执法人员很难对犯罪分子进行追踪,使得犯罪分子在暗网中非常猖狂。针对暗网的取证,可以从网络角度出发,因为犯罪分子若想在暗网中进行交易,他们必须通过一种叫Tor的浏览器来进行交易操作。想要在浏览器中进行信息通讯必定需要网络传输,取证人员可以对一些活动频繁的网络出口进行监控,以此来追踪犯罪分子的地理位置,从而进行追踪。从技术层面看,当前除了对网络出口进行监控这种方式,对暗网犯罪分子的追踪没有其他更好的手段。从非技术层面,执法人员可以通过卧底的形式对犯罪分子进行追捕。
五、区块链存证
区块链电子取证事实上应该包含两个方面:取和存。这里简单地探讨一下区块链存证的实际运用,存证相比于取证来说更加容易入手,也更能在短时间内有所成效。
1. 区块链存证应用
区块链取证和存证是相互对立的,但它们也可以相辅相成。现阶段在区块链取证上是面临着很多困难,而在区块链存证上已经有了很多成熟的应用。2018年,浙江杭州一项侵害作品信息网络传播权纠纷案就结合区块链技术用于数据存储的技术原理,以电子证据审查的法律标准为基础,首次对区块链电子存证的效力审查标准进行了探索。该案件将侵权保全文件包进行Hash计算,并将此Hash值存在区块链中,在审判过程中,从区块链中获取该Hash值与法庭上文件包Hash进行比对,以此证明该文件包未被修改。
区块链电子存证整个过程分为两个阶段,第一个阶段是固定证据的过程,通过计算机技术手段得到相关的数据文件。第二个阶段是存储证据的过程,将第一个阶段获得的数据文件进行Hash值计算,通常会利用多种不同的Hash算法来生成多个Hash值,将这些Hash值存储在区块链上。区块链电子存证只是对证据的存储,至于最后该数据信息是否具有法律效力应该根据电子证据的审判标准来进行判定。
2. 区块链取证与存证结合
尽管区块链取证和存证是对立的存在,但我们同样可以将两者合二为一。对区块链取证而形成的归档报告也应该需要加以保存,防止其被修改,因此取证人员可以通过对归档报告计算其Hash值,并将归档报告的Hash值存储到区块链,以此避免归档报告被篡改。通过取证与存证相结合,可以使得整个区块链的取证过程更令人信服。
(本文刊登于《中国信息安全》杂志2019年第5期)
声明:本文来自中国信息安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。