Lucrez pentru un startup care creează un produs care va fi lansat complet cu hardware-ul necesar.
Hardware-ul este un mini PC care rulează Ubuntu 20.04. Aplicația constă din servicii python în interiorul containerelor docker, o bază de date și câteva modele de deep learning - deci, în esență, mini PC-ul este folosit ca înlocuitor de server. Utilizatorii accesează aplicația conectându-se la un hotspot. La unii clienți, hardware-ul va fi izolat.
Nu pot intra în prea multe detalii, dar configurația are sens în cazul lor special de utilizare.
Acum am fost însărcinat cu securizarea hardware-ului pentru a nu permite temperarea/modificarea aplicației. Am făcut un pic de cercetare (a se vedea mai jos), dar sunt puțin fără idei despre ce se poate face, dacă ceva, pentru a rezolva acest lucru într-un mod satisfăcător.
Cercetarea mea:
- Prima idee pe care am găsit-o a fost să criptez partiția rădăcină cu LUKS și apoi să stochez cheia în TPM - hardware-ul actual nu acceptă TPM (sperăm că acesta este ceva care poate fi schimbat pentru achizițiile viitoare de hardware)
- A doua idee a fost să criptați partiția rădăcină și, de asemenea, să furnizați cheia partiției. Chiar dacă acum ai nevoie de două părți, nu cred că asta ar face mai greu de temperat.
- O altă idee în afara posibilităților sistemului de operare a fost cel puțin să ofuscați codul aplicației cu ceva de genul pyarmor - dar acest lucru se simte din nou ca o bară foarte joasă de șters.
Am încercat deja să găsesc alte posibilități - poate că interogările mele de căutare sunt naibii - dar nu am reușit să găsesc nicio modalitate satisfăcătoare de a rezolva această problemă. Sper că cineva de aici mă poate îndruma în direcția corectă.