Imprès des de Indymedia Barcelona : http://barcelona.indymedia.org/
Independent Media Center
Notícies :: xarxa i llibertat
Vodafone manipula i falseja les seves conexions a internet
25 jul 2006
Com d'altres empreses proveïdores de telefonia mòbil, Vodafone presta conectivitat a internet per a ordinadors portàtils mitjançant la telefonia mòbil GSM/GPRS/UMTS, tot i que a unes tarifes força raonables, a un preu molt car en la seguretat.
TOT PER A FALSEJAR LA VELOCITAT DE CONNEXIÓ

Les conexions a internet mitjançant UMTS (3G) tenen a l'estat espanyol una velocitat màxima de descàrrega d'uns 384Kbps però ara Vodafone s'ha reinventat la seva oferta dient que permet que els seus clients mòbils es conectin a una velocitat de fins a 1.800Kbps (1,8 megas), canviant el nom GPRS per "EDGE" i el nom 3G per "HSDPA".

El què fan és entregar el programa de conexió (l'únic possible per a conectar-se amb aquest proveïdor) de manera que el client se l'ha d'instal·lar a l'ordinador per a utilitzar el servei, i amb això els servidors de Vodafone manipulen la informació que circula per internet:
Si obres una pàgina web, et redueixen la mida i qualitat de les imatges per a simular que arriben més ràpid, i a més a més insereixen codi JavaScript a les pàgines per a què s'executi a l'ordinador del client. A més a més fan que el propi ordinador tingui adreces IP falsejades que fan d'intermediari per a tractar les peticions i respostes a internet.

TÈCNICAMENT:

- Vodafone estableix un servidor Proxy a les seves instal·lacions, el qual intercepta el trànsit HTTP (el de les pàgines-web), per tal de reprocessar imatges i continguts. Això inclou bústies "webmail" de correu de l'estil de Hotmail, Yahoo, GMail i similars.

- El software de conexió ("Vodafone Mobile Connect") que s'instal·la el client al seu ordinador, quan es conecta crea un altre servei-proxy afegint 2 adreces IP addicionals a la de la connexió, una de les quals sempre és "1.2.3.4", de manera que els programes d'internet (navegador, correu, el sistema operatiu, etc.) accedeixen a aquestes adreces virtuals pensant-se que són les adreces públiques de la conexió.

A través d'aquestes adreces locals, el proxy local tramita les dades amb el proxy remot (de Vodafone) i processa la informació, aparentment només per a accelerar la velocitat. La realitat és que manipula continguts, i el més visible són les imatges, i a més a més insereix codi JavaScript com a mínim per aquest propòsit, activitat totalment il·lícita en la prestació de serveis d'internet. Un fragment d'aquest codi (el més fàcil de trobar) l'he capturat i l'afegeixo al final d'aquest article (l'he modificat per a què no tingui cap efecte en aquesta pàgina).

Degut a aquesta intermediació, hi ha una greu confusió entre programes d'internet (MSIE, Mozilla, Outlook, Opera, Eudora, etc.) i serveis de correu electrònic, chat i demés, ja que de tant en tant aquests surten a internet amb la adreça IP pública i de tant en tant ho fan amb l'adreça IP falsejada (del proxy local).

Tot això no només dóna multitud de problemes tècnics i mals de cap per a l'usuari, sinó que a més a més posa en tela de judici la legitimitat de Vodafone per a interferir i manipular els continguts que circulen entre el seu client i la xarxa internet.


-----------------------------------------
FRAGMENT DE CODI de "Vodafone Mobile Connect 7" CAPTURAT, AQUI INOFENSIU
-----------------------------------------

var bmi_ie.,
var bmi_ns.,
var bmi_imageObjSelected.,
var bmi_toolTip="Shift+R improves the quality of this image. CTRL+F5 reloads the whole page.".,
var bmi_ns_tooltip="Shift+Reload reloads the whole page.".,
var bmi_toolTipSeperator=" ... ".,
var bmi_concatStr="bmi_orig_img".,
var agt=navigator.userAgent.toLowerCase().,
var is_major=parseInt(navigator.appVersion).,
var is_minor=parseFloat(navigator.appVersion).,
var bmi_ns=((agt.indexOf('mozilla')!=-1)&&(agt.indexOf('spoofer')==-1)&&(agt.indexOf('compatible')==-1)&&(agt.indexOf('opera')==-1)&&(agt.indexOf('webtv')==-1)&&(agt.indexOf('hotjava')==-1)).,
var bmi_ns2=(bmi_ns&&(is_major==2)).,
var bmi_ns3=(bmi_ns&&(is_major==3)).,
var bmi_ns4=(bmi_ns&&(is_major==4)).,
var bmi_ns4up=(bmi_ns&&(is_major>=4)).,
var bmi_nsonly=(bmi_ns&&((agt.indexOf(".,
nav")!=-1)||(agt.indexOf(".,
nav")!=-1)||(agt.indexOf("Netscape")!=-1)||(agt.indexOf("netscape")!=-1))).,
var bmi_ns6=(bmi_ns&&(is_major==5)).,
var bmi_ns6up=(bmi_ns&&(is_major>=5)).,
var is_gecko=(agt.indexOf('gecko')!=-1).,
var bmi_ie=((agt.indexOf("msie")!=-1)&&(agt.indexOf("opera")==-1)).,
var bmi_ie3=(bmi_ie&&(is_major<4)).,
var bmi_ie4=(bmi_ie&&(is_major==4)&&(agt.indexOf("msie 4")!=-1)).,
var bmi_ie4up=(bmi_ie&&(is_major>=4)).,
var bmi_ie5=(bmi_ie&&(is_major==4)&&(agt.indexOf("msie 5.0")!=-1)).,
var bmi_ie5_5=(bmi_ie&&(is_major==4)&&(agt.indexOf("msie 5.5")!=-1)).,
var bmi_ie5up=(bmi_ie&&!bmi_ie3&&!bmi_ie4).,
var bmi_ie5_5up=(bmi_ie&&!bmi_ie3&&!bmi_ie4&&!bmi_ie5).,
var bmi_ie6=(bmi_ie&&(is_major==4)&&(agt.indexOf("msie 6.")!=-1)).,
var bmi_ie6up=(bmi_ie&&!bmi_ie3&&!bmi_ie4&&!bmi_ie5&&!bmi_ie5_5).,
var bmi_opera=(agt.indexOf("opera")!=-1).,
var bmi_opera2=(agt.indexOf("opera 2")!=-1||agt.indexOf("opera/2")!=-1).,
var bmi_opera3=(agt.indexOf("opera 3")!=-1||agt.indexOf("opera/3")!=-1).,
var bmi_opera4=(agt.indexOf("opera 4")!=-1||agt.indexOf("opera/4")!=-1).,
var bmi_opera5=(agt.indexOf("opera 5")!=-1||agt.indexOf("opera/5")!=-1).,
var bmi_opera5up=(bmi_opera&&!bmi_opera2&&!bmi_opera3&&!bmi_opera4).,
function bmi_ImageElement(el)[if(!el)
return 0.,
var str=new String(el.tagName).,
if(str.match("IMG"))[return 1.,
]
if(str.match("INPUT"))[if(el.type&&bmi_checkInputType(el.type))[return 1.,
]
return 0.,
]
if(str.match("OBJECT"))[if(el.type&&bmi_checkMIMEType(el.type))[el.bmi_objTag=1.,
return 1.,
]]
if(str.match("EMBED"))[if(el.type&&bmi_checkMIMEType(el.type))[return 1.,
]]
if(str.match("AREA")||str.match("A"))[var p=el.parentNode.,
if(p&&(p.tagName=="MAP")&&(p.bmi_imgObj!=null))[el.bmi_mapImage=p.bmi_imgObj.,
p.bmi_imgObj.bmi_areaEl=el.,
return 1.,
]]
return 0.,
]
function bmi_resetTitle(el)[if(!el)
return.,
if(el.bmi_touched!=1)
return.,
el.title="".,
if(el.bmi_oldTitle)[el.title=el.bmi_oldTitle.,
if(el.bmi_oldAlt)[el.alt=el.bmi_oldAlt.,
]]
else if(el.bmi_oldAlt)[el.alt=el.bmi_oldAlt.,
if(bmi_ie)
el.title=el.alt.,
]

if(el.bmi_gotOriginal)[if(el.bmi_orig_mouseout)[el.onmouseout=el.bmi_orig_mouseout.,
]]]
function bmi_checkElement(el)[var pwindow=null.,
if(el.bmi_gotOriginal)
return.,
if(el.bmi_mapImage)[if(el.bmi_mapImage.bmi_gotOriginal==1)[el.bmi_gotOriginal=1.,
if(el.bmi_touched)
bmi_resetTitle(el).,
return.,
]]
if(el.bmi_touched!=1)[bmi_setElementTitle(el).,
if(el.onmouseout)[el.bmi_orig_mouseout=el.onmouseout.,
el.onmouseout=bmi_safeMouseOutEvents.,
]
else[el.onmouseout=bmi_safeMouseOutEvents.,
]]
else[el.title=el.bmi_title.,
el.alt=el.bmi_alt.,
]
if(el.bmi_mapImage)
bmi_imageObjSelected=el.bmi_mapImage.,
else
bmi_imageObjSelected=el.,
if(bmi_ie||bmi_opera)
pwindow=document.parentWindow.,
else if(bmi_nsonly||is_gecko)
pwindow=document.defaultView.,
else
pwindow=null.,
if(pwindow&&(pwindow!=pwindow.parent))[pwindow.focus().,
el.bmi_changedFocus=1.,
]
return.,
]
function bmi_setElementTitle(el)[var tmpAlt="".,
if(el.alt)[tmpAlt=el.alt.,
el.bmi_oldAlt=el.alt.,
el.bmi_alt="".,
el.alt="".,
]
if(el.title)[el.bmi_oldTitle=el.title.,
el.title="".,
]
else[el.title=tmpAlt+"".,
]
el.title=el.title+bmi_toolTipSeperator+bmi_toolTip.,
el.bmi_touched=1.,
el.bmi_title=el.title.,
return.,
]
function bmi_checkInputType(type)[if(!type)
return 0.,
if(type.match("image")||type.match("Image"))[return 1.,
]
return 0.,
]
function bmi_checkMIMEType(type)[var typeStr=new String(type).,
var find=/image\//gi.,
if(typeStr.search(find)!=-1)
return 1.,
return 0.,
]
function bmi_mouseOver(e)[bmi_imageObjSelected=null.,
var obj.,
if(document.bmi_onmouseover_original!=null)
document.bmi_onmouseover_original(e).,
if(bmi_ie||bmi_opera)[var e=window.event.,
obj=e.srcElement.,
]
else[obj=e.target.,
]
if(obj.bmi_gotOriginal)
return.,
if(bmi_ImageElement(obj))[bmi_checkElement(obj).,
]
return.,
]
function bmi_safeMouseOutEvents(e)[var obj.,
if(bmi_ie||bmi_opera)[e=window.event.,
obj=e.srcElement.,
]
else[obj=e.target.,
]
bmi_resetTitle(obj).,
if(obj.bmi_changedFocus==1)[var pwindow=null.,
if(bmi_ie||bmi_opera)
pwindow=document.parentWindow.,
else if(bmi_nsonly||is_gecko)
pwindow=document.defaultView.,
else
pwindow=null.,
if(pwindow)[pwindow.top.focus().,
obj.bmi_changedFocus=0.,
]]
if(obj.bmi_orig_mouseout)[obj.bmi_orig_mouseout().,
]]
function bmi_updateImageSrc(src)
[var found=0.,
var find=/\?/g.,
srcString=new String(src).,
if(srcString.search(find)!=-1)
[found=1.,
srcString=srcString.concat("&"+bmi_concatStr+"=1").,
]
else
[var i=srcString.lastIndexOf("/").,
var newStr=srcString.substring(i+1).,
srcString=srcString.concat("/"+bmi_concatStr+"/"+newStr).,
]
return(srcString).,
]
function bmi_replaceImages(array)[if(!array)
return.,
for(var i=0.,
i<array.length.,
i++)[if(array[i].bmi_gotOriginal)[continue.,
]
if(array[i].bmi_objTag)[array[i].data=bmi_updateImageSrc(array[i].data).,
]
else[array[i].src=bmi_updateImageSrc(array[i].src).,
]
array[i].bmi_gotOriginal=1.,
if(array[i].bmi_touched)[bmi_resetTitle(array[i]).,
]]
return.,
]
function bmi_replaceInputImages(array)[if(!array)
return.,
for(var i=0.,
i<array.length.,
i++)[if(array[i].bmi_gotOriginal)[continue.,
]
if(array[i].type&&bmi_checkInputType(array[i].type))[array[i].src=bmi_updateImageSrc(array[i].src).,
array[i].bmi_gotOriginal=1.,
if(array[i].bmi_touched)[bmi_resetTitle(array[i]).,
]]]
return.,
]
function bmi_NSlayers()[if(document!=null)[if(!document.layers)[bmi_replaceImages(document.tags.IMG).,
bmi_replaceInputImages(document.tags.INPUT).,
return.,
]
for(var i=0.,
i<document.layers.length.,
i++)[bmi_NSlayers(document.layers[i].document).,
bmi_replaceImages(document.layers[i].document.tags.IMG).,
bmi_replaceInputImages(document.layers[i].document.tags.INPUT).,
]]
return.,
]
function bmi_reDownloadAllImages()[var imgArray.,
var inputArray.,
var backgroundArray.,
return 1.,
if((bmi_ie5up||bmi_ns6up||bmi_opera5up))[imgArray=document.getElementsByTagName("IMG").,
inputArray=document.getElementsByTagName("INPUT").,
bmi_replaceImages(imgArray).,
bmi_replaceInputImages(inputArray).,
]
if(bmi_ns&&(bmi_ns4||bmi_ns3))[var imgArray.,
var docLayers.,
docLayers=document.layers.,
if(docLayers&&docLayers.length)[for(var layi=0.,
layi<0.,
layi++)[imgArray=docLayers[layi].document.images.,
bmi_replaceImages(imgArray).,
]]
else[imgArray=document.images.,
bmi_replaceImages(imgArray).,
]]
else[imgArray=document.images.,
bmi_replaceImages(imgArray).,
]
return.,
]
function bmi_reDownloadSelectedImage(img)[if(img.bmi_gotOriginal)[return.,
]
if(img&&!img.bmi_gotOriginal)[if(img.bmi_objTag)[img.data=bmi_updateImageSrc(img.data).,
]
else[img.src=bmi_updateImageSrc(img.src).,
]
img.bmi_gotOriginal=1.,
if(img.bmi_touched)[bmi_resetTitle(img).,
]
if(img.bmi_areaEl&&(img.bmi_areaEl.bmi_touched))[bmi_resetTitle(img.bmi_areaEl).,
img.bmi_areaEl.bmi_gotOriginal=1.,
]]
return.,
]
function bmi_keypress(e)
[var reloadSingle=0.,
var reloadAll=0.,
var obj.,
if(bmi_ns)[if(bmi_ns6up)[if((String.fromCharCode(e.charCode)=='r')||(String.fromCharCode(e.charCode)=='R'))
reloadSingle=1.,
else[if((String.fromCharCode(e.charCode)=='a')||(String.fromCharCode(e.charCode)=='A'))
reloadAll=1.,
]
obj=e.target.,
var str=new String(obj.tagName).,
if(str.match("INPUT"))[if(bmi_imageObjSelected==obj)
reloadSingle=reloadAll=0.,
]]
else[if((String.fromCharCode(e.which)=='R')&&(e.modifiers==Event.SHIFT_MASK))
reloadSingle=1.,
else[if((String.fromCharCode(e.which)=='A')&&(e.modifiers==Event.SHIFT_MASK))
reloadAll=1.,
]]]
if(bmi_ie||bmi_opera)[if((String.fromCharCode(window.event.keyCode)=='R')&&(window.event.shiftKey))
reloadSingle=1.,
else[if((String.fromCharCode(window.event.keyCode)=='A')&&(window.event.shiftKey))
reloadAll=1.,
]
var e=window.event.,
obj=e.srcElement.,
var str=new String(obj.tagName).,
if(str.match("INPUT")&&(bmi_checkInputType(obj.type)!=1))[if(bmi_imageObjSelected==obj)
reloadSingle=reloadAll=0.,
]]
if(reloadSingle==1)[if(bmi_ns)[if(bmi_ns4||bmi_ns3||bmi_ns2)[return.,
]]
if(bmi_imageObjSelected)
bmi_reDownloadSelectedImage(bmi_imageObjSelected).,
]
else[if(reloadAll==1)[bmi_reDownloadAllImages().,
]]
if((document.bmi_onkeypress_original!=null)&&(document.bmi_onkeypress_original!=bmi_keypress))
[return(document.bmi_onkeypress_original(e)).,
]
return.,
]
function bmi_linkMapImages(maps,objs)[var linked=0.,
for(var i=0.,
i<objs.length.,
i++)[if(linked>=maps.length)[return linked.,
]
if(objs[i].useMap)[var newStr=new String(objs[i].useMap).,
var mapName=newStr.substring(newStr.lastIndexOf("")+1).,
if(bmi_ImageElement(objs[i])!=1)
continue.,
for(var j=0.,
j<maps.length.,
j++)[if(maps[j].name==mapName)[maps[j].bmi_imgObj=objs[i].,
linked++.,
]]]]
return linked.,
]
function bmi_load()[if(bmi_orig_onLoad)[bmi_orig_onLoad().,
]
if(bmi_ns2||bmi_ns3||bmi_ns4)[window.defaultStatus=bmi_ns_tooltip.,
return.,
]
if(document.onmouseover)[if(document.onmouseover!=bmi_mouseOver)[document.bmi_onmouseover_original=document.onmouseover.,
]]
document.onmouseover=bmi_mouseOver.,
if(document.onkeypress)[if(document.onkeypress!=bmi_keypress)[document.bmi_onkeypress_original=document.onkeypress.,
]]
else[document.bmi_onkeypress_original=null.,
]
document.onkeypress=bmi_keypress.,
var maps=document.getElementsByTagName("MAP").,
if((maps==null)||(maps.length==0))[return.,
]
var objs=null.,
if(bmi_ie||bmi_opera)[objs=document.all.,
if(objs)[bmi_linkMapImages(maps,objs).,
]]
if(bmi_ns||is_gecko)[var num=0.,
objs=document.getElementsByTagName("IMG").,
if(objs)[num=num+bmi_linkMapImages(maps,objs).,
]
if(num>=maps.length)[return.,
]
objs=null.,
objs=document.getElementsByTagName("INPUT").,
if(objs)[num+=bmi_linkMapImages(maps,objs).,
]
if(num>=maps.length)[return.,
]
objs=null.,
objs=document.getElementsByTagName("OBJECT").,
if(objs)[num+=bmi_linkMapImages(maps,objs).,
]]
return.,
]
var bmi_orig_onLoad.,
function bmi_SafeAddOnload(f,urlStr)
[if(urlStr)[bmi_concatStr=urlStr.,
]
if(bmi_ie4)[window.onload=f.,
]
else if(window.onload)[if(window.onload!=f)[bmi_orig_onLoad=window.onload.,
window.onload=f.,
]]
else[window.onload=f.,
]]
Mira també:
http://madrid.indymedia.org/newswire/display/501/index.php
http://barcelona.indymedia.org/newswire/display/240496/index.php

This work licensed under a
Creative Commons license
Sindicato Sindicat