Kysymys:
Miksi autentikointi kehotetaan käyttäjää antamaan sekä käyttäjänimi että salasana? Riittääkö salasanan pyytäminen vain?
LaTeX
2011-03-04 20:33:20 UTC
view on stackexchange narkive permalink

En tiedä, miksi todennamme, kun kehotamme käyttäjää syöttämään sekä käyttäjänimen että salasanan. Mielenterveellisessä mallissani salasanan kysely riittää.

Syy on seuraava:

Oletetaan, että käytettävissä on x kelvollista merkkiä.

Tapaus 1 (kysyy käyttäjänimeä ja salasanaa)

Olkoon käyttäjänimen ja salasanan pituus n / 2 koodi> merkkiä kukin. Koska käyttäjänimi on julkinen, todennäköisyys onnistua rikkomaan salasana on yli x ^ (n / 2).

Käyttäjätunnus on yksilöllinen.

Tapaus 2 ( vain salasanan kysely)

Olkoon salasanan pituus n merkkiä. Todennäköisyys onnistua rikkomaan salasana on yli x ^ n.

Miksi todentetaan kysymällä käyttäjätunnus ja salasana? Riittääkö salasanan pyytäminen vain?

Salasana on yksilöllinen.

voitko kertoa minulle, miten haluat kirjautua kirjautumisyrityksiin? minkä perusteella? Olen pahoillani, mutta tätä lähestymistapaa ei yksinkertaisesti voida säännellä ...
Näen usein, että hyökkääjä yrittää satunnaisia ​​käyttäjänimiä (luulisin) yhteisellä kiinteällä salasanalla. Joten he kiertävät tilien nimen väliaikaisen kiellon liian monille epäonnistuneille kirjautumisyrityksille.
@LaTeX: Jos en antanut käyttäjätunnusta ja kirjoitin vain "passw0rd1", mihin kymmenistä tällä salasanalla käyttävistä tileistä aion päästä käsiksi? ;)
Kahdeksan vastused:
#1
+40
Justin C
2011-03-04 21:02:02 UTC
view on stackexchange narkive permalink

Mielestäni ongelmana on vaatia salasanojen yksilöllisyyttä. Jos kirjoitin haluamasi salasanan ja sanoit minulle, etten voi käyttää sitä, se on jo käytössä, tiedän, että voin kirjautua satunnaisten henkilöiden tilille salasanalla, jonka olisin halunnut.

Joten tarvitset käyttäjätunnuksen, joka on ainutlaatuinen ja joka voi olla kaikkien tiedossa. Sitten sinulla on henkilökohtainen salasana, joka ei välttämättä ole yksilöllinen, mikä tekee siitä vielä vaikeampaa arvata.

Hajauta ja suola tuo salasana, kun olet siinä,

> Kun olet siinä, hajauta ja suola tuo salasana.
#2
+21
AviD
2011-03-06 01:14:17 UTC
view on stackexchange narkive permalink

Täällä on jo hyviä vastauksia, mutta yksinkertainen peruskäsite puuttuu edelleen:

Tunnistaminen ja todentaminen eivät ole sama asia.

Yksinkertaisesti sanottuna nämä ovat kaksi erillistä vaatimusta, eikä niitä pidä sekoittaa.
Käyttäjätunnus mahdollistaa tunnistamisen ja salasanan avulla voit varmistaa, että vaadittu henkilöllisyys (eli todennus) .

Katso myös ero todentamisen ja tunnistamisen välillä [salauksen ja suojauksen näkökulma]

Hyvä pointti. Huomaan myös, että valtuutus on mahdollista tehdä myös ilman tunnistusta tai todennusta. Ehkä ei niin yleinen kuin se saattaa olla, mutta juuri tämä käteinen antaa sinun tehdä, esim. todellisessa maailmassa. Joten jonkinlaista paljasta salasanaa tai tunnusta voidaan käyttää myös järjestelmän käyttämiseen, vaikka useimmat järjestelmät eivät ole näin rakennettu.
@nealmcb, Olen samaa mieltä. Valtuutus ei sisällä tunnistamista suoritetaan kuitenkin useammin kuin luulisi Kaikissa pr0n-sivustoissa "Olen yli 18-vuotias" en laskisi sitä tunnistukseksi ... Myös tämä on * tavallaan * mitä väitteisiin perustuva lupa (ks. MS Geneva) koskee ...
Hyvä esimerkki. Hmmm - mikä on Geneven ja U-Proven suhde, joka näyttää olevan nimi, johon he keskittyvät nyt?
#3
+11
nealmcb
2011-03-04 23:13:42 UTC
view on stackexchange narkive permalink

Sekä käyttäjä että järjestelmänvalvoja hyötyvät tyypillisesti yksilöllisestä käyttäjätunnuksesta, joka ei ole salaisuus ja jota he voivat vapaasti käyttää tiliin viittaamiseen. Jos käyttäjänimi ei ole yksilöllinen, se voidaan liittää sähköpostiosoitteeseen tai muuhun yksilölliseen yhteystietoon. Tällä tavalla käyttäjä voi nollata salasanansa ja hankkia uuden tai vaihtaa salasanan vaihtamatta tiliä.

Sen lisäksi, kuten muut huomauttavat, vain yksilöllisen salasanan vaatiminen on ongelmallista, kun se on vain tunniste ja tapahtuu törmäys.

Mahdollisuus palauttaa unohtunut salasana on erinomainen asia, jonka kaipasin.
#4
+5
Andreas Arnold
2011-03-04 20:42:42 UTC
view on stackexchange narkive permalink

Käyttäjätunnuksen tarkoituksena on tunnistaa käyttäjä. Jos kysyt vain salasanaa, useilla ihmisillä on (valitettavasti) salasana 123456 tai salasana. Kuinka tunnistat nyt, mikä salasanalla varustettu käyttäjä yrittää kirjautua sisään? Siksi on olemassa myös käyttäjänimi.

Ja koska salasanaa ei pitäisi tallentaa pelkkänä tekstinä, sinun ei pitäisi tarkistaa, että salasana on yksilöllinen.

Toinen asia, joka kaipaat tapausta 2: Minun täytyy vain löytää salasana, jota joku käytti, eikä kuka tosiasiassa käyttänyt sitä. Joten jos yksi henkilö käyttää salasanaa 123456, minun on vain tiedettävä se ja voin kirjautua sisään. Jos on myös käyttäjätunnus, pelkkä salasana ei kirjaudu sisään onnistuneesti.

Erinomainen yhteenveto. Halusin lisätä, että salasanoja ei myöskään pidä salata, mutta ne on sekoitettava suolalla, joten sinun ei pitäisi voida vertailla salasanoja missään tapauksessa.
#5
+5
Sigtran
2011-03-04 21:11:40 UTC
view on stackexchange narkive permalink

Todennäköisyytesi löytää salasana on ehdottomasti väärä.

Esimerkki :

Sinulla on 8 käyttäjää & jokainen salasana on 64 bittiä (vakio 8 merkkiä, ei suolattu millään tavalla).

For tapaus kaksi:

Hyökkääjän on suoritettava salasana-algoritminsa rikkominen vain kerran saadakseen kaikki 8 käyttäjää (työ pahimmillaan = 64 bittiä, keskimäärin 32 bittiä)

Esimerkki:

Kaikkien salasanojen rikkomiseksi hyökkääjän on suoritettava algoritminsa 8 kertaa (kerran jokaiselle käyttäjälle), mikä on tietysti enemmän työtä (esim. yhteensä toimi pahimmillaan = 67 bittiä, keskimäärin 33-34 bittiä)

Salasanan rikkomisen todennäköisyyden tulisi olla:

Esimerkki:

  1 / (2 ^ bitsUsedForPassword)  

Tapauksessa kaksi:

  numberOfUsers / (2 ^ bitsUsedForPassword)  

Siksi toisella tapauksella on enemmän mahdollisuuksia saada salasana, jos käyttäjiä on enemmän kuin yksi.

#6
+4
D.W.
2011-03-06 06:47:38 UTC
view on stackexchange narkive permalink

Käyttäjätunnuksen ja salasanan saaminen on ehdottomasti turvallisempaa. Oletetaan, että sivustollasi on miljoona käyttäjää:

  • Jos käytät vain salasanaa, hyökkääjän täytyy vain arvata yksi miljoonasta kelvollisesta salasanasta päästäksesi sivustolle. p>

  • Jos käytät käyttäjänimeä ja salasanaa, hyökkääjän on esitettävä voimassa oleva käyttäjänimi ja oikea salasana kyseiselle käyttäjänimelle (ei kenellekään salasana sivustolla). Se on hyökkääjälle paljon vaikeampaa.

Sekä käyttäjänimen että salasanan vaatiminen tarjoaa paljon paremman turvallisuuden.

Esimerkki: Oletetaan, että kukin salasana valitaan yhdenmukaisesti satunnaisesti yhden miljardin mahdollisuuden joukosta, esimerkiksi se on satunnainen 9-numeroinen luku. (Joo, tiedän, että se on epärealistinen oletus, joten tämä esimerkki on yksinkertaistettu, mutta samanlaiset tulokset koskevat realistisempia oletuksia.)

  • Jos sivusto vaatii vain kelvollisen salasanan kirjautua sisään, hyökkääjä, joka syöttää satunnaisia ​​9-numeroisia numeroita, pääsee sivustolle keskimäärin noin 1000 yrityksen jälkeen.

  • Jos sivusto vaatii kelvollisen käyttäjänimen ja sitä vastaavan salasanan sisäänkirjautumiseen, ja vaikka oletetaan, että hyökkääjä tietää kaikkien käyttäjänimen, hyökkääjän on yritettävä keskimäärin noin 1 000 000 000 (miljardi) kertaa ennen pääsyä sivustolle. (Itse asiassa puolet siitä, mutta mitä tahansa.)

Voit nähdä, että tietoturvaero on dramaattinen.

Lisäksi @Justin C: n ja @ nealmcb: n kommentit tarjoavat lisää ortogonaalisia syitä vaatia sekä käyttäjänimi että salasana. Mikä tahansa näistä syistä riittää; Yhdessä käyttäjätunnuksen ja salasanan vaatimus on niin paljon vahvempi.

#7
+1
mrnap
2011-03-05 02:27:53 UTC
view on stackexchange narkive permalink

Teoriassa @Sigtran on oikein, että käyttäjätunnuksen saaminen on aina parempi, yleisen säännön mukaan mitä enemmän hämärtymistä, sitä enemmän turvallisuutta :) Toteutuksessa tilanteissa, joissa et tarvitse UUID: tä tai erityisiä käyttäjän oikeuksia, et todellakaan halua ' Et tarvitse käyttäjänimeä (jotain yleistä arkistoa, jota useat ihmiset käyttävät). Näissä tilanteissa pitkä ja monimutkainen salasana (aakkosnumeerinen + erikoismerkit) vaaditaan ja sitten suolataan.

#8
  0
JMB
2013-08-14 22:48:45 UTC
view on stackexchange narkive permalink

Syynä siihen, että tarvitset sekä käyttäjätunnuksen että salasanan, on, että voit etsiä käyttäjän yksilöllisen suolan ennen salasanan hajauttamista ja vahvistamista.

Tyypillisessä, turvallisessa järjestelmässä on käyttäjätaulukko, jossa on vähintään 3 saraketta. : käyttäjänimi, suola, salasanan hajautus. Passwordhash on käyttäjän salasana, johon on lisätty ainutlaatuinen suola (satunnainen, ainutlaatuinen merkkikombinaatio), ja suorita sitten se hajautusalgoritmin läpi. Todentaminen tarkoittaa käyttäjän etsimistä käyttäjänimellä, yksilöllisen suolan lisäämistä salasanaan, tuloksen hajauttamista ja tarkistamista, että se vastaa salasanan hajautusta tietokannassa.

Jos vain hajautat salasanan ja tallennat sen tietokantaan , kuin hyökkääjä, joka saa pääsyn käyttäjätaulukkoon, voi selvittää joitain yleisiä salasanoja sateenkaaritaulukon avulla (luettelo yleisistä salasanoista). Toisin sanoen he ottavat luettelon tavallisista salasanoista, hajauttavat ne kaikki ja näkevät, vastaako jokin niistä db-tiedostoon tallennettuun salasanan hajautukseen. Jos jokaisella käyttäjällä on ainutlaatuinen suola, heidän on lisättävä kyseinen suola jokaiselle sateenkaaritaulukon salasanalle, sitten hajauta ne kaikki, vain nähdäksesi löytävätkö he vastauksen tälle yhdelle käyttäjälle. Sitten heidän on toistettava tämä jokaiselle pöydän käyttäjälle. Tämä lisää huomattavasti laskutoimitusta, joka tarvitaan vastaavan salasanan löytämiseen varastetusta käyttäjätaulukosta.



Tämä Q & A käännettiin automaattisesti englanniksi.Alkuperäinen sisältö on saatavilla stackexchange-palvelussa, jota kiitämme cc by-sa 2.0-lisenssistä, jolla sitä jaetaan.
Loading...