1 poin oleh GN⁺ 1 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • GrapheneOS menggabungkan enkripsi disk, pembatasan brute force, mitigasi serangan sistem operasi, dan pertahanan akses fisik berdasarkan fitur keamanan Android 17 dan hardware Pixel terbaru
  • Elemen keamanan terbaru membatasi input PIN/kata sandi hingga maksimal 20 kali dan menunda 4 jam setelah 10 kegagalan, hingga 41 hari setelah 15 kegagalan, serta mencegah perubahan firmware tanpa autentikasi pemilik sehingga bypass oleh orang dalam juga diblokir
  • Mendukung kata sandi hingga 128 karakter dan sidik jari+PIN kedua opsional, sehingga 6–8 kata Diceware acak dapat digunakan sebagai kata sandi utama sambil tetap menjaga kemudahan membuka kunci sehari-hari
  • Dalam keadaan terkunci, koneksi USB baru diblokir baik dari sisi software maupun hardware, dan reboot otomatis 10 menit–72 jam serta inisialisasi memori mengembalikan perangkat ke status Before First Unlock
  • PIN/kata sandi paksa akan menghapus perangkat jika dimasukkan di jendela autentikasi profil mana pun, tetapi perlindungan data secara keseluruhan didasarkan pada enkripsi, keamanan hardware, dan sistem mitigasi serangan, bukan hanya pada fitur ini

Enkripsi dan pembatasan percobaan autentikasi

  • Membobol enkripsi disk secara langsung bukanlah jalur yang realistis bahkan bagi penyerang paling canggih; penyerang harus mengeksploitasi kerentanan sistem operasi dalam status After First Unlock atau melakukan brute force PIN/kata sandi
  • Pembatasan percobaan elemen keamanan di Android 16 QPR2 meningkatkan waktu tunda secara bertahap sesuai jumlah kegagalan
    • Setelah 10 kegagalan, ada penundaan 4 jam; setelah 15 kegagalan, hingga 41 hari; dan total percobaan hanya diizinkan hingga 20 kali
    • Lima nilai berbeda yang baru-baru ini gagal akan ditolak lebih awal agar jumlah percobaan tidak terbuang karena kesalahan berulang
    • GrapheneOS hanya mendukung perangkat yang menerapkan pembatasan percobaan pada elemen keamanan generasi terbaru
  • Untuk memperbarui firmware elemen keamanan pada perangkat yang didukung, selain kunci tanda tangan yang valid dan nomor versi yang lebih tinggi, autentikasi pengguna Owner juga diperlukan
    • Sekalipun pemerintah memaksa pembuatan firmware yang menghapus pembatasan percobaan, firmware itu tidak dapat dipasang untuk mem-bypass pembatasan
    • Sejak Pixel 2 yang dirilis pada akhir 2017, Pixel menggunakan elemen keamanan dengan timer internal dan perlindungan dari serangan orang dalam, dan integrasinya dengan sistem operasi juga terus ditingkatkan sejak saat itu
  • GrapheneOS meningkatkan batas panjang kata sandi dari 16 karakter menjadi 128 karakter, memungkinkan penggunaan frasa sandi Diceware berentropi tinggi yang tidak bergantung pada pembatasan percobaan elemen keamanan
  • Sidik jari+PIN kedua opsional mendukung kata sandi utama yang kuat sekaligus pembukaan kunci harian yang praktis
    • Pada Before First Unlock, pengguna memakai kata sandi utama yang terdiri dari 6–8 kata Diceware acak, lalu setelahnya dapat mengombinasikan sidik jari dan PIN pendek
    • Bahkan setelah sidik jari yang valid dikenali, PIN kedua tetap harus dimasukkan agar layar dan keystore hardware terbuka
    • Jumlah percobaan sidik jari yang diizinkan dikurangi dari 20 menjadi 5, dan PIN kedua yang salah juga dihitung sebagai kegagalan

Sistem operasi dan pertahanan akses fisik

  • GrapheneOS meningkatkan tingkat kesulitan serangan sistem operasi dengan fitur berbasis hardware seperti allocator memori yang diperkuat dan Memory Tagging Extension (MTE); detailnya dapat dilihat di fitur mitigasi eksploit
  • Untuk mencegah serangan dengan akses fisik ke perangkat, saat terkunci GrapheneOS secara default memblokir koneksi USB baru pada level software dan hardware, dan segera menonaktifkan fungsi data ketika koneksi USB aktif hilang
  • Timer reboot otomatis perangkat terkunci yang diperkenalkan pada Juni 2021 dapat diatur antara 10 menit–72 jam
    • Nilai default awalnya 72 jam, tetapi kemudian diturunkan menjadi 18 jam
    • Dengan mematikan lalu mem-boot ulang sistem operasi, memori diinisialisasi dan perangkat dikembalikan ke status Before First Unlock
    • Pada April 2024, inisialisasi memori juga ditambahkan saat boot ke mode firmware fastboot Pixel
    • Apple dan Google juga menambahkan reboot otomatis perangkat terkunci di iOS 18.1 dan Android 16; di Android, fitur ini dapat diaktifkan melalui Advanced Protection Mode
  • Android menggunakan kunci enkripsi terpisah untuk setiap pengguna sekunder dan Private Space
    • Di GrapheneOS, sesi pengguna sekunder dapat dihentikan dan tiap toggle dapat digunakan untuk mengembalikan area tersebut ke status Before First Unlock tanpa reboot
    • Untuk membuat data pengguna utama kembali ke keadaan diam yang terenkripsi, menghapus sepenuhnya sisa data di RAM, dan memblokir pembaruan elemen keamanan, lebih baik me-reboot seluruh perangkat

Penghapusan data dalam situasi paksaan

  • PIN/kata sandi paksa akan menghapus perangkat jika dimasukkan di jendela autentikasi sistem operasi mana pun yang meminta PIN/kata sandi profil saat ini
    • Berfungsi tidak hanya di layar kunci, tetapi juga di semua jendela yang memerlukan autentikasi, seperti perubahan pengaturan sensitif
    • Dapat digunakan di semua profil, termasuk pengguna utama, pengguna sekunder, dan Private Space
    • Juga berfungsi jika dimasukkan sebagai PIN kedua untuk membuka kunci dengan sidik jari, tetapi tidak berlaku untuk SIM PIN
  • PIN/kata sandi paksa dapat ditulis di kertas yang disimpan di casing ponsel atau dompet, tetapi menghapus perangkat dalam situasi paksaan nyata dapat menimbulkan konsekuensi fisik dan hukum, sehingga cara penggunaannya perlu dipertimbangkan dengan hati-hati
  • Fitur paksaan sepenuhnya menghilangkan kemungkinan pemulihan data bahkan jika PIN/kata sandi semua profil diketahui, tetapi bukan mekanisme pertahanan wajib; rangkaian perlindungan lengkap dapat dilihat di daftar fitur GrapheneOS dan catatan perubahan rilis
  • Saat ini fitur keamanan hardware dan pembaruan yang disyaratkan GrapheneOS hanya disediakan oleh Pixel, tetapi hal ini direncanakan berubah mulai 2027 seiring kerja sama dengan Motorola Mobility dan kemajuan pengembangan Qualcomm

1 komentar

 
GN⁺ 1 jam lalu
Komentar Hacker News
  • Tulisan ini tampaknya diposting sebagai tanggapan atas kasus seseorang yang didakwa setelah mereset Pixel dengan PIN paksaan saat pemeriksaan perbatasan AS, untuk memperjelas bahwa pertahanan GrapheneOS terhadap ekstraksi data tetap kuat bahkan tanpa PIN paksaan.
    Baru-baru ini juga ada artikel Computer Weekly yang menyebut bahwa reboot otomatis 18 jam di GrapheneOS melindungi materi liputan dan narasumber rahasia seorang jurnalis dengan mengembalikan perangkat ke kondisi sebelum pertama kali dibuka kuncinya (BFU), sehingga mencegah ekstraksi kunci.

    • Saya masih penasaran, jika orang tersebut tidak berada di wilayah AS, bagaimana bisa didakwa dengan hukum yang hanya berlaku di AS.
    • Kutipan di artikel pertama bahwa “GrapheneOS mengirim pesan bahwa pada dasarnya ia bersifat kriminal” terasa sangat menggiring. Pada akhirnya, itu membentuk narasi bahwa perlindungan itu kriminal dan kerentanan itu patuh hukum.
    • Interval reboot otomatis bisa dipersingkat hingga minimal 10 menit. Jika kemungkinan penyitaan sudah bisa diperkirakan, seperti saat melintasi perbatasan atau ikut demonstrasi, sebaiknya sementara diatur pendek atau reboot sendiri agar perangkat masuk kondisi BFU.
    • Artikel Guardian sudah dibahas di thread HN sebelumnya, tetapi artikel Computer Weekly hanya sempat diajukan dan tidak banyak dibahas.
  • GrapheneOS membutuhkan fitur backup dan restore lengkap agar ponsel bisa direset secara preventif sebelum menyeberangi perbatasan. Akan bagus jika semua aplikasi dan data bisa dibackup dan dipulihkan ke server SSH/SFTP pribadi, seperti Google Cloud atau iCloud.
    Daripada memakai PIN paksaan dan mengambil risiko didakwa, saya lebih memilih mereset ponsel, lalu memasukkan sendiri beberapa kontak, salinan paspor, dan PDF tiket pesawat; jika diminta di imigrasi, saya bisa memberikan PIN yang sebenarnya. Yang perlu diingat selama perjalanan hanyalah password manager atau passphrase untuk server SSH jarak jauh, lalu memulihkan hanya data yang diperlukan dan menghapusnya lagi kapan saja.
    Namun jika ini dijadikan fitur bawaan, aparat penegak hukum bisa mencurigai penyimpanan jarak jauh semua pengguna GrapheneOS dan menuntut akses serta pemulihan, jadi mungkin lebih baik dikonfigurasi terpisah. Ada juga cara menyiapkan akun Google palsu yang hanya dipakai untuk pembelian biasa dan langganan YouTube agar terlihat wajar.
    Tiga minggu lagi saya akan bepergian ke luar negeri selama sebulan, jadi saya sedang mempertimbangkan apakah akan mereset ponsel, atau meninggalkan ponsel utama di rumah dan membawa perangkat baru seharga 150 euro yang hanya berisi kontak darurat keluarga. Untungnya, dari layar kunci saja tidak terlihat bahwa perangkat itu bukan Android Pixel biasa.

    • GrapheneOS sudah memiliki sistem backup terenkripsi yang menangani jauh lebih banyak data daripada backup cloud Google. Sistem ini bekerja dalam mode transfer antarperangkat, juga membackup aplikasi dengan allowBackup="false", dan mendukung layanan sinkronisasi apa pun yang menyediakan API kompatibel.
      Backup dilakukan per profil, jadi bisa juga dipulihkan ke pengguna sekunder untuk diuji. Mereka berencana melakukan perombakan total agar implementasi dan pengalaman pengguna lebih sederhana dan rapi, dan saat ini sedang merombak aplikasi-aplikasi lain terlebih dahulu.
    • Fitur pengganti SeedVault sudah direncanakan: fitur backup terenkripsi, isu terkait
    • Fitur untuk mem-boot partisi data tersembunyi dengan kata sandi berbeda dan menyembunyikan partisi harian tampaknya lebih berguna. Seperti LUKS, dump penyimpanan terlihat sebagai data acak, dan hanya kata sandi yang benar yang menemukan serta mendekripsi partisi tersembunyi yang sesuai.
      Jika memasukkan PIN khusus di layar kunci membuat perangkat, setelah sedikit jeda, boot ke partisi umpan, pengguna bisa memperoleh plausibly deniability yang masuk akal bukan hanya saat pemeriksaan perbatasan yang sudah diperkirakan, tetapi juga saat pemeriksaan mendadak.
    • Backup lengkap yang disimpan di server terenkripsi pribadi dan bisa dipulihkan dengan satu tombol sangat dibutuhkan. Jika ponsel rusak atau dicuri, pengguna harus menginstal ulang dan mengatur ulang selama berjam-jam item yang terlewat oleh SeedVault, dan saya khawatir bisa kehilangan akses ke akun yang terikat pada kunci elemen keamanan.
    • Saya ragu apakah di negara-negara beradab di Barat seseorang benar-benar mungkin menjadi target di perbatasan hanya karena memasang GrapheneOS di Pixel.
  • Kunci pola Android hanya menyediakan entropi Log2(389112) ≈ 18.57 bit. Ini bahkan lebih lemah daripada 3 karakter acak, 4 huruf kecil, atau PIN desimal 6 digit.
    Kata sandi panjang bisa diingat dengan mnemonik, tetapi merepotkan untuk dimasukkan. Jika terlalu panjang, seharusnya bisa diizinkan dengan menggunakan ringkasan hash, tetapi melarang kata sandi kuat itu sendiri justru mendorong kebiasaan buruk seperti penggunaan ulang atau mengirimkannya ke diri sendiri.

    • GrapheneOS mendukung kata sandi hingga 128 karakter untuk passphrase Diceware. Jika memakai passphrase yang kuat, tidak perlu bergantung pada elemen keamanan, dan PIN acak 6 digit aman berkat pembatasan jumlah percobaan oleh elemen keamanan. Karena total hanya bisa mencoba 20 kali, PIN acak 4 digit pun bisa saja cukup.
      Untuk kunci sidik jari, PIN autentikasi kedua bisa ditambahkan, sehingga passphrase kuat dapat digunakan dengan nyaman tanpa kelemahan saat hanya memakai autentikasi biometrik. Kunci pola mendorong pengguna memakai hanya sebagian sangat kecil dari kombinasi yang sebenarnya mungkin, sehingga jauh lebih lemah daripada perhitungannya, dan memberi rasa aman palsu, jadi sudah dihapus beberapa tahun lalu. Fitur bawaan untuk membuat PIN dan passphrase acak juga sedang dikembangkan.
    • GrapheneOS mengurangi jumlah percobaan sidik jari dari 20 menjadi 5 kali, dan bisa meminta PIN kedua bahkan setelah sidik jari yang benar. Di BFU, memakai 6–8 kata Diceware acak, lalu dalam penggunaan sehari-hari menggabungkan sidik jari dan PIN pendek, akan terasa praktis.
      Batasan AOSP diubah sehingga kata sandi hingga 128 karakter diperbolehkan. Passphrase panjang hanya perlu dimasukkan setelah reboot, dan kelebihannya tetap terlindungi meski elemen keamanan dieksploitasi.
    • Pixel terbaru memiliki perangkat mirip TPM yang mencegah brute force. Jika polanya tidak mudah ditebak, penyerang hanya bisa mencoba 20 kali sebelum materi kunci pendukung dihapus dan kunci enkripsi hilang.
      Serangan side-channel terhadap chip keamanan secara teori mungkin, tetapi membutuhkan metode serangan yang sudah terbukti, pembongkaran perangkat, serta pekerjaan yang presisi dan destruktif.
    • Saya pernah langsung menetapkan kata sandi 35 karakter di GrapheneOS, dan semuanya bekerja tanpa masalah.
  • Lucu rasanya jika menginginkan jaminan keamanan seperti perangkat Apple malah diperlakukan seperti penjahat. Apple juga punya restart otomatis, enkripsi penuh, dan Lockdown Mode

    • Pihak berwenang memang tidak hanya keberatan pada GrapheneOS, tetapi juga pada Apple, namun menyebut pengguna iPhone sebagai penjahat akan mudah jadi bahan ejekan. Sebaliknya, memasang sistem operasi pihak ketiga mudah dianggap asing dan dipinggirkan hanya karena belum familier
  • Hasil memasukkan kata sandi paksa seharusnya tidak bisa disadari oleh orang yang menerima ponsel tersebut. Informasi akun yang sebenarnya dihapus, tetapi ditampilkan sistem operasi berisi konten yang tampak masuk akal seperti email sopan namun tidak berarti, agar penyidik bisa memeriksanya

    • Ini adalah fitur yang lebih tepat disebut kata sandi umpan daripada kata sandi paksa
    • Cukup letakkan sebagian aplikasi dan data di area terkunci terpisah, lalu minta PIN tambahan setelah perangkat dibuka. PIN paksa dapat membuka perangkat sambil menghapus area tersebut, dan membuatnya tampak seolah area aman itu tidak pernah disetel sejak awal
      Beberapa sistem operasi dan layanan seperti Google Photos atau Samsung menyediakan fitur data terkunci
    • PIN/kata sandi paksa GrapheneOS tidak berpura-pura sebagai reset diam-diam, melainkan menjalankan reset yang diharapkan pengguna secara aman. Bukan peran proyek ini untuk menentukan bagaimana fitur itu digunakan dalam situasi penegakan hukum atau memberi nasihat hukum; karena hukum sangat berbeda menurut yurisdiksi dan konteks, sebaiknya bertanya kepada pengacara
      Saat profil dihapus, metadata yang membuktikan keberadaannya tetap tertinggal di perangkat dan di penyimpanan terenkripsi profil pemilik. Dengan ADB, apakah dan kapan reset dilakukan juga mudah diperiksa, sehingga tidak bisa memberikan penyangkalan yang masuk akal; membuat pengguna percaya bahwa itu diam-diam justru membahayakan mereka
      Penyembunyian Private Space di Android pun hanya menyamarkan secara seadanya pada antarmuka pengguna; ada beberapa metode deteksi yang sudah dipublikasikan, dan secara realistis sulit menyembunyikannya sepenuhnya dari ADB. Fitur yang tidak sempurna akan cepat diketahui lewat diskusi daring dan akan terintegrasi ke LLM, alat forensik, serta panduan
      Fitur GrapheneOS harus tetap bekerja bahkan terhadap lawan yang mengetahui keberadaan fitur tersebut. PIN paksa tidak punya cara untuk dibedakan dari PIN asli, sehingga bahkan PIN yang diterima dari pengguna yang tidak memakai fitur ini pun harus dipertimbangkan sebagai kemungkinan PIN paksa
      Pada perangkat mendatang, mereka ingin menambahkan dukungan PIN paksa ke elemen keamanan itu sendiri sebagai bagian dari batas percobaan Weaver, agar tidak bisa dilewati bahkan dengan kerentanan sistem operasi
  • Penasaran apakah perangkat tetap terlindungi saat terkunci setelah pembukaan kunci pertama (AFU). Karena sering digunakan, jika data AFU tidak terlindungi meski dikunci sebelum disita lembaga penyidik atau penyerang, manfaatnya kecil; lembaga penyidik juga bisa menganalisis pada hari yang sama dengan alat seperti Cellebrite
    Mirip seperti memakai VeraCrypt tetapi membiarkan PC menyala karena malas reboot; dalam kasus ini, data bisa didekripsi lewat ekstraksi memori

    • GrapheneOS melindungi profil terkunci dalam status AFU dengan kuat. Secara default, perangkat otomatis reboot 18 jam setelah dikunci untuk membatasi masa berlaku serangan kerentanan yang sedang berjalan, dan pengguna bisa menurunkannya hingga 10 menit
      Nilai 18 jam dipilih agar hampir tidak pernah terpicu bahkan bagi orang yang hanya memakai ponsel beberapa kali sehari. Biasanya cukup jika sedikit lebih lama dari durasi tidur maksimal; reboot pada malam hari sendiri tidak masalah, tetapi bisa membuat panggilan darurat atau kontak penting yang bukan panggilan operator terlewat
      Dokumen Cellebrite Premium yang baru-baru ini dipublikasikan juga menunjukkan bahwa mereka tidak memiliki cara untuk menyerang perangkat GrapheneOS terkunci yang telah diperbarui sejak level patch tertentu pada 2022
  • Penasaran apakah kerja sama GrapheneOS dan Motorola masih berjalan, dan kapan perangkat Motorola akan dirilis

  • Saat melewati TSA atau imigrasi, saya selalu mematikan ponsel dan laptop. Di AS, saya beranggapan mereka tidak bisa memaksa pemberian kata sandi, dan meski perangkat disita, jika dalam keadaan mati maka kata sandinya sulit dipecahkan

    • Membuat perangkat berada dalam status BFU lewat shutdown atau restart jauh lebih aman. Jika melihat materi bocoran Cellebrite terbaru, GrapheneOS tampaknya tidak dapat diserang bahkan dalam status AFU
      Reboot otomatis GrapheneOS bisa disetel serendah 10 menit, dengan default 18 jam. Setelah itu, Google dan Apple juga memperkenalkan timer tetap 72 jam
      Namun akan bagus jika GrapheneOS punya pintasan shutdown yang lebih cepat. Sejauh yang saya tahu, saat ini harus menekan tombol fisik lalu mengonfirmasi lagi di layar
  • xkcd terkait: https://xkcd.com/538/

    • Saya tidak suka meme ini. Intinya adalah setidaknya membuat penyerang melakukan kekerasan dengan kunci inggris 5 dolar, yang di beberapa negara berarti melakukan kejahatan yang lebih berat daripada tuduhan terhadap pengguna
    • Menurut artikel terkait, Departemen Kehakiman AS sedang mendakwa warga Atlanta, Samuel Tunick, atas dugaan memberikan PIN paksa GrapheneOS saat petugas perbatasan memeriksa Google Pixel
      Sepertinya ia memang memberikan kata sandi, tetapi itu adalah kata sandi yang mereset ponsel, bukan membukanya. Agak mengejutkan bahwa perangkat tidak dicadangkan sebelum pemeriksaan
  • Bisa dibuat PIN paksa versi lunak yang hanya menghapus aplikasi pilihan tanpa terlihat mencurigakan. Atau, data aplikasi bisa dikembalikan ke titik pemulihan tertentu agar tampak seolah tidak terjadi apa-apa, dan pengaturannya juga dibuat tidak dapat dilacak, sehingga membantu mengurangi risiko hukum

    • Penghapusan yang dapat dipercaya harus membuang kunci dengan dukungan hardware. Android memakai kunci terpisah untuk tiap pengguna dan Private Space, sehingga seluruh data atau profil tertentu bisa dihapus dengan pasti, dan reboot juga penting untuk menghilangkan sisa jejak di memori
      Namun keberadaan profil tertentu dan waktu penghapusannya tetap tertinggal jelas dalam metadata sistem file dan sistem operasi. Jejak file yang disalin atau dimodifikasi juga tersisa di berbagai bagian SSD; setelah lama digunakan secara normal, meminta penghapusan aman pada rentang tertentu sudah terlalu terlambat dan masih mungkin dipulihkan. Fakta bahwa metadata dan statistik yang semestinya ada justru hilang juga menjadi bukti
      Fitur yang menerima semua frasa sandi sebagai valid di ruang cadangan, lalu menghasilkan keluaran acak jika tidak disetel atau salah, memang memungkinkan. Agar diimplementasikan dengan benar, dibutuhkan mesin virtual dan ruang cadangan dasar, tetapi tetap ada kemungkinan analisis level rendah SSD dapat membuktikan bahwa fitur itu digunakan
    • Cara yang aman terhadap analisis forensik tidak mungkin dibuat. Jika menerapkan penyangkalan yang masuk akal yang tidak kokoh, pengguna akan mendapat rasa aman palsu dan menjadi berisiko, jadi GrapheneOS tidak akan mengadopsinya