一网打尽!每个程序猿都该了解的黑客技术大汇(5)

现代操作系统都对运行于其中的进程、线程提供了权限管理,因为安全攻击无可避免,而权限的限制作为一道颇为有效的屏障将程序被攻击后的影响减少到最小。

换句话说,即便我们的程序因为漏洞原因被攻击执行了恶意代码,但因为操作系统的权限控制,恶意代码能干的事情也有限。

就像一枚硬币总有两个面,有权限限制,自然而然就有权限提升。攻击者想要做更多事情,就得突破操作系统的限制,获取更高的权限。

在Windows上,经常叫获得管理员权限。

在Linux上,经常叫获得Root权限,手机Root也是这个意思。

在iOS上,经常叫“越狱”。

一网打尽!每个程序猿都该了解的黑客技术大汇

权限提升的方式五花八门,总体来说,程序执行的时候,所属进程/线程拥有一个安全令牌,用以标识其安全等级,在访问资源和执行动作的时候由操作系统内核审核。

权限提升的目标就是将这个安全令牌更改为高等级的令牌,使其在后续访问敏感资源和执行敏感动作时,凭借该令牌可以通过系统的安全审核。

而更改这个安全令牌的惯用伎俩便是利用操作系统内核漏洞(如前面所述的栈溢出、整数溢出、释放后使用等)执行攻击者的代码,实现安全令牌的篡改。

重点关注:安全工程师

可信计算

安全攻击无处不在,不仅应用程序的环境不可靠,甚至连操作系统内核的环境也充满了风险。

如果一段程序(比如支付)必须在一个极度绝密的环境下执行,该怎么办?

可信计算的概念被安全研究者提了出来,根据百科的解释:

可信计算/可信用计算(Trusted Computing,TC)是一项由可信计算组(可信计算集群,前称为TCPA)推动和开发的技术。可信计算是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性 [1] 。签注密钥是一个2048位的RSA公共和私有密钥对,它在芯片出厂时随机生成并且不能改变。这个私有密钥永远在芯片里,而公共密钥用来认证及加密发送到该芯片的敏感数据。

可信计算中一个非常重要的概念是可信执行环境TEE(Trusted Execution Environment),简单来说就是在现有的计算机内部的世界里,再构建一个秘密基地,专门用于运行极度机密的程序。该秘密基地甚至连操作系统都轻易无法访问,更别说操作系统之上的应用程序了。

在移动端,ARM芯片占据了主流市场,ARM芯片提供了名为TrustZone技术的技术,在硬件层面新增一个可信计算环境,包含一个可信OS,和一些可信APP,和普通环境在硬件层面隔离,处理器内部进行通信完成两个世界的交互。

重点关注:终端系统工程师

密码学

由于数据传输的过程中会遇到信息泄漏、篡改、伪造的风险,加密技术应运而生。

对称加密 & 非对称加密

有加密就有解密,根据加密过程使用的密钥和解密过程使用的密钥是否相同,将加密算法分为了两个大类:对称加密和非对称加密。

最早出现的加密技术是对称加密

对称加密:加密密钥和解密密钥一致,特点是加密速度快、加密效率高。常用的对称加密算法有:

DES

AES

RC4

这种加密方式中有一个非常关键的问题是,解密方需要拿到密钥才能进行解密,而密钥钥匙通过网络传输又会面临不安全的风险,这成了一个鸡生蛋,蛋生鸡的问题。

于是通信技术上一个划时代的技术被发明了出来,这就是非对称加密!

非对称加密:加密密钥与解密密钥不一致,特点是算法较复杂,但安全性高。非对称加密的密钥一般分为公钥和私钥,公钥公开,私钥需保密。常用于数字认证,如HTTPS中握手阶段的服务器认证。常用的非对称加密算法有:

RSA

DH

ECC(椭圆曲线加密)

可以毫不夸张的说,没有了非对称加密,互联网绝不会发展到今天这样的高度。

秘钥交换技术

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzfzd.html