Безопасность в Smalltalk.

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
77 messages Options
1234
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Dennis Schetinin
On Sunday, 4 March 2012 г. at 13:55, Igor Stasenko wrote:
2012/3/4 Dennis Schetinin <[hidden email]>:
У C(++) нет среды. Поэтому все всегда делается через кастомный UI.
Возможность использовать среду Smalltalk для того, чтобы дать возможность
пользователям практически как угодно "перекраивать" приложение под себя, на
мой взгляд, является огромным плюсом. Можно ли разграничить доступ,
оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу
"банального" -- раскройте мне глаза.
да, конечно хочется чтоб все у нас было, но нам за это ничего не было :)
в других языках вообще речь не идет о среде, и ниче, справляются.

я бы сначала спросил, а кто потенциальный пользователь вашей системы.
если это программист,
то закрывая ему доступ вы только делаете ему медвежью услугу.
если же это пользователь рода "а где на клавиатуре any key?" то не
вижу смысла вообще
открывать ему доступ к среде. только напугаете человека, а толку
все-равно не будет.
В том-то и дело, что у системы есть и "простые пользователи" (в том числе админы) — с этими все просто. Но есть и "разработчики" — те, которые определенным образом настраивают систему. В существующей (не на смоллтоке) системе настройка — некоторая "пограничная" задача: значительная часть работы делается через UI (но здесь сделан свой построитель интерфейсов, несколько DSL-ей), а часть работы, хоть и меньшую, все равно сводится к программированию и добавлении новых фич).

Smalltalk позволил бы убрать эту границу, отказаться от сложных инструментов (типа GUI Builder-а) и языков с парсерами и близким к неподдерживаемому кодом… в общем, очень серьезно упростить систему. Но тогда такой разработчик сможет получить доступ к тем кускам, к которым доступ им должен быть ограничен. Не могу сказать, что сейчас это разграничение сделано в полной мере, но хотелось бы…
 
...И в порядке бреда: имеет ли смысл добавить в контекст вызова некий
идентификатор пользователя и (возможно, на уровне виртуалки) запретить
получение сообщений при нехватке прав на их посылку?
на таком низком уровне? имхо, это не сделает систему более безопасной.
 
пути взлома сведутся к банальному поиску нужного идентификатора.
Для этого должны быть права на "поиск" и на подмену идентификатора. Нет?
 
--
Best regards,
Igor Stasenko.


--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

vmusulainen-2
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Igor Stasenko
2012/3/4 Владимир Мусулайнен <[hidden email]>:
> Пока так и не понял, чем не устраивает подход:
>
> 1. При старте образа логинимся в систему.
> 2. О залогинившемся пользователе знает ВМ.
> 3. Пользователь имеет право работать только с объектами, определенными
> в его неймспейсе.
> 4. Все вызовы в конечном образе уходят в ВМ, она и проверяет право
> пользователя внутри примитива.
>

Устраивает всем.
Просто не пойму зачем так мучиться, курочить систему, если можно
сделать все очень
легко и просто: запускаем два имиджа. в одном пусть ковыряются, другой
же закрыт за 10ю замками
и контролирует первый.

Да, и вот что еще важно:
с п.4 не могу согласиться.
с таким подходом ВМ должна "узнавать" пользователей, следить за
правами и т.п., т.е. после долгих лет
упорного труда (курочить ВМ это не очень быстро) вы получите то, что
можно на коленке накатать в смаллтолке
за месяц а то и меньше.
В общем сделать-то можно все. Но просто зачем затрачивать сверх-усилия
для этого?
Ведь усложняя и так сложную ВМ, вы опять-же делаете хуже себе же:
поддерживать такую систему будет намного сложнее
чем просто код написанный в смаллтолке.
Моя идеология в отношении ВМ была и остается неизменной: ВМ должны
быть ТУПОЙ и ПРОСТОЙ насколько это возможно.
Вся логика и сложности должны быть исполнены в языке, потому как там
им и место, и потому как мир изменчив, и поменять пару строчек в
смаллтолке
это не менять ВМ.

> Понятно, что все описано очень грубо и наружу вылезет не один
> подводный камень.
> Я так понимаю, что вопрос больше академически-теоретический (судя по
> включению в обсуждение Дениса ;))
>
> --
> http://groups.google.ru/group/sugr



--
Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Igor Stasenko
In reply to this post by Dennis Schetinin
2012/3/4 Dennis Schetinin <[hidden email]>:

> On Sunday, 4 March 2012 г. at 13:55, Igor Stasenko wrote:
>
> 2012/3/4 Dennis Schetinin <[hidden email]>:
>
> У C(++) нет среды. Поэтому все всегда делается через кастомный UI.
> Возможность использовать среду Smalltalk для того, чтобы дать возможность
> пользователям практически как угодно "перекраивать" приложение под себя, на
> мой взгляд, является огромным плюсом. Можно ли разграничить доступ,
> оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу
> "банального" -- раскройте мне глаза.
>
> да, конечно хочется чтоб все у нас было, но нам за это ничего не было :)
> в других языках вообще речь не идет о среде, и ниче, справляются.
>
> я бы сначала спросил, а кто потенциальный пользователь вашей системы.
> если это программист,
> то закрывая ему доступ вы только делаете ему медвежью услугу.
> если же это пользователь рода "а где на клавиатуре any key?" то не
> вижу смысла вообще
> открывать ему доступ к среде. только напугаете человека, а толку
> все-равно не будет.
>
> В том-то и дело, что у системы есть и "простые пользователи" (в том числе
> админы) -- с этими все просто. Но есть и "разработчики" -- те, которые
> определенным образом настраивают систему. В существующей (не на смоллтоке)
> системе настройка -- некоторая "пограничная" задача: значительная часть
> работы делается через UI (но здесь сделан свой построитель интерфейсов,
> несколько DSL-ей), а часть работы, хоть и меньшую, все равно сводится к
> программированию и добавлении новых фич).
>
тяжело мне представить добавление фич не имея полного доступа к системе.
для меня такое неприемлемо. Ибо выглядит это как: вот умные дяди
построили мне песочницу и
за меня решили что мне можно а что нельзя.. вот и сижу леплю тут пасочки.
Как я и говорил ранее это медвежья услуга для разработчика.
Даже если Вы гений, Вы все-равно не сможете предугадать что может
понадобиться для решения той или иной задачи.
Всегда найдется ситуация, когда API предоставленный вами будет
препятствовать простым решениям.
Собственно с любым API с закрытым исходным кодом так и происходит. И
собственно это одна из причин почему я выбрал смаллталк.
Надоело в песочницах сидеть, знаете-ли :)

> Smalltalk позволил бы убрать эту границу, отказаться от сложных инструментов
> (типа GUI Builder-а) и языков с парсерами и близким к неподдерживаемому
> кодом... в общем, очень серьезно упростить систему. Но тогда такой разработчик
> сможет получить доступ к тем кускам, к которым доступ им должен быть
> ограничен. Не могу сказать, что сейчас это разграничение сделано в полной
> мере, но хотелось бы...
>

Я конечно понимаю, что часто хочеться усидеть на двух стульях.
А что вам мешает контролировать/использовать другой компилятор для
компиляции кода из песочницы? Равно как и его выполнение. Тут даже не
надо курочить ВМ.
Решение как и в других средах - есть среда с "закрытым" кодом, и есть
скриптовый язык для игр в пасочки
(3DStudio Max, 1C etc).. и все это конечно легко реализовать в
смаллтолке, было бы желание.

>
> ...И в порядке бреда: имеет ли смысл добавить в контекст вызова некий
> идентификатор пользователя и (возможно, на уровне виртуалки) запретить
> получение сообщений при нехватке прав на их посылку?
>
> на таком низком уровне? имхо, это не сделает систему более безопасной.
>
> пути взлома сведутся к банальному поиску нужного идентификатора.
>
> Для этого должны быть права на "поиск" и на подмену идентификатора. Нет?
>

ну предпосылка была что мол "можно посылать сообщения любым обьектам".
с такой предпосылкой на поиск прав не нужно :)

>
> --
> Best regards,
> Igor Stasenko.
>
>
> --
> http://groups.google.ru/group/sugr



--
Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Dennis Schetinin
 Владимир Мусулайнен wrote:
Я так понимаю, что вопрос больше академически-теоретический (судя по
включению в обсуждение Дениса ;))
За мной закрепилась репутация теоретика? :)

Вопрос имеет как "академический" аспект (причем в первую очередь им заинтересован Андрей), так и практический тоже (здесь уже мой шкурный интерес выражен более явно). 

Igor Stasenko wrote:
тяжело мне представить добавление фич не имея полного доступа к системе.
для меня такое неприемлемо.
Клиентами нашей системы являются государственные органы, в том числе иностранные. Есть информация, доступа к которой у разработчиков/"настройщиков" быть не должно в принципе. Речь как раз и идет о том, чтобы иметь полноценную систему, которую как угодно могут крутить разработчики, но только так, чтобы они никак не могли залезть в "секретные" области. 

Мысль про два образа (как и ранее про GemStone в качестве источника других идей) принята к размышлению. …повторному, кстати, — раньше она уже появлялась, но была отвергнута; тем не менее, надо еще раз обдумать. А какие средства "прозрачной" работы с удаленным образом сейчас есть в Pharo? Есть что-то близкое к OpenTalk? Или, может быть, что-нибудь получше даже?

Но два образа, мне кажется, не снимают проблему для второй упомянутой задачи: Smalltalk в качестве операционки. Как там можно обойтись без "ломания" виртуалки?


Best regards,
Dennis Schetinin
Sent with Sparrow

On Monday, 5 March 2012 г. at 1:37, Igor Stasenko wrote:

2012/3/4 Dennis Schetinin <[hidden email]>:
On Sunday, 4 March 2012 г. at 13:55, Igor Stasenko wrote:

2012/3/4 Dennis Schetinin <[hidden email]>:

У C(++) нет среды. Поэтому все всегда делается через кастомный UI.
Возможность использовать среду Smalltalk для того, чтобы дать возможность
пользователям практически как угодно "перекраивать" приложение под себя, на
мой взгляд, является огромным плюсом. Можно ли разграничить доступ,
оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу
"банального" -- раскройте мне глаза.

да, конечно хочется чтоб все у нас было, но нам за это ничего не было :)
в других языках вообще речь не идет о среде, и ниче, справляются.

я бы сначала спросил, а кто потенциальный пользователь вашей системы.
если это программист,
то закрывая ему доступ вы только делаете ему медвежью услугу.
если же это пользователь рода "а где на клавиатуре any key?" то не
вижу смысла вообще
открывать ему доступ к среде. только напугаете человека, а толку
все-равно не будет.

В том-то и дело, что у системы есть и "простые пользователи" (в том числе
админы) -- с этими все просто. Но есть и "разработчики" -- те, которые
определенным образом настраивают систему. В существующей (не на смоллтоке)
системе настройка -- некоторая "пограничная" задача: значительная часть
работы делается через UI (но здесь сделан свой построитель интерфейсов,
несколько DSL-ей), а часть работы, хоть и меньшую, все равно сводится к
программированию и добавлении новых фич).
тяжело мне представить добавление фич не имея полного доступа к системе.
для меня такое неприемлемо. Ибо выглядит это как: вот умные дяди
построили мне песочницу и
за меня решили что мне можно а что нельзя.. вот и сижу леплю тут пасочки.
Как я и говорил ранее это медвежья услуга для разработчика.
Даже если Вы гений, Вы все-равно не сможете предугадать что может
понадобиться для решения той или иной задачи.
Всегда найдется ситуация, когда API предоставленный вами будет
препятствовать простым решениям.
Собственно с любым API с закрытым исходным кодом так и происходит. И
собственно это одна из причин почему я выбрал смаллталк.
Надоело в песочницах сидеть, знаете-ли :)

Smalltalk позволил бы убрать эту границу, отказаться от сложных инструментов
(типа GUI Builder-а) и языков с парсерами и близким к неподдерживаемому
кодом... в общем, очень серьезно упростить систему. Но тогда такой разработчик
сможет получить доступ к тем кускам, к которым доступ им должен быть
ограничен. Не могу сказать, что сейчас это разграничение сделано в полной
мере, но хотелось бы...

Я конечно понимаю, что часто хочеться усидеть на двух стульях.
А что вам мешает контролировать/использовать другой компилятор для
компиляции кода из песочницы? Равно как и его выполнение. Тут даже не
надо курочить ВМ.
Решение как и в других средах - есть среда с "закрытым" кодом, и есть
скриптовый язык для игр в пасочки
(3DStudio Max, 1C etc).. и все это конечно легко реализовать в
смаллтолке, было бы желание.


...И в порядке бреда: имеет ли смысл добавить в контекст вызова некий
идентификатор пользователя и (возможно, на уровне виртуалки) запретить
получение сообщений при нехватке прав на их посылку?

на таком низком уровне? имхо, это не сделает систему более безопасной.

пути взлома сведутся к банальному поиску нужного идентификатора.

Для этого должны быть права на "поиск" и на подмену идентификатора. Нет?

ну предпосылка была что мол "можно посылать сообщения любым обьектам".
с такой предпосылкой на поиск прав не нужно :)


--
Best regards,
Igor Stasenko.


--



--
Best regards,
Igor Stasenko.

--

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Igor Stasenko
2012/3/5 Dennis Schetinin <[hidden email]>:

>  Владимир Мусулайнен wrote:
>
> Я так понимаю, что вопрос больше академически-теоретический (судя по
> включению в обсуждение Дениса ;))
>
> За мной закрепилась репутация теоретика? :)
>
> Вопрос имеет как "академический" аспект (причем в первую очередь им
> заинтересован Андрей), так и практический тоже (здесь уже мой шкурный
> интерес выражен более явно).
>
> Igor Stasenko wrote:
>
> тяжело мне представить добавление фич не имея полного доступа к системе.
> для меня такое неприемлемо.
>
> Клиентами нашей системы являются государственные органы, в том числе
> иностранные. Есть информация, доступа к которой у
> разработчиков/"настройщиков" быть не должно в принципе. Речь как раз и идет
> о том, чтобы иметь полноценную систему, которую как угодно могут крутить
> разработчики, но только так, чтобы они никак не могли залезть в "секретные"
> области.
>
> Мысль про два образа (как и ранее про GemStone в качестве источника других
> идей) принята к размышлению. ...повторному, кстати, -- раньше она уже
> появлялась, но была отвергнута; тем не менее, надо еще раз обдумать. А какие
> средства "прозрачной" работы с удаленным образом сейчас есть в Pharo? Есть
> что-то близкое к OpenTalk? Или, может быть, что-нибудь получше даже?
>
> Но два образа, мне кажется, не снимают проблему для второй упомянутой
> задачи: Smalltalk в качестве операционки. Как там можно обойтись без
> "ломания" виртуалки?
>
дак я ж описал как: по типу как делаются скриптовые языки.

>
> Best regards,
> Dennis Schetinin
> Sent with Sparrow
>
> On Monday, 5 March 2012 г. at 1:37, Igor Stasenko wrote:
>
> 2012/3/4 Dennis Schetinin <[hidden email]>:
>
> On Sunday, 4 March 2012 г. at 13:55, Igor Stasenko wrote:
>
> 2012/3/4 Dennis Schetinin <[hidden email]>:
>
> У C(++) нет среды. Поэтому все всегда делается через кастомный UI.
> Возможность использовать среду Smalltalk для того, чтобы дать возможность
> пользователям практически как угодно "перекраивать" приложение под себя, на
> мой взгляд, является огромным плюсом. Можно ли разграничить доступ,
> оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу
> "банального" -- раскройте мне глаза.
>
> да, конечно хочется чтоб все у нас было, но нам за это ничего не было :)
> в других языках вообще речь не идет о среде, и ниче, справляются.
>
> я бы сначала спросил, а кто потенциальный пользователь вашей системы.
> если это программист,
> то закрывая ему доступ вы только делаете ему медвежью услугу.
> если же это пользователь рода "а где на клавиатуре any key?" то не
> вижу смысла вообще
> открывать ему доступ к среде. только напугаете человека, а толку
> все-равно не будет.
>
> В том-то и дело, что у системы есть и "простые пользователи" (в том числе
> админы) -- с этими все просто. Но есть и "разработчики" -- те, которые
> определенным образом настраивают систему. В существующей (не на смоллтоке)
> системе настройка -- некоторая "пограничная" задача: значительная часть
> работы делается через UI (но здесь сделан свой построитель интерфейсов,
> несколько DSL-ей), а часть работы, хоть и меньшую, все равно сводится к
> программированию и добавлении новых фич).
>
> тяжело мне представить добавление фич не имея полного доступа к системе.
> для меня такое неприемлемо. Ибо выглядит это как: вот умные дяди
> построили мне песочницу и
> за меня решили что мне можно а что нельзя.. вот и сижу леплю тут пасочки.
> Как я и говорил ранее это медвежья услуга для разработчика.
> Даже если Вы гений, Вы все-равно не сможете предугадать что может
> понадобиться для решения той или иной задачи.
> Всегда найдется ситуация, когда API предоставленный вами будет
> препятствовать простым решениям.
> Собственно с любым API с закрытым исходным кодом так и происходит. И
> собственно это одна из причин почему я выбрал смаллталк.
> Надоело в песочницах сидеть, знаете-ли :)
>
> Smalltalk позволил бы убрать эту границу, отказаться от сложных инструментов
> (типа GUI Builder-а) и языков с парсерами и близким к неподдерживаемому
> кодом... в общем, очень серьезно упростить систему. Но тогда такой
> разработчик
> сможет получить доступ к тем кускам, к которым доступ им должен быть
> ограничен. Не могу сказать, что сейчас это разграничение сделано в полной
> мере, но хотелось бы...
>
>
> Я конечно понимаю, что часто хочеться усидеть на двух стульях.
> А что вам мешает контролировать/использовать другой компилятор для
> компиляции кода из песочницы? Равно как и его выполнение. Тут даже не
> надо курочить ВМ.
> Решение как и в других средах - есть среда с "закрытым" кодом, и есть
> скриптовый язык для игр в пасочки
> (3DStudio Max, 1C etc).. и все это конечно легко реализовать в
> смаллтолке, было бы желание.
>
>
> ...И в порядке бреда: имеет ли смысл добавить в контекст вызова некий
> идентификатор пользователя и (возможно, на уровне виртуалки) запретить
> получение сообщений при нехватке прав на их посылку?
>
> на таком низком уровне? имхо, это не сделает систему более безопасной.
>
> пути взлома сведутся к банальному поиску нужного идентификатора.
>
> Для этого должны быть права на "поиск" и на подмену идентификатора. Нет?
>
>
> ну предпосылка была что мол "можно посылать сообщения любым обьектам".
> с такой предпосылкой на поиск прав не нужно :)
>
>
> --
> Best regards,
> Igor Stasenko.
>
>
> --
> http://groups.google.ru/group/sugr
>
>
>
>
> --
> Best regards,
> Igor Stasenko.
>
> --
> http://groups.google.ru/group/sugr
>
>
> --
> http://groups.google.ru/group/sugr



--
Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Denis Kudriashov
In reply to this post by Dennis Schetinin
Все изменения в системе происходят с помощью смолтолк компилятора. (конечно есть, разные хаки, но уверен их можно "откючить"). Соответственно нужно изменить компилятор, чтобы контролировать изменения в системе (например, чтоб пользователи не могли изменять конкретные классы).
Есть некоторые наработки в этой области для фары/сквика типа namespaces, envirenments, т.д.

Это конечно, не решит проблему доступа к конкретным методам объекта через посылку сообщений, но на мой взгляд, это излишне

5 марта 2012 г. 21:11 пользователь Dennis Schetinin <[hidden email]> написал:
 Владимир Мусулайнен wrote:
Я так понимаю, что вопрос больше академически-теоретический (судя по
включению в обсуждение Дениса ;))
За мной закрепилась репутация теоретика? :)

Вопрос имеет как "академический" аспект (причем в первую очередь им заинтересован Андрей), так и практический тоже (здесь уже мой шкурный интерес выражен более явно). 

Igor Stasenko wrote:
тяжело мне представить добавление фич не имея полного доступа к системе.
для меня такое неприемлемо.
Клиентами нашей системы являются государственные органы, в том числе иностранные. Есть информация, доступа к которой у разработчиков/"настройщиков" быть не должно в принципе. Речь как раз и идет о том, чтобы иметь полноценную систему, которую как угодно могут крутить разработчики, но только так, чтобы они никак не могли залезть в "секретные" области. 

Мысль про два образа (как и ранее про GemStone в качестве источника других идей) принята к размышлению. …повторному, кстати, — раньше она уже появлялась, но была отвергнута; тем не менее, надо еще раз обдумать. А какие средства "прозрачной" работы с удаленным образом сейчас есть в Pharo? Есть что-то близкое к OpenTalk? Или, может быть, что-нибудь получше даже?

Но два образа, мне кажется, не снимают проблему для второй упомянутой задачи: Smalltalk в качестве операционки. Как там можно обойтись без "ломания" виртуалки?


Best regards,
Dennis Schetinin
Sent with Sparrow

On Monday, 5 March 2012 г. at 1:37, Igor Stasenko wrote:

2012/3/4 Dennis Schetinin <[hidden email]>:
On Sunday, 4 March 2012 г. at 13:55, Igor Stasenko wrote:

2012/3/4 Dennis Schetinin <[hidden email]>:

У C(++) нет среды. Поэтому все всегда делается через кастомный UI.
Возможность использовать среду Smalltalk для того, чтобы дать возможность
пользователям практически как угодно "перекраивать" приложение под себя, на
мой взгляд, является огромным плюсом. Можно ли разграничить доступ,
оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу
"банального" -- раскройте мне глаза.

да, конечно хочется чтоб все у нас было, но нам за это ничего не было :)
в других языках вообще речь не идет о среде, и ниче, справляются.

я бы сначала спросил, а кто потенциальный пользователь вашей системы.
если это программист,
то закрывая ему доступ вы только делаете ему медвежью услугу.
если же это пользователь рода "а где на клавиатуре any key?" то не
вижу смысла вообще
открывать ему доступ к среде. только напугаете человека, а толку
все-равно не будет.

В том-то и дело, что у системы есть и "простые пользователи" (в том числе
админы) -- с этими все просто. Но есть и "разработчики" -- те, которые
определенным образом настраивают систему. В существующей (не на смоллтоке)
системе настройка -- некоторая "пограничная" задача: значительная часть
работы делается через UI (но здесь сделан свой построитель интерфейсов,
несколько DSL-ей), а часть работы, хоть и меньшую, все равно сводится к
программированию и добавлении новых фич).
тяжело мне представить добавление фич не имея полного доступа к системе.
для меня такое неприемлемо. Ибо выглядит это как: вот умные дяди
построили мне песочницу и
за меня решили что мне можно а что нельзя.. вот и сижу леплю тут пасочки.
Как я и говорил ранее это медвежья услуга для разработчика.
Даже если Вы гений, Вы все-равно не сможете предугадать что может
понадобиться для решения той или иной задачи.
Всегда найдется ситуация, когда API предоставленный вами будет
препятствовать простым решениям.
Собственно с любым API с закрытым исходным кодом так и происходит. И
собственно это одна из причин почему я выбрал смаллталк.
Надоело в песочницах сидеть, знаете-ли :)

Smalltalk позволил бы убрать эту границу, отказаться от сложных инструментов
(типа GUI Builder-а) и языков с парсерами и близким к неподдерживаемому
кодом... в общем, очень серьезно упростить систему. Но тогда такой разработчик
сможет получить доступ к тем кускам, к которым доступ им должен быть
ограничен. Не могу сказать, что сейчас это разграничение сделано в полной
мере, но хотелось бы...

Я конечно понимаю, что часто хочеться усидеть на двух стульях.
А что вам мешает контролировать/использовать другой компилятор для
компиляции кода из песочницы? Равно как и его выполнение. Тут даже не
надо курочить ВМ.
Решение как и в других средах - есть среда с "закрытым" кодом, и есть
скриптовый язык для игр в пасочки
(3DStudio Max, 1C etc).. и все это конечно легко реализовать в
смаллтолке, было бы желание.


...И в порядке бреда: имеет ли смысл добавить в контекст вызова некий
идентификатор пользователя и (возможно, на уровне виртуалки) запретить
получение сообщений при нехватке прав на их посылку?

на таком низком уровне? имхо, это не сделает систему более безопасной.

пути взлома сведутся к банальному поиску нужного идентификатора.

Для этого должны быть права на "поиск" и на подмену идентификатора. Нет?

ну предпосылка была что мол "можно посылать сообщения любым обьектам".
с такой предпосылкой на поиск прав не нужно :)


--
Best regards,
Igor Stasenko.


--



--
Best regards,
Igor Stasenko.

--

--
http://groups.google.ru/group/sugr

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Dennis Schetinin
In reply to this post by Igor Stasenko

дак я ж описал как: по типу как делаются скриптовые языки.
Ну, не знаю я, как делаются скриптовые языки. :) Как переделать компилятор — не понял, а только смутно догадываюсь. Видимо, имелась ввиду генерация какого-то кода, в который уже встроены нужные проверки? Но в любом случае спасибо за наводку!
 

Best regards,
Dennis Schetinin
Sent with Sparrow

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Dennis Schetinin
In reply to this post by Denis Kudriashov
… А я только что отправил предыдущее письмо… Doh! :)


Best regards,
Dennis Schetinin
Sent with Sparrow

On Monday, 5 March 2012 г. at 22:00, Denis Kudriashov wrote:

Все изменения в системе происходят с помощью смолтолк компилятора. (конечно есть, разные хаки, но уверен их можно "откючить"). Соответственно нужно изменить компилятор, чтобы контролировать изменения в системе (например, чтоб пользователи не могли изменять конкретные классы).
Есть некоторые наработки в этой области для фары/сквика типа namespaces, envirenments, т.д.

Это конечно, не решит проблему доступа к конкретным методам объекта через посылку сообщений, но на мой взгляд, это излишне


--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by vmusulainen-2

Некоторые размышления, которые уже приведены, как раз подходят. :)

суббота, 3 марта 2012 г. 10:23:25 UTC+4 пользователь Владимир Мусулайнен написал:
Игорь, такая позиция она оправдывающаяся.

Просьба к топик стартеру - привести размышления, которые он упомнал:

"Тогда уж лучше привести размышления для Smalltalk, но к ним и
сведется
обсуждение, чего не хотелось изначально. "

On 2 мар, 18:27, Igor Stasenko <[hidden email]> wrote:


> 2012/3/2 Sr Visor <[hidden email]>:
>
> > Нет. Перечитайте вопрос. Я спросил о том, видите ли Вы, известны ли
> > Вам, кажется ли и т.д. и т.п.
> > Вопрос о мнении. Вот Вы могли бы привести пример такого использования,
> > в котором Вы же такие проблемы и видите.
> > Это был бы конструктивный комментарий.
> > Я могу задать и конкретный вопрос, но обсуждение пойдет в его ключе, а
> > я хочу очертить круг возможных проблем.
> > Как это сделать, не спросив практиков, которые с этими самыми
> > проблемами и сталкиваются ?
> > Что тут может быть непонятного ?! :)
>
> Смаллтолк это открытая система. Изменения даже одного обьекта может
> привести к фатальным последствиям.
> Вот вам и круг проблем.
> Но на практике это не есть проблема. Опять-же по аналогии с
> реальностью.. (этот чертов целофановый пакет).
> вы же не задумываетесь каждый раз используя пакет, а вдруг что-то
> пойдет не так? И я думаю врядли обходите стороной людей несущих
> пакеты.
>
> Потому как безопасность под вашим полным контролем (ну или скажем так,
> на удовлетворительном уровне).
> Так же и здесь: Компьютер лишь выполняет вашу волю, а все остальное
> зависит от Вас.
>
> --
> Best regards,
> Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by Nikolay Kleptsov

Вот так я как-то себе и представлял ответ. :)

суббота, 3 марта 2012 г. 13:10:38 UTC+4 пользователь Kleptsov Nikolay написал:
Безопасность у Smalltalk низкая.
Достаточно в workspace выполнить Smalltalk at: #Object put: nil.
Любое изменение классов может привести к краху системы. Приходится периодически сохранять образ.
Доступ к переменным через сообщение Object>>instVarAt:anIndex не добавляет безопасности.
Такой же доступ к индексированным переменным Object>>basicAt:anIndex.
Объекты взаимодействуют не только через сообщения, но и другими способами. (в целях повышеня быстродействия). Низкая защищенность образа является, по моему, одной из причин трудной реализации распределенных систем.

Возможные способы повышения защищенности Smalltalk:
- включение/отключение ограниченного протокола у объекта
- ограничение доступа к классам
- взаимодействие объектов только через сообщения (больше подходит для распределенных систем)
- для "внешнего мира" предоставлять доступ только к ограниченному количеству объектов, которые защищены т.е. ограниченный протокол, нет доступа к классам.

Smalltalk объекты хорошо приспособлены для "жизни" внутри системы, а для внешнего использования все в точности до наоборот.

2 марта 2012 г. 11:51 пользователь Sr Visor <[hidden email]> написал:
Приветствую всех увлекающихся Smalltalk !
Поделитесь, пожалуйста, своими мыслями на тему: какие проблемы
безопасности Вы видите в Smalltalk ?
Спасибо.

--
http://groups.google.ru/group/sugr

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by Igor Stasenko

воскресенье, 4 марта 2012 г. 6:16:40 UTC+4 пользователь Igor Stasenko написал:
2012/3/3 Nikolay Kleptsov <[hidden email]>:

> Безопасность у Smalltalk низкая.
> Достаточно в workspace выполнить Smalltalk at: #Object put: nil.
> Любое изменение классов может привести к краху системы. Приходится
> периодически сохранять образ.
> Доступ к переменным через сообщение Object>>instVarAt:anIndex не добавляет
> безопасности.
> Такой же доступ к индексированным переменным Object>>basicAt:anIndex.
> Объекты взаимодействуют не только через сообщения, но и другими способами.
> (в целях повышеня быстродействия). Низкая защищенность образа является, по
> моему, одной из причин трудной реализации распределенных систем.
>
> Возможные способы повышения защищенности Smalltalk:
> - включение/отключение ограниченного протокола у объекта
> - ограничение доступа к классам
> - взаимодействие объектов только через сообщения (больше подходит для
> распределенных систем)
> - для "внешнего мира" предоставлять доступ только к ограниченному количеству
> объектов, которые защищены т.е. ограниченный протокол, нет доступа к
> классам.
>
> Smalltalk объекты хорошо приспособлены для "жизни" внутри системы, а для
> внешнего использования все в точности до наоборот.
>
Да к чему эти детали?
Возьмем Си, Си++. Прямая работа с памятью.
Любой указатель небезопасен. Передача указателя куда-либо может повлести к
последствиям как-то чтение засекреченных данных либо
несансционированная запись, что приведет к взлому системы.

Из приложения уровня пользователя ? :)
В том то и дело, что Smalltalk - это технология, а не язык, и среда в более узком смысле.
Приложения написанные на таких языках как С и С++ работают в среде операционной системы.
А в Smalltalk ? Или предполагается, что Smalltalk нужна операционная система ? На мой взгляд не нужна.
 
Теперь вопрос для знатоков: а мешает ли это писать безопасные
приложения на этих языках?
Я думаю ответ на поверхности.

> 2 марта 2012 г. 11:51 пользователь Sr Visor <[hidden email]> написал:


>
>> Приветствую всех увлекающихся Smalltalk !
>> Поделитесь, пожалуйста, своими мыслями на тему: какие проблемы
>> безопасности Вы видите в Smalltalk ?
>> Спасибо.
>>
>> --
>> http://groups.google.ru/group/sugr
>
>
> --
> http://groups.google.ru/group/sugr

--

Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by Igor Stasenko


воскресенье, 4 марта 2012 г. 13:55:43 UTC+4 пользователь Igor Stasenko написал:
2012/3/4 Dennis Schetinin <[hidden email]>:
> У C(++) нет среды. Поэтому все всегда делается через кастомный UI.
> Возможность использовать среду Smalltalk для того, чтобы дать возможность
> пользователям практически как угодно "перекраивать" приложение под себя, на
> мой взгляд, является огромным плюсом. Можно ли разграничить доступ,
> оставаясь в рамках среды Smalltalk? Возможно, я беспросветно туп и не вижу
> "банального" — раскройте мне глаза.
>
да, конечно хочется чтоб все у нас было, но нам за это ничего не было :)
в других языках вообще речь не идет о среде, и ниче, справляются.

Почему же не идет ?!
 

я бы сначала спросил, а кто потенциальный пользователь вашей системы.
если это программист,

Не считаю, что программист - не пользователь. Какой бы пользователь не был, он не хочет потерять свои данные.
А данные хранятся в образе, а образ поломать просто. Разве не так ?
Соглашусь с тем, что абсолютное ограничение программиста - неверно в корне, так как он специалист, и ему решать, как и что должно работать.
С другой стороны, не могу согласиться, что программист против ограничения себя со стороны системы, т.к. часто как раз он и не хочет знать деталей
реализации, и только рад будет, если она ему подскажет, что он делает что-то не то.
 

то закрывая ему доступ вы только делаете ему медвежью услугу.
если же это пользователь рода "а где на клавиатуре any key?" то не
вижу смысла вообще
открывать ему доступ к среде. только напугаете человека, а толку
все-равно не будет.

> …И в порядке бреда: имеет ли смысл добавить в контекст вызова некий
> идентификатор пользователя и (возможно, на уровне виртуалки) запретить
> получение сообщений при нехватке прав на их посылку?
>
на таком низком уровне? имхо, это не сделает систему более безопасной.
пути взлома сведутся к банальному поиску нужного идентификатора.

>
> Best regards,
> Dennis Schetinin
> Sent with Sparrow

--
Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by Nikolay Kleptsov


суббота, 3 марта 2012 г. 22:35:22 UTC+4 пользователь Kleptsov Nikolay написал:


4 марта 2012 г. 0:22 пользователь Victor Metelitsa <[hidden email]> написал:
Для "безопасности" надо запускать разные имиджи для разных юзеров (причём хорошо было бы, чтобы для VM можно было определить "песочницу").
А вы в курсе, что есть такая GemStone/S (причём её ограниченная версия даже раздаётся нахаляву)?

