首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

最强数据安全系统--硬件防火墙完整解决方案,有源码,黑客不服来战(1)

最强数据安全系统--硬件防火墙完整解决方案,有源码,黑客不服来战(1)

1 简介
由于传统的防火墙结构都是在软件层,存在响应时间慢、自主控制能力弱的弱点,并且设置复杂。我们利用FPGA的灵活性和可定制性等优点,考虑网络服务器的访问安全,设计了服务器数据安全系统,该系统的功能如下:能够自动识别网页,防止网页篡改;能有效防御黑客的入侵;能在网页被篡改后及时备份还原;开放源代码,系统完全自主可控。

图1  基于FPGA的数据安全系统框图


系统框图如上图图1所示,外部计算机通过防火墙访问WEB服务器,防火墙进行第一级数据安全保护;FPGA板卡插在WEB服务器主板上,进行第二级数据安全保护,即对外部计算机欲访问的网页进行防篡改处理,FPGA板卡比对服务器上网页和FPGA板卡上CF卡中存储的网页,如果网页未被篡改,则外界访问计算机可以访问WEB服务器;否则,中止外界计算机访问并上报服务器网站异常。FPGA板卡上构建嵌入式系统,完成第二级数据安全防护,与WEB服务器之间通过PCIE总线通信。另外,在服务器被攻击后,管理员可以控制FPGA板卡对WEB服务器进行网站数据还原。本系统实现主要包括软件和硬件两部分,下面分别进行介绍。

2 硬件系统
2.1 开发环境介绍
2.1.1 硬件环境与工具
FPGA开发板使用Xilinx 公司的virtex-5 xupv5-lx110t开发板,其他硬件包括:RS232 串口线,RJ45 网线,JTAG调试线,以太网集线器(HUB)等。

硬件防火墙的功能复杂,我们的开发环境需要较好的FPGA支持,所以选用的是Xilinx的virtex-5的开发板,该开发板通过串口和PCIE总线接口连接WEB服务器。

2.1.2 软件环境与工具
软件工具主要使用ISE Design Suite 10.1(不可选用其他版本或其升级版本如13.1等),红帽子企业版Red Hat Enterprise 4,虚拟机VMware 8.0.0 build-471780,WinDRIVER等。

2.2 硬件构架
2.2.1 搭建microblaze硬件平台
在FPGA上构建嵌入式系统,在嵌入式系统上完成网页比对等处理。嵌入式系统包括硬件平台和操作系统,操作系统采用linux系统。其中硬件平台的搭建如下:
  • 首先打开XPS 10.1,新建BSB工程,共三个选项,由于我们此次是新建一个MicroBlaze 硬件平台,所以选中Base System Builder Wizard,点击OK,进入硬件平台搭建向导。
  • 在弹出的对话框中,点击browse,选择一个目标磁盘并建立一个自己的工程文件夹,双击进入自己的工程文件夹后,点击保存,系统会自动为此项目命名为system。点击OK,进入BSB 欢迎对话框。
  • 在欢迎对话框内,选择I would like to create a new design,点击next。
  • 进入开发板选择对话框后,进行如下的系统配置 :Board Vendor: Xilinx Board Name: XUPV5-LX110T Evaluation Platform Board Revision: A 点击next。
  • 进入处理器选择对话框,由于virtex-5只支持软核MicroBlaze,所以默认即可。在对话框中还可以看到MicroBlaze 系统的一些参数,比如封装类型,速度等。点击next
  • 进入MicroBlaze 配置对话框 ,MicroBlaze处理器总线时钟频率选择为125MHz。其中参考时钟由开发板上的时钟源提供,用来产生总线和处理器的频率,根据开发板的不同而不同。Debug I/F 选择on-chipH/W debug module,Local memory 选择64KB。Cache setup 选择Enable。点击next。
  • 进入I/O 端口配置对话框。I/O 设备选择RS232_Uart_1,不选RS232_Uart_2和LEDs_8Bit。波特率选择115200,并且打开中断,其他选项默认即可。可以看到窗口的右侧有Data sheet,可以点击进入看到关于每个外设的data sheet,点击next。第二个对话框全部取消,点击next。全部需要,使用DMA,使用中断,点击next。DDR2_SDRAM和SysACE_CompactFlash都选用,使用中断,点击next。
  • 由于此次远程控制中使用了操作系统,所以需要添加定时器,点击Add Peripherals,在弹出的对话框中选择xps_timer_1,timer mode 选择one timer is present,使用中断,点击next。
  • 进入cache 配置对话框。由于在系统构建之初,我们已经选择了对外部存储器进行cache 缓存,所以在这里我们需要对其大小进行设置,数据Cache 与指令Cache 都选择64KB ,并且勾选DDR2_SDRAM对应的ICache 与DCache。点击next。
  • 全部点击next,直到Finish。

图2为在FPGA上搭建嵌入式系统的硬件部分组成框图。

图 2  FPGA搭建的嵌入式系统硬件组成框图



图 3  FPGA硬件平台各组成模块连接框图

2.2.2 在EDK 中配置系统软件环境

由于此次实验中,我们需要在上面搭建的硬件平台上移植petalinux嵌入式操作系统,所以首先要把petalinux 的配置文件petalinux_v1_00_d 文件夹拷贝到/EDK/sw/lib/bsp/文件夹下。否则后续的配置工作将会遇到很大问题。

