подмена аттача в контролед-секции и эцп

Тема в разделе "Lotus - Программирование", создана пользователем Klido, 17 дек 2009.

  1. Klido

    Klido Гость

    Немного иная тема про ЭЦП....

    Юзер Б имеет доступ автора к документу, в котором есть контролед-секшен с аттачем (доступа на редактирование секции у юзера нет).
    Документ подписан предыдущим юзером А, который мог редактировать секцию, соответственно там его эцп.

    Юзер Б производит замену аттача в секции (в бэкграунде это позволяется нормально), подписывает и сохраняет документ.
    ЭЦП нарушена. Оно и правильно - данные в поле секции изменены, а подписать юзер Б секцию не может, т.к. не может её редактировать (хотя странно, поле меняет, подпись в бэкграунде тоже - в чем разница?)

    Цель - запретить явное изменение подписанного аттача в секции, но оставить программное. И получить новую подпись.
    Как лучше быть? Удалять старое поле и делать новое с тем же именем? Поможет ли? Или как-то налету менять доступ к секции?

    Или я куда-то не туда забрёл? ;)
     
  2. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Klido, развивай ;) мне тоже темы работы с ЭЦП интересны ))
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    Klido
    а мне вот гораздо интереснее а можно ли взять содержимое РТПоля в виде байт и чтобы там содержимое аттача было как есть?
    то есть чтобы полученный буфер скормить на хешь и не важно сколько там файлов
     
  5. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    а выгрузить в dxl?
     
  6. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Насколько мне известно, аттач Лотус сохраняет не в РТполе, а в служебное, причём их может быть несколько в зависимости от размера аттача.
    Кмк, аттачи при выгрузке расползутся по разным тэгам.

    Резюме: кмк, в любом случае аттачи нужно собирать в кучу "вручную".
     
  7. Klido

    Klido Гость

    можно....
    есть вот такое http://www.ibm.com/developerworks/lotus/li...7-security-api/
    но мало как-то....
    Сейчас посмотрю, что можно извлечь....

    Пока сформулировал для себя задачу более конктретно: в любой момент времени знать, что на такой-то момент в прошлом, когда пользователь сохранял и подписывал документ, предыдущая подпись не была нарушена. Казалось бы -пиши в лог и все рады, но уперлись "клиенты" и хотят очевидности...

    ЭЦП - это полбеды. Если шифровать док - что ты с байтами делать будешь? :ya_za:

    Добавлено: TIA
    о, там ещё старинная интересная тема - как-то недавно не вызвала она у нас энтузиазма - про PROTECTED поля
    http://techforum.intertrust.ru/site/itforu...33;OpenDocument
     
  8. Klido

    Klido Гость

    Провожу простой эксперимет с целью поковырять всякие флаги на ртф-поле.
    В контролед-секции ртф-поле Doc_Attach, вкладываем в него файло, ставим протектед, подписываем и сохраняем док.

    .
    Код (Text):
    ....
    dim item as NotesItem
    set item=doc.GetFirstItem("Doc_Attach")
    if not item.IsProtected then
    item.IsProtected=true
    end if
    .....
    Call doc.Sign()
    Call doc.Save(true,false)

    имеем:
    Field Name: Doc_Attach
    Data Type: Rich Text
    Data Length: 1720 bytes
    Seq Num: 23
    Dup Item ID: 0
    Field Flags:

    - browser.cnf

    Field Name: $FILE
    Data Type: Attached Object
    Data Length: 63 bytes
    Seq Num: 22
    Dup Item ID: 0
    Field Flags: ATTACH SIGN SEAL SUMMARY

    Object Type: File
    Object ID: 00021BC6
    Object Length: 5280
    File Name: browser.cnf
    Flags: SIGNED
    Host: MSDOS/OS2
    Compression Type: LZ1 2
    Encoding Type:
    File Attributes: RW PUBLIC
    File Size: 13222
    File Created: 11.06.2007 13:42:24
    File Modified: 11.06.2007 13:42:24

    А где же PROTECTED???
     
  9. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    оно внутри РТПоля на каждом его параграфе :ya_za:

    Добавлено:
    разные версии клиента по разному эту выгрузку делают, и если нет XML схем он и не выгрузит ничего, а это уже не удобно...
     
  10. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    информация, хранящаяся в РТ, в выгруженном dxl будет одна и та же.
    если нет схем? это как? даже, если нет, то скорее не сможет импортировать, вернее, провести проверку соответствия
     
  11. Klido

    Klido Гость

    возникла ещё одна нехорошая ситуация...
    Имеем документ с 1 рт-лайт полем типа аттачмент. На форме стоит автозапуск первого аттача. Пользователь по линкхотспоту напрямую открывает документ. В идеале сразу запускается внешнее приложение и открывается аттач.
    Однако, получаем предупреждение ECL о том, что документ "без подписи" пытается выполнить действия обращение в внешнему приложению, обращение к файловой системе....
    456.jpg
    Вопрос - как именно для таког опростого случая обеспечить обычному юзеру автозапуск аттача, при условии, что разрешать "без подписи" действия в ECL совершенно неправильно... Поможет ли поместить аттач в секцию и подписать поле при сохранении?

    Не помогло....
     
  12. Klido

    Klido Гость

    в лог пишет побольше...

    25.01.2010 18:02:08 ECL Alert Result: Code signed by -No Signature- was allowed to execute with the right: Access to file system, Access to external programs.
    25.01.2010 18:02:08 ECL Alert Details: DB Title: ***, DB Path: ***.nsf, Design Note Type: Document, Design Note Title: , Design Note ID: 333D6, ESA Description: ***.ppt Signature
    25.01.2010 18:02:08 ECL Alert Details(continued): Status: Document is not signed..

    не подписан, не смотря на то, что явно признак подписи на поле в документе есть....
     
  13. maliy

    maliy Well-Known Member

    Регистрация:
    20 мар 2007
    Сообщения:
    135
    Симпатии:
    1
    to Klido , как решил проблему? мне тоже стоит проблема как отследить подмену аттачмента, или даже его изменение...
     
  14. Klido

    Klido Гость

    maliy
    пока оставил подпись только в нужных местах, где аттач не меняют...

    подмену-то запретить достаточно просто - на уровне интерфейса - через секцию с доступом на редактирование... а вот в фоне дать заменить с наложенной эцп - в этом и трабл...
    к сожалению, пока не было опробовать способ из поста №2, написано там вроде всё в тему, но как-то странно, что лотус сам не даёт всё сделать красиво (вернее дает, но только из UI)...
     
  15. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Можно так:

    1.Создать CFD-поле с типом TEXT и в качестве значения указать имя РТ-поля. Поле с типом RichText (РТ), нотес не позволяет сделать CFD, а тип TEXT нормально отображает содержимое РТ-поля. CFD-поле должно быть внутри секции с управляемым доступом, чтоб визуально не отличаться от обычного.

    2. Само РТ-поле надо скрыть, для чего помещаем его в ещё одну секцию, но уже без доступа. Секцию делаем схлопнутой во всех режимах и всегда скрытой. Сама секция должна быть внутри секции с доступом. Т.о. содержимое РТ-поля будет доступно для чтения, но не для редактирования из UI. Программно РТ-поле менять можно.

    3. Секцию с управляемым доступом делаем доступной для редактирования всем, чтоб при UI-сохранении менялась подпись.

    4. Если надо чтоб в некоторых состояниях документа можно было редактировать РТ штатными средствами через UI, можно поместить обычную секцию вместе с РТ-полем в одну вычисляемую подформу, а в другую только РТ-поле. Когда надо редактировать РТ через UI, тогда подгружать вторую подформу и прятать CFD-поле. Не надо -- тогда наоборот, подгружаем первую подформу и отображаем CFD-поле.
     
  16. maliy

    maliy Well-Known Member

    Регистрация:
    20 мар 2007
    Сообщения:
    135
    Симпатии:
    1
    А как то можно отследить изменеие аттачмента , например эксель и можно отследить изменяли его или нет?
     
  17. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Можно, если знать местоположение файла.
     
  18. Klido

    Klido Гость

    TIA
    на какие только извраты не толкает нас лотус :)
    сейчас перечитаю ещё раз и обдумаю :)

    maliy
    если аттач нельзя трогать через UI (а программно могут только известные лица) - тогда и отслеживать нечего :)

    Добавлено:
    где-то тут (а ранее и в инете) было решение по организации контролируемого изменения - вкратце явно выгружаем аттач, запускаем его, а перед этим через API ловим типа хука на аттач/приложение ну и потом вкладываем измененный файл
     
  19. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    maliy, если уж так "вручную" надо, то записывать в какое-нибудь поле контрольную сумму, а потом сравнивать.
     
  20. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    VladSh
    Порой и даты модификации файла достаточно :)
     
Загрузка...

Поделиться этой страницей