Autenticazione per applicazioni esterne

2

Ho bisogno di progettare un'applicazione per uso aziendale interno. L'applicazione deve essere ospitata esternamente. Idealmente mi piacerebbe che quell'applicazione fosse in grado di autenticarsi e autorizzarsi contro la ActiveDirectory aziendale.

Tuttavia 2 problemi qui:

  1. L'autenticazione deve funzionare anche se la rete aziendale non è disponibile.
  2. Preferirei non replicare ActiveDirectory in una posizione esterna per motivi di sicurezza. BTW è giusto preoccupazione?

Ho alcune idee stupide come avere "proxy LDAP" ospitato esternamente che salverebbe gli hash credenziali per un tempo limitato. Quel tempo dovrebbe essere sufficiente per portare in rete. Mentre la rete è inattiva, "proxy LDAP" verifica le credenziali rispetto agli hash locali. Questa idea sembra troppo casalinga e insicura. È possibile implementare con ActiveDirectory Lightweight Directory Services (AD LDS)?

Se l'ideale di cui sopra non è fattibile esiste una soluzione di autenticazione di terze parti? Con gestione account, criteri password, API, ecc.

    
posta Sergey Romanovsky 06.11.2013 - 00:24
fonte

2 risposte

4

Il modo solo di disporre di un sistema di autenticazione sicuro per un'azienda che può ancora funzionare mentre la rete aziendale non è disponibile, è di non utilizzare la rete aziendale. Prendi in considerazione l'idea di ospitare questo servizio nel cloud o di disporre di un backup a caldo basato sul cloud.

Avere una copia del database di autenticazione su ciascun dispositivo è una vulnerabilità e una chiara violazione di CWE-602 . Per definizione questo sistema sta dando a un utente tutte le chiavi del regno. Il database deve essere accessibile per autenticare un utente off-line e, a questo punto, un utente malintenzionato non autenticato ha accesso a tutti i dati memorizzati sul dispositivo (sniffing dei bus, collegamento di un debugger al processo di autenticazione o un attacco di avvio a freddo , e ci sono altri attacchi ...).

Il tentativo di "crittografare il database" è una manifestazione del problema DRM, che ha nessuna soluzione . (L'unico thread che supporta DRM è il DMCA. Il DMCA non protegge un database non sicuro da compromessi.)

    
risposta data 06.11.2013 - 01:31
fonte
3

I tuoi due requisiti si escludono a vicenda:

L'autenticazione deve funzionare anche se la rete aziendale non è disponibile.
Ciò significa che le credenziali devono essere memorizzate nella cache sul server di autenticazione.

Preferirei non replicare ActiveDirectory in un percorso esterno per motivi di sicurezza.
Ciò significa che le credenziali non devono essere memorizzate nella cache sul server.

Quindi ... sceglierne uno. Meglio ancora, buttare fuori l'idea completamente. Perché stai esponendo le tue credenziali aziendali interne a Internet esterno?

Ad esempio, supponiamo di esporre il tuo sistema Active Directory a Internet ma solo per l'autenticazione. Quindi, chiunque su Internet potrebbe chiedere al server AD se il nome utente / password fosse corretto o meno, e forse ottenere dei metadati aggiuntivi, se lo è. Quindi, cosa c'è di sbagliato in questo? Che tipo di minacce riesci a pensare di voler evitare?

OK, quindi ora è possibile cambiarlo e invece di chiedere al tuo server AD se è corretto o meno, chiedi a questa applicazione esterna se la password è corretta, ma in qualche modo per magia di sicurezza si adatta alle tue password di AD. Quindi ... ci sono degli attacchi possibili nello scenario precedente che non sono possibili ora?

Mentre ci sono molti modi per realizzare ciò di cui stai parlando, la tecnologia che interviene non rende l'idea più sicura. Quindi, accetta che stai mettendo a rischio la tua sicurezza interna e vai avanti con essa; o trovare una strategia diversa e non utilizzare le password interne su un servizio esterno.

    
risposta data 06.11.2013 - 09:50
fonte

Leggi altre domande sui tag