首页 > 嵌入式软件 > linux

目前,国内大部分VPN 网关在硬件平台上使用基于x86 CPU的商用工控机主板。由于商用工控机是为一般的工业控制而设计的,作为VPN网关使用时,存在功能冗余、成本及可靠性难于控制等问题。因此,有必要自己设计一款性价比较高的硬件平台供VPN网关使用。Motorola通信处理器PowerPC在通信业中使用广泛,并具有良好的性价比,可以满足VPN安全网关的设计需要。另外,安全产品涉及一个国家的主权和敏感的安全信息,作为保证安全极为重要的操作系统和加密算法应该完全为自己掌握。因此,采用具有自主知识产权的操作系统和加密算法尤为重要。而L inux操作系统源代码的开放性及其在网络产品中的优异表现,使得我们可以用其构建具有自主知识产权的VPN安全网关。

本文引用地址: http://embed.21ic.com/software/linuxos/201806/64298.html

VPN概念

什么是VPN

VPN即虚拟专用网,是通过一定的安全机制在公用的网络如因特网中建立起与公网相对独立和封闭的信息通道,以保护企业各子网之间、子网和移动用户之间、移动用户和服务器之间的通信数据的安全。VPN利用公网的资源,让用户拥有同专网相同的安全性,并享受因特网带来的经济实惠和方便迅捷。

VPN如何保护通信安全

不同类型的VPN所采用的协议不同,使用的安全机制也不同。关于VPN的协议比较多,但目前最完善的、安全性最高的应属IPSec协议。它可使用CA 数字证书来实现通信双方的身份认证;使用对称加密算法来对数据进行加密,保证数据的安全性;使用单向散列函数对数据计算摘要,并对摘要进行加密来保证数据的完整性。此外,VPN节点之间通信,不可能每次都手工配置密钥,手工方式既不安全也不方便,可以采用因特网自动密钥交换协议来进行密钥的协商,设置每次会话密钥的生命期,在快要结束生命期时,自动协商下一个会话密钥。

当企业虚拟专网建立时,需要在各个子网的出口配置安全网关。安全网关负责对流出数据进行加密和计算校验和,对进入数据进行检验和解密,并实施访问控制。VPN安全网关在其中具有举足轻重的作用。比如,当一台主机与另外一台主机通信时,会首先启动IKE (自动密钥协商)进程协商各种工作参数,包括加密算法、验证算法、密钥长度、密钥值等,并进行双向的身份认证,所有这些成为一个安全关联( Security Association) 。

VPN的使用

VPN安全网关与VPN Client软件配合使用,通过灵活配置隧道策略,不仅可以解决通信的安全问题,还可以解决用户对公司总部网络的访问授权问题。图1 是一个VPN安全系统的典型网络拓扑图。

当网关与网关相连时,通过VPN管理中心或终端方式为需要相互通信的两台网关间配置对应的隧道,位于两台私口后的主机就能通过加密隧道进行通信,防止数据被丢失、篡改并保证数据的完整。

VPN安全网关设计方案概述

VPN系统体系结构

VPN的主要作用是采用加密、认证和网络技术在公共互联网上构建相互信任方之间的安全加密信息传输通道,以期达到专用网络的效果。VPN网关在其中将发挥非常重要的核心作用。

由图1可知,VPN网关工作在本地局域网及与其通信的远程局域网的网关位置,具有加密和认证功能。相互信任的局域网间进行通信时,仍然使用互联网作为中间信道。但是,通过VPN网关的加密功能确保信息在不安全的互联网上流通时是密文形式。这样,即便信息被截取,也无法偷窥或篡改其内容,保证通过互联网连接的局域网间通信的安全性、机密性、可认证性和完整性等安全性能。

VPN安全网关的设计目标

(1) 完整实现IPSec协议簇,完全支持VPN的要求。

(2) 要建立在具有自主版权的、安全性完全控制在自己手中的内核操作系统之上。

(3) 要确保自身的安全、协议的安全和信息通道的安全。采用国密办批准的加密算法,由硬件实现数据加解密。

(4) 要具有较高的性价比,满足低端网络的要求。明文吞吐率10Mbp s;启用IPSec协议,以隧道方式加密传输时,吞吐率大于4Mbp s。

(5) 设计与实现要采用先进的硬、软件技术和方法。

(6) 尽可能方便管理、灵活配置和界面友好。

技术思想

(1) 软件: ①自主开发的嵌入式安全操作系统内核;②由于L inux OS的源代码的开放性及其在网络产品中的优异表现,因而可以用其构建具有自主知识产权的VPN安全网关(采用嵌入式L inux 2. 4. 4 For PowerPC,内核根据需要裁减,并加入相应的硬件驱动程序,完成对FlashMemory和DOC文件系统的支持) ;③网络协议和IPSec协议层; ④数据加/解密算法由采用国密办批准的硬件加密芯片SSF10B实现; ⑤管理系统层需支持手工和通过SMC (安全管理中心)配置IPSec策略。

(2) 硬件:根据设计要求,该VPN网关将用于10Mbp s以太网环境中,设计采用目前在通信业中使用较广的Mo2torola通信处理器PowerPC MPC8xx作为主CPU,选用其中一款性价比较高的控制器MPC855T。在硬件平台的设计中,本着满足性能要求,保证高可靠性和高性价比的原则,采用有多种硬件选项的设计,来满足设计要求。嵌入式L inux操作系统的构建

通常的嵌入式系统开发大致可以分为硬件设计、装载或引导嵌入式系统、在嵌入式系统上建立开发平台以及开发应用等四个步骤。

利用ppcboot引导

ppcboot是德国Denk软件工程中心开发的引导程序,我们在研究开发中使用了其中的ppcboot-1. 1. 5作为开发蓝本,对其代码进行了修改,以满足硬件设计的要求。

ppcboot源码树的目录结构

CHANGELOG / /记录历次版本升级时的修改内容

COPYING

CRED ITS

MAKEALL

Makefile / /制作文件

README / /必读的文件

System. map / /当编译连接完成后,所生成的ppcboot二进

/ /制中所有函数、数据的地址信息

board / /各种与板子硬件关联的. c模块

common / /一些通用ppcboot命令集的. c模块

config. mk

cpu / /与MPC8xx硬件关联的系统初始化. c代码

disk / /磁盘分区支持

doc / /技术文档目录

examp les / /一些简单的、无需操作系统的应用程序

fs / /ppcboot中对文件系统的支持

include / /头文件

net / /网络协议支持

ppc PowerPC / /处理器运行时环境支持

ppcboot / / elf32格式的ppcboot二进制执行文件

ppcboot. bin / / raw二进制格式的ppcboot执行文件

ppcboot. map / / s2record格式的ppcboot执行文件

rtc / /实时时钟支持

tools / /与ppcboot相关的一些工具软件ppcboot的特点

经修改后, ppcboot-1. 1. 5 具有如下特性: ( 1 ) 支持bootm,直接从flash引导L inux,并提供软件工具集,可构建出最终烧结用的影像; (2) 支持从doc或flash memory引导L inux,并提供工具集,可构建出最终烧结用的影像; (3) 板上flash /doc读、写、擦除功能; (4) 支持串行口kermit协议下载代码或数据; (5) 支持scc1以太网口启动tftp下传数据:如内核、ramdisk、autoscrip t等影像; ( 6) 支持串行口srecord下载代码或数据; (7) 支持autoscrip t; (8) 提供板上内存读写,格式化显示,可进行简单测试。

当完成ppcboot-1. 1. 5的改写后,对其进行编译,得到二进制的ppcboot. bin代码,然后将其烧录在板上的BOOTEPROM中,这样就可以在上电后完成对系统的引导。

建立Linux开发平台

修改和编译嵌入式Linux内核

Linux内核有自己的结构体系,进程管理、内存管理和文件系统是其最基本的三个子系统。图2 为Linux 内核的结构。图中虚线框中部分可以看成是Linux内核的单内核结构,因此修改内核必须注意各子系统间的协调。

Linux开发平台使用内核版本为2. 4. 4的PowerPC嵌入式L inux操作系统作为VPN 网关的基本软件平台。为了支持硬件平台,需要对内核进行修改,并增加相应设备的驱动程序。

(1) 驱动程序列表。

DOC 驱动程序源码: /home / sjw01 / linux/drivers/mtd /devices/ doc2000. c;

以太网驱动程序源码: / home / sjw01 / linux/ arch /ppc /8xx _ io / enet_scc1. c fec. c;

RTC 驱动程序源码: /home / sjw01 / linux/drivers/unis _ rtc / rtc8xx. h rtc8xx. c setrtc8xx. cMkaefile setrtc8xx;

串口驱动程序源码: /home / sjw01 / linux/ arch /ppc /8xx_ io / uart. c;

flash memory 驱动程序源码: /home / sjw01 / linux/drivers/mtd / map s/unis. c。

(2) 交叉编译环境。

使用hardhat CDK2. 0作为开发工具,需将下面的路径加入用户环境变量$PATH 中: /op t/hardhat/devkit/ppc /8xx/bin; #export PATH = $PATH: /op t/hardhat/devkit/ppc /8xx/bin或编辑“. bash_p rofile”文件的PATH行。对于应用软件,一般情况下只要替换编译器cc为ppc_8xx-gcc,重新编译一下源代码即可。构建目标文件系统

