Et saa koskaan säilyttää salasanaa selkeänä tekstinä, kun vahvistat käyttäjää tai teet jotain vastaavaa.
Koska monet henkilöt käyttävät samaa salasanaa, jos hyökkääjä löytää salaamattomia salasanoja sisältävän tietokannan, niitä voidaan helposti käyttää yhdessä vastaavien sähköpostien kanssa linkitetylle verkkosivustolle tai tilille syöttämiseen ja jopa yrittää käyttää muita tilejä.
Salasanat tiivistetään nykyään usein, kun salasana annetaan. On suositeltavaa tiivistää suolalla ja säilyttää suola yhdessä tiivistetyn salasanan kanssa.
Suolaus saattaa tuntua yhdeltä ruskeiden hash-ruskeiden reseptin vaiheista, mutta kryptografiassa se tarkoittaa satunnaisten tietojen lisäämistä tiivistefunktion syötteeseen sen varmistamiseksi, että tiiviste antaa aina ainutlaatuisen tuloksen, vaikka syötteet ovat identtisiä.
Tämän seurauksena suolan lisäämisellä luotu erottuva hash voi puolustaa meitä useilta hyökkäysmenetelmiltä, mukaan lukien hash-pöytähyökkäykset, samalla kun tukahduttaa sanakirjan ja raa'an voiman offline-yritykset.
Tässä koodinpätkien avulla osoitamme kuinka salasanoja käytetään salasanojen suojaamiseen.
Joten mikä on "bcrypt"?
Bcrypt on hajautuskirjasto, joka tukee useita kieliä ja tarjoaa erityisen salasanasalauksen. Salasanasi turvallisuuden lisäämiseksi se tuottaa automaattisesti ylimääräisiä satunnaisia merkkejä (salt), kun se salaa merkkijonoa.
Voit myös määrittää, kuinka monta lisämerkkiä haluat lisätä saapuvaan merkkijonoon.
Bcrypt-kirjasto lukee vain tavukoodia, ei raakamerkkijonoja. Siksi, ennen kuin lähetät saapuvan salasanamerkkijonon bcrypt-salaukseen, sinun on ensin koodattava se.
Salaus ja koodaus eivät ole sama asia. Se vain varmistaa, että merkkijono on koneellisesti luettavissa ennen kuin se peitetään salaustekniikalla.
Bcryptin käyttäminen salasanan salaamiseen Pythonissa
Python tekee bcrypt-salasanan salauksesta yksinkertaista. Keskitymme tekemään tämän ilman kehyksen apua. Mutta älä huoli, jos ymmärrät kuinka tallentaa käyttäjän syötteet ja lukea ne tietokannasta, menettely on sama kehyksissä.
Asennus
Sinun tarvitsee vain määrittää Python-virtuaaliympäristö ja sitten käyttää IDE:tä, kuten PyCharm. Kirjasto on sitten asennettava ensin:
Salataan salasana
Katsotaanpa kuinka käyttää bcryptia tekstin salaamiseen sen asennuksen jälkeen:
Edellä mainittu Python-koodi suorittaa ja tulostaa salatun tavumerkkijonon. Mutta joka kerta kun suoritat skriptin, tulos on erilainen. Bcrypt käyttää tätä menetelmää varmistaakseen, että jokaisella käyttäjällä on erityisesti salattu salasana.
Se on muuten salasanan salausta varten.
Salasanan vertailu ja vahvistus Bcryptillä
Mitä tapahtuu, jos haluat tallentaa hajautetun salasanan ja tarkistaa myöhemmin, vastaako se käyttäjän todennusta varten lähettämää salasanaa?
Se on yksinkertaista. Vain todennussalasanaa on verrattava tietokannan merkintään (tai tässä tapauksessa muistiin).
Todennussalasana on myös koodattava ennen kuin sitä verrataan tietokannan salasanaan, koska bcrypt voi lukea vain tavumerkkijonoja. Pohjimmiltaan vertaat koodattua todennussyötettä tietokannassasi tällä hetkellä olevaan koodattuun tiivistettyyn salasanaan.
Testataan tätä käyttämällä kuvitteellisia Python-syötteitä:
Kun edellä mainittu koodi suoritetaan, sinua pyydetään antamaan uusi salasana. Python on tallentanut tämän muistiin. Todennusosiossa kirjoitat sitten saman salasanan, joka on yksityinen sinulle.
Jos salasanaa verrataan salasanaan, joka oli aiemmin salattu ja tallennettu vastaavuus, Python lähettää onnistumisviestin.
Jos ei, virheilmoitus tulostetaan ja sitten lisätään else-lause.
Perusidea on identtinen rekisteröinnin ja sitten salasanan syöttämisen tietokantaan todennusta varten.
Yhteenveto
Vaikka olemme yksinkertaisesti käyttäneet salattuja salasanoja näyttääksemme kuinka bcrypt toimii tavallisessa Pythonin lyhyessä muistissa, sen todellinen soveltuvuus on käyttäjäpohjaisissa sovelluksissa.
Tästä huolimatta tämä artikkeli esittelee keskeiset menetelmät koodin järjestämiseksi tämän saavuttamiseksi, jopa todellisissa olosuhteissa.
Jos esimerkiksi käytät Flaskia, voit antaa rekisteröinti- ja todennuskentät erillisillä verkkolomakkeilla syötteiden sijaan.
Tietenkin salasanoja vertaillessasi voit lukea tietokannasta, joka sisältää salattuja salasanoja, joita säilytetään todellisessa maailmassa.
Jona Nitsch
Kiitos tästä yksinkertaisesta ja yksinkertaisesta selityksestä,
Tämä auttoi minua paljon nykyisessä projektissani.
Mielestäni on erittäin hyvä, että esimerkkikoodi on rajoitettu minimiin eikä ylikuormitettu, kuten niin monet muut selitykset.
Ystävällisin terveisin