Herkos

Política de seguretat

Herkos gestiona claus privades i missatges xifrats, així que ens prenem seriosament els informes de seguretat i preferim saber d'un problema aviat que no pas tard.

Com informar d'una vulnerabilitat

Si us plau, no obris una incidència pública per a problemes de seguretat.

Informa'n en privat per correu a security@herkos.email.

Coses útils per incloure: quin és el problema, com reproduir-lo, quina plataforma i quina versió has provat, i què podria aconseguir un atacant. Una prova de concepte ajuda molt.

No incloguis mai el teu nsec, la teva clau secreta ni el secret del teu bunker en un informe.

Intentem confirmar la recepció dels informes en pocs dies. Com que Herkos és un projecte petit, et demanem que deixis un temps raonable per a una correcció abans de fer-ho públic. T'esmentarem amb molt de gust a l'avís de seguretat, tret que prefereixis el contrari.

Què entra en l'abast

L'app Herkos mateixa: el tractament i l'emmagatzematge de les claus, el xifratge i el desxifratge dels missatges (incloses les comprovacions del remitent de NIP-59 i l'aïllament de la còpia oculta (Bcc) a local_packages/nostr_mail), el bloqueig de l'app, la comunicació amb relays i bridges, el tractament dels adjunts, i el procés de compilació i publicació. Per a Herkos Drive, també el seu paquet de protocol (packages/herkos_drive_protocol) i la pàgina que n'obre els enllaços (herkos.app/f/); vegeu la seva pròpia secció més avall.

Què queda fora de l'abast

Limitacions conegudes, dites clarament

Són decisions de disseny amb els seus costos, no vulnerabilitats. Preferim escriure-les que no pas que algú les descobreixi pel camí dolent:

Herkos Local Relay: què protegeix i què no

Herkos Local Relay guarda al teu dispositiu els esdeveniments de les teves aplicacions, també els privats (esborranys, llistes privades, els sobres que reps). Això és el que els protegeix i on és el límit, plataforma per plataforma. Els problemes de seguretat del relay s'informen igual que els altres (més amunt).

La base de dades va xifrada sencera, el diari inclòs (SQLite3 Multiple Ciphers, AEGIS-256). La clau són 32 bytes aleatoris creats al dispositiu i desats a l'emmagatzematge segur del sistema: el Keystore a Android, DPAPI a Windows, el clauer (libsecret) a Linux. No porta cap contrasenya teva, perquè el relay ha d'arrencar sol. Sense la clau, el relay no arrenca i ho diu: no obre ni crea mai una base sense xifrar, i no esborra mai la que no pot obrir.

Si… Android Windows Linux
algú copia el fitxer de la base (una còpia de seguretat, una carpeta sincronitzada, una imatge del disc) Protegit Protegit Protegit
et roben l'aparell o el disc apagat Protegit: la clau és al Keystore Protegit, tret que sàpiga la contrasenya de la teva sessió de Windows: DPAPI protegeix la clau amb ella Protegit, tret que sàpiga la contrasenya del teu clauer (gairebé sempre, la de la teva sessió)
un altre compte d'usuari del mateix aparell Protegit Protegit: DPAPI és per usuari Protegit: el clauer és per usuari
una altra aplicació o programa que funciona amb el teu usuari Protegit: Android aïlla cada aplicació i el Keystore només dona la clau al relay No: DPAPI xifra per usuari, no per aplicació; un programa que s'executa com tu pot demanar la clau igual que el relay No: el clauer de la teva sessió no separa unes aplicacions de les altres
un telèfon amb root, o una eina que executa codi com l'aplicació No — —
algú té l'aparell desbloquejat a la mà Només amb el PIN o l'empremta del relay, si els poses Igual Igual
algú llegeix la memòria del relay mentre funciona No No No

A l'escriptori, el límit de DPAPI i del clauer és el de qualsevol programa: protegeixen contra altres usuaris i contra qui s'emporta el disc, no contra un programa maliciós que ja s'executa amb el teu usuari. Si et preocupa aquest cas, el que protegeix és el xifratge del disc del sistema (BitLocker, LUKS) juntament amb no executar programes en què no confies. A Linux sense clauer (sense Secret Service), el relay no arrenca i ho explica: no guarda mai la clau en clar.

Qui hi entra, al mateix dispositiu. El relay només escolta a 127.0.0.1, i qualsevol aplicació del dispositiu, o una pàgina web del navegador, pot arribar a aquesta adreça. Per això:

El que no protegeix, aquí:

La xarxa local, si l'actives (ve desactivada):

El que no protegeix, aquí: qui és a la mateixa xarxa veu que l'aparell té un port obert i quant trànsit hi passa, però no què hi passa; i si l'aparell té una adreça pública (sense router entremig), aquest port es veu des d'Internet, encara que continuï demanant una clau de la teva llista.

Còpies. La còpia xifrada porta contrasenya (scrypt i XChaCha20-Poly1305): sense ella ningú no la pot obrir, tampoc nosaltres. L'exportació JSONL no està xifrada i conté els teus esdeveniments privats en clar; l'aplicació t'avisa.

El bloqueig (PIN, i empremta o Windows Hello) es demana en obrir l'aplicació, després de 30 segons fora, i per aprovar un aparellament. És una barrera de comoditat, com a Mail: no xifra res. A Android, amb PIN no hi ha captures de pantalla ni miniatura a les aplicacions recents, i des d'Android 12 cap finestra d'una altra aplicació no es pot posar damunt de la del relay mentre la fas servir.

Herkos Drive: què protegeix i què no

Herkos Drive guarda els teus fitxers en servidors Blossom i la llista dels teus fitxers i carpetes en relays de Nostr, tot xifrat al teu dispositiu. Això és el que els protegeix i on són els límits. El detall complet és a spec-drive.md i al model d'amenaces amenazas-drive.md, a packages/herkos_drive_protocol/; el que veu cada relay i cada servidor és a la política de privacitat. Els problemes de seguretat de Drive s'informen igual que els altres (més amunt).

El que els relays i els servidors no poden fer:

El que no protegeix:

Com es comprova. Dues revisions internes contra el model d'amenaces (2 de novembre de 2026) i les seves correccions; proves del que mostra cada esdeveniment i cada bloc; fuzzing de cada lector del que ve de fora (esdeveniments, segells, manifestos, enllaços, còpies de seguretat). Encara no hi ha cap auditoria externa: n'hi ha una de prevista abans de la beta pública, i el seu informe es publicarà sencer. Drive encara és en desenvolupament.

Versions amb suport

Les correccions de seguretat s'apliquen a l'última versió publicada. Tenint en compte la mida del projecte, les versions anteriors no es mantenen: actualitza abans d'informar d'un problema.