Temeljno načelo
Poslužitelj Solo2 je potpuno slijep. No sabe con quién hablas, qué dices, ni qué archivos compartes. Ni siquiera las señales técnicas que establecen la conexión entre dispositivos son legibles para el servidor — viajan cifradas de extremo a extremo.
Tvoje poruke putuju izravno između uređaja, šifrirane od kraja do kraja. Tvoja povijest razgovora živi šifrirana u tvom pregledniku, nikada na našem poslužitelju.
Ključevi šifriranja automatski se rotiraju sa svakom porukom. Svaka poruka šifrirana je jedinstvenim ključem koji se odmah nakon toga odbacuje. To se tehnički naziva Double Ratchet, y significa que incluso si alguien obtuviese una clave, solo podría leer un único mensaje — no la conversación. Además, la seguridad se restaura automáticamente tras cada turno de comunicación: una clave comprometida se vuelve inútil en cuanto se intercambia el siguiente mensaje.
Kada izravna veza između uređaja nije moguća (na primjer, zbog mrežnih ograničenja), koristi se zrcalni poslužitelj (tehnički nazvan TURN): podaci se odbijaju s jednog uređaja na drugi, ali zrcalo nije svjesno onoga što odbija — sve putuje šifrirano od kraja do kraja i poslužitelj to ne može pročitati. Osim toga, svi paketi dopunjeni su na jednoličnu veličinu kako bi se spriječilo da promatrač može zaključiti informacije analizom veličine ili učestalosti prometa.
U aplikaciji uvijek možeš vidjeti koju vrstu veze koristiš — directa o a través del servidor espejo — y actuar en consecuencia.
Tvoj glavni ključ se generira nasumično s 256 bitova stvarne entropije — ista razina kao Bitcoin. Al crear tu cuenta, Solo2 genera una clave única que se representa como 24 palabras. Tu contraseña protege el acceso al servicio. Tus 24 palabras son la llave de tus datos. Son dos llaves diferentes para dos puertas diferentes.
Čak i ako naš server nestane, tvoji podaci preživljavaju. Sa svojih 24 riječi možeš pristupiti svom lokalnom sefu bez veze sa serverom. Tvoji podaci su tvoji — stvarno.
1. Podaci koje IMAMO na poslužitelju
1.1 Tvoj korisnički račun
Ovo su sva polja koja postoje u tvom zapisu. Nema nikakvih drugih.
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Korisničko ime | Kako bi se mogao prijaviti | Čisti tekst (javno je po dizajnu) | Dok ne izbrišeš svoj račun |
| Lozinka | Autentifikacija | Zaštićena algoritmom Argon2id (preporučenim od OWASP, otpornim na napade sa specijaliziranim hardverom). Nikada ne pohranjujemo tvoju stvarnu lozinku, solo una huella matemática irreversible | Dok ne izbrišeš svoj račun |
| Javno ime | Kako bi te tvoji kontakti prepoznali | Čisti tekst (biraš ga sam) | Dok ga ne promijeniš ili izbrišeš račun |
| Kod povezivanja | Tvoja adresa unutar Solo2 — poput telefonskog broja. To je ono što dijeliš s nekim kako bi te pronašao i poslao zahtjev za povezivanje | Čisti tekst, jedinstven (~10 znakova) | Dok ne izbrišeš svoj račun |
| Javni ključ | Kriptografski niz koji aplikacija automatski koristi za šifriranje podataka koji ti se šalju. Nitko ga ne koristi izravno — aplikacija se za to brine. Kod povezivanja služi da te pronađu; javni ključ služi da šifriraju za tebe | Javni ključ (44 znaka). Može biti poznat bez rizika — samo tvoj privatni ključ, koji živi u tvom pregledniku, može dešifrirati | Dok ne izbrišeš svoj račun |
| Financijski saldo | Novac koji si dodao na svoj račun | Broj (u centima) | Dok ne izbrišeš svoj račun |
| Bonus saldo | Primljeni bonusi (pozivnice, promocije, darovi). Troši se prije financijskog salda | Broj (u centima) | Dok ne izbrišeš svoj račun |
| Vrsta računa | Tvoj trenutni plan (probni, standardni, zlatni, platinasti) | Tekst | Dok se ne promijeni ili izbrišeš račun |
| Datum kraja probnog razdoblja | Kada završava tvoje besplatno probno razdoblje | Datum | Dok ne izbrišeš svoj račun |
| Datum i vrijeme registracije | Kada si stvorio svoj račun | Potpuni datum i vrijeme (timestamp) | Trajno |
| Posljednja aktivnost | Kada si zadnji put koristio aplikaciju | Datum i vrijeme | Ažurira se sa svakim korištenjem |
| Interni identifikatori | Kodovi koje sustav interno koristi za referenciranje na tebe | Neprozirni identifikatori, bez značenja izvan sustava | Dok ne izbrišeš svoj račun |
| Verzija sigurnosti | Koja verzija algoritma zaštite lozinke je korištena | Interni broj | Dok ne izbrišeš svoj račun |
| Statusne zastavice | Tehničke zastavice (je li se tvoj saldo promijenio, imaš li aktivan način maksimalne sigurnosti) | 1 bajt — ekvivalent jednog slova. Ništa više ne stane | Dok ne izbrišeš svoj račun |
Da stekneš predodžbu o volumenu: tvoj zapis zauzima oko 250 fiksnih znakova (identifikatori, datumi, ključevi, salda) plus duljinu imena koja odabereš. Lozinka ne utječe: uvijek se pohranjuje kao otisak fiksne veličine. Na primjer, ako se zoveš «Ivan» i tvoje javno ime je «Ivan Horvat», sve što zauzimаš na našem poslužitelju je oko 264 znaka — manje od ovog odlomka.
1.2 Aktivne sesije
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Token sesije | Održavanje aktivne prijave | Pohranjujemo samo nepovratni otisak (hash), ne izvorni token | 24 sata máximo, luego se borra automáticamente |
| Datum posljednje aktivnosti | Istjecanje neaktivnih sesija | Datum i vrijeme | Briše se sa sesijom |
1.3 Zahtjevi za povezivanje
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| ID podnositelja | Da znamo tko je poslao zahtjev | Interni ID | 3 dana máximo. Si no se responde, se elimina automáticamente |
| ID primatelja | Da znamo kome je namijenjen | Interni ID | Isto kao podnositelj |
| Status | Na čekanju / prihvaćen / odbijen | Tekst | Briše se nakon rješavanja ili isteka |
Važna napomena: Una vez aceptada la vinculación, el servidor no guarda la relación. Tu lista de contactos existe solo en tu navegador, cifrada.
1.4 Pozivnice
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Kod pozivnice | Jedinstvena poveznica za pozivanje nekoga | Nasumični token | Dok se ne iskoristi ili istekne (30 dana) |
| ID pošiljatelja | Da znamo tko je pozvao | Interni ID | Trajno (računovodstvo) |
| Iznos dara | Saldo darovano s pozivnicom | Broj | Trajno (računovodstvo) |
1.5 Push pretplate (obavijesti)
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Adresa obavijesti | Slanje obavijesti u tvoj preglednik | URL pružatelja preglednika (Google, Mozilla ili Apple) | Dok ne isključiš obavijesti ili izbrišeš račun |
| Ključevi push šifriranja | Šifriranje obavijesti da je samo tvoj preglednik može pročitati | Standard Web Push | Isto kao adresa |
1.6 Povratne informacije (podrška)
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Tvoja poruka | Kako bismo ti mogli pomoći | Čisti tekst | Dok je ne obradimo |
| Tvoj ID korisnika | Da znamo tko treba pomoć | Interni ID | Isto kao poruka |
1.7 Signalizacija veze (efemerna)
Kako bi se dva uređaja mogla izravno spojiti, moraju razmijeniti tehničke signale za uspostavu veze (protokol WebRTC). Ti signali kratko prolaze kroz naš poslužitelj, ali šifrirani od kraja do kraja — el servidor solo transporta un bloque opaco que no puede descifrar.
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Signali veze | Uspostava izravne veze između uređaja | Šifrirani od kraja do kraja javnim ključem primatelja. Poslužitelj ih ne može pročitati ni izmijeniti | 60 sekundi máximo, luego se borran. En memoria, nunca en disco |
1.8 Zrcalni poslužitelj (relej TURN)
Ako izravna veza nije moguća, koristi se zrcalni poslužitelj: podaci njime prolaze kao svjetlo kroz zrcalo — odbijaju se s jedne strane na drugu, ali zrcalo nije svjesno onoga što odbija. Svi paketi dopunjeni su na jednoličnu veličinu kako promatrač ne bi mogao razlikovati poruku od jednostavnog otkucaja veze.
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Pristupna vjerodajnica | Autentifikacija na zrcalnom poslužitelju | Tvoj identitet pretvara se u nepovratni otisak — zrcalni poslužitelj ne zna tko si | 24 sata, luego se regenera |
1.9 Obrađena plaćanja
Plaćanja su jedina točka gdje postoji stvarno trenje s anonimnošću. Budimo pošteni u vezi s tim.
Kada se registriraš na Solo2, biraš korisničko ime (može biti izmišljeno), lozinku i javno ime (također izmišljeno, ako želiš). Nijedan podatak te ne veže za stvarnu osobu. Ali ako izvrišiš plaćanje karticom, tvoja financijska institucija zna tko si.
Ono što mi primamo od platnog sustava je isključivo potvrda i iznos. Ne primamo niti pohranjujemo ime vlasnika, broj kartice, broj osobne iskaznice niti ikakve osobne podatke platitelja. Radi se o malim iznosima — pravno jednaki gotovinskoj potvrdi, poput kupnje lizalice na kiosku: kioskar ne registrira osobnu iskaznicu kupca.
Osim toga, evidencija plaćanja je namjerno odvojena de tu cuenta de usuario. No existe ningún campo en nuestra base de datos que cruce un ticket de cobro con una cuenta concreta.
| Podatak | Zašto | Zaštita | Trajanje |
|---|---|---|---|
| Evidencija plaćanja | Računovodstvo i porezne obveze | Potvrda + iznos. Bez osobnih podataka platitelja. Bez povezanosti s bilo kojim korisničkim računom | Trajno (zakonska obveza) |
O najgorem mogućem scenariju: Incluso con una orden judicial, la cadena de rastreo sería: tu tarjeta → tu banco → la pasarela de pago → nuestro ticket de cobro. Pero nuestro ticket no contiene ningún identificador de usuario. No es un descuido: es una decisión de diseño. No existe ningún campo ni índice en nuestra base de datos que relacione un pago con una cuenta. La única vía teórica sería una correlación temporal — si fueses el único pago en un periodo dado — pero incluso en ese caso extremo, la cuenta no contiene información que identifique a la persona real: el nombre de usuario y el nombre público pueden ser totalmente inventados.
Svi naši prihodi su legalni i ulaze proknjiženi kroz platni sustav. Podmirujemo pripadajuće poreze. Ali anonimnost klijenta s naše strane je potpuna.
2. Podaci koje NEMAMO na poslužitelju
To nas definira. Poslužitelj Solo2 ne pohranjuje niti ima pristup:
- Tvojim porukama — Viajan directamente entre dispositivos, cifrados de extremo a extremo. El servidor nunca los ve.
- Tvojim datotekama — Igual que los mensajes: directos y cifrados.
- Tvom popisu kontakata — Existe solo en tu navegador, cifrada en La Bóveda.
- Tvojoj povijesti razgovora — Solo en tu navegador, cifrado.
- Tvojoj lokaciji — Los GeoSellos se calculan en tu dispositivo y se envían directamente al destinatario. El servidor nunca los procesa.
- Analitici korištenja — La aplicación Solo2 no tiene ningún sistema de analíticas, ni cookies de seguimiento, ni scripts de terceros.
- Podacima o uređaju — No recogemos modelo, resolución, sistema operativo, ni ninguna característica de tu dispositivo.
- Metapodacima komunikacije — No sabemos con quién hablas, cuándo, con qué frecuencia, ni durante cuánto tiempo.
O tvojoj IP adresi
Ne bilježimo tvoju IP adresu. Ni aplikacija ni web poslužitelj ne pohranjuju IP adrese u svoje logove. Signali veze, koji bi mogli sadržavati tvoju IP, šifrirani su od kraja do kraja — poslužitelj ih ne može pročitati.
3. Podaci u tvom pregledniku (Trezor)
Sve što slijedi živi isključivo u tvom pregledniku, cifrado con AES-256-GCM (un estándar de cifrado de grado militar utilizado por gobiernos y entidades financieras). La clave se genera a partir de tu contraseña mediante Argon2id (el algoritmo más resistente disponible contra ataques con hardware especializado), y este proceso ocurre enteramente dentro de tu navegador. Tu contraseña nunca se envía al servidor.
Tvoji podaci šifrirani su u mirovanju — čak i ako bi netko pristupio pohrani tvog preglednika, pronašao bi samo nečitljive šifrirane blokove bez tvoje lozinke.
Kada izvozиш sigurnosnu kopiju, šifrirana je istom zaštitom (Argon2id + AES-256-GCM). Samo tko zna tvoju lozinku može je dešifrirati.
| Podatak | Šifriranje | Kontrola |
|---|---|---|
| Poruke | AES-256-GCM | Ti odlučuješ kada ih izbrisati |
| Datoteke | AES-256-GCM | Ti odlučuješ kada ih izbrisati |
| Kontakti (parovi) | AES-256-GCM | Ti odlučuješ koga povezati |
| Status verifikacije | AES-256-GCM | Ti verificiraš identitet svakog kontakta |
| Indeks pretraživanja | Šifriran nepovratnim tokenima (HMAC) | Rekonstruira se iz tvojih poruka |
| Status isporuke | AES-256-GCM | Koje su poruke isporučene |
| Poruke na čekanju | AES-256-GCM | Red slanja kada nema veze |
Privremena pohrana preglednika
| Podatak | Vrsta | Trajanje | Zašto |
|---|---|---|---|
| Korisnička sesija | Lokalna memorija preglednika (localStorage) | Dok se ne odjaviš | Održavanje prijave |
| Verzija aplikacije | Lokalna memorija preglednika (localStorage) | Trajno | Otkrivanje ažuriranja |
| Preferencija teme | Lokalna memorija preglednika (localStorage) | Trajno | Pamćenje tvoje vizualne teme |
| Preferencija jezika | Lokalna memorija preglednika (localStorage) | Trajno | Pamćenje tvog jezika |
| Lozinka (način maksimalne sigurnosti) | Memorija kartice (sessionStorage) | Nestaje pri zatvaranju kartice | Reinicijalizacija šifriranja pri osvježavanju stranice |
Napomena o sigurnosti u pregledniku
Solo2 radi unutar tvog web preglednika. Tvoji šifrirani podaci zaštićeni su u mirovanju, ali kada je aplikacija otvorena i prikazuje ti dešifrirane poruke na zaslonu, sigurnost ovisi i o tvom okruženju:
- Proširenja preglednika: Una extensión maliciosa con acceso a las páginas que visitas podría, en teoría, leer lo que se muestra en pantalla. Recomendamos utilizar el menor número posible de extensiones y solo de fuentes de confianza.
- Čist preglednik: Un navegador actualizado y sin extensiones innecesarias es tu mejor aliado.
- Izvorna aplikacija: En el futuro, ofreceremos una aplicación de escritorio (Windows, Mac, Linux) que proporcionará un nivel adicional de aislamiento al no depender del entorno del navegador.
4. Mrežne veze
Aplikacija Solo2
| Domena | Razlog | Poslani podatak |
|---|---|---|
| solo2.net | API aplikacije | Autentifikacija, signalizacija, prisutnost |
| pay.menzuri.com | Platni sustav | Samo ako izvršavaš plaćanje |
Nijedna druga domena. Ningún script externo. Ningún CDN de seguimiento. La política de seguridad de contenido (CSP) del servidor lo impone técnicamente: cualquier intento de cargar recursos de otros dominios es bloqueado por el navegador.
Čak i za otkrivanje javne IP adrese tvog uređaja (potrebne za uspostavu izravnih veza između korisnika), koristimo vlastiti poslužitelj (tehnički nazvan STUN). Ne delegiramo to vanjskim servisima. Upravljamo njime sami.
Stranica za prezentaciju
Stranica za prezentaciju (solo2.net/info) — koja je neovisna o aplikaciji — koristi anonimni sustav mjerenja smješten na našim vlastitim poslužiteljima u Njemačkoj:
| Domena | Razlog | Poslani podatak |
|---|---|---|
| stats.menzuri.com | Anonimno mjerenje posjeta | Posjećena stranica (bez kolačića, bez IP-a, bez identifikacije) |
Ovaj sustav ne instalira kolačiće, ne bilježi tvoju IP adresu, ne identificira te, ne prati te između posjeta i ne dijeli podatke s trećim stranama. Aplikacija Solo2 nema ovaj sustav niti ikakvu drugu vrstu analitike.
5. Brisanje tvojih podataka
Postoje dvije različite radnje i važno je da znaš razliku:
Brisanje lokalnih podataka
U postavkama aplikacije imaš dvije mogućnosti lokalnog brisanja:
- Izbriši moje podatke — Elimina solo tus datos (identidad, bóveda, sesión) sin afectar a otros usuarios que usen el mismo navegador.
- Hitni reset — Borra absolutamente todo: datos de todos los usuarios, Service Worker, caché y claves criptográficas. Requiere doble confirmación.
U oba slučaja, tvoj račun na poslužitelju i dalje postoji. Puedes volver a iniciar sesión, pero tus datos locales se habrán perdido irreversiblemente. Al hacerlo, se genera una identidad criptográfica completamente nueva: quien tuviese tu clave pública anterior ya no puede cifrar nada para ti. Si un contacto anterior quiere reconectarse, deberá solicitarte vinculación de nuevo, y tú decides si la aceptas o no.
Automatski oporavak između uređaja
Ako izgubiš podatke na jednom uređaju i imaš drugi povezan, Solo2 detektira situaciju i nudi ti automatski oporavak tvog identiteta i trezora. Oporavak putuje šifriran (Argon2id) izravnom vezom između tvojih uređaja — bez prolaska kroz poslužitelj.
Brisanje računa s poslužitelja
- Brišu se svi las filas en la base de datos asociadas a tu ID: cuenta, sesiones, solicitudes, invitaciones, suscripciones push, feedback.
- Brisanje je atomično (todo o nada): o se borra todo o no se borra nada.
- Evidencije plaćanja namjerno ostaju odvojene de tu identidad — existen por obligación legal, pero no se puede trazar un pago a tu persona.
- Identifikatori u logovima poslužitelja su nepovratni otisci: ne može se povezati log s tvojim računom nakon brisanja.
- Trezor u tvom pregledniku ne briše se automatski ovom radnjom (nemamo pristup tvom pregledniku). Da ga izbrišeš, najprije izvrši hitni reset ili očisti podatke stranice u pregledniku.
5b. Tvoj glavni ključ i tvojih 24 riječi
Prilikom kreiranja računa u Solo2, generira se glavni ključ s 256 bitova stvarne entropije (iste koju koristi Bitcoin). Ovaj ključ je predstavljen kao 24 riječi koje samo ti poznaješ. Tvoja lozinka omotava ovaj ključ kako bi bio šifrirano pohranjen na serveru — server ga ne može pročitati.
To znači da imaš dva nezavisna ključa: tu contraseña (para conectar al servidor y recuperar tu clave envuelta) y tus 24 palabras (para acceder directamente a tus datos sin servidor). Si pierdes una, la otra te protege. Si pierdes ambas, tus datos son irrecuperables — como en Bitcoin.
Točni algoritmi (provjerljivo)
Generiranje: CSPRNG del sistema operativo (crypto.getRandomValues, 256 bits). Cifrado de la clave maestra: Argon2id (OWASP) para derivar la clave de envoltorio + AES-256-GCM (cifrado autenticado) para protegerla. Identidad: Ed25519 (firma) + X25519 (intercambio). Mensajes: Double Ratchet con ChaCha20-Poly1305. Al cerrar la pestaña del navegador, todos los datos sensibles desaparecen de la memoria.
Kako je zaštićen tvoj glavni ključ
| Layer | What it is | Where it lives |
|---|---|---|
| Password | Pristup serveru. Omotava tvoj glavni ključ | U tvom sjećanju + hash na serveru |
| Device secret | Invisible second factor, generated automatically on install | On your device (non-extractable) |
| Glavni ključ (24 riječi) | 256 bitova stvarne entropije, generirano nasumično. Razina Bitcoin (BIP39) | Na papiru koji ti čuvaš + omotan na serveru |
| Key rotation | Each message uses a unique key that is destroyed after (Double Ratchet) | Automatic, transparent |
If you change your password
Promjena lozinke je trenutna. Tvoj glavni ključ se samo ponovno omotava novom lozinkom — tvoj identitet se ne mijenja, sef se ne šifrira ponovno, tvoji kontakti nisu pogođeni, a tvojih 24 riječi ostaju iste. To je operacija od milisekundi.
Recovery
Ako izgubiš lozinku, možeš pristupiti sefu sa svojih 24 riječi — bez servera. Ako izgubiš 24 riječi, možeš se prijaviti lozinkom i server ti vraća omotani ključ. Ako izgubiš oboje, tvoji podaci su nepovratno izgubljeni. Kao u Bitcoin — to je sigurnost po dizajnu.
6. Što se događa ako netko neovlašteno pristupi poslužitelju
Ako bi napadač dobio potpuni pristup poslužitelju Solo2, dobio bi:
- Korisnička imena i javna imena
- Kodove povezivanja
- Javne ključeve (beskorisne bez privatnog ključa, koji je u tvom pregledniku)
- Otiske lozinki (beskorisne bez izuzetno skupog napada grubom silom zahvaljujući Argon2id)
- Otiske tokena sesija (beskorisne bez izvornog tokena)
- Zahtjeve za povezivanje na čekanju (interni ID-ovi, istječu za 3 dana)
- Vrstu računa, salda i datume registracije
- Evidencije plaćanja (bez mogućnosti povezivanja s konkretnim korisnikom)
Što NE bi dobio:
- Nijednu poruku (nikada nisu bile na poslužitelju)
- Nijednu datoteku (nikada nisu bile na poslužitelju)
- Nijedan popis kontakata (nikada nije bio na poslužitelju)
- Nijednu povijest razgovora (nikada nije bila na poslužitelju)
- Nijedan privatni ključ šifriranja (žive u tvom pregledniku)
- Nijednu IP adresu (ne bilježe se)
7. Naša obveza
Ovaj manifest ažurirat će se sa svakom relevantnom promjenom u upravljanju podacima. Ako dodamo novo polje u bazu podataka, pojavit će se ovdje. Ako nešto uklonimo, također.
Važeća verzija je uvijek ova stranica.