0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU有个禁区 大部分人不知道!

工程师 来源:编程世界宇宙 作者:编程世界宇宙 2020-09-11 17:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

来源:编程世界宇宙

神秘项目我是CPU一号车间的阿Q,是的,我又来了。

最近一段时间,我几次下班约隔壁二号车间虎子,他都推脱没有时间,不过也没看见他在忙个啥。

前几天,我又去找他,还是没看到他人,却意外地在他桌上发现了一份文件,打开一看是一个代号为SGX的神秘项目,还是厂里领导亲自带头攻坚。

仔细看了看,原来,自从上次的攻击事件(详情:完了!CPU一味求快出事儿了!)发生以来,领导一直忧心忡忡,虽然当时依靠操作系统提供的办法暂解了燃眉之急,不过治标不治本,我们自身的缺陷一直存在,保不准哪天还要翻车。

这个代号为SGX的神秘项目全称Software Guard Extensions,志在全面改革,提升咱们CPU的安全能力。

偷听会议我瞬间不高兴了,这么重要的项目,居然没找我参加?

随即,我来到了领导的办公室,果然他们几个在开着秘密会议,而我就凑在一旁偷听。

“诸位,你们都是咱们厂里的核心骨干,关于这次安全能力提升的事情,大家回去之后有没有什么想法,请畅所欲言!”,我听到领导在讲话。

核心骨干?难道我阿Q不是核心骨干吗?真是气抖冷!

沉闷了一小会儿,隔壁二号车间虎子才说到:“咱们现在不是有安全访问级别吗,从Ring0到Ring3,已经可以很好到隔绝应用程序的攻击了啊”

领导摇了摇头,“尽管如此,但是一些恶意软件可以利用操作系统的漏洞可以获取到Ring0的权限,咱们现有的安全保护就荡然无存了”

“那也是操作系统的锅,要改进也该让他们做啊,关我们什么事呢?”,虎子继续说到。

“你忘记前段时间针对咱们CPU发起的攻击了吗?”

此话一出,会场瞬间安静了。就这水平,领导居然请他来不请我!

领导缓了缓,接着说到:“咱们不能总依赖操作系统的安全保护,咱们自己也得拿出点办法。我觉得现有的安全机制不够,操作系统漏洞频出,很容易被攻破,咱们现在不能信任操作系统,得彻底全面的改革!”

这时,五号车间的代表说话了:“领导,我回去调研了一下,了解到咱们的竞争对手推出了一个叫TrustZone的技术,用于支持可信计算,号称提供了一个非常安全的环境专门支持对安全性要求极高的程序运行,像什么支付啊、指纹认证之类的,咱们要做的话可以参考一下”

听完TrustZone的介绍,三号车间老哥仿佛找到了灵感,激动的说到:“有了!咱们可以在内存中划出一片特殊的区域,作为最高机密的空间。将高度机密的程序代码和数据放在这里面运行,再引入一种新的工作模式,咱们CPU只有在这种模式下才允许访问这个安全空间,否则就算是有Ring0的权限也不能访问!”

引进一个新的工作模式,这种思路倒是很新鲜,大家纷纷议论开来。

“这个安全空间技术上要怎样实现呢?”

“线程怎么进入和退出安全空间?恶意程序进去了怎么办?”

“怎么调用外部普通空间的函数呢?外部函数被攻击了怎么办?”

“需要系统调用怎么办?中断和异常怎么办?”

短短一小会儿时间,大家就七嘴八舌提了一堆问题出来···

领导给他们几个一一分配了任务,下去思考这些问题的解决办法,过几天再进行讨论。

在他们散会离场前,我匆忙离开了。

主动出击这可是个表现的好机会,要是能解决上面的问题,领导说不定能让我加入这个项目组。

对于安全空间实现问题,既然是从内存上划出来的区域,自然得从内存的访问控制上做文章。我跟咱们厂里内存管理单元MMU的小黑还算有些交情,打算去向他请教一番。

听完我的需求,小黑不以为意,“就这啊,小事一桩,访问内存时我会进行权限检查,到时候除了之前已有的检查,再加一道检查就可以:如果发现是要访问安全空间的页面,再检查一下当前的工作模式是否正确”

其他几个问题我也有了自己的想法,安全空间按照创建-初始化-进入-退出-销毁的顺序进行使用。

创建:通过执行ECREATE指令创建一个安全空间,

初始化:通过执行EINIT指令对刚才创建的安全空间进行初始化

进入 & 退出:通过执行EENTER/EEXIT指令进入和退出安全空间,类似于系统调用的SYSENTER/SYSEXIT指令。提前设置好入口地址,进入安全空间后需要从指定的地方开始执行,避免外面的程序乱来。执行这两条指令的同时CPU进行安全模式的切换。

