Использование браузера Ceno для обхода блокировки

Обзор браузера Ceno

Последнее время на просторах сети часто появляются обсуждения свободного без цензуры интернета. Мы уже писали, как Tor Project используя различных технологии помогает в решении данного вопроса. В этой статье я расскажу вам об интересной альтернативе, о мобильном браузере для обхо­да блокировок и цен­зуры, который называется Ceno.

Еще по теме: Приватные ОС для обхода блокировок и защиты от слежки

Браузер Ceno для обхода блокировки и цензуры

Прин­цип ле­жащий в осно­ве браузера Censorship No, или, сок­ращен­но, Ceno очень прост. На устройства уста­нав­ливаются бра­узе­ры, которые обра­зуют сеть P2P, что позволяет передавать тра­фик за пре­делы цен­зуриру­емой зоны и таким образом обхо­дить запреты и бло­киров­ки.

Браузер Ceno

С точ­ки зре­ния поль­зователь­ско­го интерфей­са Ceno пред­став­ляет собой обыч­ный мобиль­ный Firefox, все «нецен­зурные» фун­кции спря­таны у него под капотом. Для тран­сля­ции зап­росов исполь­зует­ся про­токол HTTP, для переда­чи кон­тента — BitTorrent µTP.

Шиф­рование обес­печива­ется с при­мене­нием TLS, для про­вер­ки под­линнос­ти тран­сли­руемых дан­ных задей­ство­ваны циф­ровые под­писи EdDSA в вер­сии Ed25519. При необ­ходимос­ти Ouinet может исполь­зовать вмес­то µTP тран­спорт Tor, если в сети поль­зовате­ля бло­киру­ются тор­рент‑про­токо­лы.

Все это вмес­те при­водит к тому, что браузер Ceno генери­рует зна­читель­но боль­ше тра­фика по срав­нению с дру­гими мобиль­ными бра­узе­рами — ведь ему необ­ходимо нап­равлять зап­росы сра­зу на мно­жес­тво узлов сети и прок­сировать тра­фик, что­бы передать кон­тент дру­гим поль­зовате­лям. Поэто­му под­разуме­вает­ся, что бра­узер будут исполь­зовать в сетях с хорошим качес­твом свя­зи или нелими­тиро­ван­ным тра­фиком, в которых нет проб­лем со связью внут­ри стра­ны, но име­ются слож­ности с выходом во внеш­ний интернет.

Су­щес­тву­ющая вер­сия Ceno работа­ет толь­ко на устрой­ствах с про­цес­сорами ARM. Если ты исполь­зуешь Android на план­шете с архи­тек­турой x86 или пыта­ешь­ся запус­тить Ceno в эму­лято­ре без вир­туали­зации железа, ничего не получит­ся.

Движок браузера Ceno

Ког­да поль­зователь с уста­нов­ленным на его Android-устрой­стве Ceno зап­рашива­ет какую‑либо веб‑стра­ницу в интерне­те, бра­узер пыта­ется получить к ней дос­туп по URL нап­рямую. Если сде­лать это­го не уда­ется, нап­ример зап­рос к целево­му сай­ту бло­киру­ется, Ceno перенап­равля­ет его в рас­пре­делен­ный индекс P2P-сети. В этом индексе хра­нят­ся записи о том, на каком узле сети име­ется сох­ранен­ная копия целевой стра­ницы.

Индекс пос­тро­ен с исполь­зовани­ем рас­пре­делен­ных хеш‑таб­лиц DHT (distributed hash table) — таких же, которые при­меня­ются для мар­шру­тиза­ции в обыч­ных тор­рент‑сетях. Если иско­мый кон­тент обна­ружи­вает­ся на каком‑либо устрой­стве, отпра­вив­ший зап­рос кли­ент получа­ет пару «IP-адрес:порт» это­го девай­са. URL в таб­лице индекса хра­нят­ся в виде хешей, для получе­ния которых исполь­зует­ся спе­циаль­ная крип­тогра­фичес­кая хеш‑фун­кция. Но что делать, если нуж­ного кон­тента в Р2Р‑сети нет?

В этом слу­чае кли­ент обра­щает­ся к так называ­емым инжекто­рам. Инжектор — это не деталь в авто­моби­ле, а спе­циаль­ный проз­рачный прок­си‑сер­вер, который находит­ся за пре­дела­ми цен­зуриру­емо­го учас­тка сети и ста­рает­ся оста­вать­ся дос­тупным для кли­ентов Ceno.

Тра­фик меж­ду инжекто­ром и кли­ентом шиф­рует­ся с исполь­зовани­ем SSL/TLS, что­бы ник­то не мог иден­тифици­ровать инжекто­ры, прос­лушивая тра­фик. А что­бы какой‑нибудь зло­дей не выдал себя за инжектор, переда­ваемый кон­тент под­писыва­ется циф­ровой под­писью EdDSA.

Ес­ли один из инжекто­ров вдруг «умрет» или будет заб­локиро­ван — не беда, в сети их мно­го. Раз­работ­чики Ceno исполь­зуют для это­го тер­мин «рой инжекто­ров». Их адре­са так­же хра­нят­ся в рас­пре­делен­ных хеш‑таб­лицах, и кли­ент получа­ет их по зап­росу.

Ес­ли же кли­енту не удас­тся дос­тучать­ся ни до одно­го инжекто­ра, он попыта­ется передать зап­рос и получить тре­буемый кон­тент через дру­гие узлы сети, для которых инжекто­ры еще дос­тупны. В этом слу­чае тран­зитные узлы игра­ют роль мос­тов, или брид­жей, а меж­ду кли­ентом и инжекто­ром фор­миру­ется тун­нель через про­межу­точ­ный узел. А пос­коль­ку тра­фик «кли­ент — инжектор» шиф­рует­ся, бридж не видит, какую имен­но информа­цию он переда­ет.

Пе­реда­ча дан­ных в сети Ceno
Пе­реда­ча дан­ных в сети Ceno (иллюс­тра­ция с сай­та раз­работ­чика)

Пе­ред тем как тран­сли­ровать кон­тент в P2P-сеть, инжектор под­писыва­ет его сво­ей циф­ровой под­писью. Пос­ле это­го каж­дый кли­ент сам может стать прок­си‑сер­вером и делить­ся дан­ными из собс­твен­ного кеша с дру­гими учас­тни­ками сети — валид­ная под­пись инжекто­ра гаран­тиру­ет, что этот кон­тент дей­стви­тель­но получен из внеш­него интерне­та, а не под­делан на внут­реннем узле.

Инжекто­ры исполь­зуют пару откры­того и зак­рытого клю­чей для соз­дания под­писей Ed25519, откры­тые клю­чи дос­таточ­но малы, что­бы их мож­но было отправ­лять вмес­те с под­писями, и пред­став­лены в виде 64 шес­тнад­цатерич­ных сим­волов или 52 сим­волов в Base32. Раз­ные инжекто­ры исполь­зуют раз­ные клю­чи, поэто­му поль­зователь может выбирать, каким из них он доверя­ет, а каким — нет.

Ска­жем, если инжектор находит­ся в той же стра­не, где живет поль­зователь, но при этом не под­вержен цен­зуре, велик риск, что такой инжектор кон­тро­лиру­ется спец­служ­бами. По умол­чанию доверен­ными счи­тают­ся толь­ко инжекто­ры, управля­емые ком­пани­ей eQualitie — раз­работ­чиком бра­узе­ра, но эту нас­трой­ку мож­но изме­нить.

По­лучив зап­рошен­ную веб‑стра­ницу, кли­ент, во‑пер­вых, отоб­ража­ет ее в бра­узе­ре Ceno, во‑вто­рых, сох­раня­ет копию в локаль­ном кеше, а в‑треть­их, вно­сит в рас­пре­делен­ные хеш‑таб­лицы DHT запись о том, что он рас­полага­ет этой самой копи­ей. Вре­мя хра­нения кон­тента в кеше поль­зователь может нас­тро­ить самос­тоятель­но — по умол­чанию он содер­жится там до тех пор, пока стра­ница не будет замеще­на более акту­аль­ной копи­ей либо пока кеш не будет очи­щен.

Ес­ли дос­туп к внеш­нему интерне­ту про­пал пол­ностью, нап­ример работа­ет на пол­ную катуш­ку наци­ональ­ный фай­рвол, кон­тент смо­жет рас­простра­нять­ся толь­ко внут­ри сети Ceno. При этом, если один кли­ент получит копию какой‑либо веб‑стра­ницы или виде­офай­ла от дру­гого кли­ента, он сам начина­ет раз­давать этот файл в сеть.

Таким обра­зом, кон­тент оста­ется дос­тупен, даже если пер­вый узел, на который он был заг­ружен из интерне­та, арес­тован отклю­чил­ся или перес­тал отве­чать на зап­росы. Ана­логич­но тор­рентам, кли­енты Ceno могут тянуть фай­лы сра­зу из нес­коль­ких источни­ков неболь­шими пор­циями, что сни­жает тра­фик и повыша­ет дос­тупность кон­тента. Так в общих чер­тах это работа­ет.

Проблемы безопасности браузера Ceno

Как уже упо­мина­лось, связ­ка Ceno + Ouinet обес­печива­ет дос­тупность кон­тента, ког­да под­клю­чение к интерне­ту огра­ничи­вают, но отнюдь не ано­ним­ность. При боль­шом желании мож­но отсле­дить и самих поль­зовате­лей в сети Ceno, и прос­мотреть, чем они делят­ся с окру­жающи­ми, пос­коль­ку шиф­рует­ся тра­фик толь­ко на учас­тке «кли­ент — инжектор», а на канале «кли­ент — кли­ент» шиф­рование не исполь­зует­ся. Это откры­вает широкие воз­можнос­ти для про­веде­ния атак типа MITM.