配置DOC或FlashMemory中的文件系统是件很讲究的事情,主要是因为DOC /Flash容量有限,在保证正常功能的前提下,要尽可能地少占用资源。

总体上,文件分成如下几类: (1)共享库类:这类文件必不可少。(2) L inux/GNU系统实用工具:尽量用busybox、tinylogin代替,能减则减。(3)配置文件:多出现在/ etc下,不太占地方,但要注意协调关系。(4)用户应用程序:编译时尽量使用动态连接,编译后strip一下,放到固定位置。

目标文件系统列表如表1所示。

所有配置文件、可执行文件、库文件的位置均符合L inux操作系统的惯例。

IPSec实现中的硬件加密算法

在VPN安全网关中,加密算法的安全、高效,是VPN网关安全性和有效性的重要保证。为此,在设计中采用了一种硬件加密模块的方式,使得我们的VPN网关可以在硬件上使用不同的加密算法。在我们的默认配置中,使用国密办批准的分组加密算法芯片SSF10。

为了使用硬件加密模块,需要在Linux内核的IPSec实现中添加和修改相应的代码,下面对其简单说明。由于IPSec实现在内核中的特殊位置,并且MPC855T的主频较低 (80MHz) ,采用访问设备驱动文件的方式访问硬件SSF10加密模块会造成速率大幅降低。因此,我们采用I/O直接访问硬件SSF10芯片。这需要将模块驱动中的操作分散到IPSec实现的相关部分,替换原来的软件加密算法。同理,可以使用硬件DES/3DES、硬件AES算法和其他国密办批准的算法,用硬件实现数据加密。对IPSec的一个实现freeswan算法部分进行修改,使其可以实现硬件算法。与硬件加密算法有关的文件如下:

freeswan-1. 94 /klip s/net/ ip sec /Config. in;

freeswan-1. 94 / libdes/des_enc. c;

freeswan-1. 94 /klip s/net/ ip sec / ip sec_sa. h;

freeswan-1. 94 /klip s/net/ ip sec / ip sec_tunnel. c;

freeswan-1. 94 /klip s/net/ ip sec / ssf10. h;

freeswan-1. 94 /klip s/net/ ip sec / ip sec_init. c;

freeswan-1. 94 /klip s/net/ ip sec /pfkey_v2_parser. c;

freeswan-1. 94 /klip s/net/ ip sec_rcv. c。

完成修改后, 使用内核make menuconfig 命令, 选中Networking op tions→[* ] IPSEC: Use SSF10..,重新编译即可使用SSF10硬件算法模块。

结束语

为了满足VPN安全网关设计的目标,本文在基于Motorola PowerPC和嵌入式L inux的VPN网关设计中使用Motorola通信处理器PowerPC、采用L inux和加密算法,构建出了具有自主知识产权的VPN安全网关。理论分析表明,本文提出的VPN安全网关设计方案、嵌入式L inux操作系统的构建方法以及硬件加密模块的实现方法能够满足10Mbp s的网络环境中提供虚拟专用网的安全服务。但是,由于其定位在低端,不适合在100Mbp s的网络环境中使用。如果要在100Mbp s的环境中使用VPN网关,就要考虑使用基于PowerPCMPC82xx的硬件平台

换一批

延伸阅读

[真心话] Windows、Linux、OS X 版 Opera 12.10 正式发布:支持 Windows 8 触控、Retina 屏幕、SPDY 协议

Windows、Linux、OS X 版 Opera 12.10 正式发布:支持 Windows 8 触控、Retina 屏幕、SPDY 协议

Opera 日前正式在 Windows、Linux、OS X 三大平台上推出了 12.10 版本。作为 Opera 12 的后续版本,Opera 12.10 新加入了对 OS X 通知中心、Retina 屏幕、Windows 8 触控......

关键字:Windows Retina Linux 12.10

[新鲜事] Linux之父怒喷谷歌安全工程师为哪般?

Linux之父怒喷谷歌安全工程师为哪般?

上周五,Linux 之父 Linus Torvalds 在内核邮件列表上用很犀利的言辞抨击了 Google Pixel 安全团队的开发者 Kees Cook,引起了大家广泛地讨论。......

关键字:Linux 谷歌 安全工程师

[新鲜事] Twitter 成为 Linux 基金会新成员

Twitter 成为 Linux 基金会新成员

继英伟达和三星之后,Twitter 日前宣布他们也将于本周在加州举行的北美站 LinuxCon 大会上正式成为 Linux 基金会的成员(英特尔、IBM、Google 等:「鼓掌欢迎!」)。Twitter 的开源业务经理 Chris An......

关键字:Twitter Linux 基金会

[新鲜事] Windows、Mac、Linux 3 版 Skype 更新齐发

Windows、Mac、Linux 3 版 Skype 更新齐发

