Агляд працэдуры ананімізацыі сістэмы дыстанцыйнага электроннага галасавання

В папярэдніх публікацыях мы спыніліся на тым, што ў разгляданай намі сістэме дыстанцыйнага электроннага галасавання для забеспячэння таямніцы галасавання і ананімізацыі выбаршчыка выкарыстоўваецца крыптаграфічны алгарытм "сляпога электроннага подпісу". У гэтым артыкуле мы разгледзім яго больш падрабязна.

Спачатку звернемся да вядомага і знаёмага алгарытму электроннага подпісу, які шырока прымяняецца ў інфармацыйных сістэмах рознага прызначэння. У аснове электроннага подпісу ляжаць крыптаграфічныя алгарытмы асіметрычнага шыфравання. Асіметрычнае шыфраванне - гэта шыфраванне з дапамогай 2 ключоў: адзін з іх выкарыстоўваецца для шыфравання, іншы для расшыфравання. Іх завуць адчынены (публічны) і зачынены ключ. Адкрыты ключ вядомы навакольным, а закрыты - толькі ўладальніку электроннага подпісу і захоўваецца ў недаступным для іншых месцы.

Пры падпісанні адбываецца наступнае: спачатку электронны дакумент, з дапамогай матэматычных пераўтварэнняў, прыводзіцца да паслядоўнасці сімвалаў пэўнага памеру – гэта называецца хэш функцыяй.

Атрыманая знакавая паслядоўнасць (хэш ад дакумента) зашыфроўваецца адпраўніком дакумента з дапамогай зачыненага ключа і разам з адчыненым ключом адпраўляецца атрымальніку. Атрымальнік расшыфроўвае з дапамогай адчыненага ключа знакавую паслядоўнасць, ужывае да дакумента сапраўды такую ​​ж хэш функцыю і параўноўвае вынік пераўтварэння з вынікам расшыфроўкі. Калі ўсё супадае, то ў дакумент не было ўнесена змен пасля падпісання яго адпраўніком.

Апісаныя дзеянні дазваляюць упэўніцца, што дакумент не змяняўся, але не дазваляюць пераканацца ў тым, што адпраўнік сапраўды той, за каго ён сябе выдае. Таму нам патрэбны трэці бок, якому давяраюць і адпраўнік, і атрымальнік. Для гэтага да адпраўкі дакумента адпраўнік звяртаецца да трэцяга боку і просіць яго падпісаць сваім электронным подпісам яго адкрыты ключ. Цяпер адпраўнік накіроўвае атрымальніку дакумент, свой адкрыты ключ, і подпіс трэцяга боку свайго ключа. Атрымальнік правярае подпіс трэцяга боку адкрытага ключа і давярае атрыманаму подпісу дакумента.

Цяпер пяройдзем да таго, што такое «сляпы подпіс» і як ён можа дапамагчы нам пры ананімізацыі.

Уявім, што ў апісаным вышэй прыкладзе адпраўнік - гэта выбаршчык, дакумент - гэта бюлетэнь, а атрымальнік - выбарчая камісія, ці як мы казалі "кампанент уліку і падліку галасоў". У якасці трэцяга боку (валідатара) у нас будзе выступаць кампанент "Спіс выбаршчыкаў". У гэтым выпадку працэс можа адбывацца наступным чынам.

Агляд працэдуры ананімізацыі сістэмы дыстанцыйнага электроннага галасавання

Выбаршчык на сваёй прыладзе генеруе пару ключоў - закрыты і адкрыты. Паколькі гэтыя ключы ствараюцца на яго асабістым прыладзе ў браўзэры, яны вядомыя толькі яму.

З дапамогай гэтых ключоў ён будзе падпісваць бюлетэнь для кантролю ягонай цэласнасці. Падпісаны бюлетэнь і адкрыты ключ ён накіроўвае выбарчай камісіі. Каб бюлетэнь быў прыняты кампанентам "Размеркаванае захоўванне і падлік галасоў", ён павінен праверыць, што адкрыты ключ падпісаны валідатарам.

Валідатар (кампанент "Спіс выбаршчыкаў") падпіша адкрыты ключ толькі пасля таго, як пераканаецца, што выбаршчык прысутнічае ў спісе выбаршчыкаў.

