Android migliora continuamente le proprie funzionalità e offerte in materia di sicurezza. Consulta le di miglioramenti per release nel riquadro di navigazione a sinistra.
Android 14
每个 Android 版本中都包含数十种安全增强功能,以保护用户。以下是 Android 14 中提供的一些主要安全增强功能:
- Android 10 中引入的硬件辅助 AddressSanitizer (HWASan) 是一款类似于 AddressSanitizer 的内存错误检测工具。Android 14 对 HWASan 进行了重大改进。如需了解它如何帮助防止 bug 进入 Android 版本,请访问 HWAddressSanitizer
- 在 Android 14 中,从与第三方共享位置数据的应用开始,系统运行时权限对话框现在包含一个可点击的部分,用于突出显示应用的数据分享做法,包括诸如以下信息:应用为什么可能会决定与第三方分享数据。
- Android 12 引入了在调制解调器级别停用 2G 支持的选项,以保护用户免受 2G 的过时安全模型固有的安全风险的影响。认识到停用 2G 对企业客户的重要性后,Android 14 在 Android Enterprise 中启用了此安全功能,以便 IT 管理员能够限制受管设备降级到 2G 连接。
- 开始支持拒绝未加密的移动网络连接,确保电路交换语音和短信流量始终会加密,并可防范被动无线拦截。详细了解 Android 的移动网络连接强化计划。
- 新增了对多个 IMEI 的支持
- 从 Android 14 开始,AES-HCTR2 是采用加速加密指令的设备的首选文件名加密模式。
- 移动网络连接
- 在 Android 安全中心添加了相关文档
- 如果您的应用以 Android 14 为目标平台并使用动态代码加载 (DCL) 功能,则必须将所有动态加载的文件标记为只读。否则,系统会抛出异常。我们建议应用尽可能避免动态加载代码,因为这样做会大大增加应用因代码注入或代码篡改而遭到入侵的风险。
Android 13
Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 13:
- Android 13 aggiunge il supporto delle presentazioni con più documenti. Questa nuova interfaccia Sessione di presentazione consente a un'app di eseguire una presentazione di più documenti, cosa non possibile con l'API esistente. Per ulteriori informazioni, consulta Credenziale di identità
- In Android 13, gli intent provenienti da app esterne vengono inviati a un componente esportato se e solo se corrispondono ai relativi elementi di filtro intent dichiarati.
- Open Mobile API (OMAPI) è un'API standard utilizzata per comunicare con l'elemento di sicurezza di un dispositivo. Prima di Android 13, solo le app e i moduli di framework avevano a questa interfaccia. Convertendolo in un'interfaccia stabile del fornitore, I moduli HAL sono anche in grado di comunicare con gli elementi sicuri attraverso il servizio OMAPI. Per ulteriori informazioni, consulta OMAPI Vendor Stable Interface.
- A partire da Android 13-QPR, gli UID condivisi sono deprecati. Gli utenti di Android 13 o versioni successive devono "android:sharedUserMaxSdkVersion="32"" nel file manifest. Questa voce impedisce ai nuovi utenti di ricevere un UID condiviso. Per ulteriori informazioni sugli UID, consulta Firma dell'app.
- Android 13 ha aggiunto il supporto delle primitive crittografiche simmetriche degli archivi chiavi, come AES (Advanced Encryption Standard), HMAC (Keyed-Hash Message Authentication Code), e algoritmi crittografici asimmetrici (tra cui Elliptic Curve, RSA2048, RSA4096, e curva 25519)
- Android 13 (livello API 33) e versioni successive supportano un'autorizzazione di runtime per l'invio di notifiche non esenti da un'app. In questo modo, gli utenti hanno il controllo sulle notifiche di autorizzazione che visualizzano.
- Aggiunta per uso richiesta di app che richiedono l'accesso a tutti i log del dispositivo offrendo agli utenti la possibilità di consentire o negare l'accesso.
- ha introdotto il Framework di virtualizzazione di Android (AVF), che riunisce diversi hypervisor in un unico framework con API standardizzate. Fornisce ambienti di esecuzione sicuri e privati per l’esecuzione di carichi di lavoro isolati dall’hypervisor.
- Introdotto lo schema di firma dell'APK v3.1 Tutte le nuove rotazioni della chiave che usano apksigner usano lo schema di firma v3.1 per impostazione predefinita per scegliere come target la rotazione per Android 13 e versioni successive.
Consulta le nostre note di rilascio di AOSP complete. lo sviluppatore Android funzionalità e l'elenco delle modifiche.
Android 12
Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 12:
- Android 12 introduce l'API BiometricManager.Strings, che fornisce stringhe localizzate per le app che utilizzano BiometricPrompt per l'autenticazione. Queste stringhe devono essere consapevoli del dispositivo e fornire informazioni più specifiche sui tipi di autenticazione che potrebbero essere utilizzati. Android 12 include inoltre il supporto per i sensori di impronte digitali sotto il display
- È stato aggiunto il supporto per i sensori di impronte digitali integrati nel display
- Introduzione del linguaggio Fingerprint Android Interface Definition Language (AIDL)
- Supporto per il nuovo AIDL di Face
- Introduzione di Rust come linguaggio per lo sviluppo della piattaforma
- È stata aggiunta l'opzione che consente agli utenti di concedere l'accesso solo alla loro posizione approssimativa
- Sono stati aggiunti indicatori della privacy nella barra di stato quando un'app utilizza la fotocamera o il microfono
- I dati di Android Compute Core (PCC)
- Aggiunta un'opzione per disattivare il supporto 2G
Android 11
每个 Android 版本中都包含数十项用于保护用户的安全增强功能。如需查看 Android 11 中提供的一些主要安全增强功能的列表,请参阅 Android 版本说明。
Android 10
Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Android 10 include diversi miglioramenti per la sicurezza e la privacy. Consulta le note di rilascio di Android 10 per un elenco completo delle modifiche in Android 10.
Sicurezza
Igienizzante per confini
Android 10 implementa BoundsSanitizer (BoundSan) in Bluetooth e codec. BoundSan utilizza il disinfettante per i limiti di UBSan. Questa mitigazione è abilitata a livello di modulo. Aiuta a mantenere componenti di Android e non devono essere disattivati. BoundSan è abilitato nei seguenti codec:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
Memoria di sola esecuzione
Per impostazione predefinita, le sezioni di codice eseguibile per i binari di sistema AArch64 sono contrassegnate come di sola esecuzione (non leggibili) come misura di mitigazione del rafforzamento contro gli attacchi di riutilizzo del codice just-in-time. Il codice che mescola dati e codice e il codice che esamina intenzionalmente queste sezioni (senza prima rimappare i segmenti di memoria come leggibili) non funziona più. App con SDK target di Android 10 (livello API 29 o successive) sono interessati se l'app tenta di leggere sezioni di codice di tipo solo esecuzione per le librerie di sistema abilitate per la memoria (XOM) senza prima contrassegnare il come leggibile.
Accesso esteso
Gli agenti di attendibilità, il meccanismo di base utilizzato dai meccanismi di autenticazione terzi come Smart Lock, possono estendere lo sblocco solo in Android 10. Affidabilità Gli agenti non possono più sbloccare un dispositivo bloccato e possono solo tenerlo sbloccato per un massimo di quattro ore.
Autenticazione volti
L'autenticazione del volto consente agli utenti di sbloccare il dispositivo semplicemente guardando la parte anteriore del dispositivo. Android 10 aggiunge il supporto di una nuova autenticazione dei volti in grado di elaborare in modo sicuro i fotogrammi delle videocamere, tutelando la sicurezza e la privacy durante l'autenticazione dei volti su hardware supportato. Android 10 offre inoltre un modo semplice per le implementazioni conformi alla sicurezza di attivare l'integrazione delle app per transazioni come l'internet banking o altri servizi.
Sanificazione per overflow di numeri interi
Android 10 attiva la sanificazione per overflow di interi (IntSan) nei codec software. Assicurati che le prestazioni di riproduzione è accettabile per tutti i codec non supportati dall'hardware del dispositivo. IntSan è abilitato nei seguenti codec:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
Componenti di sistema modulari
Android 10 modularizza alcuni componenti del sistema Android e consente di aggiornarli al di fuori del normale ciclo di rilascio di Android. Alcuni moduli includono:
- Ambiente di runtime Android
- Conscrypt
- Resolver DNS
- DocumentsUI
- Servizi esterni
- Media
- ModuleMetadata
- Networking
- Titolare di autorizzazioni
- Dati sul fuso orario
OEMCrypto
Android 10 utilizza la versione 15 dell'API OEMCrypto.
Scudo
Scudo è un l'allocatore di memoria in modalità utente dinamico progettato per essere più resiliente vulnerabilità correlate all'heap. Fornisce le primitive di allocazione e sallocazione C standard, nonché le primitive C++.
ShadowCallStack
ShadowCallStack
(SCS)
è una modalità di ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
ShadowCallStack
(SCS)
�
WPA3 e Enhanced Open Wi-Fi
Android 10 aggiunge il supporto del Wi-Fi Standard di sicurezza Protected Access 3 (WPA3) e Wi-Fi Advanced Open per migliorare la privacy e la robustezza contro gli attacchi noti.
Privacy
Accesso alle app quando si sceglie come target Android 9 o versioni precedenti
Se la tua app funziona su Android 10 o versioni successive, ma ha come target Android 9 (livello API 28) o versioni precedenti, la piattaforma applica il seguente comportamento:
- Se la tua app dichiara un elemento
<uses-permission>
perACCESS_FINE_LOCATION
oACCESS_COARSE_LOCATION
, il sistema aggiunge automaticamente un elemento<uses-permission>
perACCESS_BACKGROUND_LOCATION
durante l'installazione. - Se la tua app richiede
ACCESS_FINE_LOCATION
oACCESS_COARSE_LOCATION
, il sistema aggiunge automaticamenteACCESS_BACKGROUND_LOCATION
alla richiesta.
Limitazioni delle attività in background
A partire da Android 10, il sistema applica limitazioni all'avvio di attività in background. Questo cambiamento del comportamento aiuta
ridurre al minimo le interruzioni per l'utente e permettere all'utente di avere maggiore controllo su
mostrato sullo schermo. Se la tua app avvia attività come risultato diretto della interazione dell'utente, molto probabilmente non è interessata da queste limitazioni.
Per scoprire di più sull'alternativa consigliata all'avvio di attività da
sullo sfondo, consulta la guida su come effettuare un avviso
utenti di eventi urgenti nella tua app.
Metadati della videocamera
Android 10 modifica l'ampiezza delle informazioni restituite per impostazione predefinita dal metodo getCameraCharacteristics()
. In particolare, la tua app deve avere l'CAMERA
per accedere a metadati potenzialmente specifici del dispositivo,
incluso nel valore restituito di questo metodo.
Per scoprire di più su queste modifiche, consulta la sezione sui campi della fotocamera che richiedono l'autorizzazione.
Dati appunti
A meno che la tua app non sia l'input predefinito Method Editor (IME) o l'app attualmente attiva, la tua app non può accedere ai dati degli appunti su Android 10 o versioni successive.
Posizione del dispositivo
Per supportare il controllo aggiuntivo degli utenti sull'accesso di un'app a
dati sulla posizione, Android 10 introduce ACCESS_BACKGROUND_LOCATION
autorizzazione.
Non mi piace più ACCESS_FINE_LOCATION
e ACCESS_COARSE_LOCATION
autorizzazioni, l'autorizzazione ACCESS_BACKGROUND_LOCATION
influisce solo
l'accesso di un'app alla posizione quando viene eseguita in background. Un'app viene considerata
di accedere alla posizione in background, a meno che una delle seguenti opzioni
se le condizioni sono soddisfatte:
- È visibile un'attività appartenente all'app.
- L'app esegue un servizio in primo piano che è stato dichiarato in primo piano
tipo di servizio di
location
.
a dichiarare il servizio in primo piano digita per un servizio nella tua app, impostatargetSdkVersion
dell'app o DacompileSdkVersion
a29
o superiore. Scopri di più su come i servizi in primo piano possono continuare le azioni avviate dall'utente che richiedono l'accesso alla posizione.
Memoria esterna
Per impostazione predefinita, alle app che hanno come target Android 10 e versioni successive viene concesso l'accesso con ambito allo spazio di archiviazione esterno o lo spazio di archiviazione con ambito. Queste app possono vedere i seguenti tipi di file all'interno di un dispositivo di archiviazione esterno senza la necessità per richiedere eventuali autorizzazioni utente relative allo spazio di archiviazione:
- File nella directory specifica dell'app, a cui si accede utilizzando
getExternalFilesDir()
. - Foto, video e clip audio creati dall'app dal media store.
Scopri di più sull'archiviazione con ambito, nonché su come condividere, accedere modificare i file salvati su dispositivi di archiviazione esterni, consulta le guide su come per gestire nella memoria esterna e all'accesso e modificare i file multimediali.
Randomizzazione degli indirizzi MAC
Sui dispositivi con Android 10 o versioni successive, il sistema trasmette gli indirizzi MAC randomizzati
per impostazione predefinita.
Se la tua app gestisce un caso d'uso aziendale,
fornisce API per varie operazioni relative agli indirizzi MAC:
- Ottieni l'indirizzo MAC casuale: le app di proprietà del dispositivo e le app di proprietà del profilo possono recuperare l'indirizzo MAC casuale assegnato a una rete specifica chiamando
getRandomizedMacAddress()
. - Ottenere l'indirizzo MAC di fabbrica effettivo: le app di proprietà del dispositivo possono recuperare l'indirizzo MAC hardware effettivo di un dispositivo chiamando
getWifiMacAddress()
. Questo metodo è utile per monitorare flotte di dispositivi.
Identificatori dei dispositivi non reimpostabili
A partire da Android 10, le app devono avere
READ_PRIVILEGED_PHONE_STATE
autorizzazione privilegiata per
accedere agli identificatori non reimpostabili del dispositivo, che includono sia IMEI che
il numero di serie.
Build
TelephonyManager
Se la tua app non dispone dell'autorizzazione e provi a chiedere informazioni sugli identificatori non reimpostabili comunque, la risposta della piattaforma varia in base versione SDK target:
- Se la tua app ha come target Android 10 o versioni successive, un
SecurityException
. - Se la tua app ha come target Android 9 (livello API 28) o versioni precedenti, il metodo restituisce
null
o dati segnaposto se l'app haREAD_PHONE_STATE
autorizzazione. In caso contrario, si verifica unSecurityException
.
Riconoscimento dell'attività fisica
Android 10 introduce l'android.permission.ACTIVITY_RECOGNITION
autorizzazione di runtime per le app che devono rilevare il numero di passi dell'utente o
classificare la sua attività fisica, ad esempio camminata, ciclismo o movimento in un
veicolo. Questa funzionalità è progettata per offrire agli utenti visibilità su come vengono visualizzati i dati dei sensori dei dispositivi
usata in Impostazioni.
Alcune librerie di Google Play Services, come l'API Activity Recognition e l'API Google Fit, non forniscono risultati a meno che l'utente non abbia concesso alla tua app questa permission.
Gli unici sensori integrati sul dispositivo che richiedono di dichiarare questa autorizzazione sono i sensori contatore passi e rilevamento passi.
Se la tua app ha come target Android 9 (livello API 28) o versioni precedenti, il sistema concede automaticamente l'autorizzazione android.permission.ACTIVITY_RECOGNITION
all'app, se necessario, se l'app soddisfa tutte le seguenti condizioni:
- Il file manifest include l'autorizzazione
com.google.android.gms.permission.ACTIVITY_RECOGNITION
. - Il file manifest non include
Autorizzazione
android.permission.ACTIVITY_RECOGNITION
.
Se il servizio system-auto concede
Autorizzazione android.permission.ACTIVITY_RECOGNITION
, la tua app
conserva l'autorizzazione dopo aver aggiornato l'app in modo che abbia come target Android 10. Tuttavia,
l'utente può revocare questa autorizzazione in qualsiasi momento nelle impostazioni di sistema.
Restrizioni del file system /proc/net
Sui dispositivi con Android 10 o versioni successive, le app non possono accedere a /proc/net
, che include informazioni sullo stato della rete di un dispositivo. Le app che hanno bisogno di accedere a queste informazioni, come le VPN, devono utilizzare la classe NetworkStatsManager
o ConnectivityManager
.
Gruppi di autorizzazioni rimossi dall'interfaccia utente
A partire da Android 10, le app non possono cercare le autorizzazioni sono raggruppate nell'interfaccia utente.
Rimozione dell'affinità dei contatti
A partire da Android 10, la piattaforma non tiene traccia dell'affinità dei contatti
informazioni. Di conseguenza, se la tua app esegue una ricerca sui contatti dell'utente,
i risultati non sono ordinati in base alla frequenza di interazione.
La guida su ContactsProvider
contiene una nota che descrive i metodi e i campi specifici obsoleti su tutti i dispositivi a partire da Android 10.
Accesso limitato ai contenuti sullo schermo
Per proteggere i contenuti dello schermo degli utenti, Android 10 impedisce l'accesso silenzioso ai contenuti dello schermo del dispositivo modificando l'ambito delle autorizzazioni READ_FRAME_BUFFER
, CAPTURE_VIDEO_OUTPUT
e CAPTURE_SECURE_VIDEO_OUTPUT
. A partire da Android 10,
Le autorizzazioni sono di accesso con firma
.
Le app che devono accedere ai contenuti sullo schermo del dispositivo devono usare lo
MediaProjection
API, che visualizza un messaggio in cui viene chiesto all'utente di fornire il consenso.
Numero di serie del dispositivo USB
Se la tua app ha come target Android 10 o versioni successive, non può leggere il numero di serie finché l'utente non ha concesso all'app l'autorizzazione ad accedere al dispositivo o all'accessorio USB.
Per ulteriori informazioni sull'utilizzo dei dispositivi USB, consulta la guida alla configurazione
Host USB.
Wi-Fi
Le app che hanno come target Android 10 o versioni successive non possono attivare o disattivare il Wi-Fi. La
WifiManager.setWifiEnabled()
restituisce sempre false
.
Se devi chiedere agli utenti di attivare e disattivare il Wi-Fi, utilizza le impostazioni
riquadro.
Limitazioni relative all'accesso diretto alle reti Wi-Fi configurate
Per proteggere la privacy degli utenti, configura manualmente l'elenco di reti Wi-Fi
è limitato alle app di sistema e ai criteri relativi ai dispositivi
controller (DPC). Un determinato DPC può essere il proprietario o il
proprietario del profilo.
Se la tua app ha come target Android 10 o versioni successive e non è un'app di sistema o un'app con accesso in background, i seguenti metodi non restituiscono dati utili:
- Il metodo
getConfiguredNetworks()
restituisce sempre un elenco vuoto. - Ogni metodo di operazione di rete che restituisce un valore intero:
addNetwork()
eupdateNetwork()
, sempre restituisce -1. - Ogni operazione di rete che restituisce un valore booleano:
removeNetwork()
,reassociate()
,enableNetwork()
,disableNetwork()
,reconnect()
, edisconnect()
, sempre restituiscefalse
.
Android 9
Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Per un elenco di alcuni dei principali miglioramenti di sicurezza disponibili in Per Android 9, consulta le Release di Android Note.
Android 8
每个 Android 版本中都包含数十种用于保护用户的安全增强功能。以下是 Android 8.0 中提供的一些主要安全增强功能:
- 加密:在工作资料中增加了对撤销密钥 (evict key) 的支持。
- 验证启动:增加了 Android 启动时验证 (AVB)。支持回滚保护(用于引导加载程序)的启动时验证代码库已添加到 AOSP 中。建议提供引导加载程序支持,以便为 HLOS 提供回滚保护。建议将引导加载程序设为只能由用户通过实际操作设备来解锁。
- 锁定屏幕:增加了对使用防篡改硬件验证锁定屏幕凭据的支持。
- KeyStore:搭载 Android 8.0 及更高版本的所有设备都需要进行密钥认证。增加了 ID 认证支持,以改进零触摸注册计划。
- 沙盒:使用 Treble 计划的框架和设备特定组件之间的标准接口更紧密地对许多组件进行沙盒化处理。将 seccomp 过滤应用到了所有不信任的应用,以减少内核的攻击面。WebView 现在运行在一个独立的进程中,对系统其余部分的访问非常有限。
- 内核加固:实现了经过安全强化的 usercopy、PAN 模拟、初始化后变为只读以及 KASLR。
- 用户空间安全强化:为媒体堆栈实现了 CFI。 应用叠加层不能再遮盖系统关键窗口,并且用户可以关闭这些叠加层。
- 操作系统流式更新:在磁盘空间不足的设备上启用了更新。
- 安装未知应用:用户必须授予权限,系统才能从不是第一方应用商店的来源安装应用。
- 隐私权:对于设备上的每个应用和使用设备的每个用户,Android ID (SSAID) 都采用不同的值。对于网络浏览器应用,Widevine 客户端 ID 会针对每个应用软件包名称和网络来源返回不同的值。
net.hostname
现在为空,并且 DHCP 客户端不再发送主机名。android.os.Build.SERIAL
已被替换为Build.SERIAL
API(受到用户控制权限的保护)。改进了某些芯片组中的 MAC 地址随机分配功能。
Android 7
每个 Android 版本中都包含数十项用于保护用户的安全增强功能。以下是 Android 7.0 中提供的一些主要安全增强功能:
- 文件级加密:在文件级进行加密,而不是将整个存储区域作为单个单元进行加密。这种加密方式可以更好地隔离和保护设备上的不同用户和资料(例如个人资料和工作资料)。
- 直接启动:通过文件级加密实现,允许特定应用(例如,闹钟和无障碍功能)在设备已开机但未解锁的情况下运行。
- 验证启动:现在,验证启动会被严格强制执行,从而使遭到入侵的设备无法启动;验证启动支持纠错功能,有助于更可靠地防范非恶意数据损坏。
- SELinux。更新后的 SELinux 配置和更高的 Seccomp 覆盖率有助于进一步锁定应用沙盒并减小受攻击面。
- 库加载顺序随机化和改进的 ASLR。 增大随机性降低了某些代码重用攻击的有效性。
- 内核加固:通过将内核内存的各个分区标记为只读,限制内核对用户空间地址的访问,并进一步减小现有的受攻击面,为更高版本的内核添加额外的内存保护。
- APK 签名方案 v2:引入了一种全文件签名方案,该方案有助于加快验证速度并增强完整性保证。
- 可信 CA 存储区。为了使应用更容易控制对其安全网络流量的访问,对于 API 级别为 24 及以上的应用,由用户安装的证书颁发机构以及通过 Device Admin API 安装的证书颁发机构在默认情况下不再受信任。此外,所有新的 Android 设备必须搭载相同的可信 CA 存储区。
- 网络安全配置。通过声明式配置文件来配置网络安全设置和传输层安全协议 (TLS)。
Android 6
Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 6,0:
- Autorizzazioni di runtime. Le app richiedono le autorizzazioni in fase di esecuzione anziché al momento dell'installazione. Gli utenti possono attivare e disattivare le autorizzazioni sia per la versione M sia per quella pre-M app.
- Avvio verificato. Un insieme di controlli crittografici del sistema vengono condotti prima che per assicurare che lo smartphone sia integro dal bootloader tipo e quantità di spazio di archiviazione necessari e sistema operativo.
- Sicurezza isolata dall'hardware. Nuovo livello di astrazione hardware (HAL) utilizzato dall'API Fingerprint, dalla schermata di blocco, dalla crittografia del dispositivo e dai certificati client per proteggere le chiavi da compromissione del kernel e/o attacchi fisici locali
- Impronte. Ora i dispositivi possono essere sbloccati con un solo tocco. Gli sviluppatori possono inoltre sfruttare le nuove API per l'utilizzo delle fingerprint per bloccare e sbloccare le chiavi di crittografia.
- Adesione alla scheda SD. I contenuti multimediali rimovibili possono essere adottato su un dispositivo ed espandere lo spazio di archiviazione disponibile per dati locali dell'app, foto, video e così via, ma essere comunque protetti dall'impostazione la crittografia.
- Traffico di testo non cifrato. Gli sviluppatori possono utilizzare un nuovo StrictMode per assicurarsi che la loro app non utilizzi il testo non cifrato.
- Rafforzamento del sistema. Rafforzamento del sistema tramite criteri applicato da SELinux. In questo modo viene offerto un migliore isolamento tra gli utenti, il filtro IOCTL, la riduzione della minaccia dei servizi esposti, un ulteriore rafforzamento dei domini SELinux e un accesso estremamente limitato a /proc.
- Controllo dell'accesso USB: gli utenti devono confermare di consentire l'accesso USB a file, spazio di archiviazione o altre funzionalità sullo smartphone. Il valore predefinito ora è Solo addebito con accesso allo spazio di archiviazione che richiede l'approvazione esplicita dell'utente.
Android 5
5,0
Ogni release di Android include decine di miglioramenti della sicurezza per proteggere utenti. Ecco alcuni dei principali miglioramenti alla sicurezza disponibili in Android 5,0:
- Criptati per impostazione predefinita. Sui dispositivi che vengono forniti con L La crittografia completa del disco pronta all'uso è abilitata per impostazione predefinita per migliorare Protezione dei dati su dispositivi smarriti o rubati. I dispositivi aggiornati a L possono essere criptati in Impostazioni > Sicurezza.
- Crittografia completa del disco migliorata. La password utente è
Protezione contro gli attacchi di forza bruta utilizzando
scrypt
e, dove se disponibile, la chiave è associata all'archivio chiavi hardware per impedire attacchi esterni al dispositivo. Come sempre, il segreto del blocco schermo di Android e la chiave di crittografia del dispositivo non vengono inviati dal dispositivo né esposti a nessuna applicazione. - Sandbox Android rafforzata con SELinux . Android adesso richiede SELinux in modalità di applicazione forzata per tutti i domini. SELinux è uno strumento di controllo dell'accesso obbligatorio (MAC) nel kernel Linux, utilizzato per aumentare l'attuale modello di sicurezza del controllo dell'accesso discrezionale (DAC). Questo nuovo livello fornisce protezione aggiuntiva contro potenziali vulnerabilità di sicurezza.
- Smart Lock. Android ora include trustlet che offrono maggiore flessibilità per sbloccare i dispositivi. Ad esempio, i trustlet possono consentire di sbloccare automaticamente i dispositivi quando sono nelle vicinanze di un altro dispositivo attendibile (tramite NFC, Bluetooth) o quando vengono utilizzati da una persona con un volto attendibile.
- Modalità multiutente, profilo con limitazioni e modalità ospite per smartphone e tablet. Android ora fornisce a più utenti di smartphone e include una modalità ospite che può essere utilizzata per fornire un accesso temporaneo e semplice ai tuoi dispositivo senza concedere l'accesso ai tuoi dati e alle tue app.
- Aggiornamenti a WebView senza OTA. Ora WebView può essere aggiornati indipendentemente dal framework e senza sistema OTA. In questo modo è possibile rispondere più rapidamente a potenziali problemi di sicurezza in WebView.
- Crittografia aggiornata per HTTPS e TLS/SSL. TLS 1.2 e TLS 1.1 sono ora attivati, la crittografia lato client è ora preferita, AES-GCM è ora attivato e le suite di crittografia deboli (MD5, 3DES e suite di crittografia di esportazione) sono ora disattivate. Per ulteriori dettagli, visita la pagina https://developer.android.com/reference/javax/net/ssl/SSLSocket.html.
- supporto del linker non PIE rimosso. Android ora richiede eseguibili collegati dinamicamente per supportare PIE (eseguibili indipendenti dalla posizione). Questa funzionalità migliora lo spazio degli indirizzi di Android dell'implementazione di randomizzazione del layout (ASLR).
- Miglioramenti a FORTIFY_SOURCE. Le seguenti funzioni libc ora implementano le protezioni FORTIFY_SOURCE:
stpcpy()
,stpncpy()
,read()
,recvfrom()
,FD_CLR()
,FD_SET()
eFD_ISSET()
. Questo fornisce protezione contro le vulnerabilità di corruzione della memoria queste funzioni. - Correzioni di sicurezza. Android 5.0 include anche correzioni per vulnerabilità specifiche di Android. Le informazioni su queste vulnerabilità hanno fornita ai membri di Open Handset Alliance e le correzioni sono disponibili in Progetto open source Android. Per migliorare la sicurezza, alcuni dispositivi con funzionalità di Android potrebbero includere anche queste correzioni.
Android 4 e versioni precedenti
每个 Android 版本中都包含数十项用于保护用户的安全增强功能。以下是 Android 4.4 中提供的一些安全增强功能:
- 通过 SELinux 得到增强的 Android 沙盒。 Android 现在以强制模式使用 SELinux。SELinux 是 Linux 内核中的强制访问控制 (MAC) 系统,用于增强基于自主访问控制 (DAC) 的现有安全模型。 这为防范潜在的安全漏洞提供了额外的保护屏障。
- 按用户应用 VPN。 在多用户设备上,现在按用户应用 VPN。 这样一来,用户就可以通过一个 VPN 路由所有网络流量,而不会影响使用同一设备的其他用户。
- AndroidKeyStore 中的 ECDSA 提供程序支持。 Android 现在有一个允许使用 ECDSA 和 DSA 算法的密钥库提供程序。
- 设备监测警告。 如果有任何可能允许监测加密网络流量的证书添加到设备证书库中,Android 都会向用户发出警告。
- FORTIFY_SOURCE。 Android 现在支持 FORTIFY_SOURCE 第 2 级,并且所有代码在编译时都会受到这些保护。FORTIFY_SOURCE 已得到增强,能够与 Clang 配合使用。
- 证书锁定。 Android 4.4 能够检测安全的 SSL/TLS 通信中是否使用了欺诈性 Google 证书,并且能够阻止这种行为。
- 安全修复程序。 Android 4.4 中还包含针对 Android 特有漏洞的修复程序。 有关这些漏洞的信息已提供给“开放手机联盟”(Open Handset Alliance) 成员,并且 Android 开源项目中提供了相应的修复程序。为了提高安全性,搭载更低版本 Android 的某些设备可能也会包含这些修复程序。
Ogni release di Android include dozzine di miglioramenti della sicurezza per proteggere gli utenti. Di seguito sono riportati alcuni dei miglioramenti per la sicurezza disponibili in Android 4.3:
- Sandbox Android rafforzata con SELinux. Questa release rafforza la sandbox di Android utilizzando SELinux un sistema di controllo dell'accesso obbligatorio (MAC) nel kernel Linux. Il rafforzamento di SELinux è invisibile a utenti e sviluppatori e aggiunge robustezza al modello di sicurezza Android esistente, mantenendo la compatibilità con le app esistenti. Per garantire la compatibilità, questa release consente l'utilizzo di SELinux in una modalità permissiva. Questa modalità registra tutti i criteri violazioni delle norme, ma senza interrompere le app né influire sul comportamento del sistema.
- Nessun programma
setuid
osetgid
. È stato aggiunto il supporto per le funzionalità del file system ai file di sistema di Android e sono stati rimossi tutti i programmisetuid
osetgid
. In questo modo si riduce la superficie di attacco del root e la probabilità di potenziali vulnerabilità di sicurezza. - Autenticazione ADB. A partire da Android 4.2.2, le connessioni ad ADB vengono autenticata con una coppia di chiavi RSA. In questo modo viene impedito l'uso non autorizzato di ADB se l'utente malintenzionato ha accesso fisico a un dispositivo.
- Limita Setuid dalle app Android.
La partizione
/system
è ora montata nosuid per i processi generati dagli zigote, impedendo le app per Android dall'esecuzione di programmisetuid
. In questo modo si riducono la superficie di attacco la probabilità di potenziali vulnerabilità di sicurezza. - Limitazione delle funzionalità.
Android zygote e ADB ora utilizzano
prctl(PR_CAPBSET_DROP)
per rilasciare di funzionalità non necessarie prima di eseguire le app. In questo modo, le app Android e le app avviate dalla shell non possono acquisire funzionalità con privilegi. - Provider AndroidKeyStore. Android ora dispone di un provider di archivi chiavi che consente alle app di creare chiavi di utilizzo esclusivo. In questo modo, le app con un'API per creare o archiviare chiavi private che non possono essere utilizzate altre app.
- Portachiavi
isBoundKeyAlgorithm
. L'API Keychain ora fornisce un metodo (isBoundKeyType
) che consente alle app di verificare che le chiavi di sistema siano associate a un'autorità di attendibilità hardware per il dispositivo. Ciò fornisce un luogo in cui creare o archiviare chiavi private che non possono essere esportate dispositivo, anche in caso di compromissione root. NO_NEW_PRIVS
Lo zigote Android ora utilizzaprctl(PR_SET_NO_NEW_PRIVS)
per bloccare l'aggiunta di nuovi privilegi prima dell'esecuzione del codice dell'app. In questo modo, le app Android non possono eseguire operazioni che possono elevare i privilegi tramite execve. (Richiede kernel Linux versione 3.5) o superiore).FORTIFY_SOURCE
miglioramenti. È stato attivatoFORTIFY_SOURCE
su Android x86 e MIPS e sono state rinforzate le chiamatestrchr()
,strrchr()
,strlen()
eumask()
. Questo può rilevare potenziali vulnerabilità di corruzione della memoria o le costanti delle stringhe.- Protezioni per il trasferimento. Sono state attivate le riallocazioni di sola lettura (relro) per gli eseguibili collegati in modo statico e sono state rimosse tutte le riallocazioni di testo nel codice Android. In questo modo, viene garantita una difesa in profondità contro potenziali vulnerabilità legate alla corruzione della memoria.
- EntropyMixer migliorato. EntropyMixer ora scrive l'entropia all'arresto o al riavvio, oltre alla miscelazione periodica. Ciò consente di conservare tutta l'entropia generata durante l'accensione dei dispositivi ed è particolarmente utile per i dispositivi che vengono riavviati immediatamente dopo il provisioning.
- Correzioni relative alla sicurezza. Android 4.3 include anche correzioni per vulnerabilità specifiche di Android. Sono state fornite informazioni su queste vulnerabilità per i membri di Open Handset Alliance e le correzioni sono disponibili in Android Open Progetto di origine. Per migliorare la sicurezza, alcuni dispositivi con versioni precedenti di Android potrebbero includere anche queste correzioni.
Android 提供了一个多层安全模型,Android 安全性概述中对该模型进行了介绍。每个 Android 更新版本中都包含数十项用于保护用户的安全增强功能。 以下是 Android 4.2 中引入的一些安全增强功能:
- 应用验证:用户可以选择启用“验证应用”,并且可以选择在安装应用之前由应用验证程序对应用进行筛查。如果用户尝试安装的应用可能有害,应用验证功能可以提醒用户;如果应用的危害性非常大,应用验证功能可以阻止安装。
- 加强对付费短信的控制:如果有应用尝试向使用付费服务的短号码发送短信(可能会产生额外的费用),Android 将会通知用户。用户可以选择是允许还是阻止该应用发送短信。
- 始终开启的 VPN:可以配置 VPN,以确保在建立 VPN 连接之前应用无法访问网络。这有助于防止应用跨其他网络发送数据。
- 证书锁定:Android 的核心库现在支持证书锁定。如果证书未关联到一组应关联的证书,锁定的域将会收到证书验证失败消息。这有助于保护证书授权机构免遭可能的入侵。
- 改进后的 Android 权限显示方式:权限划分到了多个对用户来说更清晰明了的组中。在审核权限时,用户可以点击权限来查看关于相应权限的更多详细信息。
- installd 安全强化:
installd
守护程序不会以 root 用户身份运行,这样可以缩小 root 提权攻击的潜在攻击面。 - init 脚本安全强化:init 脚本现在会应用
O_NOFOLLOW
语义来防范与符号链接相关的攻击。 FORTIFY_SOURCE
:Android 现在会实现FORTIFY_SOURCE
,以供系统库和应用用于防范内存损坏。- ContentProvider 默认配置:默认情况下,对于每个 content provider,以 API 级别 17 为目标的应用都会将
export
设为false
,以缩小应用的默认受攻击面。 - 加密:修改了 SecureRandom 和 Cipher.RSA 的默认实现,以便使用 OpenSSL。为使用 OpenSSL 1.0.1 的 TLSv1.1 和 TLSv1.2 添加了安全套接字支持
- 安全漏洞修复程序:升级了开放源代码库,在其中新增了一些安全漏洞修复程序,其中包括 WebKit、libpng、OpenSSL 和 LibXML。Android 4.2 中还包含针对 Android 特有漏洞的修复程序。有关这些漏洞的信息已提供给“开放手机联盟”(Open Handset Alliance) 成员,并且 Android 开放源代码项目中提供了相应的修复程序。为了提高安全性,部分搭载更低版本 Android 系统的设备可能也会包含这些修复程序。
Android fornisce un modello di sicurezza multilivello descritto nella Panoramica della sicurezza Android. Ogni aggiornamento di Android include decine di miglioramenti alla sicurezza per proteggere gli utenti. Ecco alcune delle funzionalità di sicurezza Miglioramenti introdotti nelle versioni di Android dalla 1.5 alla 4.1:
- Android 1.5
- ProPolice per evitare gli overrun del buffer dello stack (-fstack-protector)
- safe_iop per ridurre i valori in eccesso degli interi
- Estensioni a dlmalloc di OpenBSD per evitare vulnerabilità di doppio free() e per difendersi dagli attacchi di consolidamento dei chunk. Gli attacchi di consolidamento dei chunk sono un un modo comune per sfruttare il danneggiamento dell'heap.
- Calloc OpenBSD per impedire gli overflow interi durante l'allocazione della memoria
- Android 2.3
- Protezioni per le vulnerabilità delle stringhe di formato (-Wformat-security -Werror=format-security)
- No eXecute (NX) basato sull'hardware per impedire l'esecuzione di codice nello stack e nell'heap
- Linux mmap_min_addr per mitigare il privilegio di rimozione del puntatore nullo Riassegnazione (migliorata ulteriormente in Android 4.1)
- Android 4.0
- ASLR (Address Space Layout Randomization) per randomizzare le posizioni delle chiavi in memoria
- Android 4.1
- Supporto di PIE (Position Independent Executable)
- Trasferimenti di sola lettura / associazione immediata (-Wl,-z,relro -Wl,-z,now)
- dmesg_restrict abilitato (evita la perdita degli indirizzi kernel)
- kptr_restrict abilitato (evita la perdita degli indirizzi kernel)