Mikä olisi järkevin tapa toteuttaa sivuston käyttäjien keskenään toisilleen lähettämien viestien salaus? Entäs miten kannattaa toimia mysql kannan salasanan kanssa? Pääseekö php koodia lukemaan jollain keinolla jota en tiedä vai voiko salasanan sisällyttää suoraan koodiin?
PHP koodia ei pääse ulkopuolinen lukemaan jos se ajetaan PHP-tulkin lävitse. Kuitenkin jos PHP-tulkki kaatuu tai tarjoat tiedoston vahingossa esim. teksti/html muodossa, niin näin voi kuitenkin käydä. On siis turvallisempaa ladata salasana jostain erillisestä tiedostosta. Tiedoston tulisi tietenkin olla julkisen www:n ulkopuolella ja käyttöoikeuksien kohdallaan.
Sivustolla liikkuvia viestejä tuskin tarvitsee salata, kun pidät vain huolen siitä, että ne näkevät vain ne, joilla on siihen oikeus. Huolehdi vain käyttäjien tunnistamisesta.
Veikkaan että nyt ei ollut kyse PHP - koodista.
Miksei olisi? Tuossa selvästi kysytään saako salasanaa sisällyttää sinne PHP ohjelmakoodin sekaan. Kryptografian suhteen sen sijaan kysyjällä ei näytä olevan liiemmin tietoa, jonka suhteen haluan edelleen korostaa ettei tarvitsekaan olla, perusohjelmistoissa riittää hyvin käyttäjien autentikointi ilman tietokannan täyttä salausta (toki ne käyttäjien salasanat on kohteliasta laittaa tiivisteinä talteen, kun tunarit käyttävät samaa useassa palvelussa).
Salasanat on hashattu sha512:lla ja tarkoitus olisi vielä saltata ne ja todennäköisesti hashata ne vielä uudestaan. Kyseessä on siis harjoitus projekti joten salauksia voi helposti muuttaa vaikka kuinka moneen kertaan. Viestit kulkevat ainakin alustavalla testailulla oikein vain niiden ihmisten välillä joiden on tarkoituskin.
Tuota viestien lähettämistä salattuina tietokantaan mietinkin vain siltä kannalta että omasta mielestäni olisi reilua käyttäjiä kohtaan jos viestit olisivat salattuina ettei edes ylläpito pääse lukemaan mahdollisesti yksityisiä keskusteluja vahingossa. Tottakai tämä saattaisi tulla joissain tapauksissa välttämättömäksi jolloin myös salauksen purku pitäisi olla mahdollista.
mietinvaan kirjoitti:
Salasanat on hashattu sha512:lla ja tarkoitus olisi vielä saltata ne ja todennäköisesti hashata ne vielä uudestaan.
Ei kannata kehitellä mitään omia viritelmiä. Jos palvelimella on PHP 5.3.7 tai uudempi, kannattaa käyttää PHP 5.5:n omia salasanafunktioita, joista on olemassa yhteensopivuuskoodi PHP:n versiosta 5.3.7 alkaen.
Täytyy siis päivittää php ja tutustua tuohon. Kiitos. Asiasta toiseen. Onko sessio muuttujat turvallinen tapa käyttäjien autentikointiin, vai onko niitä mahdollista jotenkin huijata?
No jos olet sitä mieltä, että salaus todella on välttämätön, niin tuosta on hyvä lähteä liikkeelle: https://www.php.net/manual/en/intro.mcrypt.php (oletan että et halua tehdä tätä nollasta saakka itse, joka edellyttää kohtuullisen suurta työtä. jos näin on, googlaa vaikka advanced encryption standard, AES)
EDIT: kyllä, istuntomuuttujat (session variables) eivät näy palvelimelta ulospäin.
mietinvaan kirjoitti:
No jos olet sitä mieltä, että salaus todella on välttämätön, niin tuosta on hyvä lähteä liikkeelle: https://www.php.net/manual/en/intro.mcrypt.php (oletan että et halua tehdä tätä nollasta saakka itse, joka edellyttää kohtuullisen suurta työtä. jos näin on, googlaa vaikka advanced encryption standard, AES)
Älä missään nimessä lähde itse rakentamaan salausrutiineja Mcryptin, tai ylipäänsä minkään muunkaan low-level toteutuksen pohjalta. Se menee metsään.
Viped: Mieti ensiksi mitä ongelmakohtia vastaan aiot tiedon salauksella iskeä, ja voiko ympäristössäsi nämä ongelmat hoitaa jotenkin muuten (tarkoitan tällä mainitsemaasi viestien salausta)?
Salasanojen tallennukseen jo mainittu password_compat on varma vaihtoehto.
Aihe on jo aika vanha, joten et voi enää vastata siihen.