Использование браузера 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-смар­тфон или план­шет.

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

Дима (Kozhuh)

Эксперт в кибербезопасности. Работал в ведущих компаниях занимающихся аналитикой компьютерных угроз. Анонсы новых статей в Телеграме.

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