А „разкодирайте“ ей тази електронна идентичност де!

 

С наближаването на референдума за електронно дистанционно гласуване на 25-и октомври един от постоянно изтъкваните страхове на скептиците е, че електронния вот не може да бъде таен.

Това е абсолютно невярно – вероятно поради недостатъчна лично познания на твърдящите го, или поради липса на усилие да се консултират с експерти в областта на информационната сигурност.

Купуването или принуждаването на гласоподаватели са неизбежни независимо от технологията: е-гласуването няма да увеличи тези възможности 

Тайната на вота има две страни, които повечето противници на е-вота – дали заради незнание, дали заради удобство да защитят тезата си против – не си правят труда да забележат и разделят.

Първата страна няма нищо общо с технологиите или с начина на гласуване – тя е чисто психологическа. Въпросът при нея е колко е възможно и вероятно избирател да бъде подкупен или заплашен да гласува по даден начин от някого другиго. По тази страна на тайната на вота няма никаква разлика между сегашното присъствено гласуване в тайна кабинка, и от друга страна – електронното дистанционно. И при двете технологии, дали група избиратели ще бъдат подкупени или принудени зависи само от тяхното собствено решение дали са готови да се поддадат на натиск или продадат.

Противниците на е-вота твърдят, че работодатели или други въздействащи ще гласуват на практика „вместо избирателя“. Но за да направят това, тези принуждаващи или купуващи гласове ще трябва да се идентифицират като гласоподавателя. А това означава, че ще трябва да получат нещо от него – например картата с електронният им подпис или електронната им лична карта, както и ПИН-кода към нея, или какъвто друг вид начин за уникална идентификация бъде осъществен.

Но и при днешния присъствен и хартиен вот има елементарен начин подкупващият или принуждаващият да е сигурен, че е гласувано според желанието му: като изиска от избирателя да заснеме бюлетината с вота си докато е в тайната кабинка. Масовото наличие на мобилни телефони с камера позволява всеки да го направи. Ако ли пък заплашеният или подкупен избирател няма такъв – принуждаващия или купуващия може да му осигури преди влизане в секцията.

Но как стои въпросът с технологичната страна на тайната на вота? Там има тотална и абсолютно неразбиваема защита на тайната на вота.

Няма как да очакваме средният човек да е наясно с напредъка на математиката и технологиите в информационната сигурност. Това е естествено и не можем да виним хората за това.

Но можем да виним политиците – които са представители на същите тези хора. Тези политици имат и възможността, и задължението да се информират – чрез експерти – и да представят на избирателите разумно и реалистично, отговарящо на действителността мнение.

И ако българските политици – и германските съдии – се поинтересуват малко повече ще научат, че отдавна в компютърните технологии съществува начин за „кодиране“ на идентичност по необратим начин.

Накратко: в резултат от специална математическа операция данните на даден човек, които го идентифицират уникално – например трите имена, дата на раждане, номер и дата на валидност на документа за самоличност, място на издаване – могат да бъдат преобразувани в абсолютно неразгадаема дълга последователност от цифри и букви, която уникално идентифицира личността.

Тази математическа операция се нарича „хеширане“ („hashing“), а получената поредица от символи – „хеш“ („hash“).

Никоя друга личност – дори само с един символ разлика в идентификационните данни – не може да има същия „хеш“. Нещо повече, разликата в хеша на две личности само с един символ разлика е огромна.

Ето пример – виждат се огромните разлики между двата хеша дори само с една единствена буква разлика в трите имена:

Красимир Василев Гаджоков – хеш:

E4CEF7AD638E731E52FA7E3399B1B162
62AFCCA9CE90B5C5D6959389A8D0643B
ECE560CE41BFBF72AE56B8214F9BD566
1314988805F44C8DB7E9BBECB7D0458B

Красимир Василев Гаджокоф – хеш:

8612858B1C71287CCAFAB5589959E657
BFFF5D95C264B5AE38E727EB1969D7D0
EED5FA261107CBCCEB0CF45EF274EDCA
9C532C00E9DF41B23EE24615EC30DF16

Дори най-мощните компютри в света да бъдат събрани, ще им отнеме непосилно време да „обърнат“, т.е. да „разкодират“ обратно към оригиналната последователност от символи такива хешове.

Колкото по-дълга е поредицата от символи, която се хешира, толкова е по-трудна и по-бавна „разшифровката“ й. Ако комбинираме основните данни, идентифициращи един български гражданин, изброени по-горе, то дължината достига до около 70 символа.

Колко време би отнело да се разкодира един „хеш“ на тези 70 символа?