中断 & 异常:遇到中断和异常,需要转而执行操作系统内核处理代码,而操作系统是不能被信任的。需要执行AEX指令退出,将在安全空间执行的上下文保存起来,以便回头继续执行。

系统调用:系统调用有点麻烦,需要进入操作系统内核空间,因为不能信任操作系统,同样需要先退出安全空间,执行完系统调用再进来。

函数调用:安全空间和外部可以互相调用函数,普通空间调用安全空间函数叫ECALL,安全空间调用外部空间函数叫OCALL。调用的方式类似操作系统的系统调用,不同的是操作系统的函数是内核提供,安全空间的函数是应用程序自己定义的

销毁:通过执行EREMOVE指令销毁一个安全空间

我还给这个安全空间取了一个名字,叫:Enclave,自然而然咱们CPU的工作模式就分了Enclave模式和非Enclave模式。

内存加密随后,我把我的这些想法整理出来,来到了领导办公室,主动申请加入SGX项目组。

领导显然对我的到来有些意外,不过看完我准备的材料还是满意的同意了我的申请,让我也参与下一次的讨论会,真是功夫不负有心人!

很快就到了下一次的会议,我再也不用在门外偷听了。

会议上我的方案得到了大家的一致认可,只有八号车间的代表不以为然:“安全空间的方案是很好,但是还差一个最重要的东西,要是加上这个,那就完美了!”

“是什么?”,大家齐刷刷的望向了老八。

“这些形形色色的攻击方式,最终都是要读写内存数据,而他们屡屡得手的根本原因在于什么?”,老八说到。

大家一头雾水,不知道他想表达什么。

“老八,你就别卖关子了,快说吧!”

老八站了起来,说到:“其根本原因就在于内存中的数据是明文,一旦数据泄漏就可能造成严重后果。而如果我们把安全空间的内存数据加密了呢?即便我们的防线都失守了,对方拿到的也只是加密后的数据,做不了什么!”

老八的话如当头一棒,我怎么就没往这个方向考虑。

“加密?那什么时候解密呢?”,虎子问到。

“问得好,我建议咱们厂里内存管理部门设置一个内存加密引擎电路MEE(memory encryption engine),对安全空间的数据进行透明的加解密,数据写入内存时加密,读入咱们CPU内部时再解密!”

虎子一听说到:“唉,这个好,建议全面推广,干嘛只在安全空间用啊”

老八拍了拍虎子的头:“说你虎,你还真虎,这玩意对性能影响不可小觑,怎么能随便用呢,好钢要用到刀刃上!”

“好!老八这个建议好。我决定这个项目就由老八来牵头!”,领导拍案而起。

散会后,虎子笑我忙活半天还是没有当上牵头人,我倒是很看得开,能一起参与就不错了,学到技术才是王道~

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11373

    浏览量

    226410
  • enclave
    +关注

    关注

    0

    文章

    2

    浏览量

    2265
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Linux服务器CPU飙高怎么排查

    线上 CPU 飙高最怕两件事:一是盯着 top 看了半小时,最后还是不知道是谁打满了核;二是误把负载高当成 CPU 高,处理动作做反了,越处理越抖。生产环境里,CPU 问题通常不是单一
    的头像 发表于 03-11 09:48 477次阅读

    刚刚,安世中国发布致客户公告函!大部分业务已恢复运行

    办公环境无法正常访问,对安世中国区运营造成较大影响。   受此影响,部分生产流程,如“客供晶圆到厂后的SAP下单转生产”环节出现中断,已在SAP中开单并进入生产流程的订单则未受影响。目前,中国区IT与业务部门已协同启动应急预案,优先恢复关键系统与生产调度。   当前,大部分
    的头像 发表于 03-06 14:45 2738次阅读
    刚刚,安世中国发布致客户公告函!<b class='flag-5'>大部分</b>业务已恢复运行

    组合导航不知道怎么选,看这里

    单一导航难适配复杂作业?MEMS组合导航来帮你,通过融合卫星定位与惯性测量技术,以“1+1>2”优势破解全行业导航难题。 我司组合导航提供三种方案可选,从01到03到05,搭载从导航级到战术级到消费级MEMS陀螺仪与加速度计,通过微机电技术集成在毫米芯片上,搭载卫星模块以及其他器件,尺寸仅有65mm*70mm*45.5mm,以下是三种方案详细介绍: 超高精度方案—ER-GNSS/MINS-01 产品定位 一款拥有测绘级超高精度的组合导航,是市面上采用MEMS技术组合导航系统中
    的头像 发表于 01-08 15:47 432次阅读

    断电时,你的后备电源真能启动吗?多数人不知道的UPS保养真相

    断电那一刻,你的后备电源真的能顶上吗?深夜,机房警报突然响起,屏幕瞬间熄灭——不是演习,市电真的断了。所有人的心都提到了嗓子眼,三秒后,服务器指示灯重新亮起,UPS电源的显示屏稳定地闪烁着运行数据。这惊险的三秒,价值可能超过百万。然而,另一家公司就没这么幸运了。他们的UPS在关键时刻“罢工”了,仅仅因为风扇积灰导致过热保护,最终数据丢失,交易中断,损失惨重。
    的头像 发表于 12-05 13:37 2046次阅读
    断电时,你的后备电源真能启动吗?多数<b class='flag-5'>人不知道</b>的UPS保养真相

    FreeRtos 能否同时使用两 CPU

    CM4 内核和 FreeRtos 上运行。 我的问题与 CM0 内核有关,因此在我们的案例中没有使用 CM0 内核(只有 cm0_code.c项目中包含十六进制值的文件,我不知道它的作用)。 在我们
    发表于 11-11 08:28

    现在流行来中国看赛博朋克

    中国以外的人不知道中国有多强
    的头像 发表于 10-10 22:43 4729次阅读
    现在流行来中国看赛博朋克

    1分钟秒懂v2x车联网技术

    个一个有趣的问题:高德地图是怎么知道我前面的红灯还剩几秒的呢? 这个是怎么实现的呢?其实,这背后涉及到一很多厂家卖力宣传,但大部分用户
    的头像 发表于 09-02 17:44 1070次阅读
    1分钟秒懂v2x车联网技术

    CPU里真的黄金:看完秒懂

    在大家的印象中,黄金是珠宝、投资品和工业原料,但很少有人知道,我们每天使用的电脑CPU里竟然也隐藏着这种贵金属。那为什么芯片会用到黄金,一颗CPU中能有多少纯金呢?不依靠专业设备能提取出来吗?
    的头像 发表于 08-30 15:41 6723次阅读

    FPGA技术为什么越来越牛,这是原因的

    ,它一直都被广泛使用。但是,大部分人还不是太了解它,对它有很多疑问——FPGA到底是什么?为什么要使用它?相比CPU、GPU、ASIC(专用芯片),FPGA什么
    的头像 发表于 08-22 11:39 5347次阅读
    FPGA技术为什么越来越牛,这是<b class='flag-5'>有</b>原因的

    防爆手机背面标识Exib ⅢC T130℃ Db的含义是什么

    目前市面上的防爆手机种类繁多,在化工环境下使用的,在矿山等环境中使用的,还有些能在矿井下使用,更有一些种类的防爆手机能在这些环境中都能使用。虽然能够满足多种不同类型环境的使用要求,但许多人不知道
    的头像 发表于 08-06 16:35 2389次阅读
    防爆手机背面标识Exib ⅢC T130℃ Db的含义是什么

    薄膜电容器的优点哪些

    薄膜电容器虽然理论上有很多种材质,我们实际生产时主要有CBB金属化聚丙烯薄膜电容和CL金属化聚酯薄膜电容两种类型,它是电路上极重要的一类电子元器件,大部分电路都离不开它们,薄膜电容器的优点哪些,你真的知道吗?
    的头像 发表于 07-21 16:03 1324次阅读

    为什么现在的PCB大部分都是绿色?PCB 不同的颜色到底代表什么意思?

    都是色粉的配色。我们通过丝网印刷将颜色印刷到PCB上。PCB颜色绿色、黑色、蓝色、黄色、紫色、红色和棕色。还有一些厂家别出心裁地开发出了白色、粉色等多种颜色的P
    的头像 发表于 07-18 10:03 2227次阅读
    为什么现在的PCB<b class='flag-5'>大部分</b>都是绿色?PCB 不同的颜色到底代表什么意思?

    震惊,原来大部分电器都离不开它

    大部分电器都离不开变压器吗 是的,绝大多数电器设备都直接或间接依赖变压器,但具体形式因用电场景而异。以下是详细分析: 1. 哪些电器必须用变压器? 交流电(AC)设备: 家用电器
    的头像 发表于 06-24 14:10 1380次阅读

    编译错误: error: unrecognizable insn,不知道原因,请教!

    用start_gui.exe生成的代码,再用SEGGER Embedded打开,编译有错,不知道是什么原因,请教各位大佬?
    发表于 06-23 14:45

    以太网交换机:网络世界的指挥家,90%的人不知道它的重要性!

    vs 集线器 vs 路由器 很多人分不清交换机、集线器和路由器的区别,其实它们的核心功能完全不同: 集线器 就像一大喇叭,对所有设备喊话,谁需要谁接听,效率极低。 交换机 则像快递员,精准把包裹(数据)送到指定地址(设备),互不干扰。 路由器 则是邮局,负
    的头像 发表于 05-30 17:09 2401次阅读