Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Здравствуйте!

Не знал куда это написать, но так как в итоге планирую на Delphi код ваять, написал сюда.

Задача выглядит так: есть некие записи, которые делают некие пользователи. Возникла необходимость руководства их подписывать электронными подписями (которые ЭЦП на носителях). Я с этой технологией вообще не знаком. Знаю что документы можно пописывать такими, походу к ним цепляется хэш и тому подобное. Но касаемо записей БД... хм... такое вообще бывает? (имею ввиду сами записи, а не объект подписанный и сохраненный в BLOB).
9 янв 19, 17:03    [21780830]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 7678
Подписывается "последовательность байт".
Что это: документ, запись, в общем-то пофиг. И то и то - байты.

AFAIK
9 янв 19, 17:10    [21780844]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Leonid Kudryavtsev,

можно чуть подробнее? В БД есть записи, поля. Ну например ФИО, и какое-то поле, которое требует особой ответственности, что это в базу вбил именно этот человек. Где здесь последовательность байт? Что в итоге будет в поле? или это дополнительное поле? Или... не въезжаю.
9 янв 19, 17:16    [21780852]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Если мы говорим о подписи именно записи БД, в каком виде и где будет храниться сама ЭЦП?
9 янв 19, 17:19    [21780857]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
offsites
Leonid Kudryavtsev,

можно чуть подробнее? В БД есть записи, поля. Ну например ФИО, и какое-то поле, которое требует особой ответственности, что это в базу вбил именно этот человек. Где здесь последовательность байт? Что в итоге будет в поле? или это дополнительное поле? Или... не въезжаю.

Добавляете к таблице table1 дополнительную таблицу table1_EDS, для которой будет столбец с хэшем, столбец-ссылка на уникальную строку первой таблицы и столбец-ссылка на таблицу пользователей, которые имеют право заверять строки таблицы table1/table2/... своими ЭЦП. Лучше все ЭЦП в отдельную таблицу - и тогда в table1_EDS будет еще и ссылка на ЭЦП из отдельной таблицы.

Если же в БД записи невозможно отделить одну от другой - тогда в таблице создаете новые столбцы, куда же деваться.
9 янв 19, 17:23    [21780863]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47569

offsites
Если мы говорим о подписи именно записи БД, в каком виде и где будет храниться сама ЭЦП?

Отдельное поле в самой этой записи. Прочитай теорию насчёт "что такое ЭЦП и как она
вычисляется".

Posted via ActualForum NNTP Server 1.5

9 янв 19, 17:24    [21780864]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
offsites
...В БД есть записи, поля. Ну например ФИО, и какое-то поле, которое требует особой ответственности, что это в базу вбил именно этот человек. Где здесь последовательность байт?...

е***ь ты конь.
9 янв 19, 17:27    [21780870]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
offsites
Leonid Kudryavtsev,

можно чуть подробнее? В БД есть записи, поля. Ну например ФИО, и какое-то поле, которое требует особой ответственности, что это в базу вбил именно этот человек. Где здесь последовательность байт? Что в итоге будет в поле? или это дополнительное поле? Или... не въезжаю.

Взяли ЭЦП - она однозначно идентифицирует своего владельца и срок действия. В январе у Иванова была эцп1, в феврале он подписывал уже с помощью эцп2.
Далее берете все столбцы старые, от них делаете копии, содержимое столбца column1 подписываете эцп1 и записываете в column1_eds, содержимое столбца column2 - в столбец column3 и так далее. Плюс дополнительный столбец-ссылка на таблицу, где Иванов и Петров, плюс дополнительный столбец-ссылка на таблицу, где эцп1, эцп2. Плюс дополнительный столбец datetime, куда заносится первая итерация подписи, плюс дополнительный столбец datetime, куда заносится любая итерация подписи, если эти два столбца совпадают - строку подписывали один раз и не подписывали повторно после изменения "боевых" столбцов. Плюс столбец с признаком изменения в "боевых" (column1, column2) столбцах ПОСЛЕ наложения ЭЦП (записи в column1_eds и так далее) и триггер - при попытке записи в "боевые" ставить признак, что column1_eds уже содержит устаревший хэш.
9 янв 19, 17:27    [21780871]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Andy_OLAP,

