Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
02.02.2018, 13:20
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Hi All, Сначала опишу структуру данных: Спр. Организаций Код организации (integer) Название организации (char) Спр. Должностей работников Код должности (integer) Код организации (integer) (ссылка на спр. Организаций) Название должности (char) Спр. Работников Код работника (integer) Код организации (integer) (ссылка на спр. Организаций) Код должности (integer) (ссылка на спр. Должностей работников) ФИО работника (char) Основной документ Название документа Дата документа Код руководителя (ссылка на спр. Работников) Код организации руководителя (ссылка на спр. Организаций) Код должности руководителя (ссылка на спр. Должностей работников) Резолюции основного документа (их может быть несколько у одного документа) Код основного документа Текст резолюции Код исполнителя (ссылка на спр. Работников) Код организации исполнителя (ссылка на спр. Организаций) Код должности исполнителя (ссылка на спр. Должностей работников) Задача: После того, как руководитель в рамках конкретного документа напишет резолюции на одного или нескольких исполнителей, нужно это действие зафиксировать с помощью ЭЦП. И вот тут возникает вопрос: Что именно надо подписывать ? На текущий момент я думаю это сделать так: Берем ФИО руководителя + организация и должность руководителя + текст резолюции + ФИО, организация и должность исполнителей резолюции, подписываю все это и сохраняю ЭЦП в документ. Соответственно, когда надо будет проверить ЭЦП, опять берем все эти данные от документа и передаем их в функцию проверки ЭЦП для сравнения. Само по себе, описанное выше, работает нормально, данные собираются, подписываются и по требованию могут проверится. Но тут есть один важный момент, который мне очень не нравится: Данные в справочники заносят люди и как все люди они могут ошибаться. Скажем вместо ФИО Петров, нечайно введут ФИО Питров. А потом не заметив этого, используют это ФИО в документе с ЭЦП в качестве руководителя или исполнителя. И если раньше, до ЭЦП, я мог без всяких проблем исправить подобную ошибку в справочнике, то теперь если я эту ошибку в справочнике исправлю, то ЭЦП документа где задействовано это ошибочное ФИО, перестанет быть валидным. А ведь аналогичная грамматическая или орфографическая ошибка может быть и в названии организации или должности. То есть получается, если ФИО, организация или должность задействованы в ЭЦП, то исправлять их нельзя. Вопрос: Как быть в такой ситуации ? Вообще не исправлять такие ошибки вроде бы не хорошо, но и исправлять их тоже нельзя - ведь из за этого слетит ЭЦП в документах где они используются. Может не надо использовать ФИО, организацию или должность в ЭЦП, но тогда там останется одна резолюция, что тоже не верно. Может есть какие то еще варианты, которые я не вижу ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2018, 14:21
|
|||
---|---|---|---|
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4, у сотрудника еще и должность поменяться может. А если присвоить каждому сотруднику неизменяемых рандомных хэш и использовать его вместо фио ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.02.2018, 16:07
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4, Напрашивается конечно в таблице Спр. Работников ФИО не вести Справочник работников(людей с ФИО) должен быть отдельно А таблица "Спр. работников на должностях" типа Код работника (integer) -- ссылка на справочник людей Код организации (integer) (ссылка на спр. Организаций) Код должности (integer) (ссылка на спр. Должностей работников) Но раз уж сделано как у Вас, то на ФИО надо исключить из ЭЦП т.к. оно может меняться или корректироваться Можно ввести уникальный неизменяемый код для конкретного человека как пишет pand, например генерить на основе первичного ключа. И уже на этой основе ЭЦП генерить Или можно еще в в "Спр. работников на должностях" добавить этот уникальный код Бывает нужно разные ЭЦП иметь для каждой должности, хотя работник может быть тот же Модератор: Тема перенесена из форума "Sybase ASA, ASE, IQ". ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 10:40
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Задача: После того, как руководитель в рамках конкретного документа напишет резолюции на одного или нескольких исполнителей, нужно это действие зафиксировать с помощью ЭЦП. И вот тут возникает вопрос: Что именно надо подписывать ? На текущий момент я думаю это сделать так: Берем ФИО руководителя + организация и должность руководителя + текст резолюции + ФИО, организация и должность исполнителей резолюции, подписываю все это и сохраняю ЭЦП в документ. Тут ключевой вопрос "зачем?". Если это делается для того, чтобы злоумышленник, получивший доступ к базе, не мог подделать резолюции, то работать это будет только при строго уникальных текстах резолюций. Если же текст резолюций неуникален, то чтобы подделать ЭЦП, злоумышленнику нужно всего лишь найти резолюцию с таким же текстом тех же руководителя и исполнителя, скопировать код - и все, подпись подделана, она прекрасно пройдет проверку. Поэтому в данных для подписи точно должна быть часть, уникальная для конкретного документа/резолюции - возможно дата/время до миллисекунд, либо просто уникальный хэш резолюции , как Вам советуют выше. Если Вы-таки не хотите хэш, а хотите склеивать строку из справочников - Вам надо просто Ваши ФИО руководителя + организация и должность руководителя + текст резолюции + ФИО, организация и должность исполнителей резолюции - сохранять в резолюции, и при проверке использовать сохраненное значение, а не склеивать данные заново. В этом случае исправлению справочников (и даже изменению алгоритма генерации данных для подписи) ничто не мешает . ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 13:32
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Что именно надо подписывать ? Текст документа склеенный с текстом резолюции. Никаких ФИО руководителя и прочей лабуды там быть не должно: это атрибуты подписи, которую данный руководитель ставит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 15:22
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Dimitry SibiryakovStalker4Что именно надо подписывать ? Текст документа склеенный с текстом резолюции. Никаких ФИО руководителя и прочей лабуды там быть не должно: это атрибуты подписи, которую данный руководитель ставит.Насчет ФИО руководителя я еще могу согласится, что его его можно поместить в атрибут подписи, но ведь голая резолюция сама по себе не имеет смысла, она имеет смысл только вместе с исполнителями на которых она расписана. Соответственно исполнители тоже должны попасть в подписываемые данные. Смысл этого дела в том, что когда руководитель напишет резолюции на своих подчиненных (исполнителей), то эти исполнители должны иметь возможность убедится, что руководитель действительно написал на них эту резолюцию, для этого ЭЦП и нужна (что бы полностью отказаться от бумажного варианта). antandStalker4, Напрашивается конечно в таблице Спр. Работников ФИО не вести Справочник работников(людей с ФИО) должен быть отдельно А таблица "Спр. работников на должностях" типа Код работника (integer) -- ссылка на справочник людей Код организации (integer) (ссылка на спр. Организаций) Код должности (integer) (ссылка на спр. Должностей работников)Да, Ваш вариант структуры этих справочников более гибкий, если бы я раньше до него додумался, то так бы и сделал. А то когда у меня возникла ситуация с работниками работающими одновременно в разных подразделениях на разных должностях, пришлось извращаться и делать дополнительные таблицы. antandНо раз уж сделано как у Вас, то на ФИО надо исключить из ЭЦП т.к. оно может меняться или корректироваться.Я бы с удовольствием исключил ФИО из ЭЦП, но как я написал в ответе выше мне кажется, что это будет не правильно. antandМожно ввести уникальный неизменяемый код для конкретного человека как пишет pand, например генерить на основе первичного ключа. И уже на этой основе ЭЦП генеритьВ принципе у меня есть уникальный код работника, код организации, код должности - эти коды не изменяются и наверное можно было бы их использовать вместо их строковым значений в ЭЦП, но ведь тогда может быть ситуация, когда например ФИО Петров с кодом 1 задействуют в ЭЦП, а потом в спр. работников просто отредактируют Петров на Иванов - код при этом не поменяется, но значение то уже будет другое. Не совсем понятно, зачем на основе первичного ключа генерировать неизменяемый код, если сам первичный ключ по сути является таким неизменяемым кодом ? Кот Матроскин Поэтому в данных для подписи точно должна быть часть, уникальная для конкретного документа/резолюции - возможно дата/время до миллисекунд, либо просто уникальный хэш Такая часть есть, это внутренний код документа который является его первичным ключом и не меняется до конца жизни документа. Этот код тоже будет включен в ЭЦП. Кот МатроскинЕсли Вы-таки не хотите хэш, а хотите склеивать строку из справочников - Вам надо просто Ваши ФИО руководителя + организация и должность руководителя + текст резолюции + ФИО, организация и должность исполнителей резолюции - сохранять в резолюции, и при проверке использовать сохраненное значение, а не склеивать данные заново. В этом случае исправлению справочников (и даже изменению алгоритма генерации данных для подписи) ничто не мешает .Про этот вариант я думал с самого начала, если конечно я Вас правильно понял, но тогда может возникнуть ситуация, что если какой нибудь особо умный товарищ сможет влезть в базу напрямую без программы и поменять одного исполнителя на другого, то получится ситуация когда в базе в таблице с исполнителям резолюции будет один человек, а проверка ЭЦП при этом покажет что все нормально, ведь ЭЦП в этом случае будет сравниваться не с живыми исполнителями, а с ранее сохраненными и выявить это можно будет только путем сравнения глазами ФИО исполнителей из таблицы и ФИО исполнителей сохраненных ранее в резолюции. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 15:28
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Соответственно исполнители тоже должны попасть в подписываемые данные. Они должны упоминаться в тексте резолюции. Т.е. не просто "одобряю", а "поручить Иванову, Петрову и Сидорову". Ссылки - дополнительно. Да, денормализация. Да, в этом месте она оправдана и необходима. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 15:58
|
|||
---|---|---|---|
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4, Используйте ID. Для вас и вашего документооборота вероятно будет достаточно. Во "взрослых" системах это делается немного не так. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 16:51
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4 выявить это можно будет только путем сравнения глазами ФИО исполнителей из таблицы и ФИО исполнителей сохраненных ранее в резолюции. Необязательно глазами - регэкспы никто не отменял. Но повторюсь - надежнее, конечно, считать хэш записи-резолюции (и, соответственно, ее ссылок) и включать этот хэш в данные для подписи. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 17:36
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Dimitry SibiryakovStalker4Соответственно исполнители тоже должны попасть в подписываемые данные. Они должны упоминаться в тексте резолюции. Т.е. не просто "одобряю", а "поручить Иванову, Петрову и Сидорову". Ссылки - дополнительно. Да, денормализация. Да, в этом месте она оправдана и необходима. Резолюцию пишу ведь не я, а руководители организации. Соответственно я не могу им указывать как именно писать эту резолюцию. Сами резолюции в большинстве случаев типовые, типа "Принят к рассмотрению" или "Рассмотреть согласно действующего законодательства" и т.п. В рамках одного документа руководитель может на разных исполнителей расписать разные резолюции. Злой БобрИспользуйте ID. Для вас и вашего документооборота вероятно будет достаточно. Во "взрослых" системах это делается немного не так. )А как ? Если можно то опишите это в нескольких словах - абзацах. Кот МатроскинStalker4 выявить это можно будет только путем сравнения глазами ФИО исполнителей из таблицы и ФИО исполнителей сохраненных ранее в резолюции. Необязательно глазами - регэкспы никто не отменял. Но повторюсь - надежнее, конечно, считать хэш записи-резолюции (и, соответственно, ее ссылок) и включать этот хэш в данные для подписи.Я не совсем понимаю, что именно Вы имеет ввиду под "считать хэш записи-резолюции (и, соответственно, ее ссылок)" ? Как я уже писал ранее резолюция это не только сам текст резолюции но и указание исполнителя (одного или нескольких) для которого эта резолюция предназначена. Если можно, то объясните пожалуйста подробнее, что именно Вы имели ввиду. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 19:29
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Я не совсем понимаю, что именно Вы имеет ввиду под "считать хэш записи-резолюции (и, соответственно, ее ссылок)" ? Как я уже писал ранее резолюция это не только сам текст резолюции но и указание исполнителя (одного или нескольких) для которого эта резолюция предназначена. Если можно, то объясните пожалуйста подробнее, что именно Вы имели ввиду. Смысл прост - построить отображение данных записи-резолюции в бинарный/строковый вид с минимумом коллизий Конкретных реализации может быть множество - можно просто сериализовать запись в бинарный поток, можно в xml/json, можно по полученному результату получить MD5, CRC или еще что-то...Это не очень существенно в данном случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 20:12
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Соответственно я не могу им указывать как именно писать эту резолюцию. Можешь. Или можешь не указывать, а подождать пока строптивый исполнитель заявит "в резолюции, подписанной руководителем, не сказано, что это должен делать я, так что идите лесом". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
03.02.2018, 20:33
|
|||
---|---|---|---|
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Вопрос: Как быть в такой ситуации ? Вообще не исправлять такие ошибки вроде бы не хорошо, но и исправлять их тоже нельзя - ведь из за этого слетит ЭЦП в документах где они используются. Может не надо использовать ФИО, организацию или должность в ЭЦП, но тогда там останется одна резолюция, что тоже не верно. Может есть какие то еще варианты, которые я не вижу ? Исправления внести не получится. В вашем случае сохраняйте в текстовое представление все, что вам нужно для подписи (с ошибками или без ошибок) и это подписывайте. Этот текст сохраняйте в базе и потом проверяйте подпись именно у него, а не заново формируете текстовое представление по неисторическим (как я понял) данным. Проблем не будет. Ошибки в фамилиях это уже вопрос качество ведения справочников- один раз правильно ввели и все. раз такие неграмотные работники наймите филолога чтобы проверял новые данные. Только так ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2018, 14:53
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
SergueiStalker4Вопрос: Как быть в такой ситуации ? Вообще не исправлять такие ошибки вроде бы не хорошо, но и исправлять их тоже нельзя - ведь из за этого слетит ЭЦП в документах где они используются. Может не надо использовать ФИО, организацию или должность в ЭЦП, но тогда там останется одна резолюция, что тоже не верно. Может есть какие то еще варианты, которые я не вижу ? Исправления внести не получится. В вашем случае сохраняйте в текстовое представление все, что вам нужно для подписи (с ошибками или без ошибок) и это подписывайте. Этот текст сохраняйте в базе и потом проверяйте подпись именно у него, а не заново формируете текстовое представление по неисторическим (как я понял) данным. Проблем не будет.Если делать так, то может возникнуть ситуация, когда некто сможет влезть в базу напрямую без программы и в документе изменить исполнителей и получиться, что проверка подписи пройдет без ошибки, ведь она будет сверяться с ранее сохраненным текстовым представлением, а в реальности в живых данных будет уже другой исполнитель. SergueiОшибки в фамилиях это уже вопрос качество ведения справочников- один раз правильно ввели и все. раз такие неграмотные работники наймите филолога чтобы проверял новые данные. Только такЭто не обязательно ошибка, человек может просто поменять фамилию - например женщина вышла замуж и взяла фамилию мужа, в этом случае я не завожу нового работника, а просто переименовываю существующего, человек ведь тот же самый. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
04.02.2018, 15:01
|
|||
---|---|---|---|
|
|||
Вопрос по использованию ЭЦП для подписи определенных данных |
|||
#18+
Stalker4Если делать так, то может возникнуть ситуация, когда некто сможет влезть в базу напрямую без программы и в документе изменить исполнителей и получиться, что проверка подписи пройдет без ошибки, ведь она будет сверяться с ранее сохраненным текстовым представлением, а в реальности в живых данных будет уже другой исполнитель. Именно поэтому имена исполнителей надо включать в текст перед его подписыванием. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=32&mobile=1&tid=1540082]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 242ms |
total: | 531ms |
0 / 0 |