IT Security 2

Digitale Identität: ID Token

Basis für Authentisierung und Autorisierung

Formfaktor Smartcard

Smardcard可以应用在Mobilfunk, PA, Health, Payment这些领域,它可以用来特殊的安全服务:

  • 2-Faktor-Authentisierung, Sicherer Speicher, Secure Boot • Schlüssel-Generierung, -Speicherung, Signieren, Verschlüsseln

FormFaktor 波形因数

Smardcard分类

  • Kontaktlose Karte 无接触的
  • Kontaktbehaftete Karte
  • Protokolle

ISO/IEC Standard 7816

Mikrocontroller-Architektur

image-20240512212417348

Control

  • Reset

    可以通过读卡器触发,对于非接触式卡:如果场强不足,重置,因为 内部张力崩溃

  • Clock

    根据电压设定频率,会在Testmodus和Betriebsmodus切换

  • Power Management

    不需要的电路部分的时钟关闭 优化当前配置文件

Optionale Co-Prozessoren

Symmetrische Kryptografie: 比软件快100倍

Asymmetrische Kryptografie: 小于10s RSA密钥生成, 小于1sRSA加密,签名

问题:会被Seitenkanalangriffe

1.3 Ausgewählte Angriffe

Passive Angriffe

  1. Microprobing 使用非常精细的探针直接接触和监测芯片内部的总线信号或输入/输出(I/O)接口信号。通过这种方式,攻击者可以窥探芯片内部的数据流动,获取敏感信息,比如解密密钥、传输中的数据等。
  2. Mikroskop显微镜攻击:使用光学显微镜对芯片上的只读存储器(ROM)结构进行逆向工程,或者直接读取存储单元的内容。通过这种手段,攻击者可以分析芯片的物理结构,进而解读存储器中的数据。
  3. 侧信道分析

Aktive Angriffe

  1. UV-Licht 紫外光:通过紫外线照射,释放或清空EEPROM(电可擦可编程只读存储器)的存储单元,进行数据操控。
  2. Lichtblitze (Laser) 激光脉冲:Fehlerinjektion篡改寄存器中的值
  3. Störimpulse干扰脉冲: Glitch操纵其控制流

Manipulation der externen Control Peripherals

限制写入操作:通过降低电源电压(例如,将VCC设置得过低)来防止智能卡进行写入操作。这可以干扰设备的正常功能

更改时钟频率:通过控制时钟输入来改变卡片的操作速度,例如提高时钟频率以跳过某些指令,甚至忽略跳转指令。这种操作可能导致错误行为或安全漏洞。

Zusätzliche Angriffspunkte

Externe Softwarebibliotheken外部软件库:这些库虽然用于支持智能卡的功能,但往往成为攻击目标,类似于加密库的漏洞,攻击者可以利用这些漏洞来入侵系统

Unterbrechen der Verbindung zum Terminal 中断与终端的连接:通过中断智能卡与读取器的通信,可能会造成服务中断或拒绝服务(Denial-of-Service)窃听/操控通信:通过“中间人攻击”(Man-in-the-Middle),攻击者可以窃听或篡改智能卡和终端之间的通信,伪造或操控数据传输

Seitenkanalangriffe

  • Timing-Attacke
  • Power-Analysis

Spezielle Schutzmaßnahmen für Mikrocontroller

Generelle Abwehrmaßnahmen

冷启动攻击(Cold-Boot Attack):通过关闭系统电源后,冻结RAM,然后重新启动系统并使用最小操作系统(Minimal OS)来读取RAM中的内容。这种攻击可以让攻击者在几分钟内获取系统中的数据。

  • (Aktiv)主动防御Erkennen durch Sensorik: Spannung, Licht (optischer Zugriff wird erkannt), Temperatur
  • 增强复杂度Erschweren durch Obfuskation, Maskierung
  • 添加额外的保护层Einbringen zusätzlicher Schutzschichten

Sicherheitsmaßnahmen

  • Chip-Design: Scrambling der Busse: Funktionszuordnung verschleiern
  • Interne Busse内部的地址、数据、控制总线不暴露在外,无法被外部设备直接访问或操控。这种设计防止外部对总线进行干扰或监听。
  • 将ROM移入更深的硅层Verlagerung des ROMs in tiefere Siliziumschichten,um Reverse-Engineering des Betriebssystems zu erschweren
  • 通过离子植入技术加固ROM代码Ionenimplantierte ROM-Codes通过向硅片中注入杂质来改变材料的电导性,这种做法有效防止使用光学显微镜读取ROM内容。

Einführung spezieller Schichten (Shielding)

防止通过电磁辐射(如EMA,即电磁分析)读取存储单元中的数据。

  • Stromführende Metallschicht通电金属层: 使用金属屏蔽层来保护芯片

  • Passivierungsschicht (lichtundurchlässig) für RAMRAM的钝化层(光不透层): 这种层用于阻止光学攻击,因为移除这层将暴露存储器,且当芯片暴露在光线下时,它会自动关闭。

Einführung spezieller Sensoren

检测潜在的攻击行为,确保芯片在面对物理攻击时具备防护能力。

  • 光感传感器: 可以检测到光的变化,特别是用于防御激光闪光攻击。
  • 温度传感器: 用于防止通过超频(即提升芯片工作频率)来制造错误或篡改数据。
  • Widerstands电阻或电容传感器: 用来检测保护层是否完好无损。如果保护层被去除或损坏,这些传感器可以发现并触发相应的防护机制。

Verschlüsselung von internem Speicher

  • Non volatiler (persistenter) Speicher: ROM,Flash, Nutzung z.B. XTS

  • Volatiler Speicher: Ziel: keine Performanzeinbußen,加密这些区域必须避免明显的性能下降

    通过在设备启动时生成临时密钥(Ephemeral Key)并对数据进行异或加密,可以在一定程度上实现低开销的保护

    Schlüsselerneuerung: bei erneutem Power-up 密钥管理: 这种方法依赖于在每次启动时生成新的密钥,避免了长期存储密钥带来的安全风险。然而,这也意味着设备断电后,存储在 RAM 中的数据无法恢复

Smartcard, secure Element als physischer IDToken

智能卡(Smartcard)和安全元素(Secure Element)被广泛用于身份验证,不仅可以验证个人的身份,还可以验证设备的身份

  • Credentials sind im Chip der Karte gespeichert

  • ‚Entsperren‘ der Karte nach Besitzer-Authentisierung在用户成功认证之后,卡片的功能才会被解锁

  • Authentisierung gegenüber Terminal/Rechner/Serve 双因素认证

    • Faktor Wissen: PIN Eingabe,PIN 码在卡片的EEPROM中存储,并由卡片自身来进行验证
    • Faktor Besitz: physischen Besitz der Karte nachweisen对称认证:使用卡片中的预共享密钥 k进行加密挑战响应,非对称认证:使用用户私钥(如 dA)进行加密证明,表明用户拥有私钥
    • Smartcard führt Kommandos aus, z.B. Verify CHV (Card Holder终端设备(如计算机、服务器、读卡器)是客户端,向智能卡发送命令,卡片根据其内部存储的密钥和凭据进行相应的操作
image-20240925185121983

Aushebeln des Fehlversuchszählers im EEPROM

Chip benötigt höhere Spannung für Schreib- als für Lesezugriffe如果将供电电压(VCC)设置得只允许进行读取操作,攻击者可以无限制地尝试输入 PIN,而不会增加错误计数器。这使得对 PIN 进行暴力破解成为可能

Angriff durch Nutzung eines unsicheren Card-Readers

攻击者利用不安全或被篡改的读卡器来拦截 PIN 码

PACE (Password Authenticated Connection Establishment)

Identitätsmanagement (IM)

Single-Sign-On Konzept

使用服务需要输入密码

问题:

  • 每个人需要对每个服务输入密码
  • 敏感数据在很多计算机上

解决Single-Sign-on SSO

用户的credentials在被信任的AuC(Authentication Center)

AuC给这个服务Authentizitätstoken

这个服务来验证这个token的合法性

Konsequenz: Aufgaben-Trennung ist möglich

Authentisierung durch AuC: Policy Decision-Point, PDP.

Prüfung auf Gültigkeit durch Dienst: Policy-Enforcement-Point, PEP

Föderierte Identitäten联合身份

用户先向Identitätsprovider IdP亲求一个身份的Token, 用户把Token发送给服务商(SP) , SP验证Token

IM-Protokolle in der Praxis

  • Kerberos-Protokoll: 在企业内部用,无云服务

  • Shibboleth: 用于跨组织边界的Web应用程序身份认证和授权管理Authentisierungs- und Autorisierungs-Infrastruktur für Web- Anwendungen, ID Management über Org-Grenzen hinweg u.a. umgesetzt an der TUM, LRZ, LMU, BAdW

  • OpenID Connect basierend auf OAuth 2.0: 主要用于Web应用程序的身份认证Offener Industrie-Standard für Web-Anwendungen, u.a. Google, Amazon, Facebook, GitHub, Dropbox, Twitter

  • SSI: Self Souvereign Identity: selbstbestimmtes, dezentrales IDM指用户拥有并完全控制自己的身份,而不依赖于集中化的身份提供者。这是一种去中心化的身份管理方式

Kerberos-System

有三个角色:用户,KDC(里面有 AS, TGS), AD

  • 用户先访问AS,提供principle,password, AS鉴定是不是本人通过查询AD

  • 然后AS返回用户TGT(Ticket Granting Ticket)

  • 用户使用TGT访问TGS, TGS验证TGT并且检查访问服务的权限(查询AD), 返回 ST

  • 用户用ST 访问服务

image-20240926181841577

Shibboleth

是AAI(Authentisierungs- und Autorisierungsinfrastruktur)

  • Web-basiertes SSO für Web-Anwendungen
  • Föderierte Identitäten联合的身份
  • Nutzer authentisiert sich bei Identitäts Provider IdP
  • SAML-Assertions für Bestätigungen des ID Providers

由 IdP, SP(Service Provider), DS(Discovery Service)组成

image-20240926183113550

OpenID Connect basierend auf OAuth 2.0

OAuth 2.0

授权框架,旨在允许第三方应用程序在不共享用户密码的情况下,安全地访问用户存储在其他服务(如社交媒体、云存储等)上的资源

Der Ressource-Owner(RO) bestimmt, wer, welche Rechte erhält.

OpenID Connect: Erweiterung des OAuth-Frameworks

RO:在 OAuth 中,资源拥有者通常是用户,他们拥有某些资源(例如照片、文件),并有权决定谁可以访问这些资源。

Resource Server (RS) 资源服务器是存储和管理资源的服务器

比如,Alice有在Facebook存照片,Alice手机里有一个Kalender APP。Kalender需要访问Alice的照片。那么

  1. Alice给Kalender权限,
  2. Kalender把权限发给AS, AS返回一个Token
  3. Kalender通过Token访问Facebook

OpenID Connect

  1. Client发送AS说它要确认RO的权限

  2. AS检查URI, 对RO确认身份,并且拿到Rechtedelegation,准备Authorization Code

  3. Client 用Authorization Code 在AS交换 Access Token

  4. AS 生产一个对于确认授权的ID Token并且签名发给Client

  5. Client检查签名

Self-sovereign Identity (SSI)

DID 是一种 URL:DID(Decentralized Identifier,去中心化标识符)是指向一个 DID 文档的 URL。这个文档包含关于如何验证与该 DID 关联的身份的信息。

DID 经常与可验证声明(Verifiable Claims)一起使用。Verifiable Claims 是指可以被验证的身份属性或声明,通常由可信的实体(Issuer)签名,以证明某些身份信息的真实性。

用户可以通过这些经过验证的身份属性来证明其身份。

用户可以从多个不同的发布者(如政府、学校、公司等)获得 Verifiable Claims,并将这些身份声明提交给一个需要验证用户身份的网站或验证者(Verifier)。这样,用户的身份由多个实体共同验证,提高了身份信息的可信度

Kapitel 3 Hardware-basierte-Sicherheit

Spezielle Chips: Hardware Security Modules (HSM), Beispiel: TPM

Hardware-Erweiterung: Trusted Execution Environment (TEE), Bsp.: Intel SGX

Trusted Computing

Trust Building Blocks der TC-Plattform

TPM: Trusted Platform Module

CRTM: Core Root of Trust for Measurement: BIOS-Erweiterung, erster Schritt bei einem sicheren Boot-Vorgang Messen: Hashwerte berechnen

Features des TPM

  • Krypto-Primitive: Generator für symmetrische und asymmetrische Schlüssel • Signaturerstellung, Hashen, Ver- und Entschlüsselung

  • Eindeutige Chip-ID, wird als asymmetrischer Schlüssel konfiguriert, der sogenannte Endorsement Key (EK) \((e_{EK}, d_{EK})\) 厂商生产的,用于非对称加密, 敏感数据用e加密, 解密用d, 需要OwnerPassword来访问d

  • In Besitznahme der Plattform durch einen Nutzer, OAK = SHA(Owner_Passwort), Owner-Authentication Key , OAK nur im TPM gespeichert, shared secret 用户通过 Take_Ownership 命令 来掌控 TPM,并设定一个所有者密码(Owner Password),OAK 只在 TPM 内部存储,TPM 和所有者通过共享密钥机制确保安全通信

  • PCR-Register: Speicherung von Hashwerten von geladenen Systemmodulen存储系统模块的Hash值

  • Integritätsmessung/Reporting

    • Messen:测量数据的Hash值
    • Reporting: 收到外部请求时,TPM 可以生成一个完整性报告,该报告包含指定的 PCR 寄存器的值。这些寄存器中的哈希值反映了系统的启动状态或其他受监控的活动。
  • Attestierung 确保系统的可信度和完整性

​ 报告生成时,会包含一个 Nonce(一次性随机数)。这个随机数确保了每次生成的报告都是唯一的,并且防止重放攻击。为了保证报告的真实性,TPM 使用 AIK(Attestation Identity Key,证明身份密钥) 对报告进行签名。AIK动态可生成。报告生成后,外部实体可以使用 AIK 的公钥(eAIK)来验证签名的合法性

  • Sealing 用于将数据与平台特定的状态绑定起来,通过利用 PCR(平台配置寄存器)中的值对数据进行加密。Sealing 过程使用 TPM 的内部公钥对数据进行加密,同时将某些 PCR 寄存器的值作为额外的参数,当系统处于指定的 PCR 状态时,并且可以访问RSA私钥,TPM 可以解密并提供数据,否则解密操作将失败。加密后的数据结果是一个加密块(c),该块可以存储在 TPM 之外,例如存储在硬盘上。

TPM-Schlüsselhierarchie

TPM 中的密钥以层次结构的形式组织,这个层次结构用于对密钥进行封装和管理。密钥之间存在父子关系:子密钥由父密钥进行“包装”(加密),以确保子密钥的安全性

Storage-Root-Key (SRK): SRK 是整个密钥层次结构的根密钥,位于 TPM 的顶层。在Take Ownership(拥有权接管)时由 TPM 内部生成,并且私钥 dSRK 永远不会离开 TPM

Nutzen der Schlüsselhierarchie

TPM 密钥层次结构的主要用途是确保敏感数据在 TPM 外部也能得到安全的存储

在 TPM 中生成一个密钥 k 或一个密钥对 (ek, dk),其中 ek 是公钥,dk 是私钥

私钥 dk 会通过其父密钥的公钥 eparent 加密,这个过程被称为 “封装” 或 “wrapping”。

父密钥的公钥 eparent 被称为封装密钥绑定密钥(wrapping key 或 binding key),用于加密子密钥(即 dk)。

这样,即使私钥被 TPM 导出,它依然是加密的,只有使用父密钥才能解密,从而保证私钥的安全。

Measured Boot

CRTM, Core Root of Trust for Measurement)

  • CRTM 是 Measured Boot 的起始点,通常是 BIOS 的一个扩展模块。它是一系列静态的 CPU 指令,通常由芯片制造商签名。
  • 当计算机启动时,CRTM 首先运行,并负责测量(哈希)BIOS 的完整性

完整性测量是在加载每个固件或软件组件之前进行的。这意味着在系统启动过程中,每当要加载新的组件时,都会进行一个完整性检查

• Inkrementelles Vorgehen \[ \operatorname{PCR}(i)_{t-1}=\mathrm{SHA}-1\left[\mathrm{PCR}(i)_t \mid\right. \text { 新的测量 }] \] UEFI (Unified Extensible Firmware Interface): secure boot ohne TPM

在没有 TPM(受信任的平台模块)的情况下,安全启动也可以通过验证执行文件的签名哈希值来实现。这个过程包括:

  • 启动引导加载程序,该加载程序将加载操作系统内核。
  • 加载内核后,继续加载驱动程序等。
  • 如果在任何点上验证失败,系统将停止启动(fail-safe),确保不运行未授权的代码

UEFI 的安全启动功能可以与 TPM 的测量启动功能结合使用,以增强安全性

Attestierung

尽管 TPM 可以生成签名,但并非所有的签名都应该直接与 TPM 芯片本身关联。这是为了保护用户的隐私,防止通过签名识别设备或用户

为了实现隐私保护,使用了AIK(Attestation Identity Key)密钥对:

隐私 CA(Certificate Authority):是一个可信的第三方机构,负责签署 eAIK 公钥,以便证明其有效性。

Trusted Execution Environment (TEE) - 信任执行环境

在传统操作系统中,存在不同的特权级别(Privilege Levels), 操作系统缺乏对特权进程的防护,特权进程拥有对所有数据的访问权限。这在一些场景中可能会引发安全隐患,尤其是在云计算和边缘计算环境中

TEE: Schutz der Daten/Code in-use, während der Verarbeitung.防止它们被同一系统中的其他进程、操作系统、虚拟机管理程序或云服务提供商访问。

与 TPM 等外部硬件模块不同,TEE 通常是集成在标准处理器中的,不需要额外的独立芯片。

TEE 通过提供可验证的认证机制,允许应用程序向第三方证明其运行环境的可信度

Intel Software Guard Extensions(SGX)

是英特尔于 2015 年引入的一种 CPU 指令集扩展,应用程序在开发时可以被划分为安全(secure)非安全(non-secure)部分。敏感的操作和数据存储在安全部分中,而普通的操作放在非安全部分

SGX 的核心概念是 Enclave,它是一个安全区,用于在应用程序中隔离和保护敏感代码和数据。

EPC (Enclave Page Cache) :EPC 是一个用于存储 Enclave 的特殊内存区域,所有存储在其中的页都是加密的。EPC 中的页由专用的 MEE 加密和解密. 只有当 EPC 页在处理器核心内部时,才会被解密。这意味着 EPC 数据在内存传输过程中始终是加密状态

每个 Enclave 都通过一个 Hash 值 来表示。这个哈希值包含了 Enclave 的属性(如权限、配置等)以及其内存内容,确保 Enclave 的状态可以通过一个唯一的值进行验证

使用 Attestation Key(认证密钥) 对测量值进行签名,从而生成 Enclave 的认证报告。这确保了 Enclave 的状态能够被远程验证。Betriebssystem hat keinen Zugriff auf die Enclave!

缺点:

无法隔离整个虚拟机:SGX 只能保护特定的应用程序或代码部分,无法对整个 VM 进行隔离保

应用程序必须划分为安全和非安全部分:开发者需要将应用程序划分为“安全”和“非安全”部分,增加了编程的复杂性。

受限的隔离内存:SGX 的内存隔离有限(如 128MB EPC),无法满足大规模的应用需求

Intel Trusted Domain Extensions (TDX)

是一种新兴的硬件增强技术,用于解决 Intel SGX 中的限制。

隔离整个虚拟机 : 在 TDX 中,整个虚拟机可以被隔离,称为可信域(Trusted Domain, TD)

隔离虚拟机管理程序(VMM)和所有非可信域组件:TDX 隔离了虚拟机管理程序(VMM)和其他非可信的系统组件,防止这些高权限的程序访问或篡改 VM 的数据。

SEAM 模式(Secure Arbitration Mode)

TDX 引入了一个新的 CPU 运行模式,称为 SEAM(安全仲裁模式),用来管理安全模块的执行。具体特点如下:

  • TD 安全模块运行在保留的内存区域中。
  • 该安全模块由 Intel 签名(以保证其可信性),但内容并未加密,以确保系统透明性

加密和完整性保护:TDX 提供了硬件级别的加密保护和完整性验证,确保 VM 内部的数据和代码不被篡改

TDX 使用 Extended Page Table (EPT) 来进行地址映射。尽管 EPT 由 VMM 管理,但 VMM 无法访问实际的 TD 内存内容,因为这些内容是加密的。

TDX 支持 远程认证(Remote Attestation),允许外部的信赖方验证系统的可信状态。

AMD Secure Encrypted Virtualization (SEV)

Secure Memory Encryption (SME): Daten im DRAM AES-verschlüsselt

Secure Encrypted Virtualization (SEV)SEV 是 SME 在虚拟化环境中的应用,确保每个 VM 的内存是独立加密的

每个虚拟机通过一个 Address Space ID (ASID) 来标识。这个 ASID 用于绑定特定的加密密钥与相应的虚拟机内存,从而确保不同虚拟机之间的内存数据彼此隔离

在虚拟机初始化时,Platform Security Processor (PSP) 生成一个专用的 AES 密钥,用于加密和解密该虚拟机的内存。

可信执行环境(Trusted Execution Environments, TEE)正变得愈发重要。TEE 支持 机密计算(Confidential Computing) 这一关键概念,旨在在数据和代码执行过程中提供保护,相比传统的基于 TPM(Trusted Platform Module) 的方法,TEE 提供了更广泛的保护范围。

iOS Sicherheit

Apple 采用了封闭世界(Closed World)的安全模式,这意味着整个 iOS 生态系统从硬件到软件再到应用程序,都由 Apple 自主设计和严格控制。

iOS 安全架构

Secure Enclave 处理器(SEP):这是 iOS 设备中独立于主处理器的一个安全协处理器,专门用于处理和保护敏感数据,如加密密钥和生物识别信息(如 Face ID 和 Touch ID 数据)

系统安全:Secure Boot, Dateisystem-Sicherheit, Secure Update, Remote Wipe

应用和服务安全:sichere Ausführungsumgebung für Apps (Sandbox), Services

网络安全:Standardprotokolle: TLS, IPv6, VPN, WiFi, Bluetooth,

Application Processor,AP untrusted由于它需要处理大量来自用户和应用程序的数据,因此被视为不受信任的组件。AP 可能会受到恶意软件攻击或利用,因而不能完全信任其安全性。

Secure Enclave Processor,SEP trusted它能够执行高度敏感的任务,如存储和处理生物识别数据(如指纹和面部识别),并且该数据始终保存在受保护的环境中

安全擦除存储(Effaceable Storage)

  • 安全删除:安全擦除存储是指对存储在 NAND 闪存单元中的数据进行安全删除的机制。与传统的删除操作不同,安全删除意味着在设备重置或用户请求删除数据时,SEP 可以直接访问 NAND 闪存单元,并通过将存储内容覆盖或清除来确保数据无法恢复。这种直接操作的好处是避免了常规存储中的磨损均衡(Wear-Leveling)机制

Hardware-Sicherheit

Boot ROM: Hardware Root of Trust für sicheres Boot für iOS, sepOS

Secure Enclave Prozessor (SEP)

  • Ko-Prozessor,为了保护用户数据和AP(Application Prozessor)分离,独立OS, Boot-ROM,Secure Boot, secure OS-Update
  • AES Engine in SEP: 非常快的AES-XEX读写,IOS和CPU不能访问key

SEP-Schlüssel

  • Eindeutige Geräte-UID (UID) 从生产商生成, 只能在SEP里用
    • 在 Silizium 实现, Debug不能读取
    • 实现一个设备的加密数据Binding
  • GruppenID 对于相同的Prozessor-Familie 相同,从生产商导入,只能在SEP里用

sepOS(Secure Enclave 操作系统)启动时,SE Boot ROM 会生成一个短暂的密钥 Keph。这是一个用于内存加密的临时密钥,生成的 Keph 与设备的唯一标识符(UID)结合,形成新的组合密钥:Keph || UID

Secure Enclave 的内存(如 RAM)通过AES 算法使用这个组合密钥 Keph || UID 进行加密

生成的 Keph 存储在Encryption Controller Register(加密控制器寄存器)中,并且只在当前启动会话期间有效。

当设备重新启动时,Keph 会被新生成的密钥替换。

Passcodes

解锁设备的密码,用于验证用户身份,解锁设备

Master Key

可以导出Master-Keys MS: MS=KDF(passcode, UID, salt), MS 不会被存储,而是根据需要导出。在访问特定数据的时候会用到MS,输入密码会充置MS. 当用户输入密码时,主密钥 MS 被重新生成并用于解密数据。一旦用户完成对数据的访问,MS 就会被销毁。

密码与设备 UID 绑定

由于密码与设备唯一标识符(UID)绑定,攻击者无法将加密数据转移到其他设备进行破解。这意味着所有的暴力破解攻击必须在设备本身进行,限制了攻击的范围和可操作性

会人工延迟验证密码的时候,在用户连续输入错误密码时,延迟机制会显著增加破解密码所需的时间:

  • 例如,在 4 次错误后,需要等待 1 分钟。
  • 在 9 次错误后,等待时间可能会延长到 8 小时。

通过这种方式,即使密码较短,攻击者也难以通过快速尝试大量密码来进行暴力破解。

延迟机制由设备的Secure Enclave(安全隔区)处理,意味着这种保护是在硬件级别实现的,不受操作系统层面的攻击影响。

用户可以配置策略,使设备在 10 次密码错误后自动触发 远程擦除(Remote Wipe)。此功能会删除用于解密文件系统的密钥(文件系统密钥 K),从而使设备上的加密文件无法被解密,保证数据不会落入攻击者手中。

Biometrie: Face ID und Touch ID

iOS 通过 Face IDTouch ID 提供便捷的身份验证方法,生物识别数据(如面部或指纹信息)从传感器传输至设备的 Secure Enclave Processor(SEP) 时,数据是加密的,确保传输过程中的隐私和安全。在 SEP 中,生物识别数据会与存储的参考模板进行匹配,验证身份

即使设备使用了 Face ID 或 Touch ID,某些敏感操作仍然需要用户输入密码:

Software Update, Device löschen; nach Restart; Anzeigen oder Ändern der Passwortdaten; Installation oder Konfiguration von Profilen; Unlock mit Passcode nach mehr als 48 Stunden; Nutzer hat seinen Passcode mehr als 6.5 Tage nicht genutzt und keine biometrische unlock-Aktion über 4 Stunden durchgeführt. Nach 5 nicht erfolgreichen biometrischen Zugangsversuchen.

Datei-Schutz, Data Protection

保护在A处理器,存储器中的数据

