Vuoi autenticare il login oracle usando la password criptata ... come?

-1

Ci stiamo connettendo a Oracle usando gli script di shell korn, che usano sqlplus per connettersi a Oracle. Il database Oracle si trova sulla stessa scatola di Solaris. Attualmente stiamo memorizzando l'ID utente e la password di Oracle (testo normale) in un file nella cartella .ssh dell'utente che si connette, con 400 bit di autorizzazione.

I DBA si oppongono a questo modo di lavorare, citando il fatto che stiamo usando una password in testo semplice per l'autenticazione. Quando abbiamo offerto che avremmo codificato la password usando base64, a loro non piaceva ancora l'idea, citando che avremmo ancora decrittografato la password nello script della shell e trasmesso la password attraverso la rete.

Ora, voglio capire questo-

  1. Ho letto che Oracle crittografa / hash la stringa della password, prima di trasmetterla. Non riesco a trovare il riferimento in questo momento, tuttavia, voglio comunque confermare la mia comprensione. È davvero così? Siamo su 11g r2, farebbe la differenza?

  2. Sarei in grado di accedere a sqlplus senza decodificare l'hash della password? per esempio. Gli amministratori di database impostano una password, trasmettimi l'hash. Lo metto in un file e fornisco a sqlplus come parametro. C'è un modo in cui funziona questo tipo di autenticazione? So che alcuni strumenti lo consentono, se si codifica usando il loro strumento, sono in grado di decifrare il valore e usarlo per l'autenticazione. Oracle?

posta Gyan 23.07.2013 - 12:06
fonte

2 risposte

2

BASE64 è cattivo come testo normale e non offre alcuna sicurezza. I tuoi DBA sono anche sbagliati affermando che l'hashing della password prima che venga inviata risolverà il problema, in quanto puoi semplicemente eseguire un attacco pass-the-hash (non sono nemmeno sicuro che Oracle supporti qualcosa del genere). Entrambi gli approcci consentirebbero alle persone della rete di accedere al database (non importa se si passa un hash o una password, si può caputurare e riutilizzarlo).

Vedo due problemi:

  1. Stai memorizzando la password nel tuo script. Dovresti memorizzare la password in un gestore di password e fare la tua richiesta di script per la password in ogni esecuzione. Se si tratta di un processo automatizzato, è necessario archiviarlo in chiaro nello script. Sfortunatamente non c'è altro modo per memorizzarlo. (Le persone sostengono che puoi cifrare e decifrare il codice nel tuo codice o utilizzare alcuni schemi di codifica come BASE64, ma alla fine sarebbe banale recuperare e de-offuscare la tua password se hai accesso allo script)
  2. Il secondo problema principale è che si sta inviando tutto su una semplice connessione. È necessario configurare SSL / TLS per la macchina in modo che prima di inviare tutto sulla rete, una connessione end-to-end sicura ( Fare riferimento alla documentazione di Oracle ). Ciò impedirà agli intercettatori di visualizzare la tua connessione e vedere se viene inviata una password attraverso la rete.
risposta data 23.07.2013 - 12:18
fonte
2

Cerca nella sezione Archiviazione sicura password esterna qui .

Fondamentalmente, si imposta un portafoglio Oracle sul lato client, si salvano l'utente, la password e l'alias TNS.

Quindi lo script si collegherà al database come:

sqlplus /@tns_alias @my_script.sql

Spero che aiuti, Ed

    
risposta data 23.07.2013 - 19:36
fonte

Leggi altre domande sui tag