Prinsip fundamental
Solo2 membuat terowongan pribadi antara dua orang. Langsung. Tanpa perantara.
Server kami hanya melakukan satu hal: memperkenalkan kedua ujung terowongan agar mereka dapat saling menemukan. Untuk itu, ia memerlukan hal yang paling minimal — pengidentifikasi dari kedua rekan — yang dipertahankan di memori RAM selama milidetik saat presentasi berlangsung. Pada saat kedua perangkat telah ditemukan, data tersebut dihapus dari memori. Tidak pernah, pada saat kapan pun, data tersebut ditulis di disk.
Setelah terhubung, server menghilang. Server tidak berpartisipasi dalam percakapan. Tidak melihatnya. Tidak menyimpannya. Tidak tahu berapa lama durasinya, seberapa sering Anda berbicara, atau apa yang Anda bicarakan.
Kami tidak meminta Anda untuk memercayai kami. Kami meminta Anda untuk membuktikannya:
Uji 1 — Server tidak diperlukan.
Setelah terowongan langsung terbentuk, server kami tidak lagi berpartisipasi. Jika server mati pada saat itu, percakapan Anda akan berlanjut tanpa gangguan. Selama perangkat Anda menyala dan terhubung ke internet, terowongan tersebut adalah milik Anda. Kami sudah tidak ada di sana.
Uji 2 — Kirim file berukuran 10 gigabyte.
Tidak hanya akan berjalan cepat — tetapi server kami juga sama sekali tidak peduli. Cobalah mengirim file berukuran 10 gigabyte atau lebih selama 24 jam berturut-turut tanpa henti. Server kami bahkan tidak akan menyadarinya, karena ia tidak melakukan intervensi. Cobalah hal itu dengan layanan pesan lainnya.
Uji 3 — Bicara tentang teleskop.
Habiskan satu sore berbicara dengan seseorang tentang teleskop, atau alat pancing, atau apa pun yang belum pernah Anda cari di internet. Tunggu beberapa hari. Iklan tentang teleskop tidak akan muncul di mana pun. Kata-kata Anda tidak keluar dari terowongan Anda.
Data Anda, tanggung jawab Anda.
Ini adalah keunggulan utama kami dan, sejujurnya, hal yang paling sulit untuk dibiasakan. Pesan, file, dan kontak Anda hidup di brankas terenkripsi di dalam perangkat Anda. Tidak ada salinan di server mana pun. Semuanya dilindungi dengan 24 kata — tingkat keamanan yang sama dengan Bitcoin. Namun semuanya ada di satu tempat, kecuali jika Anda menginstal Solo2 di perangkat kedua — kedua brankas akan disinkronkan secara otomatis saat terhubung pada saat yang sama. Anda juga dapat mengekspor cadangan terenkripsi. Di sini tidak ada cloud yang akan menyelamatkan Anda jika Anda kehilangan satu-satunya perangkat Anda. Data Anda adalah milik Anda, dengan segala konsekuensinya.
Secara terperinci
Server Solo2 sepenuhnya buta. Ia tidak tahu dengan siapa Anda berbicara, apa yang Anda katakan, atau file apa yang Anda bagikan. Bahkan sinyal teknis yang menjalin koneksi antar perangkat tidak dapat dibaca oleh server — sinyal tersebut dikirim terenkripsi ujung-ke-ujung.
Pesan Anda berpindah langsung antar perangkat, terenkripsi ujung-ke-ujung. Riwayat Anda hidup terenkripsi di browser Anda, tidak pernah di server kami.
Kunci enkripsi berotasi secara otomatis pada setiap pesan. Setiap pesan dienkripsi dengan kunci unik yang segera dibuang setelahnya. Secara teknis ini dikenal sebagai Double Ratchet, dan itu berarti meskipun seseorang mendapatkan satu kunci, ia hanya dapat membaca satu pesan tunggal — bukan seluruh percakapan. Selain itu, keamanan dipulihkan secara otomatis setelah setiap giliran komunikasi: kunci yang disusupi menjadi tidak berguna segera setelah pesan berikutnya dipertukarkan.
Saat koneksi langsung antar perangkat tidak memungkinkan (misalnya, karena batasan jaringan), server cermin (secara teknis disebut TURN) digunakan: data dipantulkan dari satu perangkat ke perangkat lainnya, tetapi cermin tidak menyadari apa yang dipantulkannya — semuanya berpindah terenkripsi ujung-ke-ujung dan server tidak dapat membacanya. Selain itu, semua paket diisi hingga ukuran yang seragam untuk mencegah pengamat menyimpulkan informasi dengan menganalisis ukuran atau frekuensi lalu lintas.
Anda selalu dapat melihat di aplikasi jenis koneksi apa yang Anda gunakan — langsung atau melalui server cermin — dan bertindak sesuai dengan itu.
Kunci master Anda dihasilkan secara acak dengan entropi nyata 256 bit — tingkat yang sama dengan Bitcoin. Saat membuat akun, Solo2 menghasilkan kunci unik yang direpresentasikan sebagai 24 kata. Kata sandi Anda melindungi akses ke layanan. 24 kata Anda adalah kunci data Anda. Keduanya adalah dua kunci berbeda untuk dua pintu yang berbeda.
Meskipun server kami menghilang, data Anda tetap bertahan. Dengan 24 kata Anda, Anda dapat mengakses brankas lokal Anda tanpa koneksi ke server. Data Anda adalah milik Anda — sungguhan.
1. Data yang KAMI miliki di server
1.1 Akun pengguna Anda
Ini adalah semua bidang yang ada dalam catatan Anda. Tidak ada bidang lain.
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Nama pengguna | Agar Anda dapat masuk sesi | Teks biasa (publik secara desain) | Sampai Anda menghapus akun Anda |
| Kata sandi | Autentikasi | Dilindungi dengan Argon2id (direkomendasikan oleh OWASP, tahan terhadap serangan dengan perangkat keras khusus). Kami tidak pernah menyimpan kata sandi asli Anda | Sampai Anda menghapus akun Anda |
| Nama publik | Agar kontak Anda mengenali Anda | Teks biasa (Anda yang memilihnya) | Sampai Anda mengubahnya atau menghapus akun Anda |
| Kode penautan | Alamat Anda di dalam Solo2 — seperti nomor telepon. Ini adalah apa yang Anda bagikan kepada seseorang agar mereka dapat menemukan Anda dan mengirimi Anda permintaan koneksi | Teks biasa, unik (~10 karakter) | Sampai Anda menghapus akun Anda |
| Saldo ekonomi | Uang yang telah Anda tambahkan ke akun Anda | Angka (dalam sen) | Sampai Anda menghapus akun Anda |
| Saldo bonus | Bonus yang diterima (promosi). Digunakan sebelum saldo ekonomi | Angka (dalam sen) | Sampai Anda menghapus akun Anda |
| Jenis akun | Paket Anda saat ini (uji coba, standar, emas, platinum) | 1 byte (angka bulat: 0=uji coba, 1=standar, 2=emas, 3=platinum, 4=dijeda, 5=ditangguhkan) | Sampai berubah atau Anda menghapus akun Anda |
| Tanggal dan waktu pendaftaran | Kapan Anda membuat akun Anda | Tanggal dan waktu lengkap (timestamp) | Permanen |
| Pengidentifikasi internal | Sistem membutuhkan dua kode internal untuk merujuk kepada Anda tanpa menggunakan nama pengguna Anda. Salah satunya adalah ID utama Anda dan yang lainnya adalah kode referensi. Keduanya buram — tidak berarti apa-apa di luar sistem | Dua kode acak masing-masing 24 karakter (misal: u_7kX9mP2...). Tidak mengandung nama Anda, tanggal, atau data pribadi apa pun — murni acak | Sampai Anda menghapus akun Anda |
| Versi keamanan | Versi algoritma perlindungan kata sandi mana yang digunakan | Angka internal | Sampai Anda menghapus akun Anda |
| Indikator status | Flag teknis (jika saldo Anda berubah, jika Anda mengaktifkan mode keamanan maksimum) | 1 byte — setara dengan satu huruf saja. Tidak ada ruang untuk hal lain | Sampai Anda menghapus akun Anda |
Untuk memberi Anda gambaran tentang volumenya: seluruh catatan Anda berukuran sekitar 400 byte — lebih pendek dari paragraf ini. Isinya adalah nama-nama Anda (samaran jika Anda mau), jejak kata sandi Anda (ukuran tetap, 60 byte), kunci master terenkripsi Anda (blob buram ~128 byte yang tidak dapat kami baca), dua angka untuk saldo Anda, beberapa tanggal, dan satu byte konfigurasi. Hanya itu keberadaan Anda di server kami.
1.2 Sesi aktif
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Hash token sesi | Menjaga login Anda tetap aktif | Jejak yang tidak dapat dipulihkan (SHA-256). Token asli tidak pernah disimpan di server | 24 jam — setelah itu dihapus sepenuhnya |
| Tanggal pembuatan | Agar sistem mengetahui kapan sesi dibuat — berguna untuk pembersihan otomatis | Timestamp numerik (detik unix) | Dihapus bersama sesi |
| Tanggal kedaluwarsa | Sesi kedaluwarsa 24 jam setelah dibuat. Tidak diperbarui dengan penggunaan — memiliki tanggal kedaluwarsa tetap | Timestamp numerik (pembuatan + 24 jam) | 24 jam — setelah itu dihapus sepenuhnya |
Saat keluar sesi atau saat kedaluwarsa, baris tersebut dihapus sepenuhnya dari database. Tidak ada jejak bahwa sesi tersebut pernah ada.
1.3 Permintaan penautan
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| ID pemohon | Mengetahui siapa yang mengirim permintaan | Kode internal 24 karakter acak | 3 hari — setelah itu dihapus secara otomatis |
| ID penerima | Mengetahui kepada siapa permintaan ditujukan | Kode internal 24 karakter acak | 3 hari — setelah itu dihapus secara otomatis |
| Status | Tertunda / diterima / ditolak | 1 byte (angka bulat: 0=tertunda, 1=diterima, 2=ditolak) | Dihapus saat diselesaikan atau saat kedaluwarsa (3 hari) |
| Tanggal pembuatan | Mengetahui kapan permintaan dibuat agar dapat dihapus secara otomatis | Timestamp numerik (detik unix) — 4 hingga 8 byte | 3 hari — setelah itu dihapus secara otomatis |
Catatan penting: Selama permintaan tertunda (maksimal 3 hari), server mengetahui bahwa pengguna A meminta terhubung dengan pengguna B. Setelah 3 hari berlalu, permintaan dihapus secara otomatis. Setelah penautan diterima, server tidak menyimpan hubungan tersebut. Daftar kontak Anda hanya ada di browser Anda, terenkripsi.
1.4 Kode penautan
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Kode penautan (alias) | Pengidentifikasi pendek agar pengguna lain dapat menemukan Anda dan meminta pembuatan terowongan | Kode acak 8 karakter yang berasal dari ID internal Anda | Permanen (ini adalah pengidentifikasi koneksi publik Anda) |
1.5 Langganan push (notifikasi)
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Alamat notifikasi | Mengirim notifikasi ke browser Anda | URL penyedia browser (Google, Mozilla, atau Apple) | Sampai Anda menonaktifkan notifikasi atau menghapus akun Anda |
| Kunci enkripsi push | Mengenkrusi notifikasi agar hanya browser Anda yang dapat membacanya | Standar Web Push | Sama seperti alamat |
1.6 Umpan balik (dukungan)
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Pesan Anda | Agar kami dapat membantu Anda | Teks biasa | Sampai kami memprosesnya |
| ID pengguna Anda | Untuk mengetahui siapa yang membutuhkan bantuan | ID internal | Sama seperti pesan |
1.7 Pensinyalan koneksi (fana)
Agar dua perangkat dapat terhubung secara langsung, mereka perlu bertukar sinyal teknis pembentukan koneksi (protokol WebRTC). Satu-satunya saat server kami mempertahankan kode pengguna Anda dan kode kontak Anda di memori adalah selama milidetik saat ia memproses permintaan koneksi ini. Itu berlangsung sekejap, hanya ada di memori RAM dan tidak pernah ditulis di disk. Sinyal itu sendiri terenkripsi ujung-ke-ujung
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Sinyal koneksi | Membangun koneksi langsung antar perangkat | Terenkripsi ujung-ke-ujung dengan kunci publik penerima. Server tidak dapat membaca atau mengubahnya | 60 detik |
1.8 Server cermin (relai TURN)
Jika koneksi langsung tidak memungkinkan, server cermin digunakan: data melewatinya seperti cahaya melalui cermin — dipantulkan dari satu sisi ke sisi lain, tetapi cermin tidak menyadari apa yang dipantulkannya. Semua paket diisi hingga ukuran yang seragam agar pengamat tidak dapat membedakan sebuah pesan dari detak koneksi sederhana.
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Kredensial akses | Mengautentikasi Anda di server cermin | Identitas Anda diubah menjadi jejak yang tidak dapat dipulihkan — server cermin tidak tahu siapa Anda | 24 jam |
1.9 Pembayaran diproses
Pembayaran adalah satu-satunya titik di mana ada gesekan nyata dengan anonimitas. Mari kita jujur tentang hal ini.
Saat Anda mendaftar di Solo2, Anda memilih nama pengguna (bisa samaran), kata sandi, dan nama publik (juga bisa samaran jika Anda mau). Tidak ada data yang menautkan Anda ke orang sungguhan. Namun jika Anda melakukan pembayaran dengan kartu, lembaga keuangan Anda tahu siapa Anda.
Apa yang kami terima dari gateway pembayaran hanyalah konfirmasi dan jumlah nominal. Kami tidak menerima atau menyimpan nama pemegang kartu, nomor kartu, NIK, atau data pribadi apa pun dari pembayar. Ini adalah jumlah nominal kecil — secara hukum setara dengan tiket tunai, seperti membeli permen di kios: penjaga kios tidak mencatat NIK pembayar.
Selain itu, catatan pembayaran sengaja dipisahkan
| Data | Mengapa | Perlindungan | Durasi |
|---|---|---|---|
| Catatan pembayaran | Akuntansi dan kewajiban pajak | Konfirmasi + jumlah nominal. Tanpa data pribadi pembayar. Tanpa penautan ke akun pengguna mana pun | Permanen (kewajiban hukum) |
Tentang skenario terburuk:
Semua pendapatan kami legal dan dicatat melalui gateway pembayaran. Kami melunasi pajak yang sesuai. Namun anonimitas klien tetap total dari sisi kami.
2. Data yang TIDAK kami miliki di server
Inilah yang mendefinisikan kami. Server Solo2 tidak menyimpan atau memiliki akses ke
- Pesan Anda
- File Anda
- Daftar kontak Anda
- Riwayat obrolan Anda
- Lokasi Anda
- Analitik penggunaan
- Data perangkat
- Metadata komunikasi
Tentang alamat IP Anda
Alamat IP Anda tidak disimpan dalam database mana pun. Dalam catatan teknis server, alamat IP diubah menjadi jejak yang tidak dapat dipulihkan (hash) — berguna untuk mendeteksi pola penyalahgunaan, tetapi mustahil untuk dikembalikan ke IP asli. Catatan ini dihapus secara otomatis setiap 7 hari. Sinyal koneksi, yang mungkin mengandung IP Anda, terenkripsi ujung-ke-ujung — server tidak dapat membacanya.
3. Data di browser Anda (Brankas)
Semua hal berikut hidup secara eksklusif di browser Anda
Data Anda terenkripsi saat diam — bahkan jika seseorang mengakses penyimpanan browser Anda, mereka hanya akan menemukan blok terenkripsi yang tidak dapat dibaca tanpa kata sandi Anda.
Saat Anda mengekspor cadangan, itu dienkripsi dengan perlindungan yang sama (Argon2id + AES-256-GCM). Hanya siapa pun yang mengetahui kata sandi Anda yang dapat mendekripsinya.
| Data | Enkripsi | Kontrol |
|---|---|---|
| Pesan | AES-256-GCM | Anda yang memutuskan kapan menghapusnya |
| File | AES-256-GCM | Anda yang memutuskan kapan menghapusnya |
| Kontak (rekan) | AES-256-GCM | Anda yang memutuskan dengan siapa ingin menautkan |
| Status verifikasi | AES-256-GCM | Anda memverifikasi identitas setiap kontak |
| Indeks pencarian | Terenkripsi dengan token yang tidak dapat dipulihkan (HMAC) | Dibangun kembali dari pesan Anda |
| Status pengiriman | AES-256-GCM | Pesan apa yang telah dikirim |
| Pesan tertunda | AES-256-GCM | Antrean pengiriman saat tidak ada koneksi |
Penyimpanan sementara browser
| Data | Jenis | Durasi | Mengapa |
|---|---|---|---|
| Sesi pengguna | Memori lokal browser (localStorage) | Sampai Anda keluar sesi | Menjaga login Anda |
| Versi aplikasi | Memori lokal browser (localStorage) | Permanen | Mendeteksi pembaruan |
| Preferensi tema | Memori lokal browser (localStorage) | Permanen | Mengingat tema visual Anda |
| Preferensi bahasa | Memori lokal browser (localStorage) | Permanen | Mengingat bahasa Anda |
| Kata sandi (mode keamanan maksimum) | Memori tab (sessionStorage) | Menghilang saat tab ditutup | Menginisialisasi ulang enkripsi jika Anda memuat ulang halaman |
Catatan tentang keamanan di browser
Solo2 berfungsi di dalam browser web Anda. Data terenkripsi Anda terlindungi saat diam, tetapi saat aplikasi dibuka dan menampilkan pesan yang didekripsi di layar, keamanan juga bergantung pada lingkungan Anda:
- Ekstensi browser:
- Browser bersih:
- Aplikasi asli:
4. Koneksi jaringan
Aplikasi Solo2
| Domain | Alasan | Data yang dikirim |
|---|---|---|
| solo2.net | API aplikasi | Autentikasi, pensinyalan, presensi |
| pay.menzuri.com | Gateway pembayaran | Hanya jika Anda melakukan pembayaran |
Tidak ada domain lain.
Bahkan untuk menemukan alamat IP publik perangkat Anda (diperlukan untuk membangun koneksi langsung antar pengguna), kami menggunakan server kami sendiri (secara teknis disebut STUN). Kami tidak mendelegasikannya ke layanan eksternal. Kami yang mengelolanya.
Halaman presentasi
Halaman presentasi (solo2.net) — yang independen dari aplikasi — menggunakan sistem pengukuran anonim yang di-host di server kami sendiri di Jerman:
| Domain | Alasan | Data yang dikirim |
|---|---|---|
| stats.menzuri.com | Pengukuran kunjungan anonim | Halaman dikunjungi (tanpa cookie, tanpa IP, tanpa identifikasi) |
Sistem ini tidak memasang cookie, tidak mencatat alamat IP Anda, tidak mengidentifikasi Anda, tidak melacak Anda di antara kunjungan, dan tidak membagikan data dengan pihak ketiga. Aplikasi Solo2 tidak memiliki sistem ini maupun jenis analitik lainnya.
5. Menghapus data Anda
Ada dua tindakan yang berbeda, dan penting bagi Anda untuk mengetahui perbedaannya:
Menghapus data lokal
Dari pengaturan aplikasi, Anda memiliki dua opsi penghapusan lokal:
- Hapus data saya
- Reset darurat
Dalam kedua kasus tersebut, akun Anda di server tetap ada.
Pemulihan otomatis antar perangkat
Jika Anda kehilangan data di satu perangkat dan memiliki perangkat lain yang terhubung, Solo2 mendeteksi situasi tersebut dan menawarkan untuk memulihkan identitas dan brankas Anda secara otomatis. Pemulihan dikirim terenkripsi (Argon2id) melalui koneksi langsung antar perangkat Anda — tanpa melalui server.
Menghapus akun Anda dari server
- Dihapus semuanya
- Penghapusan bersifat atomik
- Catatan pembayaran sengaja dipisahkan
- Pengidentifikasi dalam log server adalah jejak yang tidak dapat dipulihkan: log tidak dapat dikaitkan dengan akun Anda setelah dihapus.
- Brankas di browser Anda tidak dihapus secara otomatis dengan tindakan ini (kami tidak memiliki akses ke browser Anda). Untuk menghapusnya, jalankan penghapusan nuklir terlebih dahulu atau bersihkan data situs di browser Anda.
5b. Kunci master dan 24 kata Anda
Saat membuat akun di Solo2, kunci master dihasilkan dengan entropi nyata 256 bit (sama dengan yang digunakan Bitcoin). Kunci ini direpresentasikan sebagai 24 kata yang hanya Anda yang mengetahuinya. Kata sandi Anda membungkus kunci ini untuk menyimpannya terenkripsi di server — server tidak dapat membacanya.
Ini berarti Anda memiliki dua kunci independen
Algoritma yang tepat (dapat diverifikasi)
Generasi: CSPRNG
Bagaimana kunci master Anda dilindungi
| Lapisan | Apa itu | Di mana ia hidup |
|---|---|---|
| Kata sandi | Akses ke server. Membungkus kunci master Anda | Di memori Anda + hash di server |
| Rahasia perangkat | Faktor kedua yang tidak terlihat, dihasilkan secara otomatis saat penginstalan | Di perangkat Anda (tidak dapat diekstrak) |
| Kunci master (24 kata) | Entropi nyata 256 bit, dihasilkan secara acak. Tingkat Bitcoin (BIP39) | Di selembar kertas yang Anda simpan + dibungkus di server |
| Rotasi kunci | Setiap pesan menggunakan kunci unik yang dihancurkan setelahnya (Double Ratchet) | Otomatis, transparan |
Jika Anda mengubah kata sandi Anda
Mengubah kata sandi Anda dilakukan secara instan. Hanya membungkus ulang kunci master Anda dengan kata sandi baru — identitas Anda tidak berubah, brankas Anda tidak dienkripsi ulang, kontak Anda tidak terpengaruh, dan 24 kata Anda tetap sama. Ini adalah operasi yang berlangsung dalam hitungan milidetik.
Pemulihan
Jika Anda kehilangan kata sandi, Anda dapat mengakses brankas Anda dengan 24 kata Anda — tanpa memerlukan server. Jika Anda kehilangan 24 kata Anda, Anda dapat login dengan kata sandi Anda dan server mengembalikan kunci terbungkus Anda. Jika Anda kehilangan keduanya, data Anda tidak dapat dipulihkan. Seperti pada Bitcoin, itulah keamanan berdasarkan desain.
6. Apa yang terjadi jika seseorang mengakses server tanpa otorisasi
Jika penyerang mendapatkan akses penuh ke server Solo2, mereka akan mendapatkan:
- Nama pengguna dan nama publik
- Kode penautan
- Kunci publik (tidak berguna tanpa kunci pribadi, yang ada di browser Anda)
- Jejak kata sandi (tidak berguna tanpa serangan brute force yang sangat mahal berkat Argon2id)
- Jejak token sesi (tidak berguna tanpa token asli)
- Permintaan penautan tertunda (ID internal, kedaluwarsa dalam 3 hari)
- Jenis akun, saldo, dan tanggal pendaftaran
- Catatan pembayaran (tanpa bisa menautkannya ke pengguna tertentu)
Apa yang TIDAK akan didapatkan:
- Tidak ada pesan (tidak pernah ada di server)
- Tidak ada file (tidak pernah ada di server)
- Tidak ada daftar kontak (tidak pernah ada di server)
- Tidak ada riwayat obrolan (tidak pernah ada di server)
- Tidak ada kunci enkripsi pribadi (hidup di browser Anda)
- Tidak ada alamat IP (tidak dicatat)
7. Komitmen kami
Manifes ini akan diperbarui pada setiap perubahan relevan dalam pengelolaan data. Jika kami menambahkan kolom baru ke database, itu akan muncul di sini. Jika kami menghapus sesuatu, juga demikian.
Versi yang berlaku selalu di halaman ini.