За основа можем да ползваме изчисленията на статията за „разкодиране“ хеша на една 8-символна парола. От съвсем скорошна публикация се вижда, че то отнема 6 часа със специализиран компютър.

Обаче увеличаването на дължината на оригиналната поредица от символи, която се хешира, увеличава нужното време за разкодира не пропорционално, а експоненциално – грубо, с по една степен за всеки символ отгоре. Така за разкодиране на един хеш, получен от 70-символна поредица от данни, ще са нужни 6 на степен 62 часа!!! За да осъзнаем невероятно огромно е това време: 6 на степен 6 часа е приблизително 5 години, 6 на степен 7 е 30 години, а 6 на степен 8 е 180 години!!!

Най-мощните и изключително скъпи компютри – каквито, разбира се, няма никакъв шанс някой да използва срещу изборите в България, просто защото ще загуби повече пари отколкото ще спечели – биха могли да разкодират хешове около 1 милион пъти по-бързо.
Струва ви се, че това променя значително нещата? Никакъв шанс! Тези милион пъти биха „свалили“ съвсем скромно скоростта за разкодиране на 70-символа: от 6 на степен 62 до … 6 на степен 54 часа. Да си припомним отново: 6 на степен 8-а е 180 години!

И това е времето за „разкодиране“ само на една идентичност!

Но и това не е всичко: много от хеширащите алгоритми правят многократни „итерации“ – многократно хеширане върху преди това хешираното, обикновено от 5000 до 10 000 пъти. Теоретичните възможности за разкодиране на такива хешове са просто колосално и абсолютно непосилни дори за възприятие от човешката мисъл, камо ли практически достижими.

А как ще бъде получена тази уникална и неразбиваема електронна самоличност, когато някой ще се идентифицира за гласуване в изборите?

Един начин е с ръчно въвеждане на данните от личната карта, друг – доста по-сигурен – е автоматично ако личната карта е „смарт“-карта (каквато научихме наскоро, че ще бъде въведена в България след няколко години) или ако се изисква „смарт“-карта с електронен подпис (струва само 12 лв на година в момента).

Но как ще бъде „гарантирано“, че този, който въвежда данните си или ползва картата, е реално притежателя на тези данни или електронен подпис; че не се ползва от някой друг?

Личните смарт-карти и картите за електронен подпис – както банковите карти – имат ПИН-код за ползване – поне 4-цифрено число. Ако някой се опита да го „хакне“ с опити да познае ПИН-а, картата става безвъзвратно неизползваема след от 5 до 7 неуспешни опита. Така че, ако някой просто „докопа“ лична смарт-карта, няма почти никакъв шанс да я използва ако не знае ПИН-а й.

Разбира се, ако някой даде както смарт-картата, така и ПИН-а за нея на другиго, то е възможно последният да я ползва вместо притежателя й. Но ако личната смарт-карта бъде обвързана с интернет-банкиране и особено с получаването на социални, здравни и пенсионни осигуровки, хората не биха се съгласявали толкова лесно да си дават картата само и само някой друг да гласува вместо тях срещу скромните 50-60 лв. Защото злоупотребата с техните осигуровки и банкови сметки би била неимоверно по-голяма материална загуба за тях.

Така виждаме колко очевидно необосновани са страховете, че технологиите ще позволят – в последствие, или по време на електронното гласуване – да се „следи“ и „разкрива“ за кого гласува избирателят с електронното гласуване.

Описаното тук е само малка част от защитите на електронното дистанционно гласуване. Десетки други технологии, механизми и процедури се прилагат и допринасят за много голямата сигурност на този безспорно превземащ света начин за упражняване правото на избор в различни нива на общественото управление.