Для вырашэння задачы па захаванні таямніцы галасавання адкрыты ключ выбаршчыка, створаны на яго ўладкаванні, не павінен быць вядомы нікому. Атрымліваецца, што валідатар мусіць падпісаць тое, што яму невядома. Задача здаецца невыканальнай, але тут на дапамогу прыходзяць крыптаграфічныя алгарытмы - у дадзеным выпадку алгарытм "сляпога подпісу"

Спачатку на прыладзе выбаршчыка адкрыты ключ павінен быць замаскіраваны. Маскіроўка - гэта выкананне асобных матэматычных дзеянняў на прыладзе карыстальніка. Уявіце, што вы задумалі некаторы выпадковы лік ад 1 да 100, потым задумалі другі выпадковы ад 1 да 10 і трэці, ад 10 да 50, першапачаткова задуманы лік узвялі ў ступень другога чысла, і падзялілі без астатку на трэцяе. Атрыманы вынік паведамілі навакольным. Вам не складзе працы аднавіць першапачатковы лік, бо вы ведаеце паслядоўнасць дзеянняў і задуманыя вамі лікі. Але навакольныя гэта зрабіць не змогуць.

Маскіроўка (асляпленне) адкрытага ключа выконваецца згодна са спецыяльным крыптаграфічным алгарытмам. У выніку валідатар падпісвае замаскіраваны адчынены ключ, пры гэтым зыходны ключ яму невядомы. Але асаблівасці алгарытму ў тым, што карыстач (выбаршчык), атрымаўшы подпіс на замаскіраваны ключ, можа зрабіць зваротныя пераўтварэнні і атрымаць подпіс валідны і для зыходнага, незамаскіраванага ключа.

Апісаны алгарытм шырока выкарыстоўваецца ў пратаколах тайнага галасавання. У сістэме дыстанцыйнага электроннага галасавання на дадзены момант для сляпога подпісу выкарыстоўваецца алгарытм RSA з даўжынёй ключа 4096 біт.

У агульным выглядзе працэдура ананімізацыі выглядае наступным чынам.

  1. Пры стварэнні галасавання ствараецца асобная ключавая пара «валідатара», адкрыты ключ запісваецца ў блокчэйн. На кожнае галасаванне ствараецца ўнікальная ключавая пара.
  2. Карыстальнік ідэнтыфікуецца ў сістэме ідэнтыфікацыі (у дадзеным выпадку, у ЕСІА), і дае дазвол на перадачу сваіх ідэнтыфікацыйных дадзеных з сістэмы ідэнтыфікацыі ў ПТК ДЭГ.
  3. Кампанент "Спіс выбаршчыкаў" ПТК ДЭГ правярае наяўнасць карыстальніка ў спісе выбаршчыкаў.
  4. На прыладзе карыстальніка ствараюцца яго асабістыя ключы - закрыты і адкрыты, вядомыя толькі яму.
  5. На прыладзе карыстальніка адкрыты ключ маскіруецца
  6. Разам з ідэнтыфікацыйнымі дадзенымі і замаскіраваным адкрытым ключом карыстальнік звяртаецца да кампанента "Спіс выбаршчыкаў"
  7. Кампанент яшчэ раз правярае наяўнасць карыстальніка ў спісе і факт таго, што ён не атрымліваў подпіс раней
  8. Калі ўсе праверкі паспяховыя, адбываецца подпіс ключа.
  9. Факт подпісу ключа запісваецца ў блокчэйн
  10. Карыстальнік на сваёй прыладзе здымае маску з адчыненага ключа і атрымлівае зачынены ключ, адчынены ключ і подпіс на адчынены ключ, пры гэтым усе ключы вядомыя толькі яму.
  11. Пасля гэтага карыстач перакладаецца ў ананімную зону - на асобны сайт edg2020.gov.ru, дзе яго немагчыма ідэнтыфікаваць (напрыклад, да пераходу ён можа падлучыць VPN або змяніць інтэрнэт-правайдэра, цалкам змяніўшы IP-адрас)
  12. Прыём бюлетэня будзе залежаць толькі ад таго, ці пройдзе праверку подпіс "валідатара" і ці не быў такі ключ выкарыстаны раней.

Далей прывядзем апісанне алгарытму з пункту гледжання крыптаграфіі.
Параметры подпісу і абазначэння:

Агляд працэдуры ананімізацыі сістэмы дыстанцыйнага электроннага галасавання
Агляд працэдуры ананімізацыі сістэмы дыстанцыйнага электроннага галасавання

M - у фармаце padding FDN для подпісу.

Крыніца: habr.com

Дадаць каментар