Creeaza.com - informatii profesionale despre


Evidentiem nevoile sociale din educatie - Referate profesionale unice
Acasa » scoala » informatica » baze de date
Administrarea parolelor

Administrarea parolelor


Administrarea parolelor

Oracle permite controlarea administrarii parolelor utilizatorilor bazei de date. Caracteristicile administrarii parolelor au multe capacitati:

Expira dinainte parole noi

Expira parole dupa o perioada de timp precizata

Permite o perioada de gratie intre expirarea parolei si dezactivarea identificatorului utilizatorului



Impiedica refolosirea unei parole dupa o perioada de timp precizata

Blocheaza si deblocheaza conturile in mod manual

Determina o parola sa indeplineasca anumite cerinte de complexitate

Aceleasi profile pe care le utilizam pentru a limita folosirea resurselor de sistem pot fi folosite pot folosite pentru administrarea parolelor. Profilele contin deja intrari pentru functiile de administrare a parolelor, dar acestea nu sunt activate daca nu rulam un script special: UTLPWDMG.SQL. Pentru a activa trasaturile administrarii parolelor, executam acest script dupa ce ne conectam la baza de date cu identificatorul SYS.

Scriptul are doua componente: prima schimba intrarile corespondente parolelor in profilul DEFAULT si a doua construieste o functie a complexitatii parolelor in baza de date. De asemenea, acest script determina baza de date sa porneasca activitatile de verificare a parolelor in toate profilele.

Administrarea parolelor este independenta de administrarea resurselor

Desi caracteristicile administrarii parolelor sunt controlate de profilele bazei de date, acestea nu sunt activate si dezactivate in acelasi fel in care limitele resurselor sunt controlate de profile. Verificarile limitelor resurselor sunt activate de pornirea bazei de date cu parametrul de initializare RESOURCE_LIMIT sau de folosirea comenzii ALTER_SYSTEM pentru a schimba RESOURCE_LIMIT in TRUE. Verificarea poate fi dezactivata schimband valoarea in FALSE in fisierul parametru sau cu comanda ALTER SYSTEM. Administrarea parolelor este activata ruland scriptul UTLPWDMG.SQL si ramane activa de acum inainte. Valoarea RESOURCE_LIMIT nu are nici un impact asupra activitatilor de verificare a parolelor.

Consideratii pentru administrarea parolelor

POLITICA DE SECURITATE A PAROLELOR presupune crearea unor mecanisme pentru:

blocarea contului utilizatorului ceea ce inseamna ca daca un utilizator, dupa un numar de incercari, nu furnizeaza corect parola, contul acestuia este blocat, adica nu mai are acces la baza de date un anumit timp;

  • controlul timpului de utilizare a parolei, care permite definirea unui interval de timp in care sa fie valabila parola utilizatorului. Dupa expirarea acestui timp parola trebuie recreeata cu alt nume.
  • pastrarea unui istoric al parolelor utilizate, care permite pastrarea unui anumit interval de timp a parolelor utilizate, astfel ca in acest interval o parola nu poate fi utilizata de doua ori.

Daca dorim sa folosim diferite reguli de administrare a parolelor pentru diferite categorii de utilizatori, o putem face cu usurinta construind profile diferite pentru fiecare grup si atribuind acestora utilizatorii corespunzatori. Trebuie sa ne asiguram ca orice utilizatori ce raman atribuiti profilului DEFAULT nu vor avea optiuni inadecvate de administrare a parolei definite de acesta. Trebuie sa acordam o atensie deosebita identificatorilor utilizatorilor, SYS si SYSTEM, si altor identificatori folositi de personalul operativ sau de administratorii bazei de date, precum si oricaror identificatori de utilizatori folositi pentru procesarea operatiunilor de grup. Daca optiunile parolei aplicate profilului DEFAULT de catre scriptul UTLPWDMG.SQL nu sunt adecvate pentru acesti utilizatori, ar trebui sa modificam profilul DEFAULT sau sa construim si sa atribuim profile pentru a le controla parolele in functie de anumite necesitati.


Verificarea complexitatii parolelor

Daca dorim sa impunem ca parolele utilizatorilor sa satisfaca anumite reguli, cum ar fi un numar minim de caractere sau cel putin o cifra in parola, trebuie sa folosim o functie PL/SQL pentru a efectua verificarile necesare. Oracle ofera VERIFY_FUNCTION ca functie implicita pentru verificarea complexitatii parolei. Functia returneaza o valoare boolean TRUE daca parola indeplineste toate verificarile, sau se termina cu un mesaj de eroare daca parola nu reuseste o verificare. Functia este creata de scriptul UTLPWDMG.SQL, care de asemenea isi adauga numele la optiunea PASSWORD_VERIFY_FUNCTION in profilul DEFAULT.

Daca dorim sa cream propria functie de verificare a complexitatii parolei, ar trebui sa folosim ca model functia VERIFY_FUNCTION. Putem examina codul functiei interogand vederea dictionarului de date DBA_SOURCE sau, mai simplu, citind scriptul UTLPWDMG.SQL. Putem activa functiile parolei imediat ce acestea sunt create denumindu-le in optiunea PASSWORD_VERIFY_FUNCTION a comenzii CREATE sau ALTER PROFILE. Utilizatorii atribuiti unui profil vor avea orice parole noi verificate de functia proprie.

Putem inlocui functia VERIFY_FUNCTION cu o functie proprie si putem schimba profilul DEFAULT pentru a o identifica in felul urmator:

CREATE FUNCTION my_password_function

(username VARCHAR2, password VARCHAR2,

old_password VARCHAR2) RETURN boolean ISEND;

ALTER PROFILE default

PASSWORD_VERIFY_FUNCTION

my_password_function;

Putem inchide verificarea complexitatii pentru profil:

ALTER PROFILE default PASSWORD_VERIFY_FUNCTION NULL;

Pentru a testa codul intr-o functie de complexitate a parolei, se recomanda construirea si folosirea urmatorului script SQL*Plus:

DECLARE

status BOOLEAN

BEGIN
status :=function_name

(user, &new_password, &old_password)

END;

Putem apoi executa acest script dintr-o sesiune SQL*Plus oferind numele functiei ce va fi verificata si testand valorile pentru parola noua si cea veche atunci cand ni se va cere. Putem inlocui functia USER cu variabila de substitutie &USER daca dorim de asemenea sa testam functia pe diferiti identificatori de utilizatori. De retinut ca testarea functiei cu acest script va face ca schimbarile parolei sa fie depozitate in baza de date.

Testarea propriilor functii de complexitate a parolei

In cazul functiilor PL/SQL pentru a controla structura si complexitatea parolei, e necesar sa dezvoltam o structura pentru a le testa. Putem crea un identificator de utilizator si un profil pentru dezvoltarea si testarea codului. De asemenea, vom folosi un fisier script care sa contina comanda PL/SQL CREATE OR REPLACE FUNCTION. Se utilizeaza acelasi nume pentru fiecare functie in timp ce este in dezvoltare pentru a nu trebui sa modificam in mod continuu intrarea PASSWORD_VERIFY_FUNCTION  a profilului. Cand exista siguranta ca functia lucreaza asa cum dorim, putem copia scriptul de test intr-o locatie de depozitare permanenta, schimbam numele testului intr-un nume de productie, si executam scriptul ca utilizator SYS. Trebuie atentie in special cand construim propriile functii ale parolei pentru a fi folosite cu profilul DEFAULT sau cu alte profile atribuite cheii identificatorilor de utilizatori SYS, SYSTEM sau conturilor DBA.

Reguli la crearea parolelor

Inainte sa incheiem aceasta discutie despre functia de complexitate, ar trebui sa analizam pe scurt functia VERIFY_FUNCTION oferita de Oracle deoarece, daca ii privim codul, doua din verificari pot cauza unele confuzii:

Luam in considerare verificarea pentru a garanta ca exista in parola cel putin unul din cele trei tipuri de caractere (litera, cifra si semn de punctuatie). Codul foloseste variabile de tip sir pentru a pastra caractere valide pentru fiecare tip. Sirul pentru verificarea punctuatiei contine semnele standard cum ar fi punctul, virgula, asteriscul si asa mai departe. Aceasta ne-ar putea face sa credem ca utilizatorii pot acum crea parole cu asemenea caractere. De asemenea, am putea presupune ca oricare din cele trei tipuri de caractere pot fi folosite oriunde intr-o parola. Oricum, parolele trebuie sa fie conforme conventiei standard de denumire pentru obiecte Oracle. Cu alte cuvinte, ale trebuie sa inceapa cu o litera si sa contina numai litere, cifre, sublinieri(_), semnele dolar ($) si diez (#). Pentru a folosi orice alt format sau orice alt semn de punctuatie, utilizatorii trebuie sa includa parolele intre ghilimele (") de fiecare data cand le folosesc.

Cealalta verificare ce induce in eroare compara vechea parola cu cea noua. Intentia acestei verificari este de a asigura faptul ca acestea difera dupa un anumit numar de caractere. Putem executa functia VERIFY_FUNCTION in mod direct, oferind valorile pentru numele utilizatorului si parola noua si cea veche, pentru a confirma ca aceasta verificare lucreaza asa cum este documentata in script.

Totusi, daca privim cu atentie codul, observam ca aceasta verificare nu este efectuata daca valoarea de intrare pentru vechea parola este un tir cu lungimea zero. Din nefericire, cand functia este executata ca parte a comenzii de schimbare a parolei (ALTER USER user_name IDENTIFIED BY password), Oracle nu ofera vechea parola deoarece nu o cunoaste. Parolele nu sunt stocate direct in baza de date, ci printr-un algoritm de criptare cu un singur sens, ceea ce inseamna ca parola curenta nu poate fi extrasa din versiunea criptata. Valoarea pentru vechea parola este prin urmare intotdeauna trimisa functiei ca un sir gol.

Desigur, rezultatul final este acela ca functia nu poate impiedica refolosirea aceleiasi parole sau a unei parole asemanatoare. Putem anula o parte a acestei limitari folosind optiunea PASSWORD _REUSE_MAX. Aceasta poate impiedica folosirea aceleiasi parole de doua ori intr-un rand, sau chiar poate impiedica refolosirea acesteie pana cand un numar definit de parole diferite a fost folosit. In mod curent, nu exista nici o modalitate pentru a impiedica pentru a impiedica folosirea parolelor asemanatoare in mod imediat, una dupa cealalta. In plus, nu putem scrie coduri pentru oricare din propriile rutine ce depind de valoarea parolei vechi si nu le putem face sa lucreze in exterior pentru a testa mediul.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.