关于安全学习的阶段性浅薄思考

前言

哈哈,其实一直都是在对前辈们的文章进行copy记录学习。自己倒是一直没有输出什么有用的,主要是自己还没什么技术的积累与沉淀,不知为不知,免得写了一些不确定的东西反而是误己误人。

不过最近又安排去做了点硬件方面的学习,也是关于安全相关的,于是乎想来也还是接触了蛮多的。想来还是应该自己来阶段性的回溯一下安全相关的东西,展示一下我关于安全的一些浅薄的认识以及看法,经过思考决定将内容分为两个部分:安全涉及到的领域以及安全涉及的知识。

内容不知道能写多少,哈哈,随意写,持续学习。

安全涉及的知识

涉及到安全,其实最容易联想到的就是加密算法,因此密码学肯定是要有所了解的,其次对于一些开源的库如Open ssl等。

其次就是一些对于这些算法逻辑的实现,如一些通信协议等,这里的通信协议,包含了通信的,以及互联网的交换协议。

最后就是具体的业务知识,必须你这个安全是针对什么的内容,版本保护那你肯定需要了解一下widewine、playready、drm等;加密通信,那你肯定要知道一下wifi的wap、zigbee、BLE这些无线通信的传输安全;安全启动那肯定要对系统的CoT(信任链)设计有所了解;系统安全的话那你肯定逃不掉的Linux的安全相关以及安全系统如OPTEE等。

当然这还是冰山一角,这个就是接触的业务,然后慢慢的积累的过程。

但是重点是通用的东西,是一定有的,一个产品与另外一个产品肯定会有公用的基座部分,不过可能你接触不到是真的,因为一个产品很大,需要很多的兄弟姐妹一起协同,那些在和业务层面靠得近就可能对基座的东西了解较为少,人的精力毕竟是有限的。

那么哪些方面可能是比较公用的呢?

  • 1、业务中的公用东西:密码学相关知识
  • 2、接近系统的东西:Linux操作系统、
  • 3、接近硬件的东西:ARM架构、RISCV架构
  • 4、硬件模块:RPMB内存、OTP、TRNG等硬件模块

第四点这些就是一些需要积累的小模块。

所以在这个阶段的我最终整理归纳的点有五个方面:

  • 0、业务本身:业务本身
  • 1、业务中的公用东西:密码学相关知识
  • 2、接近系统的东西:Linux操作系统、
  • 3、接近硬件的东西:ARM架构、RISCV架构
  • 4、硬件模块:RPMB内存、OTP、TRNG等硬件模块

多了一个业务本身,只有对业务本身你有了足够的认识,你才知道为什么要对其进行一些安全的保护,以及在哪里进行安全保护,以及实现这些保护会对下一级提出什么需求。

下面再来看看安全涉及的领域。

安全涉及的领域

为什么要了解这些呢?我觉得如果不是安全的朋友,也可以了解一下。我觉得随着数字大爆炸,安全肯定是一个大有需要的地方,像国外的很多的业务在安全方面的要求都很高。但是国内的很多场景对这些还是处于不算是重视的场景,像物联网、车联网、工业网这些,都是很需要的。像是人民的素质提高,版权意识的提高;个人数据的传输存储,这些都是肯定需要考虑到安全的。

那么安全分类的方式蛮多的,其实我拿着我的资料更好进行分类,但是一是懒惰,二是想着这样的回想来写东西会让我脑子有种动的感觉。

可以根据领域来分,但是我这里还是采用垂直的方式来分,以一种覆盖范围更通用的方式来分:软件安全与硬件安全

1、硬件安全

硬件一直被视为支持整个计算机系统的可信平台,是负责运行从软件层传递指令的抽象层。

硬件的安全很重要,只是很多的时候采用了软件进行防护,毕竟我脑子里想到的攻击都是都是黑客和渗透都是软件层面的,但是因为发展,现在硬件也开始暴露一些安全的风险问题。

硬件的安全即是对于自身的保护,也是对于软件的支持。

  • 1、硬件木马,硬件木马会攻击硬件本身,自身的安全问题
  • 2、防止芯片使用的是盗版;保证使用的三方IP是正版的;以及芯片是否有后门;还有这些芯片核被别人copy了。
  • 3、是不是有一些新的器件(非常规的CMOS)从某些方面来保护芯片安全
  • 4、为软件安全提供更底层的保护与功能支撑,比如咱们知道的TrsutZone

第四点是软件设计人员需要考虑学习了解的,前面几点是芯片设计人员需要考虑的。

2、软件安全

软件是很复杂的框架,这里为了避免混了,我们还是首先分层来描述,然后再拆点场景面来分一下。

  • 0、固件层(ATF,这里为了ATF专门加了一个固件层,编的,哈哈,ATF蛮有意思也很重要)
  • 1、驱动层(学会怎么写驱动,然后会对一些安全涉及到硬件写驱动,比如OTP、加密模块这些)
  • 2、系统层(这里我觉得首先知道Linux的相关:Linux本身的安全技术(地址随机化KASLR、签名、CFI、harden usercopy、内核符号表隐藏HKSP,应用沙盒,文件系统权限,Root权限);内存安全(MTE内存标记扩展、XOM只执行内存、零初始化内存);SELinux(Security Enhanced Linux (SELinux));三星的RKP(“Real-time Kernel Protection”);安全操作系统(OTTEE、Trusty、Itrustee等);)
  • 3、应用层(应用本身代码混淆、进程保护、签名机制、防止逆向、权限控制等)

下面再从场景的方面来看一下:

  • 1、安全待机、升级
  • 2、安全启动(信任链)
  • 3、安全存储

其实任何一个方面拆开就是一大堆的知识,想要全数了解,是需要花费时间的,更别提在工作中你的工作内容怎么可能是自己安排的呢?哈哈哈,现实情况如此。

以上就是这个阶段的浅薄认识,可能我自己去翻书以及翻看我曾经的blog,做归一的整理会总结的更全面和详细。不过这样才是我浅薄的真实反馈,这个阶段的浅薄认识就表达到这里。

记录在这个26岁刚刚开始的某一天,希望不要停下脚步,在这个方面有更多的了解。感恩前辈们的优秀资料,踩在巨人的肩膀上学习。

外面下雨了~~~好适合睡觉。

猜你喜欢

转载自blog.csdn.net/weixin_45264425/article/details/130609015
今日推荐