Кіріспе
Crowds – анонимді веб-шолу үшін ұсынылған анонимділік желісі. Crowds анонимділік протоколының негізгі идеясы – әр пайдаланушының байланысын ұқсас пайдаланушылар тобының ішінде кездейсоқ бағыттап, жасыру болып табылады. Сондықтан, ынтымақтастық ететін топ мүшелері де, соңғы алушы да пакеттің топтың қай жерінен келгенін анықтай алмайды. Crowds-ты Майкл К. Райтер мен Авиэль Д. Рубин жасаған. Ол ішкі шабуылдарға және жемқорлыққа ұшыраған алушыға қарсы қорғаныс береді, бірақ жаһандық шабуылшыға немесе жергілікті тыңшыға қарсы анонимділікті қамтамасыз етпейді ("Crowds: Веб-мәмілелер үшін анонимділік" дегенді қараңыз). Crowds алдыңғы шабуылға осал; бұл Рейтер мен Рубиннің мақаласында талқыланды және Мэтью К. Райт, Мика Адлер және Брайан Нил Левиннің "Алдыңғы шабуыл: Анонимді байланыс жүйелеріне қауіптің талдауы" деген мақаласында одан әрі кеңейтілді. Crowds пайдаланушылардың компьютерлер тобында жасырынуы деген ұғымды енгізді.
Қалың топтың жұмыс істеу әдісі
Әрбір пайдаланушы блендерде тіркеліп, басқа пайдаланушылар тобына қосылады, блендер – мүшелік басқаруға жауапты бір сервер. Пайдаланушы тіркелген кезде, топтағы барлық басқа мүшелер хабардар етіледі. Блендер сондай-ақ кілт таратуға жауапты, ол виртуалды жолдар арқылы жіберілетін пакеттерді шифрлау және оларды ашып алу үшін қолданылатын симметриялық кілттерді жеке жұптарға jondo-ларға таратады. Әрбір пайдаланушы өз машинасымен jondo арқылы ұсынылады, ол пайдаланушының компьютерінде іске қосылатын бағдарлама. Әрбір jondo соңғы серверге сұрау жібереді немесе оны кездейсоқ таңдалған jondo-ға (мүмкін өзіне) жібереді. Басқа jondo-ның міндеттері – cookie-лар сияқты жеке ақпаратты және сәйкестендіруші тақырыптарды жою. Jondo сұраудың алдыңғы jondo-дан немесе одан бұрынғысынан келгенін анықтай алмайды. Сұрау мен жауап, ықтималдықтарды қолданатын алгоритм арқылы құрылған бірдей виртуалды жолдармен жүзеге асырылады. Жаңа қосылған мүшелердің анонимділігін сақтау үшін виртуалды жолдар үнемі бұзылып, қайта құрастырылады.
Негізгі жобалау
Қалыңдықтар жүйесі әрбір түйіннің хабарды бастаушы болу мүмкіндігін бірдей деп есептеу арқылы жұмыс істейді. Айтылғандай, әрбір түйін желіге jondo ("Джон Доу" сөзінен) іске қосу арқылы қосылады, ол басқа пайдаланушылардан сұрауларды қабылдап, жіберетін шағын процесс. Jondo іске қосылғанда, желідегі барлық түйіндер жаңа түйіннің қосылғаны туралы хабардар болады және оны хабар жеткізуші ретінде таңдауды бастайды. Хабарды жіберу үшін түйін желідегі барлық түйіндерден кездейсоқ (тең ықтималдықпен) таңдайды және оларға хабарды жібереді. Хабарды алғаннан кейін түйін бұрыс монетаны лақтырады (белгілі бір ықтималдықпен) және егер монета сыртқы жағымен түссе, оны басқа кездейсоқ түйінге жібереді, әйтпесе оны соңғы адресатқа жібереді. Әр түйін басқа түйінге хабар жібергенде алдыңғы түйінді жазады, осылайша туннель құрылады, ол хабар жіберуші мен алушы арасындағы байланыс үшін пайдаланылады.
Қауіпсіздік талдау
Біз сипаттаған Crowds механизмдерін ескере отырып, шабуылшы веб-транзакциялардың жіберушілері мен алушылары туралы қандай ақпаратты анықтай алады деген сұраққа тоқталаймыз.
Жергілікті тыңдаушы
Естеріңізге сала кетейік, жолмен жіберілетін әрбір хабарлама, соңғы серверге жіберілетін сұраныстан басқа, шифрланады. Осылайша, тыңдаушы пайдаланушының компьютерінен шығатын кез келген хабарламаны көре алады, бірақ ол тек пайдаланушының jondo-сы пайдаланушының сұрауын өзі жіберсе ғана соңғы серверге жіберілген хабарламаны көреді. Пайдаланушының jondo-сының ақырында сұранысты жіберу ықтималдығы 1/n-ге тең, мұнда n – жол құрылған кездегі топтың мөлшері. Осыдан біз тыңдаушының қабылдаушының кім екенін білу мүмкіндігінің топ мөлшеріне байланысты төмендейтінін білеміз. Сонымен қатар, егер пайдаланушының jondo-сы сұранысты жібермесе, жергілікті тыңдаушы тек соңғы сервердің шифрланған мекенжайын көреді, бұл қабылдаушының анонимділігін қамтамасыз етеді деп санаймыз, ол (бейресми) күдік тудырмайды. (Күдік тудырмайды – ешбір пайдаланушы екіншісінен гүманды емес).
if the user's jondo ultimately submits the user's request itself. Since the probability that the user's jondo ultimately submits the request is 1/n where n is the size of the crowd when the path was created. Thus we learn that the probability that the eavesdropper learns the identity of the receiver decreases as a function of crowd size. Moreover, when the user's jondo does not ultimately submit the request, the local eavesdropper sees only the encrypted address of the end server, which we suggest yields receiver anonymity that is (informally) beyond suspicion. (beyond suspicion no user is more suspicious than other).
Статикалық жолдар
Динамикалық жолдар жүйемен бірлесіп жұмыс істейтін жондоларға қарсы жүйенің анонимділік қасиеттерін төмендетуге ұшырайды. Себебі, егер серіктес жондолар көптеген түрлі жолдарды бір жондо бастаған деп анықтай алса, онда оның кінәсіздігі күмәнді болады. Бірлесіп жұмыс істейтін жондолар жол мазмұнының ұқсастығы немесе жолдардағы байланыс уақыты арқылы бір белгісіз жондо бастаған жолдарды байланыстыра алуы мүмкін. Мұны болдырмау үшін біз жолдарды статикалық еттік, осылайша шабуылшы бір жондоға бірнеше жолды байланыстыра алмайды.
communication on paths. To prevent this, we made paths static, so the attacker simply does not have multiple paths to link to the same jondo.
Кестеленген суреттер мен уақыт шабуылдары
HTML-бетке URL-сілтемесі (мысалы, сурет мекенжайы) енгізілуі мүмкін, ол бет жүктелген кезде пайдаланушының браузері автоматты түрде тағы бір сұраныс жібереді. Осындай сұраулардың дереу жасалуы, бірігіп жұмыс істейтін jondo-лардың уақытты дұрыс пайдаланып шабуыл жасауына ең жақсы мүмкіндік береді. Белгілі бір жолдағы алғашқы ынтымақтастық көрсететін jondo, автоматты түрде жүктелетін URL-ді қамтитын веб-бетті қайтарғанда, сол URL-ге сұрау келгенге дейін өткен уақытты өлшеуге болады. Егер уақыт жеткілікті түрде қысқа болса, онда серіктес тікелей алдыңғысы осы сұрауды бастаған болуы мүмкін екенін көрсетеді.
Алдын алу
Jondo пайдаланушының браузерінен тікелей алынған немесе тікелей соңғы серверге жіберілген сұранысқа HTML-жауап алғанда, ол HTML-бетті талдайды және пайдаланушының браузері осы жауапты алғаннан кейін автоматты түрде сұрайтын барлық URL-ді анықтайды. Жолдағы соңғы jondo осы URL-дерді сұрап, бастапқы сұраныс алынған жолмен кері қайтарады. Пайдаланушының jondo, пайдаланушының браузерінен осы URL-дерге қатысты сұрауларды алғаннан кейін, оларды жолға жібермейді, керісінше URL-дердің мазмұны жолмен келуін күтеді де, содан кейін оларды браузерге жібереді. Осылайша, жолдағы басқа jondos браузер жасаған сұрауларды көрмейді, демек олардан уақыт туралы ақпаратты ала алмайды.
Шабуылдар
Crowds жемқорлықпен айналысатын алушыға қарсы толық анонимділікті қамтамасыз етеді (яғни, анонимділіктің дәрежесін қараңыз), себебі барлық мүшелер бастамашы болғандай көрінеді. Біз көрсеткендей, жемқорлықпен біріккен түйіндерге қарсы Crowds ықтимал кінәсіздікті қамтамасыз етеді (осының себебін мақалада қараңыз) және белгілі бір деңгейде анонимділікті ұсынады. Алдыңғы шабуылға қарсы Crowds осал болады; бұл шабуылда жемқор түйін жол бойындағы алдыңғы түйінді сақтап қалады, нәтижесінде желі қайта құрылғанда ол басқа түйіндерге қарағанда көбірек хабар жіберуші болып көрінеді, соның салдарынан бастамашы кім екені анықталады. Рейтер мен Рубин бұл мәселені атап өтіп, жолдың қайта құрылу аралығындағы уақыттың ұзақ (мүмкін болса, шексіз) болуын ұсынады (жолдағы түйін желіден шыққанда қайта құрылым жасалады). Crowds жаһандық тыңшыдан қорғай алмайды, себебі байланыстарды шифрлау мүмкін емес, өйткені Crowds-тағы әрбір түйін басқа барлық түйіндермен байланыса алады (толық байланысқан граф), сондықтан симметриялық кілттерді орнату үшін жұптық кілттер қажет, бұл өте көп және іске асыру қиын. Жергілікті тыңшыға қарсы да Crowds қорғаныс бере алмайды, себебі тыңшы кірмеген түйінден хабар шығып жатқанын көреді, бұл түйіннің жіберуші екенін нақты көрсетеді.