Sari la conținut
TapSign

Securitate

Cum rămân documentele private

Explicăm cum rămân documentele sub controlul tău: ce se întâmplă pe dispozitivul tău, ce ajunge la noi și cum poți verifica fiecare pas.

Pe scurt

Documentul nu se încarcă nicăieri ca să fie semnat

Semnarea are loc în întregime pe dispozitivul tău. Nu există niciun pas de încărcare, nicio coadă de așteptare și niciun proces care să deschidă fișierul. Singurul lucru care pleacă vreodată este un document pe care îl plasezi, intenționat, în seif, iar acela este criptat pe dispozitiv înainte să plece. Nu avem un server care să vadă conținutul documentelor.

Cheia privată nu părăsește cardul

Cheia rămâne în token sau în cartea electronică de identitate și nu poate fi scoasă de acolo. Aplicația trimite cipului o amprentă și primește înapoi o semnătură. Semnătura o face cipul. Noi nu avem cheia.

PIN-ul merge la cip, nicăieri altundeva

Ajunge direct la card, pe conexiunea locală. Nu îl salvăm, nu îl păstrăm în cache și nu apare în niciun jurnal.

Contul nu este obligatoriu

Aplicația semnează și fără cont. Contul servește doar la sincronizarea setărilor între dispozitive și poți folosi TapSign fără limită de timp și fără să creezi unul.

Ce se întâmplă când semnezi

  1. 1

    Se calculează amprenta documentului

    Aplicația calculează o amprentă SHA-256 peste zonele din PDF pe care semnătura urmează să le acopere. De aici încolo se lucrează doar cu amprenta.

  2. 2

    Se construiesc atributele

    Se asamblează o structură CMS care conține amprenta, momentul semnării și, acolo unde certificatul poate fi citit dinainte, un atribut ESS signing-certificate-v2 care leagă semnătura de certificatul exact utilizat.

  3. 3

    Cipul semnează

    Atributele sunt amprentate și trimise tokenului sau cardului, care face semnătura în interiorul lui, după ce PIN-ul îl deblochează. Cheia privată nu ajunge niciodată în aplicație.

  4. 4

    Rezultatul se scrie înapoi

    Semnătura se adaugă la finalul PDF-ului, fără să rescrie nimic. Astfel, orice semnătură pusă înainte rămâne neatinsă, octet cu octet, și poate fi verificată separat.

Cum ajunge o versiune mai nouă pe Windows și Linux

Doar copia pe care o descarci de pe site face asta: zip-ul Windows și pachetul Linux (.deb sau .rpm). Întreabă https://tapsign.eu/api/v1/app/update o dată, când pornesc. Cererea numește platforma, arhitectura, pachetul și versiunea instalată. Nu trimite un document, un certificat sau PIN-ul. Versiunea din Microsoft Store, Flatpak-ul din depozitul nostru și versiunile Apple nu trimit această cerere. Pe acelea le actualizează magazinul sau depozitul din care le-ai instalat. Dacă apeși Mai târziu, mesajul așteaptă până la următoarea deschidere.

https://tapsign.eu/api/v1/app/update

Standarde, spuse exact

PAdES / ETSI.CAdES.detached
Când certificatul poate fi citit înainte de semnare, TapSign emite o semnătură CAdES cu signing-certificate-v2 și subfiltrul ETSI. Altfel revine la adbe.pkcs7.detached, pe care Adobe îl acceptă, dar care nu este PAdES. Aplicația nu revendică nivelul superior atunci când nu îndeplinește cerințele.
Algoritmi de amprentă și de semnătură
SHA-256 peste tot. RSA PKCS#1 v1.5 sau ECDSA, în funcție de cheia de pe cardul tău.
Validare pe termen lung
Încă neimplementată. TapSign nu include deocamdată marcă temporală de încredere sau informații de revocare, deci semnăturile sunt B-B, nu B-LT sau B-LTA. Preferăm să spunem asta decât să lăsăm impresia că avem mai mult decât avem.
Verificare
Aplicația recalculează amprenta, verifică semnătura CMS cu certificatul din fișier și raportează dacă semnătura acoperă tot documentul. Nu verifică deocamdată dacă certificatul a fost revocat și nu construiește lanțul de încredere până la listele europene.

Unde contează o semnătură