50 thoughts on “А „разкодирайте“ ей тази електронна идентичност де!

  • 18.10.2015 at 09:17
    Permalink

    Само че това е податливо на rainbow table атака. Ако просто хешираш лични данни (които както държавата, така и недоброжелатели имат), то ще може 1. всеки да ти генерира хеша 2. да разбере какво стои зад хеша.

    За да я няма тази опция, трябва върху него да се приложи друга операция, която да се случи с частния ключ, на самата смарткарта, където никой няма достъп (тя е единствения сигурен компонент в системата).

    Окей, смарткартата ще генерира хеш, криптиран с нещо (вж. по-долу), който никой друг не може да генерира и не може да ползва rainbow таблица. Тук има два въпроса:

    – ако се криптира с частния ключ, то това е подпис, и с пълно изчерпване ще може да се намери съответстващия му публичен ключ, който да го декриптира. Ако се криптира с публичния ключ, то тогава всеки може да генерира същото нещо, защото ключът е публичен.

    – дори да има симетричен ключ на картата, и само там, и с него да се генерира наистина хеш, който никой друг не може да генерира или да match-не срещу rainbow таблица, то как съм сигурен, че този хеш някой не го съпоставя на данните ми в plain text. Защото както подава на смарткартата заявка да генерира такъв анонимен хеш, така веднага преди/след това може да поиска да подпише нещо електронно (с частния ключ), да намери кой е титулярът, да свърже хеша с титуляра, и да го прати някъде.

    Не знам това може ли да се ограничи на ниво smartcard security, предполагам може да иска PIN за всяка от операциите и да има cooldown период.

    С това не казвам, че не е възможно, а само, че не е толкова просто 🙂

  • 18.10.2015 at 11:49
    Permalink

    @Божо: Благодаря за много ценния и професионален коментар!
    Моята цел с този текст е да обясня сложността на нещата за обикновен човек и че никак не е просто имайки самия хеш да извлечеш самоличността от него.

    Естествено, че държавата има всички данни – няма как да е иначе. Ако нямаме доверие в абсолютно нищо, то няма смисъл да почваме да правим каквото и да е.
    Но каква е ВЕРОЯТНОСТТА „държавата“ да направи това? За да се стигне до тези данни, трябва бая държавни служители да се включат в тази конспирация – или да извлекат данните на 3 милиона избиратели, или да го правят „на място“ в държавните сървъри. Всичко това са големи количества данни, доста време за правене на rainbow-таблиците и т.н.

    После, някой трябва да има достъп до гласовете запазаени ЗАЕДНО с хеша на идентичността. Кой каза, че те ще се съхраняват заедно? След проверка на идентичността няма основания те да се сърхраняват заедно.

    Разбира се, че в реалността всичко това ще е по-сложно, но е възможно да се постигне много голяма сиурност, с много нискък и обществено-приемлив риск. На всеки мислещ човек е ясно, че в живота няма такова нещо като „100% сигурност“ – това е синдром на утопиите.

  • 18.10.2015 at 12:23
    Permalink

    Въпросът е, че така става security through obscurity. Не знаеш как съм гласувал, само защото нямаш три имена, адрес и ЕГН. Да, ама ако ги имам? И не, не трябва конспирация. Трябва просто някой с root access или backdoor.

    Ти имаш ли доверие на ЦИК? Аз не 🙂 Правейки сигурна електронна система за е-гласуване, трябва да нямаме доверие на никого. Всъщност единственото нещо, в което имаме доверие, е смарткартата. Иначе рискуваме двама админи в ЦИК, срещу съответните суми да дават списъци с гласували на партиите, които после да си търсят парите.

    Също така това премахва много важна възможност за public ledger. Т.е. дублираща blockchain структура, в която се пазят всички гласове, един вид „дигитален paper trail“, и с който след това да се сверяват резултатите от централната база.

  • 18.10.2015 at 13:07
    Permalink

    Много наивен подход.
    „Хайде,разкодирайте …“ Аз няма да разкодирам. Не ме интересува. Ще разкодира онзи,който се интересува, а това е _властта_. Забележете, не държавата, а властта. Онези политически сили, които държат контрола над изборателния процес и над преброителите. Онези,които сега сложиха проф Мишо К.начело на „ИО“.
    И никакъв „отворен код“няма да предотврати възможността за ‘вратички’.

    Но не там е най-лошото на гласуването по интернет. Най-големият дефект е възможността законтролиран вот. Явно Краси не схваща каква е разликата между гласуване в изборна секциа (със или без телефон, макар че телефониет вече ги забраних – и по избори, и по матури) и гласуването в някой клуб на ДПС в Мала Азия или емигрантски квартал в Германия. Или в Испания, Гърция и т.н. За циганските махали, където ще има малко над 100% участници да не говоря.

    Много тежка е заблудата на т.нар. „реформатори“, че като дадат възможност на емигрантите в САЩ да гласуват по интернет и веднага ще спечелят абсолютно мнозинство …

    Друго, което пренебрегвате, е ‘екзотичният’ вот – вотът на ония, които ще подходят към изборите като към цъкане на ‘лайкове’ във ФБ.

    Моята прогноза: гласуването по интернет ще повиши значително гласовете за ДПС, купения вот, корпоративния вот и екзотичния вот за разни хиподили и крокопотами. Не, че сега сме цъфнали и възали, ама тогава ще стане още по-зле.
    Както бе писал някога Станислав Йежи Лец – „Най-после стигнахме дъното. И в този миг отдолу някой почука“.

  • 18.10.2015 at 13:09
    Permalink

    О, не бях разбрал, че ще ми цензурират коментара. Нямаше да се хабя да пиша.

  • 18.10.2015 at 13:12
    Permalink

    @Божо: няма да се съглася – ако паролата за частния ключ се разпредели по метода на „няколкото души“ (подробна примерна процедура тук: http://referendum2015.bg/vaprosi-i-otgovori/#q-key-gen ) – няма как някой дори root access да разкодира.

  • 18.10.2015 at 13:13
    Permalink

    @Костов: нещо не сте разбрали: НИКОЙ В СВЕТА – дори американската агенция за сигурност – НЕ може да разкодира този вид кодиране. А той е само една МАЛКА част от цялата технология, процедура и практика на сигурността на едно е-гласуване.

  • 18.10.2015 at 14:51
    Permalink

    Да, вариантът с няколко ключа е doable, аз пак не бих му имал доверие, но е по-добре. Норвежците са го ползвали при пилотния си проект – вкарват си 6 члена на ЦИК „флашките“, „а аз ще формирам главата“, и Волтрон разделя идентичността от гласовете и брои резултата 🙂

    Но за целта преди да излязат от машината на гласуващия, трябва тоя хеш да е криптиран с публичния ключ на ЦИК. И тогава става де-факто двоен плик. В този случай даже няма нужда от хеша.

    Общо взето, трябва да се направи един пилотен проект, да се одитира и разцъква една година, paper-и, peer-review-та, on-premise електронно гласуване, и тогава 🙂

  • 18.10.2015 at 15:16
    Permalink

    @Костов: с цел защита от спам – който е масов по коментарите на блоговете – когато някой за ПРЪВ път коментира в блога ми, коментара му се потвържадва от мен. САМО първият път – след като веднъж е потвърден, всички следващи коментари се приемат автоматично без потвърждаване.
    И НЕ – няма никаква „цензура“, както виждате сам.

  • 18.10.2015 at 15:19
    Permalink

    @Божо: точно. Проблемът на нашето общество е че за правъ път се сблъсква с толкова сериозна технологична задача, и не е информирано нито за логическите/процедурните защити, нито за технологията зад е-гласуването.

    Но има още по-голям проблем и той е недовеието към висчко външно или непознато. И като частен случай – недоверието към нищо, което не е конкретен физически опит. Все едно да не вярваме, производството на електричество с атомна енергия е невъзможно, защото не разбираме ядрена физика …

  • 18.10.2015 at 20:22
    Permalink

    @Красимир Георгиев: в грешка сте – става въпрос за електорнно дистанционно гласуване, а НЕ електронно ПРИСЪСТВЕНО гласуане, при което се ползват електронни машини в секцията.

    А това, че някой некадърник е направил, а друг е купил такива машини – говори достатъчно колко сериозно са приели значимостта на е-гласуването. Както се вижда, нито естонската, нито швейцарската или френската системи за е-гласуване са хакнати досега.

  • 19.10.2015 at 04:50
    Permalink

    „Никой в света не може да хакне…..“, „НИКОЙ В СВЕТА – дори американската агенция за сигурност – НЕ може да разкодира този вид кодиране“ – как може да се изрекат такива думи? ….особено от човек, който описва себе си като ‘работещ в мултимилиардна компания като security specialist’.
    Първо си помислих, че е шега, но после видях, че хич не е.
    Гореописаното „невъзможно“ е толкова далече от невъзможно че просто се чудя как може да се изричат такива гротескни слова. Първото нещо, което Божо веднага посочи, че това ще клекне директно на rainbow tables. Без salt това ще е брутално лесно, тъй като българските имена не са толкова много като разновидности и един генератор на rainbow tables от речник на БГ имена: Георги,Иван,Петър,Иванов,Драганов,Стоянов…. ще изгенерира такава таблица за секунди.ЕГН-тата също се формират с прост алгоритъм, т.е много лесно могат да се изгенерират и те за секунди.
    И всичко това лесното отгоре е дори напълно излишно тъй като в милата ни родина изнасянето на лични данни е задача за 1-ви клас. От поне 1000 места могат да ви изнесат списъци с имена, ЕГН-та, адрес и какво ли не. Това изобщо не го бройте за фактор..ама изобщо. Имаше случаи на заловени администратори дето с CD-та бяха продавали данните на всички хора за по няколко стотин лева (няколко стотин лева!!!)
    Дотук и мита с колко много държавни служители трябвало да има намесени ала бала…. смешно е това. Хеширането на данните за гласуване само по себе си изобщо не е достатъчно. А така даден отгоре в ‘unhack-абъл’ примера е шега. Тази „скорошна“ публикация с GPU-та е отпреди 3 години, за това време GPU-тата са станали още по-евтини и пъти по-мощни. А дори и да е така 180години за 5 щайги с видеокарти е ужасно време. Защото 100-200 такива щайги (ако се купят дори, не да се наемат от разни облаци, което ще е още по-евтино) струват колкото пари раздава само една партия по разни градове за купените й гласове.
    Като се добави и че това дето ще се разбива не е неясен стринг, а е пределно ясно какво се търси (както казах сдобиването на списък с ЕГН-та и три имена по нашите ширини ще е задача за под 1000лв) всичко това ще е един фарс.
    Хората по света не смеят да се доверят на администраторите на CA и чистачките на помещенията…а ние, в страната, в която не можеш на съдия да се довериш ще се доверяваме на лелки и чичковци по НСИ, ЦИК,….whatever…

  • 19.10.2015 at 05:13
    Permalink

    Ето за естонската система според професор в MIT https://www.youtube.com/watch?v=uYmGeA4AxRM

    Определено пробиваема по различни методи, а процедурите им за сигурност са смешни, ниво което може да се очаква от държавна администрация. Политическият им отговор след проверката на външния наблюдател е „ти си саботьор“, нещо което може да се очаква от политиции.

    Аз съм принципно за интернет гласуване, но това е един твърде сложен и технически, и организационно проблем. Не бива да се подценява и разглежда едностранчиво.

  • 19.10.2015 at 08:17
    Permalink

    @MiCRoPhoBIC:

    тръгвате от една теза, без да я завършвате, и скачете в друга

    1) как така решихте, че няма „сол“ („salt“) в хеширането? Има и още как! Ако стинга на „солта“ е дълъг и разпределен между трима човека, като всеки знае само 1/3 от него, и ако се въвежда когато стартира апликацията за идентификация, която ще хешира, шансовете един хеш да бъде познат и с най-мощните компютри са отвъд астрономически, т.е. практикчески невъзможни

    а без да знаете „солта“ никакви rainbow tables няма да помогнат

    2) „rainbow tables“ (предварително изчисляване на всички възможни комбинации от символи за да могат после бързо да бъдат съпоставяни срещу реално изпращаните хешове на гласувалите)

    – GPU скоростта въобще не се е променила в сравнение с невъобразимо огромните изчисления, които трябва да бъдат правени. Колко пъти се е променила за 3 години?

    – Въобще няма да е лесно да ганерирате всички възможни комбинации от 26 букви в групи от по 20-30 букви (средна дъжлина на 3-те имена) и след това в допълнение

    – Облаци? Колко сървъра ще наемете при положение за че декодиране на ЕДИН хеш са нужни такъв огромен брой изчисления? 1000? 10 000? това нищо не е , защото сваля времето за разкодиране незначително с някакви си 4 степени – а имате още 50 (!!!) степени

    3) Изнасянето на данни е друг проблем. Но защо говорите само за име и ЕГН? Тези данни ги имат наистина много институции.
    Но КОЛКО институции имат име, ЕГН, номер на лична карта (още 9 цифри) , дата на издаването й (още 8 цифри) и място на издаване (още 10-на букви)?
    Но дори и да приемем, че такива бъдат изнесени – връщаме се към т.1: ако атакуващите нямат „солта“, никакъв шанс да разкодират хешовете.

    Всички такива разсъждения водят до тези от типа „слд като нещо е възможно, значи ще се случи“. Никой не отчита реалната вероятност такива неща да се случват. Нарпимер „ама тримата души пазещи паролата за ключа или солта за кеша може да се договорят или да бъдат подкупени? Обаче каква е вероятността тоа да стане ао тримата души са председателя на ВАС, на парламента и президента, например? Много малка е. Дори и защото са от групи с различни и много пъти противоположни интереси.

    И окончателния аргумент разбира се е, че ако нямаме доверие на топ-управленците в страната, то да я дадем на чужденци тогава – защото те са по-малко подкупни. Или да чакаме изкуствения интелект да завоюва света – защото той нали няма да е човек и няма да може да бъде подкупен?

    Фантасмагорични сценарии, нямащи общо с реалните вероятности в реалния свят – много. Ние българите обаче трябва да се научим да РИСКУВАМЕ когато рисковете са приемливи. А не да страдаме постоянно от синдрома „100%“ – няма нищо в релания свят което е „100% сигурно“.
    Без рискуване когато това има смисъл, абсолютно никакъв шанс да заживеем като тези държави, дето иначе много искаме да им постигнем стандарта.

  • 19.10.2015 at 08:22
    Permalink

    @Вен: видеото на проф. Халдерман съм коментирал подробно, точка по точка, още преди месец – тук: http://www.gadjokov.com/2015/09/18/p1358

    Внимавайте да не се поддавате на внушението, че ВСИЧКО в това видео е за естонскаъта система: първата му половина на видеото няма нищо общо с нея. Показва хакване на някаква супер-аматьорска система за гласуване, направена като проект на студенти, за която дори професора изрично казва, че специалисти по сигурност въобще не са я преглеждали или са участвали в правенето й.

  • 19.10.2015 at 08:27
    Permalink

    Една верига е толкова здрава, колкото най-слабото и звено! Или иначе казано „Не е важно кой как е гласувал, а е важен този който ще брои гласовете“
    Аз също не вярвам нито на ЦИК, нито на цялата политическа сган, която ще стои зад измислянето и осъществяването на така „сигурното“ електронно гласуване. Пак ще ни преметнат …. да не говорим, че никой в България няма да го позволи това електронно гласуване, не се заблуждавайте, и референдума е толкова лесно да се манипулира, че ви е бедна фантазията!
    Загубил съм вече надежда за тази държава … нищо не става тук..прокълната земя!! Това е като в Русия, колко и пари да имат, все бягат в другите „вражески“ държави да си ги харчат!

  • 19.10.2015 at 08:49
    Permalink

    @Теодор: ха, че то от 10-на години гласовете се броят с компютри вече! 🙂 От ЦИК 🙂 Протоиколите се въвеждат ръчно от хора в система на ЦИК (изработена от фамозната „фирма“ Информационно обслужване) и се броят така.
    Но има контрол: резултатите на всяка секционна избирателна комисия (СИК) се изпращат по факс или емейл до ЦИК, както и се обявяват пред самата секция. А ЦИК пък ги обявява на сайта си- секция по секция, над 12 000 секции.
    Допълнително, вътре в секцията след броенето на бюлетините, всички наблюдатели и застъпници получават копие от протокола.
    Така че всеки може да провери по-късно дали гласовете в обявеното от ЦИК и това в конкретна секция съвпада.

  • 19.10.2015 at 12:02
    Permalink

    По-скоро писанита в статията показват дълбоко непознаване на напредъка на математиката и технологиите в информационната сигурност.

  • 19.10.2015 at 19:42
    Permalink

    @Корморан: изказването ви звучи като „лозунг“ – никакви факти, логика и разсъждения. Ако не представите такива, ще трябва да приемем, че явно или нямате идея от материята, или нямате аргументи по същество.

  • 20.10.2015 at 10:44
    Permalink

    „как така решихте, че няма “сол” (“salt”) в хеширането? Има и още как! Ако стинга на “солта” е дълъг и разпределен между трима човека, като всеки знае само 1/3 от него, и ако се въвежда когато стартира апликацията за идентификация, която ще хешира,[…]“

    Що за глупост.
    За изчислението на хеша е необходима цялата сол, събирането ѝ от 3-ма човека означава, че трябва да се гласува на групи по трима.

    Колкото за това защо сме решили че няма сол. Това е така защото не си споменал солта в подсказките, а примерите които си дал са без сол. Въпросните хешове се получават ако посочения от теб текст е в UTF8 формат, няма BOM или CR/LF, а за hash се ползва sha512.

    В този ред на мисли, така и не разбрах, за какво точно искаш да ползваш въпросният хеш. Ако е за еднозначно идентифициране, тогава сървърът за гласуване има същия проблем с разбиването на хеша, като нас. Сървърът няма да знае кой човек стои зад този хeш, той дори няма да знае дали хеша е действителен или напълно произволно число.
    Да не говорим, че използвайки различна сол, ти можеш да получиш различни хешове, следователно да имаш много различни идентичности. Даже няма да повдигам темата с колизиите, които според твоите думи не съществуват.

    Проблемът с тайната на вота при гласуване, не е свързана с разбиването на едни или други кодове. Тя е свързана с факта че една и съща система трябва да те идентифицира, след което да отчете твоя вот, без да може да свърже първото с второто, дори да иска. А след това да докаже, че е направила и двете правилно.

  • 20.10.2015 at 12:53
    Permalink

    @Иван:
    – солта: картинката ИМА сол, тя е предизивкателството което съм отправил; хешовете в текста нямат – за да може да ги опита човек ако иска да рзбере как стават нещата, а и за да е по-просто

    – колизионни атаки (за неспециалистите: изчисляване на хеш, който да е същия като на валидна лична карта) ще са трудни до степен на невъзможност – защото техния успех предполага липса на валидация на входните данни (имена, ЕГН, дата на издаване, номер на ЛК), т.е. предполага че тези атаки разполагат с прозиволна комбинация от цифри и букви и още няколко символа (шпация, тире)

    – но има и друго – кой каза че всичко ще става на ЕДИН сървър ? Въвеждането на на личните данни, валидацията им и хеширането (SHA512+salt) може да става на 1-ви сървър; той изпраща хеша в криптиран header до 2-ри сървър, който от своя страна има предварително изчислен хеш ВЪРХУ първия хеша на всеки избиратели (но с друга „сол“) – и така се прави валидация да допуска само валидни хешове, а не произволни комбинации (пратения от сървър 1 хеш се хешира със солта на 2-рия сървър и се търси дали има такъв в база данни с хешовете)
    Това са само идеи – има и други концепции, разбира се.

  • 21.10.2015 at 14:56
    Permalink

    Неслучайно много малко хора може да им се даде да се занимават с алгоритми за сигурност. Просто на много малко се удава това. Този hash никаква тайна не пази. Който има нужните данни, по които се изчислява хеша, може да сметне хешовете на всички гласоподаватели за много кратко време и да види конкретен гласоподавател, как е гласувал.
    Относно вероятността държавата да оказва натиск – за момента едва ли, но при наличието на силни националистически партии с лидери с поведение на диктатор, човек не може да бъде сигурен и е по- добре да не се рискува. Все пак, по- лесно е да се въртят измами изцчло електронно вместо да трябва да закараш жив човек и да го проследиш.

    Освен това не е нужно държавата да репресира. Просто настоятелна политическа партия, може да получи данните за гласоподавателите или група гласоподаватели, да си сметне хеш или каквото трябва, след което да узнае определени субекти, как са гласували.

    Т.е. м/у гласа и гласоподавателя не бива да има никаква връзка, било то необратимо криптиране.

    За мен най- добрия вариант е просто бюлетината да се замени с машина в избирателна секция. Така много от проблемите с броенето и манипулирането на вота се решават и не се създават нови такива.

    Гласувайте НЕ на електронното отдалечено гласуване!

  • 21.10.2015 at 15:19
    Permalink

    @Александър:

    моля прочетете предните коментари – особено тези за „солта“ („salt“). И след като смятате че е лесно – хайде разкодирайте хеша в картинкаа де! 🙂 Даже и жокер съм дал.

    Ако солта за хеш-а е разпределна между трима топ-държавници и те не се договорят помежду си – друг път ще „разкодират“ идентичността партии или който и да е.

    А, и да не забравя: хеша е нужен да е в съответствие с криптирания вот САМО за дните през които се гласува електронно – за да може да се изпълни пожелателната (а незадължителна) функция да може да се гласува многократно с броене само на последния глас.
    След това съответствието спокойно може да бъде изтрито – нужни са само криптираните гласове.

    И все пак имайте малко уважение, ако не доверие – занимавам се специално с информационна сигурност от над 10 години 🙂 Или ще разкодирате хеша , който съм дал в картинката, за да ми докажете че не може да се има доверие на специалисти като мен? 🙂

  • 22.10.2015 at 05:04
    Permalink

    Твое основно твърдение беше, че хеш функцията е еднозначна. Това просто не е така.

    Проблемът със солта е, че при произволно голяма сол, ти би могъл да получиш всяка възможна хеш стойност. Тоест горният хеш може да се получи с данните на всеки един българин и специално подбрана сол.

    Вярно, практическото намиране на такова решение може да отнеме повече време, но то е математически възможно.

    Колкото за двата сървъра… Не случайно в последния си параграф ползвах думата „система“. Една система може да е съставена от множество сървъри в различни конфигурации.

    За съжаление не мога да разбера какво се опитваш да ми обясниш с примера. Напълно невъзможно е да сравняваш хешове направени с различна сол.
    Не виждам и какво печелиш ако хешваш хешове. Както личните данни, така и двете солници са налични.

    А това че солта можела да бъде разпределена между 3-ма топ държавници, направо утрепа коня. Не само повтаряш онази глупост, но този път я правиш още по-монументална!

    1. На държавниците изобщо не им е необходимо да знаят нищо за системата, никакви пароли, никаква сол! Точно те са тези които имат най-голям интерес от това да манипулират системата. Искаш тези тримата да фалшифицират изборите ли?

    2. Солта за да бъде ефективна трябва да е различна за всеки отделен хеш. Затова и солта се съхранява в явен вид заедно с хеша. (примерно /etc/shadow ).

    Съжалявам но трябва да се съглася с горния коментар. Криптографията не е за всеки. Ти определено демонстрираш неразбиране както на теоретична, принципна така и на практическата страна на криптографията.

  • 22.10.2015 at 16:00
    Permalink

    @Иван:

    аз лично бих бил предпазлив с квалификациите – особено ако не сте разбрали за какво става въпрос, както е случая тук очевидно 🙂

    1) математически ВСИЧКО е възможно – но криптирането върши ПРАКТИЧЕСКА работа в реалния свят ТОЧНО ЗАЩОТО разбиването му е ПРАКТИЧЕСКИ невъзможно – или по-скоро неизгодно: ще отнеме непосилно дълго време, коеот обезсмисля използването на резултатта, или непосилно големи ресурси (изчислителна мощност, тоест пари).

    2) За солта, разделянето й на 3 и т.н.

    Един от основните страхове е, че хората с достъп до информация, която се използва за криптиране или за хеширане, ще могат да я използват за да компрометират процеса. Например системните адмонистратори – на които наистина е трудно да се гласува толкова голямо доверие.

    Вие говорите за стандартно „посоляване“ на поредица от стрингове, когато солта се пази заедно с хеша на ДИСКА.
    Това, обаче, не изпълнява условието да опазим процеса на хеширане от системните администратори. Защото който притежава солта, може да създаде лесно rainbow таблици и така да компрометира процеса. Другия начин на компромериране е ако някой с достъп до сървъра (или рутър зад него) и с лични данни на други хора да си създава коректни хешове и да ги подава на 2-рия сървър, и така да получи токен за гласуване от името на други хора.

    Аз предлагам да има една-единствена (обща за всички хешове) сол, обаче тя да не се пази никъде по постоянната памет на сървъра, който приема входните данни и ги хешира.

    Предлагам тази „сол“ да се подели като знание от 3-ма души (всеки измисля 1/3 от нея) и 3-ма техни „заместници“ (в случай че някой от титулярите няма възможност да е на място за пускане на апликацията). Алтернативно, заместниците може да имат ключ до сейфа на титуляр, където той да е запечатал в плик напечатана своята част от „солта“.

    Когато се отвори е-гласуването, 3-мата се събират и въвеждат всеки своята част от „солта“ и тя се съхранява в оперативната памет (в променлива на постоянно работещ процес.)
    Апликацията, която приема входните данни, прочита солта от оперативната памет на другия процес (има специални програмни техники 2 процеса – когато трябва – да могат да си обменят данни през паметта), и я изпозлва за да хешира.

    Това не е непременно абсолютна защита, но е много по-трудно за системните администратори да намерят солта и да злоупоребят с нея, отколкото ако просто я запомним на диска и те просто отворят файла да я видят.

    Като приключи е-гласуването, просто се премахва процеса, който пази солта, и КРАЙ – вече нито администраторите, нито който и да е получил достъп до този сървър, няма да може да си направи rainbow-таблици или да прави коректно хешове.

    3) Забележете че тук не става въпрос за елементарните принципи на криптогфрафия – както вие, доколкото виждам, така и аз ги знам много добре. Става въпрос за ПРОЦЕДУРА, която ползва криптография, но по-голямата защита е в процедурата, а не само и единствено в криптографията.

  • 23.10.2015 at 23:27
    Permalink

    @Иван Миленов: това е видето на Халдерман, което изрично съм коментирал точка по точка в друга моя публикация преди месец 🙂 – ето : http://www.gadjokov.com/2015/09/18/p1358
    В него няма почти нищо по темата за хеширане и ползването му за анонимизиране на самоличността.

  • 24.10.2015 at 10:50
    Permalink

    Това с хеширането беше най-голямата глупост, която някога съм чел. Име -> хешираща функция -> хеш, нали?

    Защо ми е да ривърсвам хеша, след като имам достъп до името и хеширащата функция и винаги мога да го преизчисля?

  • 24.10.2015 at 12:41
    Permalink

    @Тодор Казаков:
    Защото нямате достъп до „солта“ (salt) за хеша – а без нея никакъв шанс да го изчислите вярно.
    Освен това четохте ли внимателно? Не се хешира САМО името, а цял НАБОР от данни: име + ЕГН + номер на лина ката + дата на издаване ан лична ката + място на издаване на лична карта.

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *