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

  • Автор темы Klido
  • Дата начала
K

Klido

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

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

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

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

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
Klido, развивай ;) мне тоже темы работы с ЭЦП интересны ))
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#4
Klido
а мне вот гораздо интереснее а можно ли взять содержимое РТПоля в виде байт и чтобы там содержимое аттача было как есть?
то есть чтобы полученный буфер скормить на хешь и не важно сколько там файлов
 

nvyush

Lotus team
22.04.2009
2 317
0
#6
Klido
а мне вот гораздо интереснее а можно ли взять содержимое РТПоля в виде байт и чтобы там содержимое аттача было как есть?
то есть чтобы полученный буфер скормить на хешь и не важно сколько там файлов
Насколько мне известно, аттач Лотус сохраняет не в РТполе, а в служебное, причём их может быть несколько в зависимости от размера аттача.
Кмк, аттачи при выгрузке расползутся по разным тэгам.

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

Klido

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

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

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

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

Klido

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

.
Код:
....
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???
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 231
17
#9
оно внутри РТПоля на каждом его параграфе :ya_za:

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

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#10
разные версии клиента по разному эту выгрузку делают, и если нет XML схем он и не выгрузит ничего
информация, хранящаяся в РТ, в выгруженном dxl будет одна и та же.
если нет схем? это как? даже, если нет, то скорее не сможет импортировать, вернее, провести проверку соответствия
 
K

Klido

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

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

Вложения

  • 7 КБ Просмотры: 273
K

Klido

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

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..

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

maliy

Well-known member
20.03.2007
164
2
#13
to Klido , как решил проблему? мне тоже стоит проблема как отследить подмену аттачмента, или даже его изменение...
 
K

Klido

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

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

TIA

:-)
Lotus team
15.05.2009
790
3
#15
Цель - запретить явное изменение подписанного аттача в секции, но оставить программное. И получить новую подпись.
Можно так:

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

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

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

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

maliy

Well-known member
20.03.2007
164
2
#16
А как то можно отследить изменеие аттачмента , например эксель и можно отследить изменяли его или нет?
 
K

Klido

#18
TIA
Программно РТ-поле менять можно.
чтоб при UI-сохранении менялась подпись
на какие только извраты не толкает нас лотус :)
сейчас перечитаю ещё раз и обдумаю :)

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

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

VladSh

начинающий
Lotus team
11.12.2009
1 260
5
#19
maliy, если уж так "вручную" надо, то записывать в какое-нибудь поле контрольную сумму, а потом сравнивать.