Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy
počítačové znalosti >> otázka >> hesla >> .

Ako môžete resetovať heslá používateľov, ak poznáte jeho aktuálne heslo?

Máte pravdu, že ste opatrní v tomto scenári. Aj keď je v niektorých systémoch technicky uskutočniteľný, resetovanie hesla používateľa, keď už viete, že ich aktuálne heslo je vo všeobecnosti veľmi zlá bezpečnostná prax a malo by sa mu vyhnúť, kedykoľvek je to možné. Tu je dôvod a čo by ste mali robiť namiesto toho:

Prečo je to zlý nápad:

* ohrozené poverenia: Poznanie existujúceho hesla používateľa dôrazne naznačuje, že účet používateľa už bol ohrozený. Útočník pravdepodobne pozná rovnaké heslo. Zmena hesla pomocou existujúceho hesla, pretože overovanie neodstraňuje prístup útočníka. Môžu to jednoducho zmeniť späť alebo pokračovať v používaní existujúcich relácií.

* Porušenie dôvery: Používatelia očakávajú, že ich heslá budú známe iba pre seba (a možno slané a hashované kópie v systéme). Preukázanie, že viete, že ich heslo ničí túto dôveru a vytvára obrovské bezpečnostné riziko.

* Problémy s auditmi: Obnovenie hesla „pre“ používateľa bez ich vedomia alebo iniciácie sťažuje sledovanie, kto skutočne inicioval zmenu a prečo. To môže brániť vyšetrovaniu bezpečnostných incidentov.

* obtok multifaktorového autentifikácie (MFA): Ak je povolená MFA, poznanie samotného hesla by malo byť * stačiť na resetovanie účtu. Resetovanie iba s existujúcim heslom obchádza kritický druhý faktor.

* Potenciál zneužívania: Poskytovať správcom možnosť resetovať heslá s vedomím, že súčasné otvára dvere škodlivým zasvätencom, ktoré resetujú účty na nebezpečné účely (špionáž, krádež údajov atď.).

* Porušenie dodržiavania bezpečnosti: Mnoho bezpečnostných štandardov (PCI DSS, HIPAA, SOC 2) vyžaduje silné postupy správy hesiel vrátane zabránenia správcom v poznaní alebo používaní hesiel používateľa.

Čo by ste mali robiť namiesto toho (zaobchádzať s ním ako s ohrozeným účtom):

1. Vynútiť reset hesla pri ďalšom prihlásení: Toto je minimum *, ktoré by ste mali urobiť. Užívateľ sa zobrazí výzva na vytvorenie * nového * hesla pri najbližšom prihlásení. Tým sa zlomí aktuálny prístup útočníka (za predpokladu, že používajú kompromitované heslo).

2. Vynútiť všetky relácie: Okamžite ukončte všetky aktívne relácie pre postihnutého používateľa. To bráni útočníkovi, ktorý už získal prístup na pokračovanie v používaní týchto relácií.

3. Odporúča kľúče API/tokeny: Ak má užívateľ nejaké kľúče API, tokeny OAuth alebo iné autorizačné mechanizmy, okamžite ich zrušte. Útočník mohol použiť ohrozené heslo na vygenerovanie nových klávesov/žetónov.

4. Vyšetrujte: Dôkladne preskúmajte, ako bolo heslo ohrozené. Bol to phishingový útok? Slabé heslo? Porušenie údajov na inej stránke? Identifikujte hlavnú príčinu, aby ste zabránili budúcim kompromisom. Vyhľadajte akúkoľvek podozrivú aktivitu, ktorá sa vyskytla od ohrozenia účtu (napr. Neoprávnený prístup, exfiltrácia údajov).

5. Povoľte MFA (ak ešte nie): Implementujte viacfaktorové overenie pre všetkých používateľov. To pridáva kritickú vrstvu bezpečnosti, ktorá útočníkom sťažuje prístup, aj keď poznajú heslo.

6. Skontrolujte denníky zabezpečenia: Starostlivo preskúmajte protokoly aktivity používateľa, kde nájdete akékoľvek príznaky neoprávneného prístupu, úpravy údajov alebo iného podozrivého správania.

7. Informujte používateľa: Okamžite informujte používateľa, že jeho účet bol potenciálne ohrozený a že potrebuje vytvoriť silné a jedinečné heslo. Vzdelávajte ich o phishingu a iných bezpečnostných hrozbách. Vysvetlite kroky, ktoré ste podnikli na zabezpečenie ich účtu.

8. Zvážte úplný bezpečnostný audit: Ak je ohrozený jeden účet, môže naznačovať širšiu zraniteľnosť bezpečnosti v systéme. Zvážte vykonanie komplexného bezpečnostného auditu s cieľom identifikovať a riešiť akékoľvek ďalšie potenciálne slabiny.

Úvahy o technickej implementácii (ak musíte absolútne - ale znova, *vyhnite sa tomu *):

Ak napriek všetkým vyššie uvedeným varovaniam máte veľmi špecifickú a nezvyčajnú situáciu, v ktorej si myslíte, že musíte * resetovať heslo, zatiaľ čo poznáte staré, proces * môže * zahŕňať nasledujúce (ale uvedomte si bezpečnostné dôsledky):

1. Databázový prístup (vysoko riskantný):

* Ak heslá nie sú uložené bezpečne (napr. Nesotené a hashované), už ste vo veľmi zlej situácii.

* Potrebujete priamy prístup k databáze, kde sa ukladajú poverenia používateľa.

* Vyhľadajte záznam používateľa a * starostlivo * aktualizujte pole hesla novým, silným a náhodne vygenerovaným heslom.

* Musíte sa ubezpečiť, že nové heslo je primerane solené a hashované pomocou rovnakého algoritmu ako existujúce heslá.

2.

* Niektoré systémy * MÔŽU * môžu mať koncový bod administratívneho rozhrania API navrhnutý na resetovanie hesiel používateľa.

* *V ideálnom prípade by tento koncový bod vyžadoval silné overovanie a povolenie, aby sa zabránilo neoprávnenému použitiu.

* Koncový bod * by vám mohol umožniť zadať používateľské meno alebo ID používateľa a poskytnúť nové heslo.

* *Aj v tomto prípade *uistite sa, že koncový bod API je správne zabezpečený a auditovaný.

Príklad (koncepčné - a znova odrádzajú):

`` `Python

Veľmi zlá prax - Nepoužívajte vo výrobe

import hashlib

import

def reset_password_with_existing (username, old_password, new_password, db_connection):

"" "

Nepoužívajte to vo výrobe. Je to iba na ilustratívne účely.

Táto funkcia ukazuje, ako by ste teoreticky resetovali heslo

poznať starý, ale je to hrozná bezpečnostná prax.

"" "

kurzor =db_connection.cursor ()

# 1. Načítať soľ používateľa a heslo hash z databázy. (Predpokladá, že je uložený týmto spôsobom)

cursor.execute („Vyberte Salt, hashed_password od používateľov, kde používateľské meno =%s“, (používateľské meno,))

result =cursor.fetchone ()

ak nie výsledok:

Tlač („Užívateľ sa nenašiel.“)

nepravdivý

Salt, Stored_hashed_password =výsledok

# 2. Overte staré heslo (pomocou algoritmu uloženej soli a hashovania).

hashed_old_password =hashlib.sha256 ((Old_password + soľ) .enCode ('utf-8'))). hexdigest ()

Ak hashed_old_password! =StoreD_hashed_password:

Tlač („Nesprávne staré heslo“)

nepravdivý

# 3. Vytvorte novú soľ a hash nové heslo.

new_salt =os.urandom (16) .Hex () # generujte silnú náhodnú soľ

hashed_new_password =hashlib.sha256 ((new_password + new_salt) .enCode ('utf-8')). hexdigest ()

# 4. Aktualizujte záznam používateľa v databáze novým heslom soľ a hash.

cursor.execute ("Update používatelia Set Salt =%s, hashed_password =%s, kde používateľské meno =%s",

(new_salt, hashed_new_password, username))

db_connection.commit ()

Tlač („Reset hesla (ale toto bol zlý nápad!).“)

návrat pravda

Príklad použitia (nekonávajte to):

db =connect_to_database ()

reset_password_with_existing ("Testuser", "OldPassword", "NewPassword123", db)

`` `

Dôležité úvahy:

* hashing algoritmy: Používajte silné a moderné hashovacie algoritmy ako Bcrypt, Scrypt alebo Argon2. SHA-256 (ako je uvedené v príklade) je lepší ako MD5 alebo SHA-1, ale stále nie je najlepšou voľbou pre hashovanie hesla.

* Solovanie: Pre každé heslo vždy používajte jedinečnú, náhodne generovanú soľ. Soli bránia útokom na dúhové stoly.

* Pravidlá zložitosti hesla: Umiestnite silné pravidlá zložitosti hesla (minimálna dĺžka, požiadavky na znak).

* Pravidelná rotácia hesla: Povzbudzujte používateľov, aby pravidelne menili svoje heslá.

* Manažéri hesiel: Propagujte použitie správcov hesiel na pomoc používateľom vytvárať a ukladať silné a jedinečné heslá.

V súhrne:Schopnosť resetovať heslo používateľa, že je nebezpečnou praxou, je nebezpečná prax. Vždy ho považujte za znak kompromisu a postupujte podľa odporúčaných krokov na zabezpečenie účtu a preskúmanie porušenia.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené