Tänään haistelin salaamatonta wlan-liikennettä luokan aikana ja löysin melkoisen määrän salasanoja yksinkertaisesti hakemalla "pass" ja "user" wiresharkista. Osoittautuu, että noin puolet sivustoista, joita käytämme koulussa, eivät salaa tietojaan millään tavalla - he käyttävät sisäänkirjautumisen yhteydessä GET-pyyntöjä, kuten? Username = user123&password = passwd123. Aloin ajatella tätä ja nyt ihmettelen; mikä on paras tapa välttää tämä? Salaus olisi helppo kääntää, ja myös yhden kerran avaimet voidaan "helposti" kaapata. Paras ajatukseni tähän mennessä on asiakaspuolen hajautus, mutta olisiko tämä jollain tavalla huono idea?
PÄIVITYS: En tietenkään ole kertonut sinulle rajoituksia, mutta kiitos kaikista vastauksista! Palvelimella ei ole SSL: ää, ja kaikki käyttämäni on toteutettava php / asp / asp.net-palvelinpuolella tai asiakkaan javascriptinä. Ainoa olemassa oleva jaettu avain on salasana. Hyökkääjä tietää kaiken muun.
Yritän vain piilottaa salasanan hakkereilta. Loput tiedot olisivat salaamattomia, joten istunnon varastaminen olisi mahdollista. Se on seuraava ongelma. Ehkä voisit salata sivun tiedot nounilla. Koska salattua tekstiä on paljon, sanakirjahyökkäys olisi tehokas. Siksi en halua käyttää käyttäjän salasanaa salaamiseen. Ehkä voisin käyttää jotain 512 / 1024bit XOR-avainta, jonka salaan käyttäjän salasanalla? Tai jokin osa salasanasta, koska sanakirjahyökkäys olisi silti mahdollista - mutta vaikeampi.
Olisiko asiakkaiden kanssa salattu salaus sanoen 2 ensimmäistä merkkiä salasanastaan? Satunnainen luku XOR, salasanoilla 2 ensimmäistä merkkiä. Käyttäjän pitäisi olla purettavissa tämä, koska hänellä on avain (joka otetaan syötetystä salasanajonosta js: n kautta). Nousu olisi satunnainen luku, joten mikään ei pitäisi pystyä kertomaan, onko se purettu oikein.
Pohjimmiltaan: 1. Käyttäjä kirjoittaa käyttäjätunnukseen ja lähettää / vie sen palvelimelle. 2. Palvelin vastaa sivulla, jolla on salattu salaus ja salasanaruutu. 3. Javascript purkaa purkamisen, ja salasana saa XOR: n sen mukana. 4. Salasana lähetetään palvelimelle, salasana puretaan ja se hajautetaan 5. Hashia verrataan tietokantaan tallennettuun.
Huomaa: Palvelin on ilmainen ja tukee SSL: ää, mutta en en halua käyttää sitä. En pidä SSL: stä, koska se on rikki.