深入浅出:嵌入式开发行业该怎么挑选加密?

软件研发或嵌入式研发行业,其核心部分往往就是源代码,如何做好源代码的管理至关重要。根据软件研发或嵌入式研发行业的从业者现状,总结出研发从业人员有以下特点:

1.学历较高,都非常聪明,非常懂电脑。

2.每个研发人员都有能力写程序,甚至可以通过写程序,进行各种数据变形。例如:文件读写(输出日志)、socket通信、内存映射,常驻服务等,对于Web开发者,经由IIS或TomCat等web服务器的代码变形更是轻而易举。

3.研发人员的个性较强,比较难管理

而我们软件研发或嵌入式行业特点要求必须对研发成果—源代码进行安全管理。但是现实的工作必须环境特点为:

1、大家必须有局域网,才能协同工作;

2、需要能访问互联网,方便查找资料;

3、必须通过U口串口网口等端口连接外部设备进行调试。

对于一些企业有的采用物理隔离,有的上虚拟化,有的上文档级加密软件,监控软件基本上都是形同虚设。例如常见的物理隔离,就是网络和外网断开,然后禁止使用U盘(软件或机箱),看上起很美好,但是对于懂电脑的研发人员来说,影响了工作效率,还是无法达到安全。

对于软件禁止U盘的,搞个U盘PE,然后直接从U盘启动绕开操作系统的管控做任何事。

插拔墙上的网线头直连自己的笔记本电脑进行数据传输。

对于不能封U口/串口的嵌入式调试环境更简单,直接可以把数据通过U口串口写出来。

……

另外,对于虚拟化,所有数在服务器端,看上去很完美,但是只要外网可用,外设可用,基本上没什么安全可言。

作为一个软件嵌入式研发公司的信息安全管理者,应该如何呢?

我们先了解一下,嵌入式开发的特性:

(1)连接外设,联网调试

手机品种繁多,不可能做到针对每种设备类型、品牌的兼容;

网口调试时,调试地址不断变更,无法锁定具体调试位置,数据很容易泄密;

数据不能以密文形式烧录至设备,否则设备无法识别,但这样往往最容易造成数据外泄。

(2)开发者水平较高,会各种破解

一个代码开发人员,可以轻松写一个把代码输出到日志或control的程序,类似这种研发场景还有研发设计人员自编socket,内存,管道,com,web解析器发布中转,内存映射,常驻服务等至少30多种。

(3)数据被各种变形,渗透外发

改变文件名称、后缀,压缩起来,跟随项目一起打包,很容易流失。

目前,市场上比较流行几种防泄密手段,均是从外表看来可以满足需求,但终究无法做到真正的防泄密。

1、内外网隔离

将涉密数据存储在公司内网,内网不允许连接互联网,看似数据只能保存在公司里,但任然有很多其他泄密风险,比如外设接口拷贝数据;重装OS时,U盘PE绕开操作系统的管控从WinPE中拷贝数据;外带电脑直连内网中任意一台PC机,数据对拷。

也有人说直接将外设接口全部封掉,用一个铁箱子将电脑机箱锁起来。这样虽然是保障了机箱数据安全,但是不便连接需要外设调试的设备,而且对于开发人员来说,互联网是不可缺少的查资料资源,如果另外配备查资料的电脑,再加上之前的铁箱子成本,也是不小的开销。

2、虚拟化

虚拟化在最近几年越来越热,优点也越来越被人们发觉,比如减少服务器数量、简化服务器部署、提高服务器资源利用率等等。但是将虚拟化与数据安全(防泄密)扯到一起,未免有些牵强。牵强在哪里,简单总结一下,就是通过互联网泄密和外设接口数据传输。而且,虚拟化的软硬成本,是一套加密软件的10倍左右。

虚拟化用于数据防泄密

3、文档透明加密

早在10年前,人们开始关注数据安全这一块时,文档加密的诞生帮助大多数的生产商,发展至今很多人对加密的见解就是:一个文件在公司内网打开正常,拿到外部打开乱码,效果明显直观。

我们也承认此项技术在业界发展至今,技术之成熟与优秀之处。但如今时代已然不同,更多的需求倾向于嵌入式开发、源代码型数据加密,而这就难倒文档级的透明加密,这种抓进程、绑后缀的加密方法终究止步于源代码开发防泄密需求。在众多开发人员面前,轰然倒塌,溃不成军。

我们来简单列举一些文档透明加密在源代码防泄密需求面前的一些不足之处。

1、U口数据线连手机:数据通过U口连接手机泄密。

2、U口数据线连设备:数据通过U口连接设备泄密。

3、串口数据线连设备:数据通过串口连接设备泄密。

4、网口数据线连设备:数据通过网口连接设备泄密。

5、控制台程输出内容保护:研发人员编写控制台程序,把涉密内容输出到控制台上然后另存。

6、日志内容保护:研发人员编写程序把代码等涉密内容保存到日志文件中然后把日志文件拷贝走。

7、内存保护:研发人员编写程序把代码等涉密内容保存制定内存中,然后再通过另一个程序等把内存内容读走。

8、web解析器保护:研发人员编写程序把代码等涉密内容文件修改成Html文本样式,然后通过IIS或tomcat等web解析器发布成网页,然后用浏览器另存成明文拷贝走。

9、管道保护:研发人员编写管道程序把代码等涉密内容传走。

10、网络通信保护:研发人员编写socket通信程序把代码等涉密内容传走。

11、消息保护:研发人员编写发消息程序把涉密内容发走。

12、屏幕截图保护:由于截图插件等很多,只针对QQ进程是远远不够的。

13、开发进程追踪困难:开发软件在调试过程中,有些插件的进程在后台一闪而逝,无法捕捉添加到绑定进程,后期导致整个调试过程出错。

14、坏文件:文件透明加密发展至今无法逾越的沟渠,原理是加密软件在给源文件写密钥时突然断电或者程序崩溃,导致密钥只完成一半。最后计算机无法识别这个文件。

从加密的整个行业来看,最早的是APIhook应用层,发展至文件过滤驱动透明加密,一直到现如今智能手机、平板电脑普及率原来越广,APP开发者越来越多,嵌入式开发也越来越多,文件过滤驱动透明加密已渐渐不能满足开发商们的需求。开发商们需要一款真正能经得起技术员“推敲”的防泄密软件。而随着这种需求的越来越强烈,沙盒加密也开始在大家的视线里出现。

为什么说沙盒加密能满足源代码级别、嵌入式开发的防泄密需求?

2012年,某全球知名通信设备生产销售商,深圳总部的研发人员向沙盒加密提出这类需求。在当初整个加密市场,这一块还是一片空白。沙盒加密商安全专家组讨论研究,给出适合的解决办法。在后几年实施使用中愈加完善,发展至今可以完全解决这一类难题。

什么是沙盒?

沙盒生效时,接管整个操作环境,文件本身在沙盒环境内如何处理、修改、编译、调试都与沙盒无关,沙盒不会去过问这些行为。然而当这些文件想要从系统里拿出时,受到沙盒严格管控,无论是网络出口,还是硬件接口出入,管理员不授权,所有文件均无法带走。

我们把沙盒当做一间房屋,把数据当做进出这个房屋的人。人在房屋里干了什么,变成刘德华还是周杰伦,变成男的或者女的,变成动物还是植物,房屋都不会去管他,房屋真正控制的是进出的“门”!

沙盒管控的就是这个“门”!

沙盒加密的优势在于不改变文件、不改变动作、不影响开发调试结果,不用刻意定义需要加密的文件后缀,不用担心开发者绕过沙盒造成泄密;安全隔离上网,加密与非加密划分两个区域,互不干涉;沙盒在对服务器保护的同时,也不会对服务器文件做加密处理,方便系统管理员存储、备份、运维;沙盒也可以与ERP、OA、PDM等服务器,与SVN、VSS等版本管理工具无缝集成。

