CN109582478B - 基于gpu的隐藏通道的研究方法 - Google Patents
基于gpu的隐藏通道的研究方法 Download PDFInfo
- Publication number
- CN109582478B CN109582478B CN201811473843.8A CN201811473843A CN109582478B CN 109582478 B CN109582478 B CN 109582478B CN 201811473843 A CN201811473843 A CN 201811473843A CN 109582478 B CN109582478 B CN 109582478B
- Authority
- CN
- China
- Prior art keywords
- sender
- receiver
- memory
- hidden channel
- gpu
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及到GPU安全领域,具体内容涉及到基于GPU隐藏通道的研究方法。本发明的方法包括:利用GPU的全局内存建立隐藏通道,首先建立全局内存上的共同驻留,然后利用全局内存中的原子操作的明显时差搭建隐藏通道;建立同步数据传输机制保证隐藏通道数据传输可靠性,首先发送方和接收方先建立连接,双方互相确认之后再进行数据传输;传输图片文件的方法,先将图片文件转换成二进制文件,然后读取二进制文件内容进行数据传输。以上方法可以实现完整的图片文件传输。
Description
技术领域
本发明涉及到GPU安全领域,具体内容涉及到利用GPU的全局内存建立隐藏通道,保证隐藏通道数据传输可靠性,以及传输图片文件的方法。
背景技术
通用图像处理单元(GPGPU)存在于大多数现代计算平台中,同时它们也越来越多地作为计算资源集成到集群,数据中心和基础架构中,使得它们成为可能被攻击的目标。本方法主要是针对GPGPU上的隐藏通道攻击方法的研究,并且GPGPU为隐藏通道提供了许多有吸引力的属性。从硬件方面考虑,现代GPGPU由许多可编程流式多处理器(SM或SMX)组成,流式多处理器是GPU的计算核心,每个SM中包含一些共享资源和执行单元,它们可以共同访问共享的全局设备存储器。从软件方面考虑,本方法用到的GPGPU平台是CUDA,CUDA的并行计算函数称为kernel,kernel由大量的thread组成,thread以Grid形式组织,每个Grid又由若干个block组成,每个block都有一个专用的共享内存区域,用于执行线程间通信和数据传输。
kernel可以被分配给一个或多个SM的一个或多个block。每个块由许多线程组成,这些线程被分组为通常使用单指令多线程(SIMT)模型一起调度的32个线程的warp。warp被分配给SM上通常很少的warp调度程序之一。在每个周期中,每个warp调度程序可以向可用内核发出一个或多个指令。根据架构的不同,每个SM都有许多不同类型的kernel,例如单精度内核,双精度内核和特殊功能单元。根据可用内核的数量,指令需要一个或多个周期才能发布,但内核采用大量流水线操作,因此可以在不同周期内继续向它们发出新指令。分配给同一SM的warp将竞争访问处理核心。同样,分配给相同warp调度器的线程可以竞争调度器的传输带宽。
全局内存是CUDA中的可读写内存,每个线程都有独立的寄存器和local memory,同一个block的所有线程共享一个共享内存,而全局内存是所有线程都可以访问的,因此全局内存有很高的带宽,在高端的CUDA卡上控制读写通常会超过100G/S。基于以上原因,选择用全局内存来搭建隐藏通道。
隐藏通道可定义为系统中不受安全策略控制的、范围安全策略的信息泄露的通道。隐藏通道由发送方和接收方组成,双方之间进行秘密地未授权通信。隐藏通道的基础是内存访问的时间差异。其原理是发送方和接收方访问同一内存区域,接收方通过自身访问时间的长短来判断发送方传递的信息。
隐藏通道攻击可以使没有网络访问的恶意应用程序将数据传输到另一个应用程序使得泄露设备数据。同时,隐藏通道可用于绕过跟踪敏感信息曝光的保护措施,如沙箱或信息流跟踪,允许敏感数据逃离遏制。目前隐藏通道已在高速缓存、共享内存、纹理内存上进行了搭建,全局内存是GPU内存中最大的一块区域,在全局内存上搭建隐藏通道将有利于提高隐藏通道传输带宽。同时所有线程都能访问全局内存,在一定程度上提高了隐藏通道攻击的危险性。
发明内容
首先对选择GPU全局内存搭建隐藏通道的原因进行说明,详细介绍搭建隐藏通道的步骤和实现过程。隐藏通道传输信息要求数据进行同步传输,由此建立同步数据传输机制。最后应用隐藏通道传输图片信息。
1、基于全局内存建立隐藏通道的方法
搭建隐藏通道的方法有几种,如利用L1缓存、L2缓存、共享内存等,本方法是利用全局内存建立隐藏通道。全局内存不同于缓存和共享内存,全局内存拥有高带宽,进行简单的数据加载操作很难观察到访问时间的差异。全局内存中的原子操作不会被线程调度机打断,利用该操作能够观察到明显的时间差异,因此本方法选择通过原子操作来建立隐藏通道。具体步骤如下:
(1)建立共同驻留
搭建隐藏通道的第一步是建立共同驻留。发送方占用内存时,接收方进行等待,直到发送方释放内存接收方才占用内存进行操作;发送方不占用内存时,接收方占用内存进行操作。发送方和接送方同时对GPU全局内存中相同的内存进行操作,以此产生内存竞争。
GPU全局内存分为合并内存和非合并内存,合并内存是多个线程可以同时读取或者写入连续的全局内存位置,此时GPU的效率是最高的。非合并内存则是所访问的位置不连续或者随机的,此时GPU无法保持高效。所以本方法选择GPU合并内存进行内存竞争,使得发送方和接收方都高效的访问同一段连续的内存空间。这部分内容是成功建立隐藏通道的前提,在发送方和接收方产生内存竞争时,访问时间的明显差异才能被观察到。
(2)利用原子操作建立隐藏通道
原子操作是对全局内存和共享内存中的32位或64位数据进行“读取-修改-复写”这一操作。原子操作可以看作是一种最小单位的执行过程。在其执行过程中,不允许其他并行线程对该变量进行读取或写入操作。如果产生竞争,则其他线程必须等待。原子操作的函数有atomicAdd(),atomicExch(),atomicSub()等。这里选择的原子操作是atomicAdd(),也可以选择其他函数,该函数读取位于全局内存或共享内存储器地址中address处的32位或者64位字old,计算(old+val),并将结果存储存储器的同一地址中。
发送方传输字节为‘1’时,发送方先占用全局内存中的一段连续地址进行原子加1操作,此时接收方对同一连续内存进行相同原子操作时,接收方必须等待发送方操作完成之后,才能继续进行操作;发送方传输字节为‘0’时,发送方不进行任何操作,此时接收方对连续内存进行原子加1操作不需要等待。传输不同字节时的明显时间差异可以被观察到,传输字节‘1’时接收方所用时间远高于传输字节‘0’时所用时间。
2、保证隐藏通道数据传输可靠性的方法
隐藏通道上的信息传递并不都是可靠的,由于全局内存的高带宽可能导致噪音影响数据的传输,使得发送方和接收方数据传输不同步,从而导致数据传输错误。以此提出了保证隐藏通道数据传输可靠性的方法,通过设计同步数据传输机制来保证两个内核进行同步数据传输,以下是该机制的具体内容:
N:表示要传输和接受的比特数;
ReadyToSend:初值为0的变量;
ReadyToReceive:初值为0的变量;
ReadyToSend():发送一个ReadyToSend信号给接收方;
ReadyToReceive():发送一个ReadyToReceive信号给发送方;
Wait():等待接受信号;
发送方传输数据时进行的操作如下:
(1)首先,发送方发送ReadyToSend信号给接收方,这个步骤的实现是在全局内存中开辟一块值为0的内存区域,发送方和接收方都可以进行访问,发送方对该内存进行原子加1的操作。
(2)接下来发送方不断检测此块内存的值,如果该值为2,就说明接收方已经接收到了发送方发出的ReadyToReceive信号。
(3)最后,发送方传输字节为‘1’时,发送方对全局内存中的一段连续内存进行atomicAdd()操作;发送方传输字节为‘0’时,不做任何操作。
接收方接收数据时进行的操作如下:
(1)首先,接收方不断检查是否收到发送方传来的ReadyToSend信号,这个过程实现是通过检查一块内存的值是否为1。
(2)接下来一旦接收方收到ReadyToSend信号,就立即发送ReadyToReceive信号给发送方。
(3)最后,接收方进行atomicAdd()操作,并计算该操作的执行时间来判断发送方发出的字节。
发送方和接收方通过先建立连接再传输数据的方式,在一定程度上保证了数据传输的可靠性。
3、传输图片信息的方法
(1)二进制形式读取图片数据
图片常见的存储格式有bmp,jpg,png等。BMP是一种与硬件设备无关的图像文件格式,使用非常广。它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,本实验选择bmp图片进行传输。BMP文件的图像深度可选lbit、4bit、8bit及24bit。BMP文件存储数据时,图像的扫描方式是按从左到右、从下到上的顺序。BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。BMP图像文件可以直接以二进制形式读取,通过使用fread()函数。
读取BMP文件步骤如下:
第一步、先读入BMP的头文件(header);
第二步、通过头文件确定色位(RGB24或者RGB8pal)、长度、宽度;
第三步、最后从头文件之后把BMP的数位信息(bitmap),以字节形式读入char数组。
(2)传输二进制数据
发送方从存储图片信息的内存中读取数据,每次读取并传输一个字节,一个字节总共8位,然后将8位二进制数传输给接收方。接收方通过访问内存的时间差判断接收的内容,并将接收到的数据存入文件中。发送方和接收方通过对内存访问的操作,制造不同字符的时间差异,成功将图片信息完整传输并保存在文件中。最后通过MATALAB读取二进制文件可以完整展现一张图片。
本实验对传输后获取的图片和原图进行了对比,使用的是均值哈希算法得出两张图片的哈希值。均值哈希算法对于哈希值的判断是如果这个值为0,则表示这两张图片非常相似;如果值小于5,则表示有些不同,但比较相近;如果哈希值大于10则表明完全不同的图片。本实验得出的哈希值为0,表示传输后获取的图片和原图是相同的。
具体实验方式
本发明的实验环境是基于一台PC和一台服务器,PC和服务器都安装的是ubuntu16.04LTS版本。PC主机的CPU为Intel(R)Core(TM)i5-4570,3.20GHz,内存为4GBRAM,64位操作系统。
服务器的内存是31.3GB,处理器是Intel Xeon(R)CPU E5-2630v3,此服务器内包含两块GPU,具体配置情况如下:
表1实验环境配置
本发明操作主要分为三个部分,第一部分是进行GPU全局内存中的原子操作来搭建隐藏通道,第二部分是在隐藏通道上建立同步数据传输机制保证数据可靠性,第三部分是传输图片信息。
1.搭建隐藏通道
(1)算法描述
算法输入:dev_data,n
算法输出:K,L
说明:dev_data是选定的全局内存块的首地址,n是内存块的数量。K为载入次数,L为延迟时间
算法步骤:
1)确定全局内存块的首地址,共同定位到同一地址空间形成内存竞争。
2)启动一个正常的核函数,再启动发送方函数和接收方函数。
3)正常启动的函数和发送方和接收方函数同时进行原子操作。
4)通过计时函数统计每次接收方所用时间,时间较短则传输字节‘0’,时间较长则传输字节‘1’。
其伪代码如下:
2.建立同步数据传输机制
(1)算法描述
算法输入:dev_data,n
算法输出:K,L
说明:dev_data是选定的全局内存块的首地址,n是内存块的数量。K为载入次数,L为延迟时间
算法步骤:
1)分配一块全局内存用于信息传递。
2)发送方和接收方定位到访问同一块地址空间进行原子操作。
3)发送方和接收方建立通道,利用分配的全局内存块作为进行数据传输的信号。
4)传输完成,释放空间。
其伪代码如下:
3.传输图片信息
(1)算法描述
算法输入:dev_data,n
算法输出:B,L
说明:dev_data是选定的全局内存块的首地址,n是内存块的数量。B为0或1,L为延迟时间。
算法步骤:
1)确定全局内存块的首地址,共同定位到同一地址空间形成内存竞争。
2)启动发送方函数和接收方函数。
3)发送方和接收方函数进行原子操作。
4)通过计时函数统计每次发送方所用时间,时间较短则传输字节为‘0’,时间较长则传输字节为‘1’,同时将接收到的数据存入文件中。其伪代码如下:
4.实例说明
以GeForce GTX 1070为例,进行全局内存隐藏通道数据传输。以下进行简单说明。
1.首先搭建基于全局内存原子操作的GPU隐藏通道。全局内存是GPU中内存最大的部分,因此我们只选取其中一小块连续内存进行操作。为了能够观察到很明显的延迟,选用原子操作来进行。对于GeForce GTX 1070,其中SMX数为15,因此block数要大于或者等于15.
2.从全局内存中分配一块64位的地址空间作为标志信息,当发送方想要给接收方发送数据时,就对这块地址进行原子加1的操作。接收方一直读取这块地址信息,一旦加1则接收方也会给发送方一个接收连接信号,在该地址上继续进行加1操作。发送方访问此信息标志,确认可以发送数据后将占用一段连续地址空间,此时统计的延迟时间远高于未占用时的两倍。
3.传输一个BMP图片文件。如果该图片文件的首数值为97,转换成二进制数为10000001,将这串二进制字符读入到隐藏通道中,1表示命中,0表示非命中。延迟时间命中时间大约是非命时间的两倍。测试结果如下表:
D | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
L | 3501 | 1642 | 1593 | 1501 | 1624 | 1509 | 1499 | 3765 |
表2发送数据实例
如表所示,当D=1时,延迟为3.501ms,当D=0时,延迟为1.642ms。发送数据为10000001。通过D的变化,可以发送不同的数据。
Claims (2)
1.基于GPU的隐藏通道的研究方法,其特征在于实施步骤为:
(1)建立隐藏通道共同驻留:在建立共同驻留阶段要了解全局内存信息,包括全局内存的大小和分类、全局内存的分配方式和访问方式、发送方和接收方对全局内存的操作;
(2)利用GPU全局内存上的原子操作搭建隐藏通道:包括两个步骤,其一,选择分配一块GPU全局内存中的合并内存进行操作,使得发送方和接收方都高效的访问同一段连续的内存空间,以此创建共同驻,当发送方和接收方同时进行内存访问的时候,可以产生延迟;其二,全局内存容量大带宽高,选择全局内存中的原子操作可以成功解决这个问题,传输信息的双方同时通过对内存进行原子操作,可以观察到明显的时间差;
(3)建立隐藏通道上的同步数据传输机制:本方法必须保证发送方和接收方同步进行操作,一旦在通信过程中有噪音干扰,将会影响传输过程,基于干扰环境提出了隐藏通道优化方法,建立同步数据传输机制。
2.根据权利要求1所述的基于GPU的隐藏通道的研究方法,其特征在于本方法建立同步数据传输机制,该机制的实现过程如下:
(1)设置两个初值为零的变量ReadyToSend和ReadyToReceive,分别由发送方和接收方进行操作;
(2)发送方操作:首先,发送方发送ReadyToSend信号给接收方,接下来发送方等待收到由接收方发出的ReadyToReceive信号,最后发送方传输字节为‘1’时,发送方对全局内存中的一段连续内存进行atomicAdd操作;发送方传输字节为‘0’时,不做任何操作;
(3)接收方操作:首先,接收方不断检查是否收到发送方传来的ReadyToSend信号,接下来一旦接收方收到ReadyToSend信号,就立即发送ReadyToReceive信号给发送方,最后,接收方进行atomicAdd操作,并计算该操作的执行时间来判断发送方发出的字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811473843.8A CN109582478B (zh) | 2018-12-04 | 2018-12-04 | 基于gpu的隐藏通道的研究方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811473843.8A CN109582478B (zh) | 2018-12-04 | 2018-12-04 | 基于gpu的隐藏通道的研究方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109582478A CN109582478A (zh) | 2019-04-05 |
CN109582478B true CN109582478B (zh) | 2023-10-03 |
Family
ID=65926925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811473843.8A Active CN109582478B (zh) | 2018-12-04 | 2018-12-04 | 基于gpu的隐藏通道的研究方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109582478B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111683093A (zh) * | 2020-06-09 | 2020-09-18 | 湖南大学 | 基于IPv6网络的动态隐蔽通信方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000043857A1 (de) * | 1999-01-20 | 2000-07-27 | Fts Computertechnik Ges.Mbh | Optimierung der nutzdatenrate in einem verteilten zeitgesteuerten multicluster-echtzeitsystem |
WO2010062000A1 (en) * | 2008-11-27 | 2010-06-03 | Darkhorse Co., Ltd. | Method and system for providing user created contents to be used for study and portable unit for studying user created contents to be used for study |
CN102244682A (zh) * | 2011-07-19 | 2011-11-16 | 中国科学院软件研究所 | 一种云计算环境下的隐蔽通信方法 |
CN108388518A (zh) * | 2018-03-14 | 2018-08-10 | 湖南大学 | 基于gpu三种共享内存的隐藏通道的实现方法 |
-
2018
- 2018-12-04 CN CN201811473843.8A patent/CN109582478B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000043857A1 (de) * | 1999-01-20 | 2000-07-27 | Fts Computertechnik Ges.Mbh | Optimierung der nutzdatenrate in einem verteilten zeitgesteuerten multicluster-echtzeitsystem |
WO2010062000A1 (en) * | 2008-11-27 | 2010-06-03 | Darkhorse Co., Ltd. | Method and system for providing user created contents to be used for study and portable unit for studying user created contents to be used for study |
CN102244682A (zh) * | 2011-07-19 | 2011-11-16 | 中国科学院软件研究所 | 一种云计算环境下的隐蔽通信方法 |
CN108388518A (zh) * | 2018-03-14 | 2018-08-10 | 湖南大学 | 基于gpu三种共享内存的隐藏通道的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109582478A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Farshin et al. | Make the most out of last level cache in intel processors | |
KR102319809B1 (ko) | 데이터 처리 시스템 및 다중 트랜잭션들을 처리하는 방법 | |
US6170070B1 (en) | Test method of cache memory of multiprocessor system | |
JP2021111315A (ja) | ニューラルネットワークデータ処理装置、方法および電子機器 | |
US8595437B1 (en) | Compression status bit cache with deterministic isochronous latency | |
CN115033184A (zh) | 访存处理装置、方法、处理器、芯片、板卡及电子设备 | |
US20220206944A1 (en) | Cache allocation method and device, storage medium, and electronic device | |
US20230359628A1 (en) | Blockchain-based data processing method and apparatus, device, and storage medium | |
US8902915B2 (en) | Dataport and methods thereof | |
CN114356223A (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
CN115905061B (zh) | 数据搬运装置、dma装置、电子设备及数据搬运方法 | |
CN116821011B (zh) | 参数确定及数据读写方法、处理器、装置、计算机设备 | |
WO2023124304A1 (zh) | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 | |
CN115174673B (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
CN109582478B (zh) | 基于gpu的隐藏通道的研究方法 | |
CN115269454A (zh) | 数据访问方法、电子设备和存储介质 | |
CN109669884A (zh) | 一种处理器系统和终端芯片 | |
CN107783909B (zh) | 一种内存地址总线扩展方法及装置 | |
US11513958B1 (en) | Shared mid-level data cache | |
CN115794366A (zh) | 一种内存预取方法及装置 | |
CN109684256A (zh) | 服务器及数据传输方法 | |
US11327890B1 (en) | Partitioning in a processor cache | |
US11093405B1 (en) | Shared mid-level data cache | |
JP2010244096A (ja) | データ処理装置、印刷システムおよびプログラム | |
CN108052296B (zh) | 一种数据读取方法、设备及计算机存储介质 |
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 |