27 април, 2024

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

Ролята на хеширането в машините за гласуване

Цялост на софтуера/фърмуера: Преди избори софтуерът и/или фърмуерът, работещи на машина за гласуване (най-често BMD), могат да бъдат хеширани. Тази хеш стойност може да бъде съхранена или дори публикувана. В деня на изборите или по време на одит софтуерът/фърмуерът може да бъде хеширан отново и сравнен с оригиналния хеш. Ако съвпадат, това гарантира, че софтуерът не е бил подправен.

Хартиени следи за проверка от гласоподавателя: Когато гласоподавателят направи избор на BMD, машината отпечатва хартиен запис на изборите на гласоподавателя. Тази хартия може също да включва QR код или баркод, който кодира селекциите. Този код, когато бъде сканиран, може да се използва за реконструиране на избора на избирателя по електронен път. За да се гарантира, че тези кодирани данни не са подправени, те могат да бъдат хеширани и хешът може да бъде отпечатан заедно. Ако някой промени QR кода или баркода, реконструираните данни няма да съответстват на хеша.

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

Одит и проверка: Когато електронните записи се одитират спрямо хартиени следи, хеш-стойностите могат да се използват за бърза проверка дали електронните записи съвпадат със съответните им хартиени записи, без да се налага да проверявате в детайли действителното съдържание на всеки запис.

Сигурно регистриране: Машините за гласуване могат да поддържат регистрационни файлове на събития, т. нар. log-файлове, като зареждане, записване на гласуване или изключване. Всеки запис в поредицата от събития може да бъде хеширан, за да се гарантира, че никой не променя поредицата след настъпване на дадено събитие/факт.

Какво може да направи потребител ако има хеш кода?

Ако даден потребител разполага с хеш код (хеш стойност), има няколко неща, които той може да опита или да успее да извлече в зависимост от контекста или конкретния сценарий:

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

Тестване за колизии (Collision Testing): Потребителят може да се опита да намери различна част от данните, която произвежда същата хеш стойност. Това е известно като сблъсък. Умишленото намиране на сблъсъци се счита за уязвимост в хеш функцията и може да подкопае нейните свойства за сигурност.

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

Груба сила (Brute Force): Особено за кратки или недобре подбрани, слаби пароли, потребителят може да опита подход с груба сила, хеширане на много възможни входове, докато се намери съвпадение с известната хеш стойност.

Rainbow Tables: За често използвани входове (отново, като слаби пароли), нападателите могат да използват предварително изчислени таблици, наречени дъгови таблици, които по същество са големи бази данни с хеш стойности за голям брой възможни входове. Чрез търсене на известна хеш стойност в дъгова таблица, нападателят може да идентифицира оригиналния вход.

Проверка срещу известни уязвимости: Ако потребител знае коя хеш функция е била използвана за генериране на хеш стойността, той може да провери дали има известни уязвимости или слабости, свързани с тази хеш функция, потенциално улеснявайки атаки като collision testing или pre-image.

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

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

Гледайте Втори Епизод “ИТ Индустрията във Варна – Компании, Кариера, Бъдеще” от документалната поредица The BIG TECH на DevStyleR.

Слушайте новия подкаст на DevStyleR “Може ли да се доверим на Cloud Provider”.

Следвайте ни във Facebook, Instagram, LinkedIn и YouTube.

Тагове: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
Editor @ DevStyleR