Как работает электронная подпись

Одно из полез­ных при­ме­не­ний асим­мет­рич­но­го шиф­ро­ва­ния — рабо­та с элек­трон­ной под­пи­сью. Рас­ска­зы­ва­ем, как устро­е­на ЭП изнут­ри и где она применяется.

Что такое электронная подпись

Элек­трон­ная под­пись — это тех­но­ло­гия, кото­рая помо­га­ет под­твер­дить под­лин­ность элек­трон­но­го доку­мен­та: дого­во­ра, справ­ки, выпис­ки или чего-то ещё. 

Если упро­щён­но, рабо­та­ет так: 

👉 Есть некий доку­мент, под­пи­сан­ный ЭП

👉 С помо­щью спе­ци­аль­ной про­грам­мы мож­но про­ве­рить под­лин­ность этой под­пи­си и документа

✅ Если про­грам­ма гово­рит, что всё окей, то мы можем быть уве­ре­ны: доку­мент под­пи­сал имен­но тот, кто в нём ука­зан; и с момен­та под­пи­са­ния в доку­мен­те ниче­го не изменилось. 

❌ Или про­грам­ма может ска­зать, что под­пись не сов­па­ла. Это зна­чит, что либо доку­мент под­пи­сал дру­гой чело­век, либо после под­пи­са­ния кто-то изме­нил этот доку­мент (напри­мер, допи­сал ноль в сто­и­мость кон­трак­та). Так мы пой­мём, что это­му доку­мен­ту нель­зя доверять. 

С тех­ни­че­ской точ­ки зре­ния ЭП — неболь­шой фай­лик, кото­рый при­ла­га­ет­ся к иско­мо­му доку­мен­ту. Фай­лик пере­сы­ла­ет­ся вме­сте с основ­ным доку­мен­том, его мож­но пере­да­вать по откры­тым кана­лам свя­зи, в нём нет ниче­го секретного. 

Элек­трон­ная под­пись нуж­на, что­бы защи­щать дого­во­ры, выда­вать офи­ци­аль­ные справ­ки, заклю­чать сдел­ки и участ­во­вать в тор­гах по госзакупкам. 

Основа ЭП — асимметричное шифрование

Мы уже писа­ли об асим­мет­рич­ном шиф­ро­ва­нии. Вот основ­ные мысли: 

  • В сим­мет­рич­ном алго­рит­ме зашиф­ро­вать и рас­шиф­ро­вать сооб­ще­ние мож­но толь­ко одним и тем же клю­чом. Это полез­но для пере­да­чи сек­рет­ных сооб­ще­ний, когда две сто­ро­ны дове­ря­ют друг дру­гу и могут зара­нее обме­нять­ся ключом. 
  • При асим­мет­рич­ном сооб­ще­ние шиф­ру­ет­ся одним клю­чом, а рас­шиф­ро­вы­ва­ет­ся дру­гим. В раз­ных ком­би­на­ци­ях этот алго­ритм помо­га­ет шиф­ро­вать сооб­ще­ния, когда сто­ро­ны друг дру­гу не дове­ря­ют или не могут обме­нять­ся клю­ча­ми зара­нее. В част­но­сти, это полез­но для под­твер­жде­ния под­лин­но­сти документов. 

Как работает: сертификаты

Элек­трон­ная под­пись состо­ит из двух прин­ци­пи­аль­ных частей:

  1. Сер­ти­фи­кат для удо­сто­ве­ре­ния подписывающего.
  2. Крип­то­гра­фи­че­ская часть для про­вер­ки под­лин­но­сти документа.

Гру­бо гово­ря, ЭП долж­на гаран­ти­ро­вать, что доку­мент под­пи­са­ли имен­но вы и что вы под­пи­са­ли имен­но этот документ. 

В сер­ти­фи­ка­те хра­нят­ся дан­ные о вла­дель­це подписи:

  • кто вла­де­лец этой подписи;
  • откры­тый ключ для про­вер­ки подписи;
  • когда закан­чи­ва­ет­ся срок дей­ствия подписи;
  • како­го уров­ня доку­мен­ты мож­но под­пи­сы­вать этой подписью;
  • кто выдал сертификат;
  • и дру­гие слу­жеб­ные данные.

Но смысл сер­ти­фи­ка­та не в том, что там хра­нят­ся эти дан­ные, а в том, кто эти дан­ные туда поло­жил. В Рос­сии сер­ти­фи­ка­ты и ЭП выда­ют спе­ци­аль­ные удо­сто­ве­ря­ю­щие цен­тры — это ком­па­нии, кото­рые гаран­ти­ру­ют, что сер­ти­фи­кат выда­ёт­ся имен­но тому, кто в этом сер­ти­фи­ка­те указан.

Что­бы полу­чить сер­ти­фи­кат, вы при­хо­ди­те лич­но в эту ком­па­нию (удо­сто­ве­ря­ю­щий центр), пока­зы­ва­е­те доку­мен­ты, фото­гра­фи­ру­е­тесь. Вас зано­сят в базу удо­сто­ве­ря­ю­ще­го цен­тра и выда­ют клю­чи элек­трон­ной под­пи­си. Так все участ­ни­ки элек­трон­но­го доку­мен­то­обо­ро­та будут уве­ре­ны, что все доку­мен­ты, под­пи­сан­ные ваши­ми клю­ча­ми, под­пи­са­ны имен­но вами.

В России сертификаты и ЭП выдают специальные удостоверяющие центры — это компании, которые гарантируют, что сертификат выдаётся именно тому, кто в этом сертификате указан

Как работает: алгоритмы шифрования

Допу­стим, вы уже схо­ди­ли в удо­сто­ве­ря­ю­щий центр и полу­чи­ли на флеш­ке сер­ти­фи­кат и ключ элек­трон­ной под­пи­си. Теперь нуж­но ска­чать спе­ци­аль­ный софт, кото­рый и будет под­пи­сы­вать ваши доку­мен­ты и про­ве­рять чужие на подлинность.

Про­бле­ма в том, что ЭП осно­ва­на на алго­рит­мах асим­мет­рич­но­го шиф­ро­ва­ния, а их мно­го: раз­ло­же­ние на про­стые мно­жи­те­ли, дис­крет­ное лога­риф­ми­ро­ва­ние, эллип­ти­че­ские кри­вые и мно­же­ство дру­гих. Ключ из одно­го алго­рит­ма не подой­дёт для исполь­зо­ва­ния в дру­гом, поэто­му в Рос­сии дого­во­ри­лись исполь­зо­вать стан­дарт шиф­ро­ва­ния ГОСТ Р 34.10-2012, осно­ван­ный на эллип­ти­че­ских кри­вых. Все госу­дар­ствен­ные орга­ны рабо­та­ют толь­ко с таким алго­рит­мом и не при­ни­ма­ют дру­гие ЭП.

Это зна­чит, что нам нужен спе­ци­аль­ный софт, в кото­ром уже есть этот алго­ритм. Чаще все­го исполь­зу­ют Крип­то­П­РО, реже — ViPNet CSP. С помо­щью этих про­грамм мож­но под­пи­сать доку­мен­ты и про­ве­рить сер­ти­фи­ка­ты на подлинность.

Принцип работы электронной подписи

Элек­трон­ная под­пись — это асим­мет­рич­ное шиф­ро­ва­ние наобо­рот: вы зашиф­ро­вы­ва­е­те закры­тым клю­чом, а рас­шиф­ро­вать может кто угод­но с помо­щью откры­то­го клю­ча, кото­рый досту­пен всем. 

👉 Если откры­тый ключ под­хо­дит к сооб­ще­нию и рас­шиф­ро­вы­ва­ет его, зна­чит, оно было зашиф­ро­ва­но имен­но этим закры­тым клю­чом — то есть имен­но вами. 

Раз­бе­рём по шагам:

  1. В удо­сто­ве­ря­ю­щем цен­тре вы полу­ча­е­те сер­ти­фи­кат и ключ элек­трон­ной под­пи­си. Это закры­тый ключ, кото­рый пере­да­вать нико­му нель­зя. Откры­тый же ключ хра­нит­ся в самом сер­ти­фи­ка­те, кото­рый при­кла­ды­ва­ет­ся к каж­до­му доку­мен­ту и досту­пен всем.
  2. Берё­те нуж­ный доку­мент и полу­ча­е­те его крип­то­гра­фи­че­ский хеш. Хеш — это неболь­шая стро­ка, кото­рая пред­став­ля­ет собой «циф­ро­вой отпе­ча­ток» фай­ла. У каж­до­го фай­ла с уни­каль­ным набо­ром битов будет уни­каль­ный хеш, при­чём он все­гда оди­на­ко­вой дли­ны. Подроб­нее о хешах мы писа­ли, когда раз­би­ра­ли скан­дал с паро­ля­ми Фейсбука.
  3. Шиф­ру­е­те этот хеш сво­им закры­тым клю­чом. Полу­чен­ный резуль­тат шиф­ро­ва­ния добав­ля­е­те к исход­но­му документу.
  4. Туда же добав­ля­е­те сер­ти­фи­кат, что­бы все мог­ли про­ве­рить и убе­дить­ся, что доку­мент под­пи­са­ли вы.

Принцип работы электронной подписи

А что если подменят сам сертификат?

Все сер­ти­фи­ка­ты, кото­рые выда­ёт удо­сто­ве­ря­ю­щий центр, тоже под­пи­сы­ва­ют­ся элек­трон­ной под­пи­сью. Что­бы про­ве­рить под­лин­ность сер­ти­фи­ка­та, мож­но зай­ти на офи­ци­аль­ный сайт удо­сто­ве­ря­ю­ще­го цен­тра и ска­чать откры­тый ключ для про­вер­ки. Если хеш само­го сер­ти­фи­ка­та сов­па­да­ет с хешем, кото­рый мы полу­чи­ли с помо­щью откры­то­го клю­ча с сай­та — зна­чит, и сам сер­ти­фи­кат подлинный.