Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Prefazione Introduzione
Destinatari del libro Prerequisiti Versioni di Android Organizzazione del libro Convenzioni Ringraziamenti L’autore Il revisore tecnico
Capitolo 1 - Modello di sicurezza di Android
Architettura di Android
Kernel di Linux Userspace nativo Dalvik VM Librerie di runtime Java Servizi di sistema Comunicazione tra processi Binder
Implementazione di Binder Sicurezza di Binder Identità Binder Sicurezza basata sulle capability Token Binder Accesso agli oggetti Binder Altre funzionalità di Binder
Librerie del framework Android Applicazioni
App di sistema App installate dall’utente Componenti delle app Android
Modello di sicurezza di Android
Sandboxing delle applicazioni Permessi IPC Firma del codice e chiavi della piattaforma Supporto multiutente SELinux Aggiornamenti del sistema Boot verificato
Riepilogo
Capitolo 2 - Permessi
Natura dei permessi Richiesta dei permessi Gestione dei permessi Livelli di protezione dei permessi
normal dangerous signature signatureOrSystem
Assegnazione dei permessi
Permessi e attributi di processo Assegnazione degli attributi di processo
Applicazione dei permessi
Applicazione a livello di kernel Applicazione a livello di daemon nativo Applicazione a livello di framework
Applicazione dinamica Applicazione dinamica Applicazione di permessi per activity e servizi Applicazione di permessi ai content provider Applicazione di permessi ai broadcast Broadcast protetti e sticky
Permessi di sistema
Permessi di firma Permessi di sviluppo
User ID condiviso Permessi personalizzati Componenti pubblici e privati Permessi per activity e servizi Permessi per i broadcast Permessi per i content provider
Permessi per i provider statici Permessi per i provider dinamici
Pending intent Riepilogo
Capitolo 3 - Gestione dei package
Formato dei package di applicazione Android Firma del codice
Firma del codice Java
Implementazione Firma del file JAR Verifica del file JAR Visualizzazione o estrazione delle informazioni sul firmatario
Firma del codice Android
Strumenti di firma del codice Android Firma del codice dei file OTA
Processo di installazione dei file APK
Posizione di dati e package delle applicazioni Componenti attivi
Applicazione di sistema PackageInstaller Il comando pm PackageManagerService Classe Installer Il daemon installd MountService Il daemon vold MediaContainerService AppDirObserver
Installazione di un package locale
Parsing e verifica del package Accettazione dei permessi e avvio del processo di installazione Copia nella directory dell’applicazione Scansione del package Creazione di directory dati Generazione di Optimized DEX Struttura di file e directory Aggiunta del nuovo package a packages.xml Attributi dei package Aggiornamento di componenti e permessi
Aggiornamento di un package
Verifica della firma Aggiornamento delle app non di sistema Aggiornamento delle app di sistema
Installazione di file APK crittografati
Creazione e installazione di un file APK crittografato Implementazione e parametri di crittografia Installazione di un file APK crittografato con verifica dell’integrità
Forward locking Implementazione del forward locking di Android 4.1
Contenitori delle app crittografati Installazione di file APK con forward locking
App crittografate e Google Play
Verifica dei package
Supporto di Android per la verifica dei package Implementazione di Google Play
Riepilogo
Capitolo 4 - Gestione degli utenti
Panoramica sul supporto multiutente Tipi di utenti
Utente primario (proprietario) Utenti secondari Profili con restrizioni
Restrizioni utente Applicazione delle restrizioni Accesso agli account online
Utente guest
Gestione degli utenti
Strumenti a riga di comando Stati utente e broadcast correlati
Metadati utente
File dell’elenco utenti File dei metadati utente Directory di sistema utente
Gestione delle applicazioni per utente
Directory dati delle applicazioni Condivisione delle applicazioni
Memoria esterna
Implementazioni della memoria esterna Memoria esterna multiutente
Funzionalità di mounting Linux avanzate Implementazione in Android
Permessi della memoria esterna
Altre funzionalità multiutente Riepilogo
Capitolo 5 - Provider di crittografia
Architettura dei provider JCA
Provider del servizio di crittografia
Implementazione dei provider Registrazione statica dei provider Registrazione dinamica dei provider
Classi engine JCA
Recupero dell’istanza di una classe engine Nomi degli algoritmi SecureRandom MessageDigest Signature Cipher
Modalità di funzionamento della cifratura a blocchi Recupero di un’istanza di Cipher Uso di un’istanza di Cipher
Mac Key SecretKey e PBEKey PublicKey, PrivateKey e KeyPair KeySpec KeyFactory SecretKeyFactory KeyPairGenerator KeyGenerator KeyAgreement KeyStore
Tipi di KeyStore Keystore su file PKCS#12
CertificateFactory e CertPath CertPathValidator e CertPathBuilder
Provider JCA di Android
Provider Crypto di Harmony Provider Bouncy Castle di Android Provider AndroidOpenSSL OpenSSL
Uso di un provider personalizzato
Spongy Castle
Riepilogo
Capitolo 6 - Sicurezza di rete e PKI
Panoramica su PKI e SSL
Certificati a chiave pubblica Trust diretto e CA private Infrastruttura a chiave pubblica Revoca dei certificati
Introduzione a JSSE
Socket sicuri Autenticazione dei peer Verifica del nome host
Implementazione JSSE di Android
Gestione e convalida dei certificati
Trust store di sistema Trust store di sistema Android 4.x Uso del trust store di sistema API del trust store di sistema
Blacklisting dei certificati
Gestione delle compromissioni di chiavi CA Gestione delle compromissioni di chiavi EE Blacklisting dei certificati Android
Riesame del modello di trust PKI
Problemi di trust nella PKI odierna Soluzioni radicali Convergence e trust agility Pinning dei certificati Pinning dei certificati in Android
Riepilogo
Capitolo 7 - Archiviazione delle credenziali
Credenziali EAP per VPN e Wi-Fi
Certificati e chiavi di autenticazione Archivio delle credenziali di sistema
Implementazioni dell’archivio delle credenziali
Servizio keystore Tipi e versioni di key blob Restrizioni di accesso Implementazione del modulo keymaster e del servizio keystore Implementazione con supporto hardware di Nexus 4 Integrazione nel framework
API pubbliche
API KeyChain
Classe KeyChain Installazione di un file PKCS#12 Uso di una chiave privata Installazione di un certificato CA Eliminazione di chiavi e certificati utente Recupero di informazioni sugli algoritmi supportati
Implementazione dell’API KeyChain Controllo dell’accesso al keystore
KeyChainBroadcastReceiver Riepilogo sulle credenziali e sul trust store
Provider keystore di Android
Riepilogo
Capitolo 8 - Gestione degli account online
Panoramica sulla gestione degli account in Android Implementazione della gestione degli account
AccountManagerService e AccountManager Moduli autenticatori Cache del modulo autenticatore Permessi e operazioni di AccountManagerService
Elenco e autenticazione degli account Gestione degli account Uso delle credenziali degli account Richiesta di accesso con token di autenticazione
Database degli account
Schema delle tabelle Accesso alle tabelle Sicurezza mediante password
Supporto multiutente
Database degli account per utente Account condivisi
Aggiunta di un modulo autenticatore
Supporto per gli account Google
Servizio di login Google Autorizzazione e autenticazione per i servizi Google
ClientLogin OAuth 2.0
Google Play Services
Riepilogo
Capitolo 9 - Sicurezza aziendale
Amministrazione del dispositivo
Implementazione
Gestione dei privilegi Persistenza delle policy Applicazione delle policy
Aggiunta di un amministratore del dispositivo
Implementazione di un amministratore del dispositivo Impostazione del proprietario del dispositivo Dispositivi gestiti
Integrazione degli account aziendali
Microsoft Exchange ActiveSync Google Apps
Supporto VPN
PPTP L2TP/IPSec IPSec Xauth VPN basate su SSL VPN legacy
Implementazione Archiviazione di profili e credenziali Accesso alle credenziali VPN always-on
VPN basate sulle applicazioni
Dichiarazione di una VPN Preparazione della VPN Effettuazione di una connessione VPN Notifica all’utente della connessione VPN
Supporto multiutente
Routing avanzato di Linux Implementazione di VPN multiutente
EAP Wi-Fi
Metodi di autenticazione EAP Architettura Wi-Fi di Android Gestione delle credenziali EAP Aggiunta di una rete EAP con WifiManager
Riepilogo
Capitolo 10 - Sicurezza del dispositivo
Controllo dell’installazione e dell’avvio del sistema operativo
Bootloader Recovery
Boot verificato
Informazioni generali su dm-verity Implementazione in Android Abilitazione del boot verificato
Crittografia del disco
Modalità di cifratura Derivazione della chiave Password di crittografia del disco Modifica della password di crittografia del disco Abilitazione della crittografia
Controllo della crittografia del dispositivo con le proprietà di sistema Unmounting di /data Attivazione del processo di crittografia Aggiornamento del footer crypto e crittografia dei dati
Avvio di un dispositivo crittografato
Recupero della password di crittografia del disco Decodifica e mounting di /data Avvio di tutti i servizi di sistema
Sicurezza dello schermo
Implementazione della schermata di blocco Metodi di sblocco del keyguard
Face Unlock Sblocco mediante pattern Sblocco mediante PIN e password Sblocco mediante PIN e PUK
Protezione contro gli attacchi di forza bruta
Debug USB sicuro
Panoramica su ADB Esigenza di ADB sicuri Protezione di ADB Implementazione sicura di ADB Chiavi di autenticazione ADB Verifica del fingerprint della chiave host
Backup in Android
Panoramica sul backup in Android
Backup nel cloud Backup locale
Formato di file di backup Crittografia del backup Controllo dell’ambito del backup
Riepilogo
Capitolo 11 - NFC ed elementi sicuri
Panoramica su NFC Supporto NFC in Android
Modalità Reader/Writer
Registrazione per il tag dispatching Tecnologie dei tag Lettura di un tag Uso della modalità Reader
Modalità Peer-to-Peer Modalità di emulazione delle card
Elementi sicuri
Fattori di forma SE nei dispositivi mobili
UICC SE basati su microSD SE incorporati
Accesso ai SE incorporati
Concedere l’accesso ai SE Uso dell’API NfcExecutionEnvironment Broadcast correlati agli eSE
Ambiente di esecuzione SE di Android
Protocolli di comunicazione SE Interrogazione dell’ambiente di esecuzione eSE
UICC come elementi sicuri
Schede SIM e UICC Applicazioni UICC Implementazione e installazione di applicazioni UICC Accesso allo UICC Uso dell’API OpenMobile
Emulazione di card software
Architettura HCE di Android 4.4 Routing APDU
Specifica del routing per i servizi HCE Specifica del routing per le applet SE
Scrittura di un servizio HCE Sicurezza delle applicazioni HCE
Riepilogo
Capitolo 12 - SELinux
Introduzione a SELinux
Architettura di SELinux Mandatory Access Control Modalità di SELinux Contesti di protezione Assegnazione e persistenza del contesto di protezione Policy di sicurezza Istruzioni per le policy
Istruzioni per tipi e attributi Istruzioni per utenti e ruoli Istruzioni per classi di oggetti e permessi
Regole di transizione dei tipi Regole di transizione dei domini Regole dei vettori di accesso
Regole allow Regole auditallow Regole dontaudit Regole neverallow
Implementazione in Android
Modifiche al kernel Modifiche allo userspace
Librerie e strumenti Inizializzazione del sistema Etichettatura dei file Etichettatura delle proprietà di sistema Etichettatura dei processi applicativi Middleware MAC
File di policy del dispositivo Registrazione degli eventi delle policy
Policy SELinux di Android 4.4
Informazioni generali sulle policy Applicazione dei domini Domini unconfined Domini delle app
Riepilogo
Capitolo 13 - Aggiornamenti di sistema e accesso root
Bootloader
Sblocco del bootloader Modalità fastboot
Layout delle partizioni di Android Protocollo fastboot Comandi fastboot
Recovery
Recovery stock
Controllo del recovery Sideloading di un package OTA Verifica della firma OTA Avvio del processo di aggiornamento del sistema Applicazione dell’aggiornamento Copia e applicazione di patch ai file Impostazione di proprietà, permessi ed etichette di protezione dei file Completamento dell’aggiornamento Aggiornamento del recovery
Recovery personalizzati
Accesso root
Accesso root sulle build di engineering
Avvio di ADB come root Uso del comando su
Accesso root sulle build di produzione
Rooting mediante modifica dell’immagine di boot o di sistema Rooting mediante flashing di un package OTA
SuperSU Inizializzazione di SuperSU Accesso root sulle ROM personalizzate
Rooting tramite exploit
Riepilogo
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion