[x86]服务器平台常见安全功能简介
发布于 2021-10-17 19:30
A.内存中的数据安全
1) AMD安全内存加密 SME (Secure Memory Encryption): 通过CPU自带的AES引擎加密整个系统内存(包含页表)或部分内存,需要操作系统支持。
2) AMD 透明的安全内存加密TSME (Transparent Secure Memory Encryption): 跟SME类似,但是只能加密整个系统内存,对操作系统和上层软件不可见,不需要操作系统支持。
3) AMD 安全虚拟化加密SEV (Secure Encrypted Virtualization): 通过给每个虚拟机分配独立的加密密钥,从而实现虚拟机之间以及虚拟机和主机(Hypervisor)的安全隔离。
注:SME/TSME/SEV, 加密密钥都是随机生成,并且存储在CPU芯片内部,外部无法访问,所有软件都无法获取,以保证这些密钥不被窃取和篡改;相同的明文但存储在不同的内存位置也将被加密成不同的结果,以防止密钥被反推算;对于SME/TSME,密钥是在系统启动阶段产生的。
4) AMD虚拟机状态加密SEV-ES (Encrypted State): 保护虚拟机的CPU寄存器等信息,在虚拟机停止运行时将之加密,避免被篡改。否则黑客可以通过篡改虚拟机的这些寄存器以改变后续的虚拟机程序执行,比如修改虚拟机的指令寄存器,从而执行恶意代码。
5) AMD 虚拟机的嵌套内存分页SEV-SNP (Secure Nested Paging): 防止恶意程序基于HyperVisor主机攻击虚拟机,比如数据回访,内存重映射等。以给虚拟机建立安全隔离的执行环境。关于这块细节,笔者理解也有限,难以精准描述,有兴趣的可以自行阅读AMD相关技术文献。
6) Intel 完整内存加密TME (Total Memory Encryption): 跟AMD SME类似,加密整个或部分系统内存。
7) Intel 扩展内存页表EPT (Extended Page Table): 跟AMD的嵌套内存分页类似。
8) Intel多密钥完整内存加密 MK-TME (Multiple Key Total Memory Encryption): 主要用于将多个虚拟机进行隔离,每个虚拟机一个独立密钥。
9) Intel 软件保护扩展SGX (Software Guard Extensions): 单个软件创建一块内存飞地(Enclave),并且使用独立的密钥进行加密,以实现单个软件的安全隔离,据说之前对软件执行性能有一定影响。
10) DMA Protection (DMA-remapping):防止DMA写溢出进而篡改系统内存资料。
B. 磁盘中的数据安全
1)SED (Self-Encrypted Drive) SSD: 固态硬盘自加密,加密引擎在硬盘中。
2)KPIO (Keyper IO for NVMe SSD): TCG的一个建议标准,基于每一个IO命令来加密用户存放于SSD中的数据。
3)BitLocker: 微软基于TPM的磁盘数据安全技术,将存储器根密钥 SRK (Storage Rook Key) 置于TPM中,对磁盘数据进行加密以保护磁盘中的数据,并且启动过程会测量启动完整性。
C. 信用安全
1) 密码复杂性要求和检测。
2) 密码安全管理技术,保障密码本身的安全性,包含默认密码的规则,首次登入强制密码修改等。
3) 密钥安全标准和管控:服务器通常包含了多个密钥,尤其是BMC(Base Management Controller)中,通常会存储多个厂商以及客户的密钥。
4) NIST 800-131A:美国信息安全部门定义的密钥管理规范,定义了加密算法的要求,密钥长度等。
D. 数据传输安全
1)PCIe Link Encryption (IDE – Integrity and Data Encryption):PCIE链路加密,目前尚未广泛使用,主要使用者存储设备,如NVMe。
2)SSL (Secure Sockets Layer) & TLS (Transport Layer Security):对敏感信息的网络传输进行安全加密。
3)IPMI over Redfish:由于IPMI over LAN基于的RCMP+天然的安全缺陷,导致IPMI over LAN的不安全。而Redfish是基于HTTPS,HTTPS采用了SSL进行安全传输加密,所以是安全的。因为IPMI仍然被大量使用,为了兼容当前应用以及保障安全性,有的服务器会提供该技术。
E. 数据安全擦除 :欧盟得定义了ERP Lot 9,成为数据安全擦除的事实规范,要求服务器必须提供让用户安全擦除其上数据的功能,避免服务器在回收后带来用户信息泄露的安全风险。
F.TPM(国际)/TCM(中国):众所周知的安全设备,主要用于产生一些根密钥并存储于TPM/TCM芯片中,并且该密钥不可被外部访问,甚至在侦测到暴力访问时有自毁装置。系统固件或操作系统通常用它来进行用户信息的加密,磁盘数据加密(如BitLocker),启动过程完整性测量(Intel TXT)等。
1) 安全刷新Secure Flash: 系统固件需要被进行数字签名,以防止非法更新。
2) Remote Secure Flash (NIST 800-147B): 专门针对服务器的远程安全刷新。
3) SPI Protection: 防止第三方软件绕过系统固件检测以恶意更新系统固件。
4) Immutable boot block:不可篡改的系统固件根启动块。
5) 倒刷的最低版本限制:防止更新为有已知重大安全漏洞的系统固件。
B. 系统的安全启动
1) 硬件可信根(Platform Firmware Resilience, NIST 800-193): 启动前通过数字签名技术检查系统固件代码的完整性,如UEFI, FPGA, BMC等。
2) AMD Platform Secure Boot: AMD基于CPU的硬件可信根,检查UEFI代码的完整性。
3) Intel Boot Guard: Intel基于芯片的硬件可信根,检查UEFI代码完整性。
4) Intel TXT(Trusted Execution Technology): Intel的一种基于硬件的动态可信测量技术,检测系统配置以及操作系统环境等是否被篡改,该技术需要TPM。
5) Intel CBnT(Converged Boot Guard and TXT):整合了Boot Guard和TXT。
6) UEFI Secure Boot: UEFI启动过程和操作系统启动过程,进行安全可信启动链的检查。主要确保UEFI,PCIE卡固件,操作系统加载器以及操作系统代码不给篡改。
7) 有些厂商也对BMC实现类似UEFI的Secure Boot。
C. 程序的安全执行
1) IntelExecution Disable/AMD No Execute: 分隔内存中的数据和代码,避免数据被当着代码执行,而这时早期病毒的常见做法。
2) SMM (System Management Mode) 保护: 做UEFI的人可能都知道SMM具有最高运行权限,如果让SMI (System Management Interrupt)的代码可以调用SMRAM之外的代码将带来巨大安全隐患。
3) ROP(Return-oriented programming) 保护: 实现一个堆栈的拷贝,防止堆栈溢出攻击(常见的一种软件恶意攻击方式)。
D. 数据完整性:前面介绍的各种数据加密技术,事实上也常用于甚至主要用于数据完整性的保护。
A. 一般使用数字签名机制,如SSL,TSL,主要用于网络事务安全机制。
B. LDAP认证。
C. TPM物理攻击检测技术:各家实现不同,一个例子是在TPM上贴防篡改胶纸,一旦TPM被物理破坏,很容易留下破坏痕迹。
A. 基于ID的认证,比如BMC Web账号, Redfish账号的,需要保证所有访问接口都有账号认证
B. 基于角色的认证
C. 基于ID和角色的权限管控机制
A. 登入超时控制
B. 各种网络服务接口的开关控制
C. 非安全接口(如IPMI)默认关闭
D. 实体存在(Physical Presence)控制 :一种TCG安全规范技术,有些厂商实现了远程实体存在以代替,解决便利性问题
E. 机箱防盗技术Chassis Intrusion
F. 每个硬件接口独立开关控制
A. 用户登入日志
B. 攻击检测日志
C. FIPS 140-2认证
D. FIPS 140-3认证
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材