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.)