具体软件环境的搭建步骤如下:
  • 启动EDK,打开刚才搭建的MicroBlaze 硬件系统工作目录文件夹下的system.xmp 文件。
  • 在打开MicroBlaze 系统文件后,可以在EDK 开发环境中看到相关系统信息,首先我们切换到Bus interface,看到MicroBlaze 系统中各个模块与总线的连接情况,如图3所示。
  • 这里,我们需要对此系统做出如下修改。把窗口切换到port,点开debug module,点开interrupt 中的net 选项,选择debug module interrupt。接着点开port 选项中的opb_inct_0,双击L to H。我们需要把debug module interrupt 加入到connected interrupt 栏中,具体方法是选中debug module interrupt,点击加号,debug module interrupt 会被加入到connected interrupt 栏中。
  • 接下来进行软件平台配置,点击Software 菜单,启动Software Platform Setting,系统会弹出软件平台的配置窗口,如图4所示,可以看到共有三个可配置项:Software Platform,OS and Libraries,Drivers。右方的窗口为可配置选项的参数。


图 4  软件平台配置窗口


  • 这里我们需要逐项进行相关配置。首先,我们对Software Platform 进行配置,点击Software Platform,在窗口右侧为可配置参数,包括两个子窗口,其一是processor parameters,其中包括xmdstub_peripheral,交叉编译器等选项,其中,extra compiler flag 指定了在生成BSP 与库的过程中,交叉编译器所用的编译标志,archiver 和compiler 分别指定了生成BSP与库所用的工具链。我们只需修改xmdstub_peripheral即可,其他保持默认。在OS & Library settings 子窗口中,打开OS 的下拉菜单,由于我们选择使用的操作系统为petalinux,所以这里选择petalinux。特别值得注意的是如果第一步没有完成,那么在点开OS 的下拉菜单后,将没有petalinux 选项,xmdstub的下拉菜单中选择debug_module。
  • 完成如上配置后,选中OS and Library 可配置选项,这里完成开发板对petalinux 的BSP 进行配置, stdin,stdout都选择RS232等。
  • 到此,EDK的环境配置完成,可以生成工程文件了,点击Hardware下拉菜单,选择Generate Bitstream生成bit流文件,在Software下拉菜单中选择Generate Libraries and BSPs。

3嵌入式操作系统搭建
3.1 虚拟机的搭建
安装红帽子企业版Red Hat Enterprise 4,在桌面Linux系统中安装PetaLinux源码树。Windows和Linux两种系统间的数据交换通过设置共享目录来实现,linux中共享路径是home/mnt/hgfs目录下。具体步骤如下:

(1)建立工作目录:在Linux操作系统的终端模式下运行“mkdir/home/petalinux”命令,新建petalinux文件夹作为嵌入式开发的工作目录。
(2)解压压缩包:通过共享目录把PetaLogix公司发布的压缩包petalinux-v0.40-rc2.tar.gz拷贝到petalinux工作目录中。然后在终端模式下运行“tar-zxvf petalinux-v0.40一rc2.tar.gz”解压缩命令。
(3)设置环境变量:PetaLinux系统已经为用户编写好了设置环境变量的脚本文件settings.sh和settings.csh。用户只需要根据宿主机操作系统shell的类型,运行相应的环境变量配置脚本即可完成PetaLinux开发环境的设置。需要注意的是,每次进入终端模式都必须运行一次环境变量配置脚本,运行命令式source settings.sh。
(4)在终端模式下运行microblaze-uclinux-gcc-v命令,查看编译器的版本信息。如果交叉开发工具链安装没有问题,运行命令后在终端窗口将出现版本信息。

(3)配置软件平台,在XPS软件界面中,选择Software菜单中Software Platform Settings选项。弹出的对话框中有Software Platform、OS and Libraries和Drivers三个选项卡。在Software Platform选项卡的OS下拉列表框中选择PetaLinux操作系统,在Version下拉列表框中选择1.00.b版本。在OS and Libraries选项卡中根据目标板的实际情况为操作系统设置相关参数。


3.3 为PetaLinux操作系统传递配置信息
(1)创建并配置新平台

首先为目标板建立一个新的设计平台,在终端模式下运行以下命令。cd /home/petalinux/petalinux-vO.40-final/software/petalinux-dist ,petalinux-new-platform-k 2.6 -v Xilinx -p xupv5_xl110t,make menueonfig命令执行后,将创建一个名称为xupv5_xl110t的平台,同时进入终端式内核配置菜单。利用上下光标键选择Vendor/Product Selection选项,单击回车键进入下一级菜单。在该菜单中选择供应商和产品。


(2)拷贝EDK工程文件
拷贝EDK工程文件到/home/petalinux/petalinux-vO.40-final/hardware/use-platform路径下,该路径是脚本工具默认的操作位置。通过共享文件夹将整个工程文件夹拷贝到Linux环境中。

(3)传递配置信息
系统配置过程中将利用auto-eonfig.in文件、或者Kconfig.auto文件中硬件信息为内核构建Makefile文件。PetaLinux提供的脚本命令可以快速地将该文件拷贝到PetaLinux源码树中。直接在终端模式下运行petalinux-copy-autoconfig脚本命令即可。
返回列表