Надо будет посмотреть GemStone/S, никогда не использовал.

 
Как эти образы будут взаимодействовать между собой?

+1
 

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

vmusulainen-2
In reply to this post by Sr Visor
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by Sr Visor

Однако могу поделиться тем, что мне не нравится в Smalltalk (пользовался только VW и Pharo): так мне проще сформулировать свой ответ.
Сразу отмечу, что это моё личное впечатление, и не стоит его воспринимать, как нападки на наш любимый язык.
Моя цель не в этом.

Мне очень симпатична идея образа, однако она несет в себе массу проблем, на мой взгляд.
Во-первых, это аналог Фон-Неймановской модели: код и данные хранятся в одном месте. Удобно, но и небезопасно: потерять данные очень просто.
Я не говорю тут о коде. Конечно, можно взять свежий образ и залить в него все нужные пакеты заново, а написав небольшой скриптик на самом же Smalltalk, это будет еще и крайне просто. Однако, что делать с данными - считайте, что это мой первый вопрос.

Во-вторых, и это опять касается образа, разделение объектов. То, о чем уже многие успели написать. Мне не нравится, что Smalltalk однопользовательский. Раз уж я приводил аналогию, то для этого случая - это MS-DOS. Доводы были приведены другими вполне ясные: менять можно всё и, как следствие, о сохранности тех же паролей от какого-нибудь репозитория в простейшем случае, от учетных записей mail-клиентов или чего-то еще, речи не идет вовсе.

На данный момент этим ограничиваются мои потребности.
Но я для того и написал в сообщество, чтобы услышать о других.

Если мы разовьем мысли, каждый поделится своим мнением, я, возможно, припомню что-то еще.
Но пока эта пара вопросов.

понедельник, 5 марта 2012 г. 23:28:15 UTC+4 пользователь Sr Visor написал:

Некоторые размышления, которые уже приведены, как раз подходят. :)

суббота, 3 марта 2012 г. 10:23:25 UTC+4 пользователь Владимир Мусулайнен написал:
Игорь, такая позиция она оправдывающаяся.

Просьба к топик стартеру - привести размышления, которые он упомнал:

"Тогда уж лучше привести размышления для Smalltalk, но к ним и
сведется
обсуждение, чего не хотелось изначально. "

On 2 мар, 18:27, Igor Stasenko <[hidden email]> wrote:


> 2012/3/2 Sr Visor <[hidden email]>:
>
> > Нет. Перечитайте вопрос. Я спросил о том, видите ли Вы, известны ли
> > Вам, кажется ли и т.д. и т.п.
> > Вопрос о мнении. Вот Вы могли бы привести пример такого использования,
> > в котором Вы же такие проблемы и видите.
> > Это был бы конструктивный комментарий.
> > Я могу задать и конкретный вопрос, но обсуждение пойдет в его ключе, а
> > я хочу очертить круг возможных проблем.
> > Как это сделать, не спросив практиков, которые с этими самыми
> > проблемами и сталкиваются ?
> > Что тут может быть непонятного ?! :)
>
> Смаллтолк это открытая система. Изменения даже одного обьекта может
> привести к фатальным последствиям.
> Вот вам и круг проблем.
> Но на практике это не есть проблема. Опять-же по аналогии с
> реальностью.. (этот чертов целофановый пакет).
> вы же не задумываетесь каждый раз используя пакет, а вдруг что-то
> пойдет не так? И я думаю врядли обходите стороной людей несущих
> пакеты.
>
> Потому как безопасность под вашим полным контролем (ну или скажем так,
> на удовлетворительном уровне).
> Так же и здесь: Компьютер лишь выполняет вашу волю, а все остальное
> зависит от Вас.
>
> --
> Best regards,
> Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by vmusulainen-2

Уверен, что не одно и то же. Но так же и в том, что Smalltalk ОС не нужна. Виртуальной машине нужна ОС.
Если смотреть на Smalltalk, как на язык, то смысла в топике нет.
Кто-то из обсуждающих использует Smalltalk как скриптовый язык, вроде Python, Ruby, может быть, bash ?!
Думаю, что сложно сравнивать bash и Smalltalk. Всё-таки Smalltalk это не просто язык: среда в нем играет важную роль - и то, что она "своя", думаю, тоже не менее важно, и уж тем более, что это "живая" среда.

вторник, 6 марта 2012 г. 0:35:00 UTC+4 пользователь Владимир Мусулайнен написал:

В том то и дело, что Smalltalk - это технология, а не язык, и среда в более узком смысле.
Приложения написанные на таких языках как С и С++ работают в среде операционной системы.
А в Smalltalk ? Или предполагается, что Smalltalk нужна операционная система ? На мой взгляд не нужна.

Вы уверены, что под smalltalk мы с вами имеем  одно и то же?
С каких пор ему ОС не нужна?. Все текущие, более или менее рабочие реализации ВМ написаны на C/C++ или что-нибудь в этом роде (сквик пока в сторонке). И таким образом, в основе работа все в той же среде операционной системы. Когда-то была речь о embedded smalltalk, но проект вроде не движется.
ST - это технология? Мне кажется, что налицо разное понимание терминов. Технология чего? Любой язык программирования это метаинструмент для создания других инструментов (приложений) обработки информации. У Smalltalk здесь никакого отличия от прочих языков программирования нет.

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


Не могу согласиться, речи о создании из Smalltalk ОС не идет. Как вариант развития мысли и пример использования разграничения прав - вполне.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Igor Stasenko
2012/3/5 Sr Visor <[hidden email]>:
>
> Уверен, что не одно и то же. Но так же и в том, что Smalltalk ОС не нужна.
> Виртуальной машине нужна ОС.

Не нужна. Пример SqueakNOS показывает что можно вполне обходиться без ОС.

> Если смотреть на Smalltalk, как на язык, то смысла в топике нет.
> Кто-то из обсуждающих использует Smalltalk как скриптовый язык, вроде
> Python, Ruby, может быть, bash ?!
> Думаю, что сложно сравнивать bash и Smalltalk. Всё-таки Smalltalk это не
> просто язык: среда в нем играет важную роль - и то, что она "своя", думаю,
> тоже не менее важно, и уж тем более, что это "живая" среда.
>
> вторник, 6 марта 2012 г. 0:35:00 UTC+4 пользователь Владимир Мусулайнен
> написал:
>>
>>
>>> В том то и дело, что Smalltalk - это технология, а не язык, и среда в
>>> более узком смысле.
>>> Приложения написанные на таких языках как С и С++ работают в среде
>>> операционной системы.
>>> А в Smalltalk ? Или предполагается, что Smalltalk нужна операционная
>>> система ? На мой взгляд не нужна.
>>
>>
>> Вы уверены, что под smalltalk мы с вами имеем  одно и то же?
>> С каких пор ему ОС не нужна?. Все текущие, более или менее рабочие
>> реализации ВМ написаны на C/C++ или что-нибудь в этом роде (сквик пока в
>> сторонке). И таким образом, в основе работа все в той же среде операционной
>> системы. Когда-то была речь о embedded smalltalk, но проект вроде не
>> движется.
>> ST - это технология? Мне кажется, что налицо разное понимание терминов.
>> Технология чего? Любой язык программирования это метаинструмент для создания
>> других инструментов (приложений) обработки информации. У Smalltalk здесь
>> никакого отличия от прочих языков программирования нет.
>>
>> У меня такое впечатление, что топик изначально надо было стартовать
>> вопросом: "А вот если пофантазировать, можно ли из smalltalk сделать нечто
>> вроде операционной системы, чтобы пользователи могли....."
>> По-моему, это больше бы подходило судя по обсуждению.
>>
>
> Не могу согласиться, речи о создании из Smalltalk ОС не идет. Как вариант
> развития мысли и пример использования разграничения прав - вполне.
>

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

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

> --
> http://groups.google.ru/group/sugr



--
Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Dmitry Matveev
Добрый день,

6 марта 2012 г. 2:15 пользователь Igor Stasenko <[hidden email]> написал:
> 2012/3/5 Sr Visor <[hidden email]>:
>> Кто-то из обсуждающих использует Smalltalk как скриптовый язык, вроде
>> Python, Ruby, может быть, bash ?!

Не совсем обсуждающий, но да - я использую, вернее, использовал, гнутый.

Дмитрий

--
http://groups.google.ru/group/sugr
Reply | Threaded
Open this post in threaded view
|

Re: Безопасность в Smalltalk.

Sr Visor
In reply to this post by Igor Stasenko

Согласен. Но речь о перспективе, и потом, принципиально такое деление ОС - не ОС ?
Выше был пример про ОС, и пример вполне жизненный, SqueakNOS тому подтверждение, но вопрос на ОС пока не концентрируется.
Кстати, как кто-то заметил, в современных условиях всё-таки ОС виртуалке нужна, и пусть.
С другой стороны, необходимость определенных средств контроля этот пример вполне обосновал.

вторник, 6 марта 2012 г. 3:15:53 UTC+4 пользователь Igor Stasenko написал:
2012/3/5 Sr Visor <[hidden email]>:

>
> Уверен, что не одно и то же. Но так же и в том, что Smalltalk ОС не нужна.
> Виртуальной машине нужна ОС.

Не нужна. Пример SqueakNOS показывает что можно вполне обходиться без ОС.

> Если смотреть на Smalltalk, как на язык, то смысла в топике нет.
> Кто-то из обсуждающих использует Smalltalk как скриптовый язык, вроде
> Python, Ruby, может быть, bash ?!
> Думаю, что сложно сравнивать bash и Smalltalk. Всё-таки Smalltalk это не
> просто язык: среда в нем играет важную роль - и то, что она "своя", думаю,
> тоже не менее важно, и уж тем более, что это "живая" среда.
>
> вторник, 6 марта 2012 г. 0:35:00 UTC+4 пользователь Владимир Мусулайнен
> написал:
>>
>>
>>> В том то и дело, что Smalltalk - это технология, а не язык, и среда в
>>> более узком смысле.
>>> Приложения написанные на таких языках как С и С++ работают в среде
>>> операционной системы.
>>> А в Smalltalk ? Или предполагается, что Smalltalk нужна операционная
>>> система ? На мой взгляд не нужна.
>>
>>
>> Вы уверены, что под smalltalk мы с вами имеем  одно и то же?
>> С каких пор ему ОС не нужна?. Все текущие, более или менее рабочие
>> реализации ВМ написаны на C/C++ или что-нибудь в этом роде (сквик пока в
>> сторонке). И таким образом, в основе работа все в той же среде операционной
>> системы. Когда-то была речь о embedded smalltalk, но проект вроде не
>> движется.
>> ST - это технология? Мне кажется, что налицо разное понимание терминов.
>> Технология чего? Любой язык программирования это метаинструмент для создания
>> других инструментов (приложений) обработки информации. У Smalltalk здесь
>> никакого отличия от прочих языков программирования нет.
>>
>> У меня такое впечатление, что топик изначально надо было стартовать
>> вопросом: "А вот если пофантазировать, можно ли из smalltalk сделать нечто
>> вроде операционной системы, чтобы пользователи могли....."
>> По-моему, это больше бы подходило судя по обсуждению.
>>
>
> Не могу согласиться, речи о создании из Smalltalk ОС не идет. Как вариант
> развития мысли и пример использования разграничения прав - вполне.
>

все-таки без четкой постановки вопроса кина (дискуссии) не будет.

вы хотите приклеить к среде атрибуты операционной системы, но при этом
боже упаси называть это операционной системой.

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

> --
> http://groups.google.ru/group/sugr

--
Best regards,
Igor Stasenko.

--
http://groups.google.ru/group/sugr
1234