This shows you the differences between two versions of the page.
ss:laboratoare:07 [2025/02/26 00:26] jan.vaduva |
ss:laboratoare:07 [2025/02/26 00:33] (current) jan.vaduva |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Laborator 7: Secure Boot și Autentificarea Firmware-ului ====== | + | ====== Laborator 7: Secure Boot și Autentificarea Codului pentru Aplicații Mobile ====== |
===== Obiective ===== | ===== Obiective ===== | ||
- | * Înțelegerea conceptelor de **Secure Boot** și autentificarea firmware-ului | + | * Înțelegerea conceptelor de **Secure Boot** și verificarea integrității codului în aplicațiile mobile |
- | * Implementarea unui mecanism de **Secure Boot** pentru dispozitivul hardware utilizat în laboratoarele anterioare | + | * Implementarea unui mecanism de **verificare a integrității aplicației** pentru a detecta modificări neautorizate |
- | * Verificarea integrității și autenticității firmware-ului utilizând semnături digitale | + | * Asigurarea protecției împotriva **atacurilor de repackaging** (modificarea și redistribuirea aplicației) |
- | * Protejarea procesului de actualizare firmware pentru a preveni atacurile bazate pe firmware compromis | + | * Implementarea **firmware authentication** și securizarea procesului de actualizare a aplicației |
+ | * Prevenirea **încărcării codului malițios** și protejarea comunicațiilor dintre aplicație și server | ||
===== Cerințe tehnologice ===== | ===== Cerințe tehnologice ===== | ||
- | * **Microcontroler / Platformă hardware**: ESP32, STM32, Raspberry Pi, sau alte dispozitive utilizate în laborator | + | * **Platforme mobile**: Android (Java/Kotlin), iOS (Swift) |
- | * **Bootloader securizat**: U-Boot, MCUboot, Trusted Firmware-M (TF-M) | + | * **Mecanisme de protecție**: Play Integrity API (Android), App Attest API (iOS) |
- | * **Algoritmi criptografici**: RSA/ECDSA pentru semnătura digitală, SHA-256 pentru integritate | + | * **Semnarea aplicației**: APK Signing v3 (Android), Code Signing (iOS) |
- | * **Mecanisme de verificare a firmware-ului**: Validare hash, semnătură digitală cu cheie privată | + | * **Securizarea update-urilor**: Firebase App Distribution, App Store Connect, criptare firmware pentru OTA |
- | * **Tooling**: OpenSSL pentru generarea cheilor și certificatelor, imgtool pentru semnarea firmware-ului | + | * **Tehnologii criptografice**: RSA/ECDSA pentru verificarea integrității codului |
+ | * **Mecanisme de protecție anti-tampering**: Obfuscation, Root/Jailbreak detection | ||
===== Funcționalități ===== | ===== Funcționalități ===== | ||
- | ==== 1. Implementarea Secure Boot pe dispozitivul hardware ==== | + | ==== 1. Implementarea Secure Boot pentru aplicația mobilă ==== |
- | * Activarea și configurarea unui bootloader securizat | + | * Semnarea digitală a aplicației pentru prevenirea modificărilor neautorizate |
- | * Generarea unui hash pentru verificarea integrității firmware-ului | + | * Verificarea integrității codului la rulare folosind checksums și hashing |
- | * Restricționarea execuției doar pentru firmware-ul autentic și semnat | + | * Detectarea încercărilor de modificare a aplicației (anti-repackaging) |
- | ==== 2. Semnarea și verificarea firmware-ului ==== | + | ==== 2. Protejarea firmware-ului și a update-urilor aplicației ==== |
- | * Crearea unei perechi de chei criptografice pentru semnarea firmware-ului | + | * Semnarea și criptarea actualizărilor pentru a preveni atacurile de tip man-in-the-middle |
- | * Implementarea mecanismului de verificare a semnăturii digitale în bootloader | + | * Implementarea verificării criptografice înainte de instalarea unui update |
- | * Testarea procesului de autentificare pentru a preveni încărcarea unui firmware compromis | + | * Utilizarea unui canal securizat pentru descărcarea actualizărilor (TLS, certificate valide) |
- | ==== 3. Protejarea procesului de actualizare firmware ==== | + | ==== 3. Prevenirea atacurilor de manipulare și încărcare de cod malițios ==== |
- | * Implementarea unui mecanism de actualizare OTA securizat | + | * Detectarea aplicațiilor care rulează pe dispozitive rootate sau jailbreak |
- | * Verificarea semnăturii firmware-ului înainte de instalare | + | * Implementarea protecției împotriva atacurilor prin încărcarea dinamică de cod (Dynamic Code Loading) |
- | * Detectarea și prevenirea atacurilor prin firmware malițios | + | * Monitorizarea și raportarea încercărilor de modificare a aplicației în timp real |
===== Evaluare ===== | ===== Evaluare ===== | ||
- | * Configurarea și activarea Secure Boot (30%) | + | * Implementarea mecanismului de verificare a integrității codului (30%) |
- | * Implementarea mecanismului de semnare și verificare a firmware-ului (40%) | + | * Protecția procesului de update și verificarea firmware-ului (40%) |
- | * Protejarea procesului de actualizare firmware (30%) | + | * Detectarea și prevenirea atacurilor asupra aplicației (30%) |
===== Resurse suplimentare ===== | ===== Resurse suplimentare ===== | ||
- | * [https://www.trustedfirmware.org Trusted Firmware-M] | + | * [https://developer.android.com/guide/app-bundle/app-signing Android APK Signing] |
- | * [https://u-boot.readthedocs.io/en/latest/ U-Boot Secure Boot] | + | * [https://developer.apple.com/documentation/security/app_attest Apple App Attest] |
- | * [https://github.com/mcu-tools/mcuboot MCUboot Documentation] | + | * [https://developer.android.com/google/play/integrity Play Integrity API] |
- | * [https://www.openssl.org OpenSSL for Key Generation & Signing] | + | * [https://owasp.org/www-project-mobile-security-testing-guide/ OWASP Mobile Security Testing Guide] |
- | + | ||