- Semnarea aplicațiilor
- Instalări inițiale
- F-Droid ca magazin de aplicații încorporat
- Protecția împotriva datelor generate de contribuabilii rău intenționați
- Configurația HTTPS/TLS
- Audituri de securitate
The security architecture is based on integrating models proven by Debian and The Update Framework into what the Android OS already provides. The way F-Droid operates is greatly inspired by de facto security model of how reputable GNU/Linux distros like Debian, Fedora, Ubuntu, etc. operate. There is a big emphasis on operating in the public and making everything publicly available. We include source tarballs and build logs when we publish binaries. These are archived as long as possible, for retroactive review. And all of this is mirrored in many places across the internet by many different parties.
- un repo se definește prin faptul că are o cheie de semnare unică, în primul și în primul rând
- Conexiuni HTTPS în mod implicit
- funcționează numai pe HTTPS, HTTP este o redirecționare
- Android enforces ca toate aplicațiile să aibă o semnătură validă pentru întregul conținut al fișierului APK
- Android verifies updates pe baza semnăturii aplicației instalate
- file integrity protejat de signed metadata
- Începând cu index-v2, fișierele din depozit sunt verificate pe baza SHA-256, inclusiv pictogramele, capturile de ecran, etc.
- index-v2 utilizează orice algoritm acceptat de
apksigner
și
android-23
și mai nou, și se bazează pe întreținerea de către OpenJDK și Google a
algoritmilor de semnare validați în prezent. Când index-v2 a fost
lansat, algoritmul de semnătură utilizat era
SHA256withRSA, iar algoritmul de digest eraSHA-256. index-v1 este semnat deSHA1withRSA. În momentul redactării acestui document, SHA1 este considerat încă puternic împotriva atacurilor de tip “second pre-image”, ceea ce este relevant pentru JAR-urile indexate. - Semnarea în producție este gestionată de versiunile reproductibile ale apksigner din Debian.
- metadatele semnate includ hashes ale the app și ale signing key
- signed metadata generated on a separate machine (care este complet offline pentru f-droid.org și guardianproject.info)
- cheie publică pentru verificarea semnăturilor metadatelor încorporate în aplicația client F-Droid
- signed metadata includes timestamp and expiry
- suport ușor pentru Tor prin Setări
- client-side HTTP ETag cache check so the ETag cannot be abused to track users
- list of official mirrors included in signed metadata, then the client chooses mirrors based on availability and freshness based on local criteria like whether Tor is in use
- Client requires that TLS certificate transparency is enabled for f-droid.org and other domains commonly used by repos and mirrors.
Deși configurația actuală este deja o platformă solidă, există o serie de îmbunătățiri care ar trebui implementate:
- o mai bună gestionare a expirării indicilor, alias “vârsta maximă”
- certificat TLS fixat încorporat în aplicația client
Pentru a ne apăra împotriva unui atacator care deține cheile de semnare pentru depozitul de aplicații, trebuie să existe o sursă de informații de încredere cu care să se compare. Construcțiile reproductibile înseamnă că oricine are același cod sursă va produce exact același binar. Atunci când este asociat cu un sistem de audit, este ușor de prins malware-ul inserat în procesul de compilare, mai degrabă decât în codul sursă, precum XCodeGhost. Construirea reproductibilă face, de asemenea, posibil ca toate construcțiile unui binar de lansare să aibă exact același hash. Astfel, orice depozit de aplicații poate construi aplicații numai din codul sursă și poate avea o sursă de date de verificare de la orice alt depozit de aplicații care construiește aceeași aplicație. Construirea de software din sursă a devenit suficient de ieftină pentru ca multe companii precum gitlab.com și Travis CI să ofere servicii gratuite de construire automată în cloud. Deoarece întregul set de instrumente F-Droid este software gratuit și a fost conceput pentru a fi ușor de configurat, barierele pentru configurarea verificării automate sunt destul de reduse. Persoanele din zone separate ale lumii cu profiluri de risc diferite pot rula [verification servers pentru a furniza informații mai fiabile.
Modelul de securitate al Build Server Setup și Signing Process sunt documentate separat.
Semnarea aplicațiilor
- Aplicațiile pot fi distribuite folosind semnăturile proprii ale dezvoltatorilor atunci când compilările sunt complet reproductibile.
- În mod implicit, serverul “publish” va genera și va gestiona o cheie de semnare pentru fiecare aplicație în parte. Aceste chei de semnare sunt partajate între aplicații numai dacă sunt configurate în mod specific în acest sens, utilizând mecanismul keyaliases din config.yml.
- Toate aplicațiile sunt semnate de cheia dedicată aplicației respective, cu excepția cazului în care în mod specific se solicită ca mai multe aplicații să fie semnate de aceeași cheie, iar administratorii fdroiddata aprobă acest lucru.
- Pentru f-droid.org, toate operațiunile de semnare de aplicații se fac pe o mașină dedicată, separată fizic, deconectată de la orice fel de rețea.
- At any time, the developer’s own signatures may be added their app(s) in f-droid.org once reproducible builds have been achieved. Additionally, releases signed by the f-droid.org key will continue to be shipped.
- În aplicația oficială a clientului F-Droid, semnătura proprie a dezvoltatorului este cea implicită pentru noile instalări.
- We encourage app developers and maintainers to think about whether they
want to use a special Application ID for the app when published in
f-droid.org to avoid conflicts with other versions. One common pattern
is to add
.fdroidto the end of the Application ID via a Gradle Build Flavor.
Instalări inițiale
Majoritatea utilizatorilor de F-Droid descarcă APK-ul de pe f-droid.org și îl instalează. Acesta este un potențial vector de atac pe care magazinele de aplicații integrate nu îl au. Prin urmare, sunt luate multe măsuri suplimentare de securitate pentru a face cât mai dificilă exploatarea acestui vector.
- inclusă pe HSTS preload list, astfel încât browserele majore vor folosi doar HTTPS pentru toate conexiunile către f-droid.org
- o strong configurație TLS/HTTPS
- Semnătură DNSSEC în setările de nume de domeniu
- DNS Certification Authority Authorization (CAA) setare
- o strong Politică de securitate a conținutului HTTP
- PGP-signature la instalarea inițială download link
- automatizatregular și random auditing că F-Droid.apk nu a fost alterat
- F-Droid Limited controlează multe domenii potențiale de phishing, cum ar fifdroid.org, f-droid.com, și f-dro1d.org. (mai multe donații sant binevenite!)
- site-ul web este statically generated pentru a reduce foarte mult suprafața de atac
- site-ul este complet funcțional atunci când JavaScript este dezactivat în browser, eliminând orice posibilitate de atacuri XSS
F-Droid ca magazin de aplicații încorporat
Când F-Droid este integrat în Android, fie ca parte a ROM-ului, fie prin lansarea unei OTA update, nu mai are nevoie de activarea “Unknown Sources” pentru a funcționa. Aceasta este metoda preferată de funcționare, așa că ne propunem să facem cât mai ușor posibil pentru utilizatori să ruleze F-Droid în acest mod. Fluturarea pachetului OTA pentru F-Droid Privileged Extension are același profil de risc sau unul mai mic decât instalarea pachetului standard “gapps” pe care mulți oameni îl introduc în ROM-urile personalizate. Așadar, această metodă de livrare nu crește profilul de risc al acestor utilizatori.
În plus, F-Droid facilitează cât se poate de mult build it into proiectele ROM . Acesta este deja inclus în CalyxOS, Replicant, LineageOS for microG și Fairphone Open.
Protecția împotriva datelor generate de contribuabilii rău intenționați
Descrierile aplicațiilor sunt trimise de tot felul de persoane și pot fi preluate și din depozitul de surse al aplicației. În cele din urmă, aceste date sunt furnizate clientului Android sau browserului utilizatorului prin intermediul f-droid.org.
- the Android client never runs CSS, JavaScript, or dangerous HTML tags
since it displays HTML via
android.text.Html.fromHtml()with image loading disabled - the f-droid.org website protects against malicious and CSS/HTML/JavaScript injection with a strict HTTP Content Security Policy.
- Repomaker filters the texts through Mozilla’s bleach and has a good HTTP Content Security Policy.
Configurația HTTPS/TLS
F-Droid are o istorie lungă în susținerea tuturor dispozitivelor Android care încă funcționează, ceea ce înseamnă menținerea compatibilității cât mai mult timp posibil. În acest scop, atâta timp cât utilizatorii care rulează versiunile actuale de Android nu sunt puși în pericol, vechile configurații TLS sunt încă acceptate. Acesta este motivul pentru care lăsăm TLSv1.0 și TLSv1.1 activate pe site-urile noastre web. Considerăm că nu există niciun risc suplimentar pentru persoanele care își mențin software-ul actualizat. Iar un dispozitiv care rulează Android 1.6 ar trebui să poată instala o versiune veche de F-Droid și să aibă un magazin de aplicații funcțional.
Unele scanere de securitate vor semnala acest site deoarece TLSv1.1 și TLSv1.0 sunt încă acceptate. Mai important, acest site acceptă TLSv1.3 și TLSv1.2, care oferă protecții de downgrade. În plus, cele mai recente browsere și clienții F-Droid dezactivează dezactivează complet TLSv1.1 și TLSv1.0, făcând imposibilă forțarea acestor dispozitive să folosească aceste versiuni TLS vulnerabile. Așadar, singurele conexiuni care utilizează versiuni TLS vechi au de fapt nevoie de aceste versiuni vechi pentru a funcționa. Dacă vă aflați pe un dispozitiv care încă trebuie să utilizeze TLS 1.0 sau 1.1, atunci există deja atât de multe vulnerabilități de securitate bine cunoscute încât aceasta nu este deosebit de interesantă.
Dacă doriți să testați dacă browserul dvs. acceptă în continuare TLS 1.0 sau 1.1, faceți clic pe linkurile de mai jos și vedeți dacă vă dau un mesaj de eroare.
Audituri de securitate
-
A existat un rapid și informal audit de securitate (arhivat) realizat în 2013 de către Daniel McCarney, pe atunci student absolvent, alias pd0x.
-
Primul proiect “Bazaar” finanțat de Open Tech Fund a inclus un audit extern public de la Cure53
-
Cel de-al doilea proiect “Bazaar 2” finanțat de Open Tech Fund a inclus un audit public extern de la Radically Open Security
-
Proiectele finanțate de NLnet “Tracking the Trackers” și “The Search for Ethical Apps” au furnizat un audit realizat de Radically Open Security