O semnătură PAdES este un fapt criptografic: oricine, oriunde în lume, poate deschide fișierul în Adobe Acrobat și o poate verifica. Recunoașterea juridică este o chestiune separată și ține de fiecare țară. În Uniunea Europeană și în Spațiul Economic European, eIDAS dă semnăturii calificate - cea făcută cu un certificat calificat pe un token de la un furnizor acreditat - aceleași efecte ca semnăturii olografe. În rest, recunoașterea urmează legislația locală, care în majoritatea țărilor acceptă semnăturile electronice, dar după propriile reguli.

Datele conținute de un cont

Contul are rolul de a sincroniza setările între dispozitivele tale. Reține adresa de email, opțional numele și telefonul, dispozitivele de pe care te-ai autentificat și preferințele din aplicație: stilul semnăturii, motivul, localitatea, sufixul fișierului. Nu conține certificate și nu conține chei. Nu are parolă, pentru că preferăm să nu stocăm parole. Intri cu un cod primit pe email, cu o cheie de acces sau cu autentificarea Apple. Singurul lucru pe care un cont îl poate ține în afară de setări este seiful, care rămâne oprit până îl activezi și care e descris în detaliu mai jos.

Seiful și datele care rămân totuși vizibile pentru noi

Seiful este un spațiu opțional pentru documentele pe care vrei să le ai pe toate dispozitivele. Este singura parte din TapSign care îți pune fișierele pe serverul nostru, iar acolo ajung criptate, cu o cheie pe care nu o avem. Mai jos sunt toate informațiile necesare despre el.

Criptate înainte să plece de pe dispozitiv

  • Conținutul fiecărui fișier

    Fiecare fișier primește propria cheie de 32 de octeți și este sigilat cu AES-256-GCM pe dispozitivul tău. Cheia este stocată în manifest, care la rândul lui este criptat cu cheia ta principală. Nu ajunge niciodată lângă fișierul pe care îl deschide și nu există la noi într-o formă pe care să o putem citi.

  • Numele fișierelor și ale folderelor

    Nu există nicăieri în baza noastră de date o coloană pentru un nume, deci nu există date pe care să le putem citi. Numele există doar în interiorul manifestului criptat.

  • Toată structura, inclusiv favoritele

    În ce folder stă ceva, ce ai redenumit, ce ai marcat ca favorit: totul este un singur document JSON criptat pe cont, rescris în întregime la fiecare modificare.

  • Cheia principală

    Treizeci și doi de octeți aleatori, generați pe dispozitivul tău în clipa în care pornești seiful. La noi ajunge doar sigilată sub o cheie pe care nu o avem, și nu părăsește niciun dispozitiv în clar.

Necriptate, deci vizibile pentru noi

  • Numărul de obiecte

    Un număr. Vedem că un cont ține nouă obiecte criptate sau nouă sute.

  • Mărimea fiecărui obiect

    Dimensiunea este vizibilă exact, până la ultimul octet. Un fișier de 4 MB arată ca un fișier de 4 MB. Nu folosim umplere pentru a ascunde dimensiunea; prin urmare, dacă dimensiunea ar permite identificarea documentului, aceasta reprezintă o divulgare reală, pe care o semnalăm explicit.

  • Momentul în care au ajuns obiectele și când s-a schimbat structura

    Marcaje de timp obișnuite. Arată când ai lucrat, nu la ce.

  • Cu câte metode poți deschide seiful

    Că există o cheie de acces, un cod de recuperare și două dispozitive, de exemplu. Nu secretele în sine, ci felul și numărul lor.

  • Contul căruia îi aparțin

    Obiectele sunt legate de un cont, adică de o adresă de e-mail. Seiful este spațiu criptat, nu spațiu anonim.

Aceasta este lista completă și ține de forma tabelelor, nu de o politică internă: un cont, un număr de octeți, un marcaj de timp. Orice altceva ar cere coloane noi, o versiune nouă pusă în funcțiune și o modificare a formatului publicat.

Gratuit, fără reclame, fără limită de spațiu

Seiful nu are limită de spațiu și nu are reclame. Aplicația există ca să semneze PDF-uri; seiful e o comoditate alături de asta. Mai târziu putem cere bani pentru lucrurile care costă să fie operate. Nu vindem date, iar aici nici nu am putea: ținem doar octeți sigilați. Vedem cât loc ocupă un cont, fiindcă serverul trebuie să cunoască această informație. Seiful e pentru documentele pe care le folosești des, nu pentru arhiva de poze sau pentru copii de rezervă. Un cont care crește mult peste asta primește mai întâi un e-mail prin care solicităm titularului să revină la o dimensiune rezonabilă.

Trei feluri de a deschide seiful

A deschide seiful înseamnă a desigila o copie a cheii principale cu ceva pe care numai tu îl deții. Fiecare metodă e o copie sigilată separat și poți avea mai multe în același timp.

Cheia păstrată pe dispozitiv, în spatele Face ID sau Touch ID

Pe iPhone, iPad și Mac cheia de deschidere stă în seiful de chei al dispozitivului, iar deschiderea seifului este o confirmare biometrică. Aceasta este calea de zi cu zi, iar confirmarea o impune sistemul, nu codul nostru. Cheia rămâne pe dispozitivul care a creat-o: nu se sincronizează nicăieri, nici măcar prin iCloud, pentru că seiful de chei nu acceptă să sincronizeze un element și în același timp să îl protejeze cu fața ta, iar noi preferăm protecția. Un al doilea dispozitiv se configurează o singură dată cu codul de recuperare și apoi îl reține. Cheia nu ajunge niciodată la noi, ceea ce înseamnă și că nu o putem revoca noi: scoaterea dispozitivului din cont este cea care îi taie accesul.

O cheie de acces, pentru browser

O cheie de acces care are extensia PRF din WebAuthn derivă cheia de sigilare direct în browser, prin HKDF-SHA256. Cheia de acces rămâne pe dispozitivul tău sau în managerul tău de parole; la noi stau partea publică și o copie sigilată a cheii principale.

Un cod de recuperare, arătat o singură dată

Douăzeci și patru de caractere, 120 de biți de entropie, transformate în cheie cu PBKDF2-HMAC-SHA256 la 600 000 de iterații. Apare când pornești seiful și niciodată după aceea. Scrie-l pe hârtie și pune-l într-un loc sigur.

Dacă le pierzi pe toate trei, documentele nu mai pot fi recuperate

Nu putem reseta un seif, nu putem trimite un link de recuperare și nu îl putem deschide nici la cererea unei instanțe. Nu există nicio copie a cheii tale principale în altă parte decât sigilată sub secretele tale, deci nu avem de unde să recuperăm ceva și nu avem ce să predăm. Nu este o lipsă pe care o vom acoperi într-o versiune viitoare: o metodă prin care noi te-am putea ajuta să redobândești accesul este o ușă care există fie că ai cerut-o, fie că nu, și ar fi la dispoziția oricui ne-ar convinge că ești tu sau ne-ar obliga prin lege. Prețul faptului că nu avem ușa aceea este că ultima ta cheie este chiar ultima. Ține codul de recuperare unde ții pașaportul, iar dacă un document nu mai există nicăieri altundeva, păstrează o copie care nu depinde de noi.

Partajarea se face pe dispozitiv

Când trimiți cuiva un document din seif, aplicația descarcă textul criptat, îl decriptează pe dispozitiv și dă fișierul obișnuit foii de partajare a sistemului. De acolo încolo este un fișier ca oricare altul: Mail, Mesaje, AirDrop, ce alegi tu, iar destinația este alegerea ta, nu a noastră. Nu generăm linkuri de partajare. Nu există nicio adresă publică prin care se servește un obiect din seif și niciun punct de acces care să îl dea fără autentificarea ta, deci nu există niciun link care să scape, să expire sau să fie nimerit de cineva care ghicește.

Seiful din browser

Pe web, codul care îți decriptează fișierele vine de la noi, la fiecare vizită. Aplicațiile sunt semnate și livrate de Apple, deci nu se schimbă odată cu site-ul. Pentru seif, aplicația e locul potrivit; pagina din browser e pentru restul.

Oprit până îl activezi

Un cont nou nu are seif. Nu există cheie principală, nu există manifest și nu este nimic de decriptat până nu îl pornești de pe un dispozitiv, acolo unde se generează cheia. Fără o cheie de acces și fără accesul din browser configurat, site-ul acesta nu poate decripta absolut nimic, nici măcar când ești autentificat, fiindcă nu are cu ce să desigileze cheia. Nimic din toate acestea nu atinge semnarea, care se face pe dispozitivul tău, fără nicio încărcare, indiferent dacă seiful există sau nu.

Formatul este publicat

Fiecare algoritm, fiecare parametru și fiecare ordine de octeți sunt scrise negru pe alb, fiindcă afirmația că fișierele tale nu pot fi citite de noi se poate verifica doar dacă formatul este cunoscut. Documentul numește primitivele, numărul de iterații, codificarea de pe fir, structura manifestului și atacurile pe care schema nu le oprește. Este exact fișierul după care sunt scrise aplicațiile și testele lor și stă aici, pe site, nu accesibil numai după autentificare pe platforma altcuiva.

Citește formatul seifului

Infrastructura, în întregime

Nu un rezumat. Aceasta este lista completă a tot ceea ce operăm și a tot ce pleacă de pe dispozitivul tău, ceea ce la un produs ca acesta ar trebui să fie o listă scurtă.

Servere

Ale noastre, în centrul nostru de date. Nu închiriem nimic: BILOUD SRL deține clădirea, serverele, rack-urile, switch-urile și routerele, și este el însuși furnizorul de internet, deci traficul iese pe conectivitatea noastră, nu prin rețeaua altcuiva. Nimic din TapSign nu rulează pe infrastructură pe care nu o controlăm, iar un terț căruia să i se ceară datele tale nu există, pentru că nu le ține niciun terț.

Terți

Niciunul. Fără analiză de trafic, fără pixeli de urmărire, fără rețele de publicitate, fără fonturi sau scripturi de la alții. Pagina pe care o citești nu încarcă nimic de pe alt domeniu.

Email

Codurile de autentificare pleacă de pe serverul nostru de mail. Nu există newsletter, nu există anunțuri de produs și nu există oferte. Singurele mesaje pe care le trimitem sunt despre contul tău, pentru că le-ai cerut tu cu o clipă înainte.

Diagnostic

Oprit până îl activezi, iar asta ți-o cerem doar când urmărim o eroare anume. Înregistrează schimbul tehnic de date cu tokenul sau cardul, scoate numele și căile către fișiere înainte să trimită ceva, și pleacă doar când apeși trimite. Rapoartele se șterg după nouăzeci de zile.

Verificare de actualizare pe desktop

Doar copia pe care o descarci de pe site face asta: zip-ul Windows și pachetul Linux (.deb sau .rpm). Întreabă https://tapsign.eu/api/v1/app/update o dată, când pornesc. Cererea numește platforma, arhitectura, pachetul și versiunea instalată. Nu trimite un document, un certificat sau PIN-ul. Versiunea din Microsoft Store, Flatpak-ul din depozitul nostru și versiunile Apple nu trimit această cerere. Pe acelea le actualizează magazinul sau depozitul din care le-ai instalat.

Cum ne verifici

  • Pune telefonul pe modul avion și semnează un document. Funcționează, ceea ce ar fi imposibil dacă s-ar încărca ceva undeva.
  • Urmărește traficul printr-un proxy în timp ce semnezi. Nu vei găsi nicio cerere care să ducă vreun octet din document.
  • Deschide PDF-ul semnat în Adobe Acrobat și uită-te la proprietățile semnăturii: certificatul e al tău, nu al nostru.
  • Compară fișierul semnat cu originalul într-un editor hexazecimal. Octeții originali sunt neschimbați, iar semnătura este adăugată la sfârșit.
  • Pune un fișier în seif în timp ce urmărești traficul printr-un proxy. Cererea duce un singur bloc de text criptat și nimic altceva: fără nume de fișier, fără folder, fără extensie, fără nimic după care l-am putea eticheta.
  • Întreabă API-ul nostru ce ține seiful tău. Îți răspunde cu numărul de obiecte, mărimea lor totală, manifestul criptat și câte metode de deblocare ai. Este aceeași listă pe care ți-o dă pagina asta, fiindcă atât există.

Ai găsit o problemă?

Te rugăm să ne informezi înainte de publicarea problemei. O reparăm și vom menționa contribuția ta. Scrie-ne prin formularul de contact. Nu avem încă un program de recompense, dar răspundem de fiecare dată.

Contact