È una buona idea richiedere le password nelle applicazioni offline?

1

Sto sviluppando un'applicazione che può installare moduli di estensione (plug-in, se vuoi) da repository in stile APT ospitati altrove. I plug-in non devono essere firmati (anche se i download sono verificati) e possono essere scaricati tramite HTTP di base non sicuro. È una buona idea richiedere la password dell'utente (in modo simile a sudo ) per scaricare i pacchetti o semplicemente per installarli? Devo richiedere un accesso?

Per essere più specifici: dovrei verificare che l'utente che installa i pacchetti sia autorizzato a farlo in modo lato client?

    
posta condorcraft110 II 17.02.2015 - 23:50
fonte

2 risposte

2

Anche se ci sono diversi approcci qui, l'approccio migliore e la chiave per la sicurezza sul desktop è supporre che qualsiasi userland l'esecuzione del software è già compromessa. In altre parole, riponi la tua fiducia nel sistema operativo, non nei programmi. Se il sistema operativo è compromesso ... è il momento di sostituire il computer.

Hai menzionato sudo come modo per autenticare i pacchetti di sistema install (non scaricare). Questo perché il gestore pacchetti è bloccato e richiede l'accesso root (di gruppo o utente). In altre parole, apt-get non impone la sicurezza stessa, semplicemente fa cose che richiedono l'accesso come root. Sul mio sistema è r-x per il gruppo radice, di cui sono un utente. Quindi posso eseguirlo, ma non può fare nulla di utile a meno che non venga eseguito come root perché le cose che tenta di fare richiedono l'accesso come root.

Allo stesso modo, un programma per utenti non dovrebbe preoccuparsi troppo della sicurezza. Invece, dovrebbe fare affidamento sulle credenziali dell'utente connesso per consentirgli di accedere alle risorse di sistema protette dal sistema operativo . Se l'utente ha bisogno di privilegi elevati, esegui come root, usa sudo o fai clic con il pulsante destro del mouse e "esegui come amministratore" in Windows.

In teoria, qualsiasi protezione a livello di applicazione può essere interrotta in una questione di tempo da chiunque abbia accesso al sistema.

Anche i software server come SQL Server seguono questo modello preferendo affidarsi a gruppi e privilegi di sistema. Se provi a utilizzare l'autenticazione di SQL Server e disattivi la sicurezza basata sui gruppi, ti avviserà che non è sicuro, perché non lo è.

Ricordare che il sistema operativo si trova in un ambiente di esecuzione speciale privilegiato che fornisce accesso senza restrizioni a tutte le risorse di sistema. Le applicazioni nei moderni sistemi operativi fanno ciò che il sistema operativo consente loro di fare. Sfrutta la sicurezza integrata e non reinventare la ruota .

Per indirizzare la tua domanda più direttamente, può essere accettabile autenticarsi nel programma stesso se stai installando plugin sul profilo dell'utente, localizzando eventuali danni all'account dell'utente. Tuttavia, questo è piuttosto inutile in quanto non è necessario alcun privilegio diverso per completare l'azione. Consiglierei comunque di non autenticarmi e di fare affidamento sulla sicurezza integrata per consentire all'azione di avere successo o fallire (in questo caso, molto probabilmente ci riuscirà).

L'unica volta che ha veramente senso inserire una password senza privilegi elevati serve per crittografare o decifrare i dati: ma non dovrebbe essere comunque una password per l'account utente.

    
risposta data 18.02.2015 - 00:13
fonte
0

Penso che questo dipenda davvero dalla natura della tua applicazione. È per un individuo o qualcosa che potrebbe essere eseguito da molti su un ambiente server? È per un utente tecnico o per qualcuno meno tecnico.

Prendi Eclipse, per esempio. È possibile connettersi a qualsiasi repository e scaricare i plug-in senza dover effettuare l'accesso. Gli utenti che lo faranno, tuttavia, sono di natura tecnica e stanno operando (si spera) sulla propria macchina in cui non si può incasinare molto.

Penso che dovresti implementare una sorta di protezione preventiva (come un accesso) nei seguenti casi:

L'utente di destinazione è un individuo non tecnico e questa è un'applicazione che potrebbe essere utilizzata in un'azienda

Bloccarlo consentirebbe alle persone che sanno cosa stanno facendo di modificare e / o installare i plugin. Inoltre, consente uniformità nell'ambiente in modo che, in caso di problemi, l'IT interno possa facilitarne il lavoro.

L'applicazione sarà su un server

Se l'applicazione sarà ospitata su un server, è una buona idea proteggerla con password in modo che non tutti coloro che hanno accesso al server possano modificare il programma a piacimento.

In qualsiasi altro momento, non penserei che sia davvero necessario mettere in sicurezza la guardia in quanto sarebbe un setting non sicuro per un individuo.

    
risposta data 18.02.2015 - 00:11
fonte

Leggi altre domande sui tag