спасибо, вижу вы в теме. Шеф увидел у бухгалтера ключ СБИС на флешке который, и началась вся эта песня. Я им туда звонил, вообще никто, включая службу техподдержки ничего не может сказать о внедрении в свой софт кода для работы с ЭЦП. Очень странно. Ожидал что они некую SDK раздают направо и налево.
Может вы толкнете где есть доки, или примеры кода, или еще что на эту тему?
9 янв 19, 17:28    [21780873]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
Andy_OLAP
... ЭЦП - она однозначно идентифицирует ... и срок действия...

А погоду в регионе на момент подписания она не идентифицирует?
9 янв 19, 17:30    [21780876]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
offsites,

Когда Вам советуют в строке таблицы только один столбец, куда записывать эцп1/эцп2 и так далее при "подписи" - нужно помнить, что Иванов имеет право заносить даннные в column1 и column2 и подписывать в column1_eds и column2_eds, а его вышестоящий начальник Петров может заносить данные в секретный столбец column3, подписать своей эцп столбец column3_eds и переподписать column1_eds/column2_eds. То есть столбцы одной и той же таблицы могут иметь разных владельцев и схемы подписи с помощью ЭЦП соответственно.
9 янв 19, 17:31    [21780879]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Фэйтл Эра
Andy_OLAP
... ЭЦП - она однозначно идентифицирует ... и срок действия...

А погоду в регионе на момент подписания она не идентифицирует?

Я и так пытаюсь упростить максимально человеку. ЭЦП у Иванова может быть несколько. Конкретная ЭЦП может быть просрочена и ей ничего нельзя больше подписывать. Точнее, в таблице с перечнем ЭЦП должна быть дата начала использования и дата завершения использования этой ЭЦП для подписи в "боевых" таблицах, так будет кошернее.
9 янв 19, 17:32    [21780883]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 47569

offsites
Может вы толкнете где есть доки, или примеры кода, или еще что на эту тему?

Начни с https://ru.wikipedia.org/wiki/Электронная_подпись

Posted via ActualForum NNTP Server 1.5

9 янв 19, 17:35    [21780886]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
Andy_OLAP
Фэйтл Эра
пропущено...

А погоду в регионе на момент подписания она не идентифицирует?

Я и так пытаюсь упростить максимально человеку. ЭЦП у Иванова может быть несколько. Конкретная ЭЦП может быть просрочена и ей ничего нельзя больше подписывать. Точнее, в таблице с перечнем ЭЦП должна быть дата начала использования и дата завершения использования этой ЭЦП для подписи в "боевых" таблицах, так будет кошернее.

Откуда эта отсебятина?
9 янв 19, 17:35    [21780887]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Andy_OLAP,

Спасибо, с логикой работы ЭЦП + БД стало ясно. Как подступиться к флешке с ЭЦП? Существуют ли какие SDK?
9 янв 19, 17:36    [21780889]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
offsites
Andy_OLAP,
...
Может вы толкнете где есть доки, или примеры кода, или еще что на эту тему?

С ВИКИ начни.

ЭЦП - это сложная математика, типа матана. Самостоятельно разрабатывать алгоритмы категорически не рекомендуется. На халяву (т.е., дергая API конкретно используемых программных пакетов) пользоваться можно.

И есть смысл ознакомиться об ограничениях, предусмотренными законодательством твоей страны. В области использования криптографии и ЭЦП.
9 янв 19, 17:39    [21780893]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
Фэйтл Эра,

Ладно. Есть сертификат. Длинное число 123. И есть столбец, в который записали 10. Если применить необратимое шифрование - появится число 12. Это и есть ЭЦП для столбца. Если в столбец записать 20 и применить сертификат - он выдаст 13. Что не совпадет с 12. То есть кто-то подписал столбец, что он содержит 10, а потом кто-то поменял данные.

Пользователь через интерфейс не может видеть вообще это "10" или "20". Он не может видеть ссылку на сертификат. Он может лишь потребовать у программы взять внутри БД ссылку на сертификат, взять число из столбца, получить 12 или 13 и сравнить с "теневым" столбцом. И ответить - столбец с числом 10 или 20 "подписан" или нет.

Вот так понятнее стало? А вопрос в том, что пользователь спрашивает, как организовать ЭЦП для данных в строках, ему начинают придумывать, как накладывать ЭЦП на все "боевые" столбцы, а схема может быть гибче - каждый столбец по отдельности может быть или подписан, или не подписан, или "переподписан" пользователем более высокого ранга.
9 янв 19, 17:40    [21780895]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Dimitry Sibiryakov,

Спасибо



Фэйтл Эра,

не усложняйте, и так не просто. Я только начинаю думать в этом направлении. Еще много перелопатить придется. Так что пока ищу зацепки. Никто не помешает мне подписывать свои записи, если у меня получится)))
9 янв 19, 17:42    [21780901]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Andy_OLAP,

ну я это примерно так и представляю. ХЭШ, по алгоритму который зашит в флешке. Проверка не изменился ли оригинал - получение нового ХЭШа из этих же данных и сравнение с имеющимся.
Как к флешке подобраться, пока не ясно. Так понимаю что понадобится установка некого провайдера?
9 янв 19, 17:45    [21780906]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
offsites
Спасибо, с логикой работы ЭЦП + БД стало ясно. Как подступиться к флешке с ЭЦП? Существуют ли какие SDK?

Есть. Зависит от того, что у тебя за флешка. Например, мы с нашим программным комплексом раздаем пользователям "флешки", которые умеют подписывать блоки данных. Т.е., наш софт умеет формировать ЭЦП, работая с нашими же "флешками".
SDK, который мы используем, мы берем [url=: https://www.guardant.ru/support/download/sdk/]здесь[/url].
Но мы не пописываем никаких данных БД, а делаем нечто иное, к теме не относящееся.
...
Сомнительно, что флешка вашего гавбуха пригодится для использования со сторонним софтом. А может быть, и можно. Нужна конкретика. Зачем все это затевается, чего вы хотите достичь и что имеете для достижения этого самого чего.
9 янв 19, 17:48    [21780912]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
Фэйтл Эра,

если конкретнее, то есть флешка именно СБИС. Нужно научиться работать именно с ней. Как только получится - купим больше флешек на каждого юзера. Нужны именно эти флешки, т.к. отчитываться нужно не только перед собой, но и перед гос.организациями. Для этого нужны эти ЭЦП. Самостоятельно выдумывать алгоритмы и шифровать не имеет смысла.
9 янв 19, 17:51    [21780916]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
Andy_OLAP
Фэйтл Эра,
Ладно...


Вот это - отсебятина:
Andy_OLAP
...ЭЦП может быть просрочена и ей ничего нельзя больше подписывать...
9 янв 19, 17:52    [21780917]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
offsites
Member

Откуда:
Сообщений: 135
offsites,

да, кстати, вопрос возник. Шифруем мы записи, подписываем. А если вдруг когда-то придется отчитываться - кто это сделал, какими средствами такое может быть проверено? Они данные будут копировать в свою софтину и генерировать ХЭШ для проверки?
9 янв 19, 17:53    [21780920]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
offsites
Фэйтл Эра,

если конкретнее, то есть флешка именно СБИС. Нужно научиться работать именно с ней. Как только получится - купим больше флешек на каждого юзера. Нужны именно эти флешки, т.к. отчитываться нужно не только перед собой, но и перед гос.организациями. Для этого нужны эти ЭЦП. Самостоятельно выдумывать алгоритмы и шифровать не имеет смысла.


Почитать тебе вслух? 120$/час.
9 янв 19, 17:55    [21780922]     Ответить | Цитировать Сообщить модератору
 Re: ЭЦП записи базы данных?  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2685
offsites
offsites,

да, кстати, вопрос возник. Шифруем мы записи, подписываем. А если вдруг когда-то придется отчитываться - кто это сделал, какими средствами такое может быть проверено? Они данные будут копировать в свою софтину и генерировать ХЭШ для проверки?


во!
начинает возникать тз
9 янв 19, 17:56    [21780923]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Delphi Ответить