CN116150773B - 利用计算机安全技术进行基因数据保护的方法 - Google Patents

利用计算机安全技术进行基因数据保护的方法 Download PDF

Info

Publication number
CN116150773B
CN116150773B CN202210987223.6A CN202210987223A CN116150773B CN 116150773 B CN116150773 B CN 116150773B CN 202210987223 A CN202210987223 A CN 202210987223A CN 116150773 B CN116150773 B CN 116150773B
Authority
CN
China
Prior art keywords
data
program
protection
dna sequence
sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210987223.6A
Other languages
English (en)
Other versions
CN116150773A (zh
Inventor
滕越
刘拓宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Academy of Military Medical Sciences AMMS of PLA
Original Assignee
Academy of Military Medical Sciences AMMS of PLA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Academy of Military Medical Sciences AMMS of PLA filed Critical Academy of Military Medical Sciences AMMS of PLA
Priority to CN202210987223.6A priority Critical patent/CN116150773B/zh
Publication of CN116150773A publication Critical patent/CN116150773A/zh
Application granted granted Critical
Publication of CN116150773B publication Critical patent/CN116150773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Automation & Control Theory (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及基因数据隐私保密护,具体涉及一种利用计算机安全技术进行基因数据保护的方法和系统。本发明基于DNA存储的隐私保护程序的编码、解码以及释放的过程,流程主要分为两个模块:数据保护序列的设计与生成模块,以及数据保护序列的释放与执行模块。保护生物数据安全的计算机程序可编码为DNA序列并存入测序文件或基因载体如质粒中,并实现在释放后中断当前进程从而无法读取真实数据,或获取未授权设备的控制权并追踪访问设备信息,以此保护生物信息安全。有望应用于保护敏感基因测序数据及其相关信息,并进一步广泛应用于DNA存储、生物安全及国防建设等领域。

Description

利用计算机安全技术进行基因数据保护的方法
技术领域
本发明涉及基因数据隐私保密护,具体涉及一种利用利用计算机安全技术进行基因数据保护的方法。
背景技术
基因测序技术也称作DNA测序技术,即获得目的DNA片段碱基排列顺序的技术,获得目的DNA片段的序列是研究基础生物学过程和遗传疾病成因,以及进行基因操作的基础。随着测序技术的迅速发胀,使得新一代测序平台具有高通量与并行测序等优点,这使得测序速度及测序通量大幅提升,仅需要一次测序实验即可产生海量序列数据。通过高质量和可靠的测序数据,研究者能够快速获得研究目标的全基因组序列信息。因此,全基因组测序技术能帮助研究者快速获得研究目标的整个基因组序列信息。测序技术的进步使研究者对基因测序有了更高的分辨率,其有助于产生更多来自大量个体的新功能基因组数据集,并超越现有的测序基因组信息规模。例如,对细胞表观遗传和转录状态的测序研究,可了解基因表达水平或DNA结合蛋白水平,并用于临床治疗(如癌症基因组图谱TCGA);单细胞RNA测序(scRNA-seq)和单细胞转座酶染色质测序(scATAC-seq)已经达到在单细胞水平对组织进行功能注释。
基因组测序在产生海量数据信息的同时,也面临着严峻的数据安全问题,尤其是广泛传递分享包含原始脱氧核糖核酸(DeoxyriboNucleic Acid,DNA)信息的测序文件,使得防范盗用或篡改这些基因数据具有重要的现实意义。然而,随着基因数据规模的不断增长,隐私问题阻碍了基因数据的开放,以保护隐私的安全方式进行基因数据共享的需求迫在眉睫。从这些数据中可以推断个体的遗传变异,其数据携带疾病易感性信息涉及其来源个体及近亲。例如,可利用其DNA测序文件的原始读段推断的遗传变异信息,同时功能基因组数据可通过将特定表型与样品联系进行进一步的隐私分析。另外,测序数据门槛降低,使更多人能够获取测序数据,以推断研究参与者的敏感信息。测序数据一旦公开就不可撤回,可能导致未来隐私泄露风险。而不同样本间的基因数据具有一定的独特性,以最大限度开放共享测序数据有利于疾病等方向的科学研究。因此,保护测序数据的安全问题是未来研究的重点。
目前,基于电子加密解决测序数据隐私的方法已取得一定研究进展。电子加密通过对测序文件进行数字加密实现隐私信息的保护。例如,同态加密(HME)通过加密函数对测序的数字文件进行环上的加法和乘法以保障基因信息的隐私,但这种方法速度慢且消耗大量内存,因此仅适用于较小的数据集;SMC协议在满足保护基因信息的同时又保证了基因数据的准确性,但其计算成本更高;基于加密技术的基因数据安全分析的解决方案还包括基于乱码回路的方法和基于秘密共享的安全基因组关联方法等。但是由于其较高的计算成本,这些技术都无法大规模推广,无法满足现实中测序数据防护所需的性能。基于DNA存储加密解决基因数据隐私的方式是一种区别于电子加密的崭新形式。DNA存储加密则是在信息编码过程中通过计算机算法将DNA合成中写入的数据进行加密,并将加密后的信息转化为DNA使基因数据的表达形式不变但内容发生变化,从而解决基因数据的隐私问题。例如,加法加密通过移动碱基的位数实现加密和解密,具有操作简单、复杂度低并易被破解的特点;哈夫曼编码(Huffman Coding)通过概率对测序文件进行重编码,实现了信息的压缩和隐私保护。随着DNA存储技术的快速发展,DNA将作为一种新型存储材料,已经实现对文本、图像、音频和视频等格式的信息的储存。理论上,计算机程序作为一种信息也可实现在DNA序列中的存储,因此将可执行的计算机程序以DNA序列的形式实现加密与信息的保护,是一种新型的DNA存储技术与计算机安全技术的结合手段,将突破传统的仅基于计算机技术的数据隐私加密方式。
发明内容
针对保障基因测序数据安全的需求,本发明首次采用生物-计算机安全(Cyberbiosecurity)技术作为生物安全工具,将用于数据防护的数据保护程序编码为DNA序列并存入测序文件中,其可强制终止分析受保护的数据及远程保护访问设备的信息,以此保护测序文件安全。
本发明中,计算机程序首先可以通过DNA存储技术转码保存于核酸序列中,并在解码后实现执行计算机指令的功能;其次,存入DNA序列中的本地保护程序可实现在释放后获得计算机本地权限并中断分析从而无法读取真实数据;再次,还可以在受保护文件解码完成后获取未授权设备的控制权并追踪访问设备信息。本发明具有较强的可行性,适用于二代Illumina平台和三代Nanopore平台等测序数据。本发明提出基于DNA存储的计算机数据保护系统有望应用于保护敏感基因测序数据及其相关信息,并进一步广泛应用于DNA存储、生物安全及国防建设等领域。
本发明提供一种利用计算机安全技术进行基因数据保护的方法,其包括如下步骤:
通过DNA存储技术将隐私保护代码转码并插入保存于受保护的核酸序列的保护文件中;在解码后实现执行计算机指令的功能;在未授权情况下,对于存入DNA序列中的本地保护程序可实现在释放后获得计算机本地权限并中断当前进程从而无法读取真实数据;远程保护程序可在受保护文件解码完成后获取未授权设备的控制权并追踪访问设备信息。
更具体地,包括如下步骤:
一、数据保护序列的设计与生成,具体包括:
第一步:启动shell的C语言程序;
第二步:将C语言程序转换为汇编语言;
第三步:转换为十六进制,并插入TAG;
第四步:转化为二进制序列,并进行加密处理;
第五步:转换为DNA序列。
二、数据保护序列的存储:将所述这DNA序列保存于生物体内,例如插入有需要保密基因序列的质粒、载体中;或者将该段DNA序列插入需保护的测序文件中;或者存储于有需要保密的基因数据的基因数据库中;
三、数据保护序列的释放与执行,包括:
如果非授权数据使用方获取了上述DNA序列,获取含有所述DNA序列的质粒或载体,通过测序得到fastq文件后,使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程;
如果非授权数据使用方获取了上述DNA序列,读取了基因数据库中所述DNA序列,通过读取数据得到fastq文件后,使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程,从而阻止访问设备读取真实数据;或者更进一步地,远程保护程序在受保护文件解码完成后获取访问设备的控制权并追踪到其信息;
如果是授权数据使用方,授权方输入密钥,使软件可以正常运行。
在一个具体实施方式中,所述远程保护程序中,如果是未经授权者获取了测序文件,在其将测序文件使用计算机软件进行生物信息学分析,则特定DNA序列解码为计算机可执行代码;执行稳私保护操作,例如隐私保护程序利用计算机软件的栈溢出漏洞对未授权者的计算机发起特定指令以保护测序文件。
进一步地,在测试过程中,执行隐私保护任务关闭Linux系统的地址保护、栈保护和栈不可执行等程序。
优选地,所述C语言使用gdb程序调试工具获取汇编代码,汇编代码使用objdump工具转为十六进制机器码;
数据保护序列的设计与生成的具体方法如下述:首先使用gdb程序调试工具将C语言程序转换为汇编代码,其次利用objdump汇编工具将汇编代码转换为十六进制机器码,进而通过进制转换为二进制代码,最后采用DNA存储编码将二进制机器码编码为DNA序列,DNA序列以FASTQ格式进行储存。更具体实施过程如下,第一步先编写隐私保护代码的C语言程序,之后通过C语言代码获取该程序的汇编代码;第二步使用编译工具对汇编代码进行编译,获得十六进制表示的机器码,生成的十六进制机器码中不应出现“\x00”,并增加TAG;第三步将隐私保护代码的十六进制机器码转为二进制编码;第四步将二进制序列按字节分组,每个字节的前四位取反,后四位不变;第五步再使用A、T、G和C将二进制数替换为DNA序列,其中A、T、G、C与二进制数的编码关系为A(00)、T(10)、C(01)、G(11);
所述将该段DNA序列插入需保护的测序文件中是采取DNA序列以FASTQ格式进行储存。
所述数据保护序列的释放与执行,具体是获得包含特定DNA序列的文件后,未经授权者需要使用DNA处理流程中的某一包含漏洞的软件对该文件进行数据分析,该特定软件将特定DNA序列解码为计算机可执行程序并进行后续操作;
优选地,在本地保护方式中,C语言格式的生物数据安全保护程序是通过execve()函数获取shell权限,中断当前进程并派生出一个新进程;进一步地,在远程保护方法中,C语言格式的生物数据安全保护程序借助netcat网络工具通过TCP和UDP协议在网络中读写数据,完成对非授权用户的远程追踪。
本发明因而也提供一种将计算机程序转换为核苷酸序列的方法,其特征在于,将计算程序由核苷酸序列形式呈现并保存,具体地包括如下步骤:
第一步:启动shell的C语言程序;
第二步:将C语言程序转换为汇编语言;
第三步:转换为十六进制,并插入TAG;
第四步:转化为二进制序列,并进行加密处理;
第五步:转换为DNA序列;
进一步地,还包括:
第六步,将所述这DNA序列保存于生物体内,例如插入质粒、载体中;或者存储于基因数据库中;
更具体地,首先使用gdb程序调试工具将C语言程序转换为汇编代码,其次利用objdump汇编工具将汇编代码转换为十六进制机器码,进而通过进制转换为二进制代码,最后采用DNA存储编码将二进制机器码编码为核苷酸序列,核苷酸序列以FASTQ格式进行储存,通过Fqz_comp软件压缩为FQZ格式文件并上传至生物数据库中,或者通过化学合成核苷酸序列插入载体如质粒之中;
更具体地,第一步先编写程序代码的C语言程序,之后通过C语言代码获取该程序的汇编代码;第二步使用编译工具对汇编代码进行编译,获得十六进制表示的机器码,生成的十六进制机器码中不应出现“\x00”;第三步将程序代码的十六进制机器码转为二进制编码;第四步将二进制序列按字节分组,每个字节的前四位取反,后四位不变;第五步再使用A、T、G和C将二进制数替换为DNA序列,其中A、T、G、C与二进制数的编码关系为A(00)、T(10)、C(01)、G(11)。
相应地,本发明还提供一种利用计算机安全技术进行基因数据保护的系统,用于实现上述方法,具体包括下述模块:
数据保护序列的设计与生成模块,用于实现下述功能:启动shell的C语言程序;将C语言程序转换为汇编语言;转换为十六进制,并插入TAG;转化为二进制序列,并进行加密处理;转换为DNA序列;
数据保护序列的存储模块,用于将所述这DNA序列保存于生物体内,例如插入有需要保密基因序列的质粒、载体中;或者用于将该段DNA序列插入需保护的测序文件中;或者用于存储于有需要保密的基因数据的基因数据库中;
数据保护序列的释放与执行模块,用于实现下述功能:如果是授权数据使用方,授权方输入密钥,使软件可以正常运行;如果非授权数据使用方获取了上述存储的DNA序列,获取含有所述DNA序列的质粒或载体,通过测序得到fastq文件后,使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程;如果非授权数据使用方获取了上述DNA序列,读取了基因数据库中所述DNA序列,通过读取数据得到fastq文件后,使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程,从而阻止访问设备读取真实数据;
任选地,还包括远程保护模块,用于实现下述功能:通过远程保护程序在受保护文件解码完成后获取访问设备的控制权并追踪到其信息;优选地,在远程保护模块中,C语言格式的数据保护程序借助netcat网络工具通过TCP和UDP协议在网络中读写数据,完成对非授权用户的远程保护。
进一步,本发明还提供一种利用计算机安全技术进行基因数据保护的设备,其包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序,所述计算机程序编码实现所述的方法或所述的系统,优选地还包括运行结果显示装置。
本文采用生物-计算机安全技术在基因数据保护中进行研究,以保障在共享时数据的安全性。本发明第一次提出了利用生物-计算机安全的防御方法,其可以实现本地保护和远程保护达到保护基因数据隐私的目标。存入DNA序列中的本地保护程序使测序文件的分析中断从而阻止访问设备读取真实数据,远程保护程序在受保护文件解码完成后获取访问设备的控制权并追踪到其信息。本发明大幅度的提升基因数据的安全性,并实现可追踪性,为生物学信息安全防御提供了一种新的研究方向。同时,研究结果证明了DNA强大的存储能力以及编码为DNA后具有不易被发现的特点,利用生物技术与计算机相互融合以对数据安全的各种防御方式相比传统基于生物学或计算机安全的防御具有独特优势。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1利用DNA存储实现隐私保护的框架图。A-E为基于DNA存储的隐私保护程序的编码、解码以及释放的过程。
图2数据保护序列的设计与生成模块示例。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
图1是通过网上传输的利用DNA存储实现隐私保护的流程框架图,图中A-E为基于DNA存储的隐私保护程序的编码、解码以及释放的过程。因此,本发明所采用的具体流程主要分为两个模块:数据保护序列的设计与生成模块,以及数据保护序列的释放与执行模块。
在数据保护序列的设计与生成模块中,首先需要将隐私保护代码编码为特定DNA序列(图1中A和B);其次将该段DNA序列插入需保护的测序文件中(图1中C);再次对该测序文件进行压缩(图1中C);最后将压缩后的文件进行保存(图1中C)。
在数据保护序列的释放与执行模块中,如果是未经授权者获取了测序文件,在其将测序文件使用特定的计算机软件进行解压,则特定DNA序列解码为隐私保护代码;解码得到的隐私保护程序(图1中D),包含漏洞的计算机软件利用栈溢出漏洞对未授权者的计算机发起特定指令以保护测序文件(图1中E)。
实施例二、数据保护序列的设计与生成
1、数据保护程序
通过DNA存储技术与计算机安全技术相结合,展示了利用生物-计算机技术进行维护基因数据隐私的目的。在数据保护序列的设计与生成过程中,C语言格式的数据保护程序通过汇编代码转换、十六进制转换、TAG插入等步骤最终编码为基于碱基的DNA序列。具体方法如下述第1)和第2)点。其中C语言使用gdb程序调试工具获取汇编代码,汇编代码使用objdump工具转为十六进制机器码。DNA序列以FASTQ格式进行储存并通过Fqz_comp软件进行压缩,生成FQZ格式文件并上传至生物数据库中。
如图2所示,首先使用gdb程序调试工具将C语言程序转换为汇编代码,其次利用objdump汇编工具将汇编代码转换为十六进制机器码,进而通过进制转换为二进制代码,最后采用DNA存储编码将二进制机器码编码为DNA序列。DNA序列以FASTQ格式进行储存。将该程序的DNA序列插入到需要保密文件中,通过Fqz_comp软件压缩为FQZ格式文件并上传至生物数据库中。或者将程序的DNA序列插入到质粒中,将该质粒与需要保密的质粒混在一起。
1)数据保护程序的原理
计算机安全技术的实施均需要与系统内核进行访问操作,因此需要借助Shell完成用户与计算机的沟通。计算机安全技术大致可以分为本地操作和远程操作两类。在本发明中,通过本地操作实现了本地保护程序进行基因隐私的维护,并通过远程操作实现了远程保护程序进行基因隐私的维护。本地保护程序的原理是在当前进程中通过执行程序函数execve()派生出一个子进程,从而中断解压过程。该函数为内核级系统调用,其会创建一个子进程,并将新程序(“/bin/sh”)加载到子进程内存空间,同时父进程未执行的部分将会被覆盖。由于该函数的调用会将原进程取而代之,因此使用execve()函数将不会再返回原来的进程。远程保护程序的原理是数据所属方通过服务器网络通信得到远程权限控制未经授权者的设备。
隐私保护程序需要使用execve()函数激活netcat网络工具进行反弹连接,开放服务器端口使未经授权者的设备主动与服务器建立通信,使数据归属方获得远程控制权限,实现数据所属方通过Shell远程控制未经授权者的设备从而进行实质性操作。网络工具netcat需要“/bin/sh”、服务器的端口号和ip地址或URL(Uniform Resource Locator)三个参数,其中“/bin/sh”获取设备控制权,端口号和ip地址或URL可以定位服务器。反弹连接与其他远程控制方法相比,无需考虑未经授权者是否开放端口,且可以绕过系统防火墙进行攻击。在execve()函数运行网络工具netcat的参数设置中,参数之间使用“#”代替空格(/x00),以解决Shellcode中并不能出现“/x00”的限制。参数结束位置需增加占位符,并且占位符与之前字符串同样使用“#”隔开以替换“/x00”。字符串的地址数组作为execve()的参数进行传递,数组元素在内存中被存储在连续的位置,并复用这个连续的内存位置来存储每个单独字符串的地址。即以“#”隔开的字符串的地址送入后面的占位符,在最后将NULL存储到末尾。计算源地址指针(esi)的偏移量用于区分execve()的每个参数。系统调用数存储在了累加器(Accumulator;eax寄存器),netcat地址存储在了基址寄存器(BaseRegister;ebx寄存器)中,参数的地址存储在了计数器(Count Register;ecx寄存器)中,NULL存储在了数据寄存器(Data Register,edx寄存器)中。经测试,采用上述还原指令的方法可以在不使用空格的情况下执行execve()。
另外,一般情况下测序文件中包含多条序列,因此需要从众多序列中选出特定程序编码的DNA序列,而忽略其它真实测序序列。因此,在隐私保护代码的机器码前加上TAG,便于软件找到隐私保护代码执行后续操作。这些TAG由“\x90”和”\xD6”组成,多个“\x90”为空操作雪橇,“\xD6”为bad指令,当程序执行到这两个指令时会滑动到下一条命令执行。本研究中,数据所属方在数据保护程序的初始位置加上TAG作为启动执行的标志。同时,TAG的使用也给予数据所属方一定的自由度,可以有针对性地选择隐私保护程序存储于DNA之中。
2)数据保护程序编码为DNA序列
DNA是以A、T、G和C作为存储信息的介质,每个碱基可采用两位二进制数表示,即二进制序列可以替代为DNA序列。将隐私保护程序代码直接编写成二进制难以实现,因此通过高级语言(例如C语言)转化为低级语言(例如汇编语言)再转为机器码(二进制)是一种可实现的策略。具体实施过程如下,第一步先编写隐私保护代码的C语言程序,之后通过C语言代码获取该程序的汇编代码;第二步使用编译工具对汇编代码进行编译,获得十六进制表示的机器码,需注意的是,生成的十六进制机器码中不应出现“\x00”;第三步将隐私保护代码的十六进制机器码转为二进制编码;第四步为了减少重复碱基的个数,将二进制序列按字节分组,每个字节的前四位取反,后四位不变;第五步再使用A、T、G和C将二进制数替换为DNA序列。A、T、G、C与二进制数的编码关系为A(00)、T(10)、C(01)、G(11)。经过上述四个步骤即得到本地保护与远程保护的DNA序列。
2、数据保护DNA序列的存储转换
在本地保护方式中,C语言格式的数据保护程序是通过execve()函数获取shell权限并中断解压。程序的C语言格式、机器码格式、十六进制格式和DNA序列格式的代码内容见如下,其中C语言格式代码被命名为LC_Coding,DNA序列被命名为LC_CBS:
1)本地保护的C语言代码-
2)本地保护的汇编代码
3)本地保护的十六进制机器码
4)本地保护的DNA编码
DNA长度:104
CTAAATCTCTAAGAACAGTCGAACATATTTATTCTAGCGGGCGGTAAGTCTATCTAGCGG
TCATTCTCTCGTCGTCACAGGAACAGAACAAAGGTGAGGCCGAA
在本地保护机制中,C语言转为DNA序列的数据大小及最终产生的DNA序列详细信息如表1所示,C语言程序的总长度为208bit(26bytes),对应的DNA序列的总长度为104bp,其压缩比为2.0。该DNA序列的CG含量在50%左右,不含重复序列和连续的碱基,符合自然界存在的DNA规律。根据数据保护DNA序列的存储转换技术,将DNA序列以FASTQ格式进行存储。
接下来,在远程保护方法中,C语言格式的数据保护程序借助netcat网络工具通过TCP和UDP协议在网络中读写数据,完成对非授权用户的远程保护。netcat网络工具需要为其提供数据所属方(服务器)的端口号和IP地址或URL。远程保护程序的C语言格式、机器码格式、十六进制格式和DNA序列格式内容如下,其中C语言格式代码被命名为RC_Coding,DNA序列被命名为RC_CBS:
1)远程保护的C语言代码
2)远程保护的汇编代码
3)远程保护的16进制机器码
4)远程保护的DNA length:544
在该机制中,C语言转为DNA序列的数据大小及最终产生的DNA序列详细信息如表1所示,C语言程序的总长度为1,088bit(136bytes),对应的DNA序列的总长度为544bp,其转换比为2.0。该DNA序列的CG含量在50%左右,不含重复序列和连续的碱基,符合自然界存在的DNA规律。根据数据保护DNA序列的存储转换技术,将DNA序列以FASTQ格式进行存储,并将其随机插入二代Illumina平台产生的测序数据文件中。
表1基于DNA序列的数据保护代码的详细信息
实施例三、生物数据安全保护程序在质粒中的存储
本实施例涉及数据安全本地保护程序DNA序列通过生物传输,具体以质粒为载体为例进行说明。
1)质粒构建
实验中所使用的数据安全本地保护程序DNA序列按上述实施例二进行编制得到,然后通过化学合成产生所述DNA序列。目标DNA片段的5'端添加含有限制性内切酶位点EcoRI的序列(5'-GAATTCGCGGCCGCTTCTAGAG-3'),3'端添加含有限制性内切酶位点PstI的序列(5'-TACTAGTAGCGGCCGCTGCAG-3')。然后,通过酶切与连接方法将上述片段组装于具有氨苄青霉素抗性基因的载体pSB1A3中,质粒命名为PNeo。使用热激转化方法将上述质粒转入大肠杆菌Top10中,并挑取单菌落用于后续实验。
2)细菌培养与生长曲线测定
带有重组质粒PNeo的大肠杆菌Top10细胞的培养温度为37℃,并在包含100μg/mL氨苄青霉素的Luria-Bertani(LB)液体培养基或LB琼脂平板中进行。生长曲线测定的具体实验步骤如下:使用接种环从LB琼脂平板上接种单菌落于5mL LB液体培养基中,在37℃,220rpm条件下振荡培养12小时。培养后细菌用新鲜的LB培养基梯度稀释至1:1000,并取200μL转移到96微孔板中。将含有细菌的96微孔板放入Synergy H1酶标仪中,在37℃,536rpm条件下振荡培养10小时,间隔10min连续监测其在600nm波长下的细菌光密度值。上述样品均具有三个生物学重复,并在图中表现为平均值±标准差。此外,将上述细菌用新鲜的LB培养基稀释至1:1000进行连续传代培养,并通过Sanger和Illumina平台对传代培养后的细菌进行测序。
3)Illumina平台测序与质量分析
提取样品中的基因组DNA,并使用转座酶将DNA打断为DNA样品文库,基于IlluminaMiseq平台进行文库双端加Barcode-Tagged构建单一文库以及PE150测序分析。使用fastp软件(默认参数)进行原始数据的过滤,并使用Spades将过滤后的序列组装成长片段。
实施例四、数据保护序列的释放与执行
本实施例通过一个例子来展示实现数据保护序列的释放与执行,当然可通过本领域已知的其他合理的方式来实现。
1)利用漏洞执行程序的原理
在数据保护序列的释放与执行模块,特定的软件将从测序文件中读取到包含数据保护程序的DNA序列,并解码为数据保护程序的机器码进而执行程序。但解码后的机器码存储于数据段中,而数据段中内容被计算机认定为数据而无法直接被执行,因此需要利用软件的栈溢出漏洞,将返回地址指向存放隐私保护代码的数据段中,使计算机会将该部分内容认定为程序而执行。
为了调用存储在数据段中的隐私保护程序,需要使用栈溢出方法修改地址。栈溢出程序执行需要完成以下步骤:首先定义一个固定大小的缓冲区;其次向缓冲区填入数据,当填入的数据长度大于原本固定缓冲区大小时,超出的内容将会越出栈的边界;最后数据将溢出并覆盖溢出位置的其他内容。基于此原理,本研究使用栈溢出覆盖栈空间中保存的函数返回地址。当前函数的调用执行完成后返回调用处,并执行下一条指令,函数的返回地址是指向该指令地址的指针。即使用栈溢出覆盖返回地址,使该地址指向存储于数据段中的隐私保护程序代码,程序就会跳转到该代码执行。另外,不安全的函数strcpy()由于未对缓冲区边界进行检查从而造成缓冲区溢出。
2)解码与执行DNA序列
明确了漏洞执行程序的原理后,可根据该原理对包含隐私保护程序的DNA序列解码并执行。解码流程可以概括为:获得包含特定DNA序列的文件后,未经授权者需要使用DNA处理流程中的某一包含漏洞的软件对该文件进行数据分析,该特定软件将特定DNA序列解码为计算机可执行程序并进行后续操作。解码过程与编码过程相反,将包含隐私保护程序的DNA序列解码为机器码(二进制)。解码后的二进制数按字节(8位)存储到一个char数组中,这些数据在程序运行时载入的区域为数据段或堆栈段。不安全的strcpy()函数缺少边界检查,所以其作为数据分析软件中存在的一种漏洞。声明char*strcpy(char*dest constchar*src)的功能是从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间。因其缺少检测dest所指内容空间大小的步骤,所以当复制内容超过该内存空间时,写入内容不会停止,仍会将溢出内容写入堆栈中,并覆盖ret指令的返回地址。但当地址被覆盖后,ret指令将不会返回到主程序,而是跳转到数据段中执行隐私保护代码。需要注意的是,在执行execve()函数时,需要stdin和stout并重新打开串行端口终端。
3)漏洞软件
软件Fqz_comp,其是一个开源的FASTQ压缩软件,常用于基因测序文件的处理与分析。该软件用特定的压缩策略将FASTQ格式文件压缩为Fqz格式文件。同时,该软件也可以将Fqz文件解压为FASTQ文件。为了保证未经授权者的操作会触发软件漏洞,我们对该软件进行了一定的修改:将该软件解压模块中序列读取函数增加DNA序列解码为二进制机器码的功能;添加strcpy()函数以增加一个栈溢出漏洞,以精确地定位漏洞位置。
通过DNA存储技术与计算机安全技术相结合,在生物数据安全保护序列的设计与生成过程中,C语言格式的保护程序通过汇编代码转换、十六进制转换、TAG插入等步骤最终编码为基于碱基的DNA序列。
在本地保护方式中,C语言格式的生物数据安全保护程序是通过execve()函数获取shell权限,其将导致受保护文件终端解压。在自动保护机制中,C语言转为DNA序列的数据大小及最终产生的DNA序列详细信息如表1所示,本地保护程序的大小为208bit(26bytes),对应的DNA序列的总长度为104bp(base pair),其压缩比为2.0。该DNA序列的CG含量在50%左右,不含重复序列和连续的碱基,符合自然界存在的DNA规律。
接下来,在远程保护方法中,C语言格式的生物数据安全保护程序借助netcat网络工具通过TCP和UDP协议在网络中读写数据,完成对非授权用户的远程追踪。netcat网络工具需要为其提供数据所属方(服务器)的端口号和IP地址或URL。在该机制中,C语言转为DNA序列的数据大小及最终产生的DNA序列详细信息如表1所示,远程保护程序的大小为1,088bit(136bytes),对应的DNA序列的总长度为544bp,其转换比为2.0。该DNA序列的CG含量在50%左右,不含重复序列和连续的碱基,符合自然界存在的DNA规律。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (10)

1.一种利用计算机安全技术进行基因数据保护的方法,其包括如下步骤
一、数据保护序列的设计与生成,具体包括:
第一步:启动shell的C语言程序;
第二步:将C语言程序转换为汇编语言;
第三步:转换为十六进制,并插入TAG;
第四步:转化为二进制序列,并进行加密处理;
第五步: 转换为DNA序列;
二、数据保护序列的存储:将所述DNA序列保存于生物体内,插入有需要保密基因序列的载体中;或者将该段DNA序列插入需保护的测序文件中;或者存储于有需要保密的基因数据的基因数据库中;
三、数据保护序列的释放与执行,包括:
如果是授权数据使用方,授权方输入密钥,使软件可以正常运行;
如果非授权数据使用方获取了上述存储的DNA序列,获取含有所述DNA序列的载体,通过测序得到fastq文件后, 使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程;
如果非授权数据使用方获取了上述DNA序列,读取了基因数据库中所述DNA序列,通过读取数据得到fastq文件后, 使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程,从而阻止访问设备读取真实数据;
更进一步地,提供远程保护方法,即通过远程保护程序在受保护文件解码完成后获取访问设备的控制权并追踪到其信息。
2.如权利要求1所述的方法,其特征在于,在远程保护方法中,C语言格式的数据保护程序借助netcat网络工具通过TCP 和UDP协议在网络中读写数据,完成对非授权用户的远程保护。
3.如权利要求2所述的方法,其特征在于,在远程保护方法中,如果是未经授权者获取了测序文件,在其将测序文件使用计算机软件进行生物信息学分析,则特定DNA序列解码为隐私保护代码的计算机可执行程序;执行隐私保护操作,隐私保护程序利用计算机软件的栈溢出漏洞对未授权者的计算机发起特定指令以保护测序文件。
4.如权利要求3所述的方法,其特征在于,在测试过程中,执行隐私保护任务关闭Linux系统的地址保护、栈保护和栈不可执行程序。
5.如权利要求1所述的方法,其特征在于,所述C语言使用gdb程序调试工具获取汇编代码,汇编代码使用objdump工具转为十六进制机器码;所述将该段DNA序列插入需保护的测序文件中是采取DNA序列以FASTQ格式进行储存。
6.如权利要求5所述的方法,其特征在于,所述C语言使用gdb程序调试工具获取汇编代码,汇编代码使用objdump工具转为十六进制机器码的具体方法如下:第一步先编写隐私保护代码的C语言程序,之后通过C语言代码获取该程序的汇编代码;第二步使用编译工具对汇编代码进行编译,获得十六进制表示的机器码,生成的十六进制机器码中不应出现“\x00”,并增加TAG;第三步将隐私保护代码的十六进制机器码转为二进制编码;第四步将二进制序列按字节分组,每个字节的前四位取反,后四位不变;第五步再使用A、T、G和C将二进制数替换为DNA序列,其中A、T、G、C与二进制数的编码关系为A(00)、T(10)、C(01)、G(11)。
7.如权利要求1所述的方法,其特征在于,所述数据保护序列的释放与执行,具体是获得包含特定DNA序列的文件后,未经授权者使用DNA处理流程中的某一包含漏洞的软件对该文件进行数据分析,该特定软件将特定DNA序列解码为计算机可执行程序并进行后续操作;
在本地保护方式中,C语言格式的生物数据安全保护程序是通过execve()函数获取shell权限,终断当前进程,并派生出一个新的进程;进一步地,在远程保护方法中,C语言格式的生物数据安全保护程序借助netcat网络工具通过TCP 和UDP协议在网络中读写数据,完成对非授权用户的远程追踪。
8.一种利用计算机安全技术进行基因数据保护的系统,其特征在于,包括下述模块:
数据保护序列的设计与生成模块,用于实现下述功能:启动shell的C语言程序;将C语言程序转换为汇编语言;转换为十六进制,并插入TAG;转化为二进制序列,并进行加密处理;转换为DNA序列;
数据保护序列的存储模块,用于将所述DNA序列保存于生物体内,插入有需要保密基因序列的载体中;或者用于将该段DNA序列插入需保护的测序文件中;或者用于存储于有需要保密的基因数据的基因数据库中;
数据保护序列的释放与执行模块,用于实现下述功能:如果是授权数据使用方,授权方输入密钥,使软件可以正常运行;如果非授权数据使用方获取了上述存储的DNA序列,获取含有所述DNA序列的载体,通过测序得到fastq文件后, 使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程; 如果非授权数据使用方获取了上述DNA序列,读取了基因数据库中所述DNA序列,通过读取数据得到fastq文件后, 使用生物信息软件对测序文件进行分析,软件运行中启动fastq文件中DNA形式的程序,中止分析过程,从而阻止访问设备读取真实数据;
还包括远程保护模块,用于实现下述功能:通过远程保护程序在受保护文件解码完成后获取访问设备的控制权并追踪到其信息;在远程保护模块中,C语言格式的数据保护程序借助netcat网络工具通过TCP 和UDP协议在网络中读写数据,完成对非授权用户的远程保护。
9.一种利用计算机安全技术进行基因数据保护的设备,其包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序实现如权利要求1至7任一项所述的方法。
10.如权利要求9所述的设备,其特征在于,还包括运行结果显示装置。
CN202210987223.6A 2022-08-17 2022-08-17 利用计算机安全技术进行基因数据保护的方法 Active CN116150773B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210987223.6A CN116150773B (zh) 2022-08-17 2022-08-17 利用计算机安全技术进行基因数据保护的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210987223.6A CN116150773B (zh) 2022-08-17 2022-08-17 利用计算机安全技术进行基因数据保护的方法

Publications (2)

Publication Number Publication Date
CN116150773A CN116150773A (zh) 2023-05-23
CN116150773B true CN116150773B (zh) 2024-01-30

Family

ID=86360612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210987223.6A Active CN116150773B (zh) 2022-08-17 2022-08-17 利用计算机安全技术进行基因数据保护的方法

Country Status (1)

Country Link
CN (1) CN116150773B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652515A (zh) * 2004-02-06 2005-08-10 微软公司 网络dna
KR20160001455A (ko) * 2014-06-27 2016-01-06 한국생명공학연구원 데이터 저장용 dna 메모리 기술
CN111091876A (zh) * 2019-12-16 2020-05-01 中国科学院深圳先进技术研究院 一种dna存储方法、系统及电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11789906B2 (en) * 2014-11-19 2023-10-17 Arc Bio, Llc Systems and methods for genomic manipulations and analysis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1652515A (zh) * 2004-02-06 2005-08-10 微软公司 网络dna
KR20160001455A (ko) * 2014-06-27 2016-01-06 한국생명공학연구원 데이터 저장용 dna 메모리 기술
CN111091876A (zh) * 2019-12-16 2020-05-01 中国科学院深圳先进技术研究院 一种dna存储方法、系统及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DNA数据存储;肖优明;;检察风云(03);全文 *

Also Published As

Publication number Publication date
CN116150773A (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
CN105426708B (zh) 一种Android系统的应用程序的加固方法
Conti et al. Visual reverse engineering of binary and data files
US10192029B2 (en) Secure and scalable mapping of human sequencing reads on hybrid clouds
US11122017B2 (en) Systems, devices, and methods for encrypting genetic information
Li et al. Mechanisms of polymorphic and metamorphic viruses
EP2980718A1 (en) Genetic information storage device, genetic information search device, genetic information storage program, genetic information search program, genetic information storage method, genetic information search method, and genetic information search system
CN106599628A (zh) 一种基于模块钩子的Python字节码文件保护方法
CN107612683B (zh) 一种加解密方法、装置、系统、设备和存储介质
TW200841209A (en) Obfuscating computer program code
KR20060017593A (ko) 데이터 처리 방법
WO2014202615A2 (en) Method to manage raw genomic data in a privacy preserving manner in a biobank
Liao et al. Mesophilic and thermophilic viruses are associated with nutrient cycling during hyperthermophilic composting
Sinclair et al. Nucleic and amino acid sequences support structure-based viral classification
Grass et al. Genomic encryption of digital data stored in synthetic DNA
Ali et al. Microbial comparative genomics: an overview of tools and insights into the genus Corynebacterium
JP2005235076A (ja) コンピュータシステム、中央装置及びプログラム実行方法
CN116150773B (zh) 利用计算机安全技术进行基因数据保护的方法
de Loaysa Babiano et al. Evaluation of live forensic techniques, towards Salsa20-Based cryptographic ransomware mitigation
Kogay et al. Defence systems and horizontal gene transfer in bacteria
Islam et al. Trojan bio-hacking of DNA-sequencing pipeline
Ney et al. DNA sequencing flow cells and the security of the molecular-digital Interface
Islam et al. Genetic similarity of biological samples to counter bio-hacking of DNA-sequencing functionality
Gupta et al. A Survey: Vulnerabilities Present in PDF Files
Gudodagi et al. Encryption and Decryption of Secure Data for Diverse Genomes
Niyitegeka Composition of cryptographic mechanisms and watermarking for the protection of externalized genetic data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant