Local-First for Security Data

What is Local-First?

Local First adalah pendekatan yang menekankan penyimpanan dan pengolahan data di local device user sebelum melakukan sinkronisasi dengan server atau cloud. Konsep ini muncul sebagai respons terhadap kekhawatiran yang semakin meningkat mengenai privasi dan keamanan data di era digital, terutama dengan banyaknya pelanggaran data yang terjadi di cloud service. Dengan Local First, user memiliki kontrol lebih besar terhadap data mereka, yang berpotensi mengurangi risiko pelanggaran data.

Main Characteristics of Local-First

  1. Local Data Storage: Data disimpan secara lokal di perangkat user, misalnya di hard drive atau device memory. Hal ini memberikan user kontrol penuh atas data mereka dan mengurangi ketergantungan pada cloud provider.
  2. Offline Accessibility: Aplikasi yang menggunakan pendekatan Local First dapat berfungsi tanpa koneksi internet. Ini sangat berguna dalam situasi di mana akses internet terbatas atau tidak tersedia, memungkinkan user untuk tetap bekerja dengan data mereka.
  3. Synchronization: Meskipun data disimpan secara lokal, mekanisme sinkronisasi diperlukan untuk memastikan bahwa perubahan yang dilakukan di satu perangkat dapat diperbarui ke perangkat lain atau server saat koneksi tersedia sehingga menjaga konsistensi data di berbagai platform.
  4. Distributed Security: Dengan menyebarkan data di berbagai perangkat, risiko pelanggaran data terpusat dapat diminimalkan. Jika satu perangkat terkena breach, data di perangkat lain tetap aman.
  5. Data Ownership: User memiliki hak penuh atas data mereka dan dapat menentukan bagaimana dan kepada siapa data tersebut dibagikan sehingga meningkatkan transparansi dan kepercayaan antara user dan penyedia layanan.

The Usefulness of Local-First in the Security Aspect

  1. Centralized Data Breach Risk Minimization: Dengan menyebarkan data di banyak perangkat, risiko pelanggaran menjadi lebih kecil karena attacker harus mengakses banyak titik untuk mendapatkan informasi sensitif yang membuat serangan menjadi lebih sulit dan mahal bagi attacker.
  2. Enhanced User Control: User dapat menentukan policy penyimpanan dan berbagi data mereka sendiri. Misalnya, mereka bisa memilih untuk menyimpan data secara lokal tanpa membagikannya ke server sama sekali atau hanya membagikannya dengan pihak tertentu.
  3. End-to-End Encryption: Data dapat dienkripsi di perangkat user sebelum dikirim ke server. Ini memastikan bahwa hanya user yang memiliki kunci enkripsi yang dapat mengakses informasi tersebut, bahkan penyedia layanan tidak dapat melihat isi data mentah.
  4. Local Audit Trail: Dengan menyimpan catatan akses dan modifikasi pada tingkat perangkat, user dapat melacak siapa yang mengakses atau mengubah data mereka serta kapan itu terjadi. Ini memberikan transparansi tambahan dan membantu dalam audit keamanan.
  5. Regulatory Compliance: Local First memudahkan kepatuhan terhadap privacy regulation seperti GDPR (General Data Protection Regulation) dengan memberikan kontrol lebih besar kepada user atas bagaimana data mereka digunakan dan dibagikan.

Challenges and Limitations in Using Local-First

Meskipun local-first memiliki beberapa kelebihan dibandingkan cloud-first, implementasi local-first juga tetap memiliki beberapa tantangan dan limitasi.

  1. Data Synchronization: Dalam local-first, sinkronisasi data antara perangkat lokal dengan perangkat lainnya bisa menjadi tantangan yang cukup rumit. Dalam cloud-first, perubahan data yang dibuat oleh satu perangkat dapat di sinkron dengan perangkat lain dengan mudah. Namun hal ini dapat menjadi konflik dalam sistem local-first bila terdapat dua perangkat yang mengubah data yang sama secara bersamaan.
  2. Data Backup: Dalam cloud-first, user tidak terlalu memperhatikan backup dan recovery data, karena pada umumnya, data sudah di backup secara berkala oleh cloud provider. Namun, dalam local-first user harus membuat backup data sendiri secara berkala. Dalam aplikasi yang menyimpan banyak data, hal ini bisa membuat user merasa terbebani.
  3. Cross Platform Compatibility: Tantangan lain dalam implementasi local-first adalah memastikan bahwa setiap software dapat bekerja dengan baik di setiap OS yang digunakan. User harus membuat sistem aplikasi yang bisa bekerja secara konsisten di berbagai platform.
  4. Scalability: Mengelola pertumbuhan data lokal tanpa mengorbankan kinerja perangkat memerlukan optimasi penggunaan penyimpanan dan memori.  Developer perlu merancang aplikasi agar efisien dalam penggunaan sumber daya.
  5. Device Security: Device-level security harus ditingkatkan melalui elocal storage encryption and strong authentication (seperti biometrics atau passwords). Jika perangkat dicuri atau hilang, data harus tetap aman dari akses tidak sah.

Technical Aspects of Local-First

Implementasi Local First melibatkan beberapa aspek teknis penting:

  1. Application Architecture: Aplikasi biasanya menggunakan database lokal seperti SQLite atau IndexedDB untuk penyimpanan primer. Layer sinkronisasi kemudian menangani komunikasi dengan server backend untuk memperbarui perubahan ketika koneksi tersedia.
  2. Synchronization Protocol: Protokol seperti CRDTs (Conflict-free Replicated Data Types) digunakan untuk mengelola konflik data secara otomatis ketika terjadi perubahan simultan di beberapa perangkat. Selain itu, version vector dapat diterapkan untuk melacak perubahan dan memastikan konsistensi antara versi lokal dan server.
  3. Encryption: Enkripsi dilakukan untuk melindungi data baik saat disimpan (data at-rest) maupun saat dikirim (data in-transit). Algoritma seperti AES-256 digunakan untuk enkripsi at-rest sementara TLS (Transport Layer Security) digunakan untuk enkripsi in-transit.
  4. Key Managements: distributed key management system diperlukan untuk mengelola encryption key secara aman dan efisien. Mekanisme key recovery juga harus diterapkan agar user dapat memulihkan akses jika kehilangan perangkat mereka.
  5. Network Architecture: Protokol peer-to-peer dapat digunakan untuk sinkronisasi langsung antar perangkat ketika memungkinkan, sehingga mengurangi ketergantungan pada server pusat. Server relay juga bisa diterapkan sebagai solusi ketika koneksi langsung tidak memungkinkan.

Local-First Implementation

Implementasi local-first dapat dimulai dari hal-hal yang sederhana. Misalnya sebagai mahasiswa, Implementasi local-first dapat diterapkan melalui penyimpanan dan dokumentasi catatan-catatan penting secara lokal. Untungnya, terdapat beberapa aplikasi yang dapat memudahkan hal tersebut.

  • Notion: Notion adalah aplikasi serbaguna yang dapat digunakan untuk mencatat, dan menyimpan dokumen dalam berbagai pilihan format. Aplikasi ini memungkinkan user untuk mengatur dan mengelola data dalam satu tempat yang terorganisir dengan baik. Fitur-fitur notion mungkin dapat dinilai kompleks untuk user yang hanya tertarik pada penyimpanan data sederhana, Namun aplikasi ini sangat cocok untuk user yang membutuhkan manajemen dan kustomisasi data yang kompleks.
  • Obsidian: Serupa dengan notion, Obsidian juga merupakan aplikasi pencatatan berbasis markdown yang dapat digunakan secara offline. Aplikasi ini dirancang untuk membantu user dalam mengorganisir informasi dan ide-ide secara fleksibel dan terstruktur. Obsidian sangat cocok untuk digunakan dalam perancangan ide dan brainstorming melalui fiturnya yang dapat memvisualisasikan koneksi antara data melalui grafik. 

Conclusions

Local-First menawarkan pendekatan yang menjanjikan dalam menghadapi tantangan privasi dan keamanan di era digital saat ini. Meskipun ada tantangan dalam implementasinya—seperti masalah sinkronisasi dan manajemen backup—manfaatnya dalam user control, data security, dan ketahanan sistem sangat signifikan. Dengan meningkatnya kesadaran akan pentingnya perlindungan data pribadi serta perkembangan teknologi baru, kita dapat berharap bahwa prinsip-prinsip Local-First akan semakin banyak diterapkan dalam pengembangan aplikasi dan data management di masa depan.

References

  • https://dev.to/alexanderop/what-is-local-first-web-development-3mnd
  • https://squads.com/blog/building-better-apps-with-local-first-principles
  • https://www.clouddatainsights.com/from-the-cloud-to-the-edge-exploring-the-local-first-software-revolution/
  • https://www.inkandswitch.com/local-first/#seven-ideals-for-local-first-software