沙盒加密用于嵌入式开发有以下几大特点:

(1)沙盒客户端、服务器的数据在沙盒内受管控,未经授权无法被带走;

(2)调试接口受管控,未经授权,任何调试接口都被拒绝;

(3)打开对外调试接口,并对接口进行约束:只能访问固定的IP、只能从固定的端口调试、只能访问固定的Mac地址;

(4)指定需要调试的沙盒客户端节点,对其只打开U口调试权限、只打开网口调试权限、只打开串口调试权限;

(5)指定需要调试的沙盒客户端节点,所有从这台客户端节点接口出去调试的数据,均由沙盒备份至服务器,方便后期审计与追溯;

(6)对放开调试接口的客户端节点进行摄像头监控,以此作为辅助,约束调试人员,保障数据安全。

如下图所示:

沙盒加密用于嵌入式开发示意图

总结:术业有专攻。在图纸和office办公文档加密需求为前提下,沙盒过于庞大笨重,有点小题大做的感觉,用户的体验度也比沙盒加密体验度高。但是对于源代码加密和嵌入式开发需求来说,确实只有沙盒可以满足需求。沙盒加密发展至今也就几年时间,体验度、方便率什么的,也给他们一点发展时间,相信后期会有比较好的改善。

文档透明加密与沙盒加密有本质上的区别,本文只针对“源代码、嵌入式开发防泄密”话题做探讨,无针对的含义在里面。请相关人员不要对号入座,文章只是就事论事。大家也可以自己去调查研究,去解惑事实的真相。如果有写的不够详细的地方,也欢迎大家补充。

时间: 2024-12-10 10:28:33

深入浅出:嵌入式开发行业该怎么挑选加密?的相关文章

嵌入式开发前景分析

谈起嵌入式开发前景,无外乎说到当前对这项技术的应用如何?若一项技术应用狭窄,无论如何也成不了大气候.谈到嵌入式技术,可能除计算机方面相关专业人士外很少有人能够涉足了解.其实应用到嵌入式技术的产品已经渗透到我们生活的方方面面.从人们的生活到工业化生产,从银行.医疗到航空航天领域,嵌入式系统无处不在.从我们生活的智能化.工业的自动化.国防的现代化中都可以找到嵌入式系统的踪迹.那么,嵌入式开发的前景究竟如何?就一起来分析一下. 嵌入式应用领域 就目前的中国市场来讲,IT技术已经进入高速发展阶段,互联网

深入浅出:软件研发或嵌入式开发源代码如何加密?

软件研发或嵌入式研发行业,其核心部分往往就是源代码,如何做好源代码的管理至关重要.根据软件研发或嵌入式研发行业的从业者现状,总结出研发从业人员有以下特点: 1.学历较高,都非常聪明,非常懂电脑. 2.每个研发人员都有能力写程序,甚至可以通过写程序,进行各种数据变形.例如:文件读写(输出日志).socket通信.内存映射,常驻服务等,对于Web开发者,经由IIS或TomCat等web服务器的代码变形更是轻而易举. 3.研发人员的个性较强,比较难管理 而我们软件研发或嵌入式行业特点要求必须对研发成果

【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)

深入浅出嵌入式linux系统移植开发 (环境搭建.uboot的移植.嵌入式内核的配置与编译) 亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系. 课程内容简介 本课程重点是给大家讲解嵌入式linux系统移植的开发方法,采用理论与实践,硬件与软件相结合的方法. 1.在每节开始之前先简单回顾上一节所讲的主要内容,并对本节所讲的内容先进行概述,讲解概念.技术要点,设计实现思路等内容,最后总结本次课程的要掌握的要点. 2.在讲课的过程中对关键技术

软件嵌入式研发行业源代码安全管理方案概要