Из таб­лиц мар­шру­тиза­ции Ceno мож­но получить IP-адре­са зарегис­три­рован­ных в сети устрой­ств, а зна­чит, об ано­ним­ности тут нет и речи. А пос­коль­ку девайс с уста­нов­ленным Ceno не толь­ко получа­ет, но и раз­дает кон­тент, его вла­дель­ца впол­не мож­но прив­лечь за рас­простра­нение зап­рещен­ной информа­ции. Законо­датель­ство некото­рых стран это впол­не допус­кает.

Для обхо­да столь щепетиль­ного момен­та бра­узер Ceno име­ет так называ­емый режим при­ват­ного прос­мотра. В этом режиме зап­росы к индексу DHТ не отправ­ляют­ся, а кон­тент не кеширу­ется. Вмес­то это­го бра­узер прос­то исполь­зует инжекто­ры в качес­тве проз­рачно­го прок­си. При этом инжектор видит IP-адрес отпра­вив­шего ему зап­рос хос­та, но не может опре­делить, конеч­ный это кли­ент сети или бридж.

К надеж­ности всей сис­темы тоже есть некото­рые воп­росы. Пос­коль­ку IP-адре­са всех инжекто­ров в рое нет­рудно получить из индекса, их теоре­тичес­ки мож­но заб­локиро­вать или зад­досить. Так­же оче­вид­но, что в пуб­личном режиме прос­мотра невоз­можно получить дос­туп к кон­тенту, тре­бующе­му авто­риза­ции, пос­коль­ку перед отправ­кой зап­роса инжекто­ру из него сна­чала уда­ляют­ся логины и пароли, пос­ле чего он шиф­рует­ся, а при воз­вра­те дан­ных кли­енту инжектор уда­ляет отту­да куки.

Дела­ется это для того, что­бы при­ват­ные дан­ные не утек­ли в Р2Р‑сеть. Таким обра­зом, прос­мотр какого‑либо лич­ного кон­тента, вро­де сво­ей стра­нич­ки в заб­локиро­ван­ной соц­сети, воз­можен толь­ко в при­ват­ном режиме.

Есть и еще один нюанс, не сов­сем оче­вид­ный, но вмес­те с тем немало­важ­ный. Все доверен­ные инжекто­ры в сети Ceno при­над­лежат ком­пании eQualitie. Мож­но ли поручить переда­чу сво­ей информа­ции и собс­твен­ную безопас­ность ком­мерчес­кой орга­низа­ции, которая раз­работа­ла и бес­плат­но рас­простра­няет биб­лиоте­ку Ouinet, мобиль­ный бра­узер и источни­ки финан­сирова­ния которой неиз­вес­тны? Это очень неп­ростой воп­рос.

Мой личный опыт

Ус­тановить Ceno Browser мож­но из Google Play. В целом мои ожи­дания под­твер­дились: внеш­не это впол­не обыч­ный Firefox для Android со стан­дар­тны­ми эле­мен­тами управле­ния. Сер­финг про­ходит тоже впол­не тра­дици­онно, раз­ве что стра­ницы заг­ружа­ются чуть мед­леннее, чем в обыч­ном мобиль­ном бра­узе­ре, но все же впол­не шус­тро.

При работе с Ceno я обра­тил вни­мание на то, что в пуб­личном режиме некото­рые новос­тные сай­ты содер­жат не самую акту­аль­ную информа­цию в лен­те, пос­коль­ку под­гру­жают­ся из кеша. А вот в режиме при­ват­ного прос­мотра эта проб­лема исчезла, зато вре­мя заг­рузки кон­тента ощу­тимо воз­росло.

Браузер Ceno в действии
Браузер Ceno в действии

В осно­ве Ceno лежит доволь­но ста­рая вер­сия Firefox, но авто­ры обе­щают обно­вить ее, ког­да основные работы над про­ектом будут закон­чены. Тем не менее исполь­зование уста­рев­шего движ­ка, исходни­ки которо­го уже дав­но лежат в откры­том дос­тупе, наводит на грус­тные мыс­ли об уяз­вимос­тях.

Но как бы то ни было, соф­тина работа­ет, недос­тупные в обыч­ном режиме сай­ты откры­вают­ся, а что до ско­рос­ти — то с нетороп­ливостью Ceno мож­но сми­рить­ся, осо­бен­но если учесть, что при исполь­зовании это­го бра­узе­ра не нуж­но городить ого­род с VPN.

Заключение

Тех­нология Ceno может быть очень полез­на для поль­зовате­лей, пот­ребля­ющих под­верга­емый цен­зуре кон­тент, а так­же для населе­ния стран, где под­клю­чение к интерне­ту нес­табиль­но, ненадеж­но или дорого.

С помощью одно­ран­говой P2P-сети орга­низу­ется сво­его рода комь­юни­ти, учас­тни­ки которо­го помога­ют друг дру­гу делить­ся информа­цией и пре­одо­левать раз­личные искусс­твен­ные огра­ниче­ния. Тем не менее эта тех­нология не лишена ряда недос­татков, наличие которых сле­дует обя­затель­но учи­тывать, если вы решили уста­новить Ceno на свой Android-смар­тфон или план­шет.

Полезные ссылки:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *