Pre lokálnu databázu je vhodný SQLite. Ak chceš sťažiť jej čítanie, tak sa pozeraj po builde, ktorý podporuje šifrovanie (https://docs.microsoft.com/en-us/dotnet/standard/data/sqlite/encryption?tabs=netcore-cli). Kľúč bude musieť byť aj tak na klientovi, takže to nebude neprekonateľné. Ak použiješ DP API, tak to aspoň nerozšifruje iný používateľ, než ktorému tá databáza patrí.
Aktualizovať na diaľku sa môže aplikácia sama - vystavíš webovú službu, ktorá poskytne aplikácii dáta na stiahnutie do databázy. Prístup na službu môžeš chrániť prihlásením, aby si to nestiahol ktokoľvek.
Alternatívne to môže byť implementované ako progressive web application (PWA), čo je normálna webová aplikácia, ktorá vie fungovať aj offline. Výhodou by bolo, že sa nemusí inštalovať (dá sa pripnúť na plochu). V tomto prípade je možné použiť IndexedDB ako offline úložisko.