一种信息写入方法、信息读取方法及装置与流程

文档序号:19156495发布日期:2019-11-16 00:51阅读:193来源:国知局
一种信息写入方法、信息读取方法及装置与流程
本说明书实施例涉及信息安全
技术领域
,特别涉及一种信息写入方法、信息读取方法及装置。
背景技术
:随着人们安全意识的提升,各大公司对于自身的重要数据的保护意识也在增强。现有技术中一般通过配置管理工具和客户端电脑安全管理手段对这些数据进行保护。但是仍然会出现数据被发布到互联网上从而导致公司的重要信息被泄漏的情况。但一般情况下,公司内的设备通过配置管理工具获取到的数据的都是相同的。一旦发生数据泄露,并不能直接查询到数据泄漏的源头,从而无法实现代码泄漏后采取相应的补救措施或者进行溯源追责。因此,目前亟需一种能够在数据泄露之后追踪泄漏源头的技术手段。技术实现要素:本说明书实施例的目的是提供一种信息写入方法、信息读取方法及装置,以解决现有技术中在数据泄露后无法确定数据泄露的源头的问题。为了解决上述技术问题,本说明书实施例提供一种信息写入方法、信息读取方法及装置,具体实施步骤如下:一种信息写入方法,包括:获取业务信息对应的编码信息;将所述编码信息嵌入宿主数据;所述宿主数据在嵌入编码信息之前和嵌入编码信息之后所实现的功能相同,所述宿主数据包括源代码。一种信息写入装置,包括:编码信息获取模块,用于获取业务信息对应的编码信息;信息嵌入模块,用于将所述编码信息嵌入宿主数据;所述宿主数据在嵌入编码信息之前和嵌入编码信息之后所实现的功能相同。一种信息读取方法,包括:获取嵌入在宿主数据中的编码信息,所述宿主数据包括源代码;将所述编码信息转化为业务信息。一种信息读取装置,包括:编码信息获取模块,用于基于宿主数据,获取嵌入在宿主数据中的编码信息;读取信息获取模块,用于将所述编码信息转化为读取信息。一种宿主数据存储方法,包括:获取宿主数据中的可调整代码;将所述可调整代码的格式转化为存储格式;所述可调整代码的格式转化前后所实现的功能不变;将转化后的宿主数据存储至数据库中。一种宿主数据存储装置,包括:可调整代码获取模块,用于获取宿主数据中的可调整代码;格式转化模块,用于将所述可调整代码的格式转化为存储格式;所述可调整代码的格式转化前后所实现的功能不变;数据存储模块,用于将转化后的宿主数据存储至数据库中。由以上本说明书实施例提供的技术方案可见,本说明书实施例所提供的信息写入方法,通过将所述业务信息转化为编码信息之后,再根据所述编码信息对宿主数据进行调整,并且使得调整后的宿主数据的功能不便,从而对宿主数据进行有效的信息嵌入。在本说明书实施例所提供的信息读取方法中,再通过获取宿主数据中所嵌入的编码信息,并将所述编码信息按照同样的方式再转化为读取信息,从而实现了信息的读取。通过上述方法,在将信息写入宿主数据的过程中,能够在不影响所述宿主数据的整体功能的情况下,将信息写入宿主数据,并且在数据泄露之后,能够从所述宿主数据中重新读取出写入数据,从而能够实现在数据泄露时确定泄露源头从而采取相应的补救措施或者进行溯源追责。此外,在针对宿主数据进行存储时,能够将其中的可调整代码转化为标准格式,从而便于对数据进行存储和管理。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本说明书实施例一种信息写入方法的流程图;图2为本说明书实施例一种信息读取方法的流程图;图3为本说明书实施例一种信息写入装置的模块图;图4为本说明书实施例一种信息读取装置的模块图;图5为本说明书实施例一种宿主数据存储方法的流程图;图6为本说明书实施例一种宿主数据存储装置的模块图。具体实施方式下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。为了解决上述技术问题,下面结合附图1对本说明书实施例一种信息写入方法进行介绍。所述方法的执行主体为计算机设备;所述计算机设备包括:服务器、工控机(工业控制计算机)、pc机、一体机。所述方法的执行步骤如下:s110:获取业务信息对应的编码信息。业务信息即为需要以隐藏的方式写入宿主数据中的信息。同时,为了保证在宿主泄露之后能够通过泄露的宿主数据追溯到泄露源头,业务信息在写入后应当不影响宿主数据的正常运行。此外,业务信息在写入之后也不能轻易地被抹除。在一个实施方式中,所述业务信息可以是客户端标识信息和/或用户标识信息。由于系统中的数据是被公司内部的客户端或用户进行下载,将所述客户端标识信息和/或用户标识信息以隐藏的方式写入数据之后,当数据遭到泄露之后,读取出数据中的客户端标识信息和/或用户标识信息,即可直接确定泄露数据的源头,从而对数据泄露进行补救或者对泄露者进行问责。所述编码信息中包括至少一个编码信息元素。编码信息元素即为编码信息中的最小组成成分。编码信息元素可以是数字、字符、字母等多种形式的元素。为了方便后续步骤的执行,所述编码信息元素优选的可以是二进制数字,即0或1。将业务信息转化为编码信息可以是直接利用ascii、gbk、utf-16等编码方式将业务信息中的字符转化为相应的数字,再进一步地转化为对应格式的编码信息。在另一个实施方式中,为了适应业务信息的复杂性,还可以先将业务信息转化为业务图像,对所述业务图像进行二值化处理之后转化为二值图像。根据所述二值图像再次转化为二值矩阵,再通过dct离散余弦变换或者dft离散傅里叶变换等变换方式对所述二值矩阵进行变换从而得到变换矩阵。再对所述变换矩阵进行编码得到编码信息,编码方式可以是无损的huffman编码等可变字长编码方式。通过该实施方式中的转化方法能够针对克服不同字符编码方式不同的问题,直接将业务信息转化为对应的编码信息。通过将业务信息转化为文本图像再转化为相应的编码信息元素的方式,使得在写入信息之后,即使写入信息后的数据缺失了一部分,仍然能够从剩余的数据中获取信息的内容,从而提升了信息读取过程的鲁棒性。s120:将所述编码信息嵌入宿主数据。宿主数据即为需要将业务信息写入的数据。在实际应用中,所述宿主数据可以是源代码等需要避免泄露的数据。当所述宿主数据为源代码数据时,若在其中直接添加业务信息,则可能轻易被删除,若对其中的代码本身做出改动,又难以保证修改后的代码所执行的功能完全不变。在一个实施方式中,将所述编码信息嵌入宿主数据,可以是获取宿主数据中的至少一个可调整代码后,再基于所述编码信息,对所述可调整代码的格式进行调整。可调整代码为宿主数据中的一类特殊代码。可调整代码根据不同的格式写入时并不影响整体代码的正常执行。例如,“a>b”和“b<a”在格式上并不相同,但两者表达的含义和所实现的功能均相同。获取此类代码作为可调整代码。具体的,可以利用ast语法解析树逐个对宿主数据所包括的源代码进行分析,获取其中的可调整代码。在一个实施方式中,在执行所述信息写入方法之前,可以预先获取可调整代码集合。将所述宿主数据中所包含的源代码依次与所述可调整代码集合中的代码进行比较,从而获取所述宿主数据中的可调整代码。下表1即为一个可调整代码集合的示例。表1序号表达式1表达式21a>bb<a2a>=bb<=a3a||b!(!a&&!b)4a&&b!(a!=null||b!=null)5null!=str&&“”.equals(str)null!=str&&str.length()==06null!=list&&list.size()>0null!=list&&!list.isempty()在该集合中对应于各个可执行代码,均包含有表达式1与表达式2,且所述表达式1与所述表达式2在代码中执行时的功能均相同。利用不同的表达式进行表示时代码的作用均相同,但却能够根据不同的代码撰写规则对标注后的数据进行识别,也能够利用不同的表达式承载相应的信息。根据所述编码信息,对所述可调整代码的格式进行调整,可以是根据所述编码信息元素的值,确定对应的可调整代码的格式。利用一个具体的示例进行说明。例如,所述可调整代码为表1中的各个代码。编码信息元素依次为0、0、1、1、0、1。预先设定表1中的各个可调整代码的表达式1对应于编码信息元素0,表达式2对应于编码信息元素1,则根据编码信息元素0将对应的可调整代码的格式调整为对应的表达式1的格式,根据编码信息元素1将对应的可调整代码的格式调整为对应的表达式2的格式。上述示例仅仅是为了对该步骤进行一个更好的说明,实际应用中所述编码信息元素的选取范围、类型以及可调整代码的可调整形式的数量均不受限制。为了确保最终将编码信息写入时的正确性,在基于所述编码信息,对所述可调整代码的格式进行调整之前,还可以判断所述编码信息的数量是否大于可调整代码的数量。若所述编码信息的数量小于可调整代码的数量,在基于所述编码信息,对所述可调整代码的格式进行调整后,将可调整代码中未进行过调整的代码转化为标准格式。所述标准格式,可以是预先设定的统一格式,例如,将剩余的可调整代码均调整为表达式1的形式。若所述编码信息的数量大于可调整代码的数量,则截取相当于可调整代码数量的编码信息,作为写入编码信息。从而避免了信息过多无法写入宿主数据的问题。为了确保能够正确地将业务信息写入,可以对所述业务信息的大小进行控制,使得不会出现写入信息不完整的情况。在将文字信息转化为文字图像的实施方式中,控制所述文字图像的所获取到的二值矩阵的大小,使得最终得到的编码信息的大小也符合业务信息的数量限制。通过上述方法可以看出,将业务信息转化为相应的编码信息元素之后,再通过调整宿主数据中的可调整代码的方式,可以将信息隐藏地写入宿主数据中,同时还不影响宿主数据的正常执行,在数据泄露后,即使将数据的格式或者变量名称等信息进行更改,也不会导致宿主数据中所隐藏的信息被移除,从而能够在信息泄露后有效地确定信息泄露的源头并采取相应的措施。在利用上述信息写入方式将业务信息写入宿主数据之后,势必存在需要将写入信息的数据中的写入信息读取出的情况。为了更好地应对上述方法,本说明书还提供了一种信息读取方法的实施例。所述方法的执行主体为计算机设备,所述计算机设备包括:服务器、工控机(工业控制计算机)、pc机、一体机等。如图2所示,所述方法的具体执行步骤如下:s210:获取嵌入在宿主数据中的编码信息。宿主数据即为通过上述信息写入方法将信息写入的数据。所述宿主数据包括源代码。在所述宿主数据中嵌入有之前所写入的编码信息,可以通过读取所述编码信息读取出相应的信息。在所述宿主数据中包含有可调整代码。所述可调整代码可以具有多种写入格式,且不同的写入格式并不影响所述可调整代码所体现的作用。所述基于宿主数据,获取嵌入在宿主数据中的编码信息,可以是获取宿主数据中的可调整代码,并基于所述可调整代码的格式,获取编码信息。具体对于所述可调整代码的说明可以参考步骤s120中的叙述,在此不再赘述。利用一个具体的示例进行说明,基于步骤s120中的表1,若可调整代码的格式为表达式1,则对应的编码信息元素为0,;若可调整代码的格式为表达式2,则对应的编码信息元素为1。通过上述方法,根据所获取到的可调整代码,可以依次确定对应的编码信息元素。获取所述信息标注数据中的可调整代码,可以是基于预先设置的可调整代码集合,对所述信息标注数据中的代码依次进行匹配,从而获取所述信息标注数据中的全部可整代码。若在将信息写入宿主数据时对能够修改的可调整代码的数量进行过限制,则在选取得到所有可调整代码后,可以预先选取满足所述可调整代码限制数量的可调整代码,用于后续步骤中对写入信息的读取。若所述可调整代码的数量小于编码信息限定数量,可以利用标准数据对所述编码信息进行补全。所述标准数据的数量为所述编码信息限定数量和可调整代码数量的差值。所述标准数据可以针对编码信息中所包含的数据的格式进行设定,对此不做限制。s220:将所述编码信息转化为业务信息。在获取得到所述编码信息之后,通过之前将所述业务信息转化为编码信息的方式,逆向对所述编码信息进行处理的方式,即可将所述编码信息转化为读取信息。在一个实施方式中,若在将所述业务信息转化为编码信息时,所采用的时步骤s110中的方法。那么,在该步骤中,为了获得读取信息,可以首先利用反编码方式对所述编码信息进行反编码,得到变换矩阵,再利用傅里叶反变换等变换方式,将所述变换矩阵转化为二值矩阵。通过二值矩阵中不同的值所对应的色彩,可以将所述二值矩阵转化为待识别图像。最后再利用文本识别技术,从所述待识别图像中读取出读取信息。结合上述信息写入方法和信息读取方法,利用一个具体的场景示例进行说明。用户a在下载源代码时,提供了自身的标识,将所述标识转化为编码信息为[0、0、1、1]。在依次从所述宿主数据中获取4个可调整代码,分别为a&&b、a>b、a>=b、a||b。获取所述编码信息中的编码信息元素所对应的代码写入规则,分别为第一写入规则、第一写入规则、第二写入规则、第二写入规则,对所述可调整代码进行调整后,上述四个可调整代码分别调整为a&&b、a>b、b<=a、!(!a&&!b),从而实现了用户a的标识信息的写入。在源代码数据泄露之后,对泄露后的源代码数据中的可调整代码进行获取,并基于预先限定的可调整代码的数量,分别获得a&&b、a>b、b<=a、!(!a&&!b)四个可调整代码。上述可调整代码分别对应于第一写入规则、第一写入规则、第二写入规则、第二写入规则,则对应的编码信息元素分别为0、0、1、1,将编码信息[0、0、1、1]转化为读取信息之后,确定为用户a的标识信息,即可确定在用户a的终端上发生了数据的泄露,即可针对该终端进行补救或针对用户a进行相应的问责处理。根据上述方法步骤的描述以及场景示例的说明可以看出,所述信息写入方法和所述信息读取方法能够在不影响宿主数据的正常使用的情况下,将所述业务信息写入数据中。并且能够针对所述宿主数据中的信息进行读取,从而用于确定所述待标注信息的来源,在数据泄露时能够进行相应的处理。为了对所得到的宿主数据进行更好的存储和管理,如图5所示,还提供一种宿主数据存储方法的实施例,所述方法的执行主体为计算机设备,所述计算机设备包括:服务器、工控机(工业控制计算机)、pc机、一体机等。所述方法的具体执行步骤如下:s510:获取宿主数据中的可调整代码。所述宿主数据可以是基于上述信息写入方法所得到的包含业务信息的数据。在写入数据库时,为了便于管理,需要去除其中的业务信息。获取所述可调整代码的具体步骤可以参考步骤s120中的叙述,在此不再赘述。s520:将所述可调整代码的格式转化为存储格式。由于此时宿主数据中嵌入有业务信息,则可调整代码的格式是基于编码信息进行设置的。为了统一所存储的宿主数据,需要对其中的可调整代码的格式进行更改。获取到宿主数据中的可调整代码之后,将所述可调整代码的格式转化为存储格式,从而对可调整代码的格式进行统一。所述存储格式,可以是将可调整代码均按照表达式1的格式进行修改,从而使得所有可调整代码的格式均相同,便于对其中的数据进行管理。上述示例只是为了对存储格式进行解释,所述存储格式的具体要求不做限制。s530:将转化后的宿主数据存储至数据库中。在所述宿主数据为源代码时,所述数据库可以是代码库。通过上述方法的步骤,在将宿主数据进行存储时,能够消除其中的业务数据,从而保证了存储数据格式的统一性,便于对所述数据进行有效的管理。为了更好地对上述信息写入方法进行执行,本说明书实施例还提供一种信息写入装置。所述信息写入装置集成于所述计算机设备,如图3所示,所述信息写入装置包括:编码信息获取模块310,用于获取业务信息对应的编码信息;信息嵌入模块320,用于将所述编码信息嵌入宿主数据;所述宿主数据在嵌入编码信息之前和嵌入编码信息之后所实现的功能相同。为了更好地对上述信息读取方法进行执行,本说明书实施例还提供一种信息读取装置。所述信息读取装置集成于所述计算机设备,如图4所示,所述信息读取装置包括:编码信息获取模块410,用于基于宿主数据,获取嵌入在宿主数据中的编码信息;读取信息获取模块420,用于将所述编码信息转化为读取信息。为了更好地对上述宿主数据存储方法进行执行,本说明书实施例还提供一种宿主数据存储装置。所述宿主数据存储装置集成于所述计算机设备,如图6所示,所述宿主数据存储装置包括:可调整代码获取模块610,用于获取宿主数据中的可调整代码;格式转化模块620,用于将所述可调整代码的格式转化为存储格式;所述可调整代码的格式转化前后所实现的功能不变;数据存储模块630,用于将转化后的宿主数据存储至数据库中。在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog2。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1