Miért indul lassan a Firefox 3.5?
A Firefox 3.5 hosszas és fokozott várakozásokat követően indult el, hiszen a népszerű böngészőszoftver új kiadása számos jelentős továbbfejlesztést hozott magával, melyek közül sok a böngésző sebességének fokozására irányult. Éppen ezért különösen kínos, hogy a 3.5-ös kiadás sok felhasználónál elfogadhatatlanul lassan indul el Windowson, méghozzá látszólag teljesen esetlegesen produkálva a jelenséget. A Mozilla is tud már a problémáról, magyarázat is van, de az sem kellemes a fejlesztőkre nézve.
Egy szűz telepítésű Firefox 3.5 böngészőtől elvárható, hogy villámgyorsan működjön. Sok esetben ez is történik, pillanatok alatt elindul, az oldalak betöltése és renderelése szintén pattogós -- hogy egy masszív, hatalmas előzményekkel és tucatnyi bővítménnyel terhelt profil migrálásával már lelassul, és ugyanúgy nem tudja megakadályozni a memóriaszivárgást, mint a korábbi kiadások, már egy másik történet. Sok felhasználónál azonban már a kezdeti használat is kínkeservesnek bizonyult, a Firefox 3.5 ugyanis néha hosszú másodperceket követően indul el, egyes esetekben akár egy percig is várni kell az első ablakra.
A felhasználók bejelentései és vizsgálódásai alapján úgy tűnik, hogy a probléma a Firefox egy biztonsági moduljának működésében, azon belül is a titkosításhoz alapvető véletlenszám generálás módjában rejlik. A Firefox által használt Network Security Services (NSS), mely biztonsági protokollok támogatását valósítja meg, egy érdekes, mondhatni perverz módját használja a véletlenszerűség előállításához: az Internet Explorer és a Windows átmeneti állományait veszi alapul. Az ötlet szigorúan matematikai-statisztika szinten kiváló: az átmeneti állományok száma, tartalma és hossza előrejelezhetetlen a különböző PC-k közt, hiszen a megelőző felhasználói aktivitás alapján képződik, és egy PC-n is dinamikusan változik.
A mutatvány ott bukik meg, hogy ezek az átmeneti adatokat tartalmazó könyvtárak akár sokszáz megabájtra is duzzadhatnak, így a beolvasásuk rengeteg időt vehet igénybe a merevlemezek viszonylagos lassúsága miatt. Az összesített méret még nem volna akkora probléma, a több ezer kisméretű fájl azonban fizikailag többnyire a merevlemezen szétszórva található, ami magától értetődően lelassítja a beolvasási folyamatot. Az átmeneti megoldás, míg a javítás el nem készül, ebből fakadóan egyszerű: törölni kell az Internet Explorer által tárolt átmeneti adatokat, valamint a Windows hasonló könyvtárát, majd beállítani, hogy ezeknek a mérete ne haladjon meg egy ésszerű mértéket -- mondjuk 100 megabájtot.
Közeleg a patch is
A Firefox Windows alatt alapvetően a CryptoAPI-ra támaszkodik, ez azonban nincs minden telepítésen jelen, ezért az NSS-ért felelős csapat alternatív megoldás után nézett, és ez szülte meg ezt a megoldást, mely jelenlegi, kontrollálatlan formájában problémákat okoz azoknál, akiknek nagyméretű IE cache és Windows temp könyvtáraik vannak. A Mozilla már tesztel egy javítást, árulta el a német hese Security számára a szervezet részéről Johnathan Nightingale, mely javítás egyébként visszatér a CryptoAPI alapértelmezett használatára, és csak akkor fordul a merevlemezen tárolt átmeneti adatok felé, ha az nincs jelen a rendszerben.
A javítás várhatóan a Firefox 3.5.1 kiadással érkezik majd, mégpedig ezen a héten még. A tapasz számos biztonsági hibát is foltozni fog várhatóan, köztük egy kritikusat, mellyel egy megfelelően felkészített JavaScript kóddal túlcsordulásos támadást lehet intézni a Firefoxon keresztül, és tetszőleges kódot végrehajtatni a gazdagépen -- már működő exploitot is publikáltak a milw0rmön. A Firefox 3.5 ezt követő frissítése, a 3.5.2 nagyjából két hét múlva esedékes.
Linux és MacOS X platformokon értelemszerűen nem jelentkezik ilyen formájában ez a probléma, mivel azt a Windows nagyra duzzadt átmeneti adatai okozzák, ugyanakkor egyes maces felhasználók is panaszkodnak ugyanerre a jelenségre, pedig ott a célt szolgáló /dev/urandom fájlt használja a szoftver.