Di versi Android yang lebih baru (saya kira sejak 4.2) ada opsi yang disebut "didukung perangkat keras" dan "hanya perangkat lunak". Seperti dugaan Google:
Android kini juga mendukung penyimpanan yang didukung perangkat keras untuk kredensial KeyChain Anda, memberikan keamanan lebih dengan membuat kunci tidak tersedia untuk diekstraksi. Artinya, setelah kunci berada di penyimpanan kunci yang didukung perangkat keras (Elemen Aman, TPM, atau TrustZone), kunci tersebut dapat digunakan untuk operasi kriptografi namun materi kunci pribadi tidak dapat diekspor. Bahkan kernel OS tidak dapat mengakses materi kunci ini. Meskipun tidak semua perangkat yang diberdayakan Android mendukung penyimpanan pada perangkat keras, Anda dapat memeriksa pada waktu proses apakah penyimpanan yang didukung perangkat keras tersedia
penekanan adalah milikku
Apa yang saya tidak mengerti adalah: GalaxyNexus dan Nexus 7 memiliki NFC-Chip dengan Elemen Aman, namun tipe penyimpanannya adalah "hanya perangkat lunak". Nexus 4 memiliki Elemen Aman NFC, dan "didukung perangkat keras", sedangkan Nexus 7 (2013) dan Nexus 5 tidak memiliki Elemen Aman NFC namun masih "didukung perangkat keras". Saya dapat memeriksanya secara manual di dalam Aplikasi Pengaturan, tetapi apakah ada cara untuk memeriksanya di dalam Aplikasi saya?
Seperti yang disebutkan CommonsWare, saya harus memberikan tautan: Info pertama bahwa Elemen Aman terkait dengan jenis penyimpanan disebutkan di sini: sumber info berguna lainnya adalah blog Nelenkov
IKeystoreService
dariServiceManager
dan panggil metodeis_hardware_backed()
. Namun, seperti jawaban Nikolay di bawah,KeyChain#isBoundKeyAlgorithm(String)
mengikuti rute yang sama, akhirnya memanggilIKeystoreService#is_hardware_backed()
. - person Vikram   schedule 27.11.2013