Etusivu
7. lokakuuta 2021 (lähetetty Skrollin toimitukselle julkaistavaksi)
Miksi FTP-tuen poisto web-selaimista on typerää
FTP (File Transfer Protocol) on protokolla, jota käytetään yleisesti tiedostojen
lataamiseen internetistä. Sitä käytetään usein myös tiedostojen lataamiseksi
palvelimelle, koska useimmat HTTP-palvelinohjelmat tukevat tiedostonsiirtoa
ainoastaan yhteen suuntaan, vaikkakin PUT-komento on määritelty myös
HTTP-protokollan spesifikaatiossa. FTP-latauslinkit ovat melko yleisiä
erityisesti vapaan lähdekoodin maailmassa.
Google poisti FTP-tuen Chromesta versiossa 82. Virallisesti poistoa
perusteltiin "tietoturvasyillä", vaikkakin Googlella varmasti oli myös muita
motiiveja poistaa FTP-tuki. FTP on avoin protokolla, joka kilpailee omisteisten
pilvipalvelujen kanssa, ja Google haluaa ohjata internet-käyttäjät käyttämään
Google Driveä.
Myös Mozilla poisti FTP-tuen Firefoxista alkaen versiosta 90. Jälleen kerran
poistoa perusteltiin sillä, että FTP on "turvaton protokolla", joka "lähettää
salasanat selkokielisenä tekstinä". Pyyntöjä poistaa FTP-tuki on lähetetty
Mozillan kehittäjille ainakin vuodesta 2015 asti (
https://bugzilla.mozilla.org/show_bug.cgi?id=1174462 ). FTP-tuen poistoa on
perusteltu myös mm. niin, että "se (= FTP-tuen toteutus Firefox-selaimessa) on
vanha ja enimmäkseen kirjoitettu matalan tason C-kielellä" (
https://bugzilla.mozilla.org/show_bug.cgi?id=1574475 ). Yksi kommentoija näki
ongelmana jopa senkin, että FTP-protokollaa tukevalla Firefoxilla oli
mahdollista ladata tiedostoja FTP-palvelimelta, joka toimii 16-bittisessä
Windowsissa. (Itse en keksi, mitä ongelmaa siinä on.)
Koko "turvaton protokolla" on määritelmällisesti paradoksaalinen. Kyllä, FTP
lähettää salasanat selkokielisenä tekstinä - ja niin tekee myös HTTP. Sen
vuoksi molempia protokollia käytetään usein hyötykuormana jollekin
salausprotokollalle, yleensä TLS:lle. HTTPS ei ole protokolla, vaan lyhenne
sanoista "HTTP over SSL", joka usein kirjoitetaan myös lyhyemmin muotoon
HTTP/SSL. Luonnollisesti myös FTP/SSL eli FTPS on olemassa oleva asia, jota
käytetään. FTP:n kaltainen protokolla ei voi olla "turvaton", vaan ainoastaan
toteutus tai käyttötapa voi olla. Ethän (ainakaan toivottavasti) lähetä
salasanoja tai mitään muitakaan arkaluontoisia tietoja salaamattomassa
HTTP-pyynnössä, joten miksi tekisit niin myöskään FTP-yhdeyden kanssa? Käytä
salattua FTPS-yhteyttä, jos tarkoituksena on tehdä muutakin kuin ladata joku
tiedosto anonyyminä.
Mozilla myös muutti erillisen FTP-asiakasohjelmansa Filezillan vakoilevaksi
mainosohjelmaksi samoihin aikoihin, kun FTP-tuen poistoa Firefoxista alettiin
valmistella. ( https://en.wikipedia.org/wiki/FileZilla#Bundled_adware_issues )
Ehkä Mozillakin haluaa vain vakoilla käyttäjiään, mutta ei vielä kehtaa tehdä
sitä web-selaimellaan?
FTP-tuen poisto käytetyimmistä web-selaimista on luonut internettiin valtavan
määrän "rikkinäisiä" linkkejä, ottaen huomioon kuinka yleisiä linkit
FTP-palvelimille loppujen lopuksi ovat. Firefox ei enää edes yritä tunnistaa
oletusohjelmaa FTP-linkeille, vaikka tietokoneelle olisi asennettu yksi tai
useampi varsinainen FTP-asiakasohjelma. Puhumattakaan siitä, että hyvin monessa
tapauksessa web-selain oli ainoa tietokoneelle asennettu FTP-asiakasohjelma -
ja nyt sitäkään ei enää ole. Se tekee FTP-linkkien avaamisesta vaikeaa eikä
ainakaan ole käyttäjäystävällistä.
Toki FTP-protokollassa on myös ongelmansa. Huomattavin ongelma on se, että
hakemistolistauksen muotoa ei ole määritelty protokollan spesifikaatiossa
mitenkään, koska sitä ei ollut ikinä tarkoitettu koneparsittavaksi.
Asiakasohjelma joutuu arvailemaan palvelinohjelman lähettämästä listauksesta,
mikä on tiedostonimi, mikä on tiedoston koko ja niin edelleen. Tämän kaltaiset
ongelmat voitaisiin korjata määrittelemällä FTP-protokollasta uusi versio,
jossa nämä suunnitteluvirheet olisi korjattu. Jostain syystä niin ei ole
kuitenkaan tehty - ehkäpä siksi, että nykyisen kaltainen FTP vain toimii "liian
hyvin". Toinen merkittävä ongelma FTP-protokollan kanssa on se, että FTP on
osittain p2p-protokolla ja asiakasohjelman pitää avata tiedostojen siirtämistä
varten portti, johon palvelinkone sitten avaa TCP-soketin. Se ei toimi kovin
hyvin nykyisillä kuluttajatason internet-yhteyksillä, joissa internet-yhteyden
tarjoajat usein estävät liikenteen tiettyihin portteihin tai pitävät asiakasta
ns. carrier grade NAT-laitteen takana. Toisaalta FTP oli olemassa jo kauan
ennen kuin internet-yhteyden tarjoajat alkoivat tällä tavoin rajoittamaan
yhteyksiä, joten oikeastaan ongelma on siinä, että palveluntarjoajat rikkovat
internettiä ja sen takia FTP ei aina toimi. FTP-protokollassa kuitenkin on niin
sanottu "passiivinen tila", joka ratkaisee tämänkin ongelman.
(Huomautus toimitukselle: Suomentakaa "carrier grade NAT", jos keksitte jonkun
hyvän suomenkielisen termin siihen tilalle.)