(En ole opiskellut tietoturvaa sen erityisemmin, joten seuraavat kappaleet menevät osittain mututuntumalla)
Jostain luin cryptografia kirjastojen käytöstä selaimessa. Nämä tietysti ovat javascript pohjaisia ja ne olisi ladattava palvelimelta. Eli mitään ohjelmistoa ei selaimessa ole valmiina, vaan kaikki tuotaisiin esim. GET-pyynnöllä.
Konsepti kuulostaa hyvältä ja "End-to-end encryption" saisi varmasti pukumiehet kostumaan, mutta en pysty käsittämään mitä käytännön hyötyä sellaisesta olisi. SSL sertifikaatti varmistaa, että kaikki liikennöity tieto on jo salattu. Jos varmenne puuttuu ja selain toimii tavallista http-protokollaa noudattaen, altistetaan tieto MITM-hyökkäykselle. Toisin sanoen käytetty kirjasto avaimineen päivineen päätyisi hakkerin käsiin.
Googlesta toki löytyy liuta mainitun kaltaisia kirjastoja. Stackoverflow on täynnä varoituksia javascriptin turvallisuuteen liittyvistä heikkouksista (mm. satunnaisluvut). Haluaisin kuulla mielipiteitä ja esimerkkejä käytännön toteutuksista. Ymmärtääkseni pankit soveltavat jotain tällaista nettisivuillaan.
MITM on firmoissa todellisuutta. Joissakin firmoissa on tehty niin, että firman välityspalvelin purkaa alkuperäisen HTTPS-salauksen ja salaa uudestaan firman sisäisellä varmenteella, jonka firman hallitsemat koneet hyväksyvät. Näin siis firma voi valvoa työntekijöiden salattuakin liikennettä. Olen nähnyt tällaisen käytännössä. Juttu paljastui muistaakseni joko silloin, kun tietoturvasyistä alettiin pakottaa SSL:n sijaan TLS:n käyttöön ja yllättäen uusin TLS-versio ei toiminut firman välityspalvelimen läpi (kun innokkaana rajoitin ensin oman palvelimeni vain siihen), tai v. 2017, kun selaimet alkoivat varoittaa liian heikoista algoritmeista, joita firman viritelmä käytti.
JS-salaus on toki myös purettavissa, mutta se vaatisi aktiivisia toimia sivustokohtaisesti, eli yllä kuvattu kaiken purkaminen ei siinä onnistu.
Vielä eri asia on, jos end-to-end onkin käyttäjältä toiselle niin, ettei edes palvelin pura tietoa välissä. Toki tämä vaatii niitä riittävän hyviä satunnaislukuja, jotta käyttäjät voivat neuvotella turvallisen avaimen.
kayttaja-14794 kirjoitti:
Konsepti kuulostaa hyvältä ja "End-to-end encryption" saisi varmasti pukumiehet kostumaan, mutta en pysty käsittämään mitä käytännön hyötyä sellaisesta olisi.
End-to-end -salauksen hyöty on luonnollisesti se, että oikein toteutettuna kukaan loppukäyttäjien välillä ei pysty purkamaan salausta. Eli vaikka palvelimella olisi vihamielinen ylläpitäjä, niin ylläpitäjäkään ei pystyisi lukemaan viestejä. SSL/TLS:ää käytettäessähän salaus on käyttäjän (selaimen) ja www-palvelimen välillä, eli vain noin puoleen väliin asti, eikä suinkaan "päästä päähän" eli "end-to-end".
Käytännössä toki end-to-end salauksessa täytyisi kiinnittää huomattavasti huomiota toteutukseen. Jos toiminnallisuuden sisältävä www-sivu ladataan palvelimelta x, niin palvelimen x ylläpitäjä voisi periaatteessa muokata skriptejä käyttäjän huomaamatta.
Mutta tietenkin voisi helposti tehdä selauslaajennoksen joka toimisi melkein millä vaan sivulla (vaikka ohjelmointiputkassa) ja hoitaisi salauksen ja sen purkamisen käyttäjien päässä. Tällöin muille kuin systeemiä käyttäville käyttäjille ja saitin ylläpidolle näkyisi vai epämääräistä sotkua. Toki viestit ei julkisella foorumilla ymmärrettävästi olisi kovin pitkäikäisiä.
kayttaja-14794 kirjoitti:
Ymmärtääkseni pankit soveltavat jotain tällaista nettisivuillaan.
Pääsääntöisesti ymmärtääkseni eivät sovella ja miksi soveltaisivatkaan, kun he kuitenkin luottavat omiin järjestelmiinsä. Olen tehnyt selainlaajennoksia jotka toimivat useiden suomalaisten pankkien ja muutamien ulkomaisten pankkien verkkopankeissa eikä vielä toistaiseksi ole tullut vastaan mitään javascript-pohjaista salausta.
Toki kaikenlaisia virityksiä varmasti löytyy jopa pankkisektorilta.
Danske Bankillahan oli silloin kun Suomessa siirryttiin käyttämään tanskalaisten järjestelmiä käytössä Javalla latautuva natiivikoodi (JNI) blackbox, josta en tiedä mitä se tarkalleen ottaen teki. Mutta hekin tulivat aika pian järkiinsä ja luopuivat siitä tuossa noin 10 vuotta sitten. Itse olen siinä arvauksessa että viritys ei todellisuudessa parantanut kenenkään tietoturvaa vaan lähinnä tarkoitus oli kasvattaa sen kehittäjien tilipussia ja työsuhdeturvaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.