在设备首次安装擦除(Wipe)时,会自动生成一个用于保护文件系统的主密钥 K,对于每个文件,系统会生成一个独立的 AES 256 位文件密钥 DK,用于对文件进行加密

根据文件的安全需求,每个文件在生成时由其所属的应用程序指定一个安全级别:

  1. 无保护 (No Protection):文件只通过设备绑定和文件系统密钥 K 进行保护。

  2. 保护到首次用户认证 (Protected until First User Authentication):文件受到保护,直到用户第一次通过设备认证(如解锁设备)

  3. 除非打开,否则受保护 (Protected unless Open):该级别下的文件一直受保护,直到用户打开该文件。

    如果文件没有被主动打开,即便设备已经解锁,它仍处于加密状态

  4. 完全保护 (Complete Protection)

    文件在设备锁定后仍处于加密状态,直到用户重新进行身份认证。这种保护级别确保即使设备解锁后未被使用,文件也不会被自动解密

每个安全级别都有一个相应的 256位 AES 类密钥 CK,用来对该级别的文件进行加密

文件加密过程

image-20240928150325842

\(c_{Daten_f} =AES_{DK}(Daten_f)\) 这个 \(c_{Daten_f}\) 存在AP-存储器里

\(c_{DK}=AES_{CK}(DK)\), 存在 \(f\) 的 Meta Data里

\(K\) 加密 \(f\) 的 Meta Data

\(c_K=AES_{KS}(K)\), KS从UID导出来,只在SEP被访问

文件解密过程

在启动时候,从UID把KS算出来,从AP存储器读取EK

解密:\(c_K= AES^{-1}_{EK}(c_{c_k}), K = AES^{-1}_{KS}(c_k)\)

然后用 \(K\) 解密MetaData 就有了 CK 的ID , 有了 \(c_{DK}\)

用 MS 解密这个,如果要输入密码就输入

对于之后的使用,把 CK 加密 \(c'_{CK}=AES_{K'}(CK), K= K_{eph} || UID\) SEP- DRAM speichern

用 CK 解密出 DK,再解密出 \(Daten_f\)

Vier Sicherheitsklassen

  • Complete Protection: 最强的保护等级

设备锁定状态下,CK 将不可用,因此无法进行后台下载等操作

类密钥 CK 会被 主密钥 (MS) 保护并存储在 AP 闪存 中。这是为了防止未经授权的访问。

同时,CK 和文件密钥 (DK) 会被从 安全环境处理器 (SEP) 的 RAM 中删除,确保在设备锁定状态下无法访问文件。

需要输入 密码,并计算主密钥 (MS)。这需要物理访问设备(即设备的 UID),确保只有合法用户能够进行此操作。

计算主密钥 (MS) 后,CK 被解密。

使用解密后的 CK,可以访问并解密对应的文件密钥 (DK),从而访问文件的数据

  • Protected Until First User Authentication

    在此保护等级下,类密钥 (CK) 在设备首次解锁时被解密,并且在设备锁定时不会从 安全环境处理器 (SEP) 的 RAM 中删除。

    CK 仅在设备重启时才会被清空,这意味着 CK 在设备锁定期间依然可用。当设备处于锁定状态时,CK 会保留在 SEP-RAM 中

​ 此保护级别通常是 所有第三方应用程序 的默认保护等级。

  • No Protection

    这是文件保护的默认等级,适用于所有未明确指定保护类别的文件。在无保护级别下,CK 仅使用设备的 UID 进行加密。

    文件密钥 (DK) 使用 CK 加密。

    文件的元数据则使用 文件系统密钥 (K) 加密。

  • Protected Unless Open

    允许对打开的文件进行写入访问,即使设备处于锁定状态。这意味着只要文件处于打开状态,就不会受到保护。

    例如,在设备锁定的情况下,用户可以继续下载电子邮件附件

    • 由于 CK 和 DK 在设备锁定后不再存储在 SEP-RAM 中,这就导致在锁定状态下无法访问这些密钥。这可能会造成无法进行写入操作的问题,尤其是当文件仍然需要保存时。

    重新访问要求:

    • 一旦文件关闭,若需要再次访问该文件,则用户必须重新输入 Passcode。这种设计确保了对数据的安全性,但在用户体验上可能造成不便。

解决方法:

CK是一个 ECC keypair \((e_{class}, d_{class})\) , \(d_{class}\) 被 MS 保护, \(e\) 在AP里可以被访问

在创建文件的时候:生成 \((e_{file},d_{file})\) , \(s=ECDH(d_{file},e_{class})\)

包装 \(c_{DK}=AES_s(DK)\) , \(s\) 留在 SEP-RAM

\(c_{DK},e_{file}\) 保存在 f 的 Meta Data里面,删除 \(d_{file}\)

文件重新打开时 DK 的恢复过程

Funknetze im Nahbereich

Ziel: Sicherheitsprobleme und -konzepte für Funknetze im Nahbereich

5.1 Sicherheit bei Funkkommunikation

自组织模式(Ad-hoc):

  • 自组织模式没有中心设备,网络中的设备可以直接彼此通信。这种模式通常用于临时的、无需AP的网络连接,比如两台笔记本之间的直接文件传输

基础设施模式(Infrastruktur-basiert):

  • 在基础设施模式的无线网络中,通信通过一个中心设备进行,例如无线路由器或接入点(Access Point, AP)。所有设备都必须通过AP进行通信,AP负责管理和协调网络中的通信。

在无线通信中,安全问题主要来自以下几个方面:

1. Sniffen(窃听)

  • 无线信号的广泛传播: 无线电波具有很大的传播范围,攻击者可以从很远的距离截获无线信号进行监听。像WLAN 802.11系列标准这样的技术,根据版本不同,通信范围可以从100米几公里不等。
  • 信号的垂直传播: 无线信号不仅水平传播,还可以垂直传播,意味着楼层之间也可以传播信号。
  • 物理障碍的局限性: 虽然墙壁可能会部分阻挡信号,但它们并不能完全屏蔽无线电波。因此,即使在封闭的环境中,信号仍然有可能被外部捕捉到。

2. Spoofen(伪造)

  • 可操控的MAC地址或蓝牙设备地址

    : 攻击者可以通过伪造设备的MAC地址或蓝牙设备地址来假冒合法设备。这会导致以下几种攻击方式:

    • 客户端伪装(Client Spoofing):攻击者假冒合法客户端进行通信,窃取信息或执行恶意操作。
    • 会话劫持(Session Hijacking):攻击者在通信过程中劫持会话,获取敏感数据或接管控制权。
    • 接入点伪装(Access Point Spoofing):攻击者创建一个假接入点,诱导合法设备连接,从而进行中间人攻击

Anforderungen an Sicherheitsarchitekturen für Layer 2

  • 设备之间的相互认证:在建立第2层连接时,所有设备都需要进行双向认证,以确保通信双方都是合法的并且可以信任。这种认证可以防止未经授权的设备接入网络。
  • 使用先进的加密标准
    • 应该采用当前最先进的加密技术来保护数据的机密性。这确保即使数据在传输过程中被截获,攻击者也无法读取内容。
  • 通过加密的哈希函数实现数据完整性保护
    • 数据的完整性需要通过加密哈希函数来保护,确保传输的数据没有被篡改。哈希函数生成的数据摘要可以用于验证接收到的数据是否与原始数据一致
  • 密钥管理 不同的任务或用途(例如加密、认证、完整性检查等)应使用不同的密钥,以减少安全风险,密钥长度应足够长,以防止暴力破解。对称密钥应具有高熵,即密钥的随机性要足够高,确保难以被预测或推断,每次P2P(点对点)连接应生成一个新的会话密钥,避免重复使用相同的密钥,尤其是在使用流加密的情况下,防止密钥重用带来的安全问题
  • 理想的安全特性
    • 在每个具体服务(例如文件共享、语音通信等)上,实现细粒度的密钥管理,以确保每个服务都有适当的安全保护
    • 无线设备中存储的数据应受到访问控制,确保只有经过授权的用户或设备可以访问这些数据。
    • Nutzer-Authentisierung用户身份认证,确保操作设备的人也是授权的用户。这可以防止设备被盗用或滥用

WLAN-Sicherheit, WPA (WiFi Protcted Access)

WPA是一种用于保护WLAN网络的安全协议,其中最新版本为WPA3。以下是WPA2中关于密钥层次结构的详细解释:

密钥层次结构中的主要概念

  1. 根密钥:Pairwise Master Key (PMK)
    • PMK是整个密钥层次结构的根密钥,具有256位的长度,用于在接入点(AP)和WLAN客户端之间建立安全连接。它是一个持久的密钥,在会话开始时生成并保持较长时间。
    • PMK通过以下两种方式建立:
      1. 个人模式(Personal Mode,PSK)
        • 主要基于预共享密钥(Pre-shared Key,PSK),通常是密码或通过WPS-PIN(Wi-Fi Protected Setup)按钮设置。
      2. 企业模式(Enterprise Mode)
        • 通过802.1X协议进行身份认证,适用于需要更强身份验证和访问控制的企业环境。
  2. 会话密钥:Pairwise Transient Key (PTK)
    • PTK是每个会话的临时密钥,长度为384位,通过密钥派生函数(Key Derivation Function, KDF)从PMK中派生而来。
    • PTK由4次握手协议(4-way Handshake Protocol)在客户端和AP之间协商生成,用于保护单个客户端的通信。
    • PTK分为三个部分:
      • TK(Temporary Key):用于数据加密。
      • KCK(Key Confirmation Key):用于确认密钥的完整性。
      • KEK(Key Encryption Key):用于加密密钥信息。
  3. 组密钥:Group Temporal Key (GTK)
    • GTK是一个临时的组密钥,用于在WLAN网络中实现安全的组播和多播通信。它由接入点(AP)生成,长度为128位
    • 组密钥用于确保在同一无线局域网(WLAN)中,所有用户的组通信数据都是安全的

PTK = TK || KCK || KEK 是在WPA2中通过4次握手协议生成的临时密钥,用于保护无线通信。PTK由以下三个部分组成:

1. TK (Temporal Key) - 临时密钥

  • 长度:128位
  • 用于加密AP和客户端之间的通信。
  • 常用于AES-CCMP加密算法,确保数据在传输过程中被加密,防止数据泄露。

2. KCK (Key Confirmation Key) - 密钥确认密钥

  • 长度:128位
  • 用于验证数据的完整性和身份的真实性,特别是在4次握手协议中(用于建立安全连接)。
  • 基于AES-CBC算法,确保通信双方能够验证传输的数据是否被篡改。

3. KEK (Key Encryption Key) - 密钥加密密钥

  • 长度:128位
  • 用于加密从AP到客户端传输的组密钥(GTK)
  • KEK确保GTK的安全传输,防止组播和多播通信中的数据被攻击者拦截。

WPA 4-Wege-Handshake

image-20241004161649250

AES-CCMP (Counter-Mode-CBC-MAC-Protocol)

image-20241005202557607

summerize the effect

manuel.brosch@tum.de

fault_resistant_neural_networks sw_targets protocol Src mac_with_an_code.s

https://gitlab.lrz.de/TUEISEC-Intern/fault_resistant_neural_networks/-/blob/main/sw_targets/protocol/Src/mac_with_an_code.s?ref_type=heads

https://gitlab.lrz.de/TUEISEC-Intern/fault_resistant_neural_networks/-/tree/main/sw_targets?ref_type=heads

练习

复习0

Stream Cipher的CTR, CBC, EBC模式和特点

MAC只用Hash实现有什么不好

MAC用Hash把m在后面有什么不好(MD)

HMAC的好处

DS和MAC的区别

RSA和DH

PFS

Challenge-Response Authentifizierung

第一章

Smartcard的使用场景

Authentifizierung und Autorisierung的区别

移动系统的安全要求为什么比静止的高

Hardwareabwehrmaßnahmen, 对 RevEng, Fault, SideChannel的防御是否有效

  • Dual-Rail-Logic
  • Sensorik für Spannung, Licht, Temperatur
  • Schutzschicht gegen EM-Strahlung
  • Stromführende Metallschicht
  • Passivierungsschicht für RAM
  • Ionenimplantierte ROM-Codes
  • Veränderung des Chip-Designs Scrambling der Leitungen
  • Busse nicht nach außen führen

Softwareabwehrmaßnahmen

  • Side-Channel Dummy-Operationen
  • Random-WaitStates
  • Verschlüsselte Kommunikation zwischen Lesegerät und Karte

EEPROM需要高电压。有什么攻击方法,怎么防御

PACE

SPA

第三章

TPM中 EK,SRK,AIK,OAK,的作用和生成方式

TPM的指令是如何加密的,A可以给TPM发送指令吗

EK是怎么验证的

Binding和Sealing的区别

TPM的AIK证书怎么获得的

应用场景

TEE要解决什么问题

Intel SGX怎么运用

Foreshadow Angriff

第四章

Bedrohungen in Funkkommunikation und warum
  • Sniffen: Funkwellen eine sehr große Ausbreitung haben, sich in vertikale Richtung breiten
  • Spoofen: Client-Spoofing, Session Hijacking, AP Spoofing
Anforderungen an Sicherheitsarchitekturen für Layer 2
  • Wechselseitige Authentisierung
  • State-of-the Art Verschlüsselungs-Standards.
  • Integritätsschutz
  • Key-Management
解释 PMK, PTK, GTK
  • Pairwise Master Key, langlebig
    1. Personaal: Pre-shared Key (PSK)
    2. Enterprise: 802.1X-Protokoll
  • Pro session: Pairwise Transient Key(PTK)
    1. aus PMK abgeleitet
    2. PTK = TK || KCK || KEK
    3. TK: Kommunikationsschlüssel for AES-CCMP
    4. KCK: (Key Confirmation Key) for AES-CBC
    5. KEK: (Key Encryption Key) Wrapen des Group Key
  • Temporary Group Key (GTK)
    1. for sicheren Gruppen und Multicast
    2. von AP erzeugt
4-Wege Handshake
  1. AP generiert ANounce: msg1 = ANounce

  2. Client generiret SNounce, berechnet:

    PTK=KCK||KEK||TK

    MIC=AES-CBC_{KCK}(msg1||msg2)

    msg2 = SNounce || MAC-Addr, MIC

  3. AP prüft MIC, berechnet:

MIC'=AES-CBC_{KCK}(msg1 || msg2)
msg3 = AES_{KEK}(GTK), MIC'
  1. Client prüft MIC’, falls ok ACK und activate, msg4 = ACK
  2. AP falls ok, activate
AES-CCMP Klartext: Nutzdaten + MIC Counter from MAC-Header, Paketnummer TK: CTR Mode Key
Sicherheitsprobleme bei WPA2
  • PMK: Kein paarweiser Master-Key: mehrere Nutzer kennen das Passwort! Dictionary und Brute Force Attacks auf Passwort
  • Design-Problem des 4 Wege Handshake: WLAN-KRACK-Angriff (Key Reinstallation AttaCK)
WPA 3 Personal
  • Simultaneous Authentication of Equals (SAE) 1. Ersetzt Pre-shared Key (PSK) in WPA2-Personal 2. Variante des Dragonfly Handshake 3. Berechnen eines frischen Pairwise Master Key (PMK)
Dragonfly Handshake
  • Commit-Phase 1. Ableiten eines gemeinsamen Schlüssels aus Passwort 2. Abstimmen der Kurvenparametern 3. Client und AP bilden jeweils ihr gemeinsames Passwort auf einen Punkt P der elliptischer Kurve E ab 4. Schlüsselvereinbarung ähnlich ECDH zwischen Client (A) und AP (B)

  • Confirm-Phase: Prüfen ob beide Seiten identischen Schlüssel abgeleitet haben

Attacken auf WPA3
  • Downgrade von WPA3 auf WPA2

  • Downgrade der WPA3- Handshake Sicherheitsparameter

  • Timing Side-Channels auf den WPA3-Handshake: Abbildung des Passwortes auf finite Gruppe/Kurvenelement erfolgt durch iteratives Ausprobieren bis passendes Gruppenelement gefunden.

Schlüsselhierarchie bei Bluetooth
  • Persistenter Link-Key
Secure Simple Pairing (SSP)
  • Persistenter Link-Key