在今天一天内 Windows、Mac、Linux 3 个平台上的 Skype 都获得了更新。在 Windows 版本中 UI 得到了一些改进,包括可以将联系人「钉」到联系人列表顶部、在配置较差的电脑上加入了影像渲染的反向兼容性以及更好的 ......

关键字:Windows Linux Skype Mac

[新鲜事] CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

CentOS系统宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像

今天,CentOS系统开发人员Fabian Arrotin非常高兴的宣布为ARM(armhfp)硬件架构发布CentOS Linux 7(1611)镜像。该GNU/Linux发行版本深受单板计算机和嵌入式设备的喜爱,支持树莓派3、树莓派2、......

关键字:ARM CentOS Linux

[新鲜事] 针对 Linux 的木马程序Wirenet出现

针对 Linux 的木马程序Wirenet出现

以往Linux其中一个卖点是“没有病毒”,然而Linux日益普及却令它也开始成为恶意程式的目标。根据俄罗斯保安方案开发商Dr Web的报告、继 Mac OS X之后,在Linux也发现了意图取得用户密码的木马程序。 ......

关键字:Wirenet Linux 木马 程序

[猎聘集] 全世界最成功的程序员:远见卓识会毁了Linux

全世界最成功的程序员:远见卓识会毁了Linux

Linux发明者称,正因为我不知道它将来会怎样,所以我对别人的建议和影响才表现得格外开放。......

关键字:程序员 Linux 开源

[新鲜事] Valve老大G胖:支持Linux因Win8是个灾难

Valve老大G胖:支持Linux因Win8是个灾难

华尔街日报》旗下科技博客AllThingsD报道,昨日Valve老大Gabe Newell出席了由Google风投等私募公司在西雅图举行的一场晚宴,期间和前微软游戏发行部门副总裁Ed Fries谈到了他近期对业界一些的看法。Valve在上周......

关键字:Valve Linux Win8

[真心话] 神技能get:实现1秒启动Linux?

神技能get:实现1秒启动Linux?

尽可能快的启动系统,对于自动化设备是非常重要的。系统能够在用户无法感知的时间内启动,也就意味着在不需要工作时,可以完全切断电源,而不是挂起进入休眠状态。本文基于Atmel AT91系列片上系统和NAND闪存,经过一......

关键字:Linux 自动化设备 启动 系统

[新鲜事] Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux内核修复Ryzen线程数目识别错误,多线程性能将会飙升

Linux已经在官网发布最新的内核修复这一问题,预计Ryzen 7处理器又能纵横在Linux系统上。......

关键字:Linux内核 Ryzen 多线程

[新鲜事] Linux Steam Beta 版将会在十月封测

Linux Steam Beta 版将会在十月封测

Valve 旗下的 Steam 一直以来都是 Windows 的好伙伴,不过他们的创办人 Gabe Newell 早前曾经高调说过:「Windows 8 是一场灾难」,并会将 Steam 平台移植到 Linux 作为「避险策略」。直到现在......

关键字:Linux Steam Beta 封测
条评论

我 要 评 论

网友评论

大家都爱看

  • 扇出型晶圆级封装的优势和挑战!

    我们有能力创造一些能保持前代性能并且更好更小的电子设备,例如今天的可穿戴设备、智能手机或平板电脑,这是由于很多因素超过摩尔定律而快速发展,从而能够从底层的嵌入组件发展到今天把它们封…

    2018-03-29
  • Xilinx推出革命性的新型自适应计算产品

    自适应和智能计算的全球领先企业赛灵思公司(Xilinx, Inc.,(NASDAQ:XLNX)),近日宣布推出一款超越FPGA功能的突破性新型产品,名为ACAP(Adaptive Compute Acceleration Platform,自适应计算加速…

    2018-03-20
  • 赛普拉斯为树莓派3 B+ IoT单板计算机提供强大稳定的无

    先进嵌入式系统解决方案的领导者赛普拉斯(纳斯达克代码:CY)近日宣布其Wi-Fi®和蓝牙®combo解决方案为全新的树莓派 3 B+(Raspberry Pi 3Model B+)IoT单板计算机提供强大稳定的无线连接…

    2018-03-20
  • 观看直播领红包,SEED-A10加速卡助力人工智能

    随着云服务器、云计算的发展,大家对硬件加速的需求越来越多,但是随着设备功耗的上升、性能需求越来越高,常规加速设备以及开始不能满足需求,因此FPGA逐渐在硬件加速中找到了自己的位置,而艾…

    2018-03-19
  • 特朗普:博通不得以任何形式收购高通

    白宫周一(3月12日)晚发出声明,川普(特朗普)总统出于“国家安全”考量、禁止新加坡博通公司(Broadcom)收购美国高通公司(Qualcomm)。

    2018-03-14