软件嵌入式研发行业现状分析: 软件研发或嵌入式研发行业,其核心部分往往就是源代码,如何做好源代码的管理至关重要.此文仅谈源代码的安全管理.根据软件研发或嵌入式研发行业的从业者现状,认为研发从业人员有以下特点: 1.学历较高,都非常聪明,非常懂电脑. 2.每个研发人员都有能力写程序,甚至可以通过写程序,进行各种数据变形.例如:文件读写(输出日志).socket通信.内存映射,常驻服务等,对于Web开发者,经由IIS或TomCat等web服务器的代码变形更是轻而易举. 3.研发人员的个性较强,比较难

经过了这么多年的发展,软件开发行业已经完全渗入了整个社会

经过了这么多年的发展,软件开发行业已经完全渗入了整个社会.当年的那种,比如说五笔吧,一个软件只要是用电脑的都会用到,这种可能性已经非常小了.一个软件解决方案的针对性是非常强的.而它的应用场景的复杂已经远远超过一般人的想象.想打造一套方案,或者时髦一点,生态环境,拿下整个市场,从HPC集群到PC再到手机,甚至路由这样的嵌入式设备?面对这个想法,我只能呵呵了.而微软就觉得这是可行的.更简单地说,在前所未有的细分下,针对一个特定的任务,从开发环境,工具链,到所选择的语言都会非常地不同,这不是一个 VS

软件开发行业也有鄙视链存在

不得不说,软件开发行业也有鄙视链存在: 搞算法的鄙视做工程的:搞操作系统内核的鄙视写驱动的:写架构的鄙视写模块的:搞嵌入式的鄙视写应用的:写后台的鄙视做前台的:也存在做C语言开发(一般仅限于内核方面)鄙视写Java的:当然做Java的也有鄙视做网页的. 这种鄙视的心态也很简单,一般站在制高点的人心态就是,这个世界游戏规则(比如操作系统)是我创造的,你们只是这个世界里的一个螺丝钉,我当然可以看不起你. 但是,这个游戏规则真的是他一个人创造的吗? 显然不是的. 站在鄙视链制高点上的大多数人,也都是那

(转)嵌入式开发如何学习

一般来说,在嵌入式行业中从事嵌入式产品研发的人往往来自这样一些专业:计算机.电气,自动化,微电子,电子信息,通信,机械等相关专业,由于大学里面不同专业基础课的设置,所以在准备学习的过程中需要根据实际情况有不同的侧重. 一是程序设计的基础,例如:基本的编程语言基础,至少对数据类型.程序的结构及流程控制等最基本的内容要相当清楚,所以建议恶补一下C语言,呵呵!另外有不少同学都问到数据结构的基础,我一直认为数据结构和算法的学习是帮助形成程序设计逻辑思维的很好训练方式,对于程序员的长期专业素养的提高一定有

三星嵌入式开发平台 三星Cortex-A9 4412 POP与SCP对比

iTOP-4412核心板是迅为电子推出的一款高端四核核心板,其中分为POP封装与SCP封装,配备三星Exynos 4412四核处理器,主频为1.4GHz,内置16GB存储空间.该板设计小巧.配备三星自家电源管理芯片,具有9路DC/DC和28路LDO输出电源,在-20℃至70℃范围的高低温运行测试中运行良好,支持MPEG-4/MPEG2.H.264/H263.VC-1.DivX的视频编解码[email protected].这款核心板不仅拥有强大的配置,其进口高质量板对板连接器也使行业应用更加广泛

嵌入式开发职业发展方向有哪些?

近几年来,随着移动互联网.物联网的迅猛发展,嵌入式技术日渐普及,在通讯.网络.工控.医疗.电子等领域发挥着越来越重要的作用:随着嵌入式技术及相关产品不断渗透到人们日常生活 ,大大小小公司对于嵌入式开发 人才招聘需求猛增. 在介绍嵌入式开发职业发展方向之前,先了解一下嵌入式设备的本质.嵌入式设备的本质就是一台专用的.微型计算机,所以就像计算机一样由三个层次的东西组成: 1 )硬件,包括 cpu (如 ARM) .存储(如 flash ). I/O (显示模块.通讯模块.视音频模块. I/O控制电路