.NET Framework 4.0. Code Access Security
От: Щербунов Нейл Анатольевич Россия  
Дата: 06.02.11 06:30
Оценка: 1455 (19) +2 -1
Статья:
.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


Авторы:
Щербунов Нейл Анатольевич

Аннотация:
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.

Статья прислана на конкурс статей 2010 — Windows 7 и .NET
Re: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 06.02.11 08:24
Оценка: +1
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ЩНА>Статья:

ЩНА>.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


Открыл, посмотрел — боже ты мой, сколько новых понятий и кода. Нельзя ли начать с того, с чего оно ДОЛЖНО начинаться — с примера из жизни, где все это может понадобиться. Такого примера, чтоб даже вопросов "а на фига" не возникало. Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам:

— Вася, ты чем занимался две недели?
— CAS настраивал!
— М-м-м... Ну, хорошо.

Еще раз. Я не говорю, что это бесполезно. Я говорю, что плясать надо от реальных примеров, если это популяризация технологии среди тех, кто не в теме. Если же это "междусобойчик для своих"... то поноса всей тусовке, включая разработчиков этой хрени.
Re[2]: .NET Framework 4.0. Code Access Security
От: Sinix  
Дата: 06.02.11 09:26
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Открыл, посмотрел — боже ты мой, сколько новых понятий и кода. Нельзя ли начать с того, с чего оно ДОЛЖНО начинаться — с примера из жизни, где все это может понадобиться. Такого примера, чтоб даже вопросов "а на фига" не возникало.


Не выйдет — это будет примерно три таких же статьи по объёму. Если коротко — оно надо для хостинга untrusted-кода (плагинов/бажных модулей etc). Ещё (при известной любви к раскладыванию граблей) CAS можно использовать для автоматического контроля за разделением кода по слоям и для реализации "системы безопасности". В кавычках, т.к. безопасности не будет никакой

SV.>Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам.

Ну да, со стороны любая сложная тема выглядит раздражающе непонятно. Можно наехать "Чё, умный? Пальцем покажи!". Можно разобраться самому, благо гугль есть, блоги есть, голова, надеюсь, тоже

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

Зачем? Зачем пытаться пиарить каждую сложную тему? Особенно если без вдумчивого изучения толку от неё — только прокачка ЧСВ. А вот людям, которые уже столкнулись с необходимостью использования CAS, статья однозначно пригодится. Мне пригодится точно.

SV.>Если же это "междусобойчик для своих"... то поноса всей тусовке, включая разработчиков этой хрени.

Хмм? Если вам ни холодно, ни жарко — зачем набрасывать? Конструктива с таким заходом вы ни от кого не услышите, уверяю. Если интересует что-то предметное — спрашивайте, только, плиз, без наездов впустую.
Re: .NET Framework 4.0. Code Access Security
От: _nn_ www.nemerleweb.com
Дата: 06.02.11 10:12
Оценка:
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ЩНА>Статья:

ЩНА>.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


ЩНА>Авторы:

ЩНА> Щербунов Нейл Анатольевич

ЩНА>Аннотация:

ЩНА>Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.

ЩНА>Статья прислана на конкурс статей 2010 — Windows 7 и .NET


Было бы приятнее код непосредственно вставить в статью и оформить катом (cut).
А там можно было бы в комментариях дать частичные пояснения.

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

P.S.
Статья понравилась
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 10:49
Оценка:
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ИМХО начиная с четвёртого раздела читается тяжеловато. Но тема важная и хорошая! Но написано так, что надо распечатать и читать вечером посвятив весь свой мозг статье. Угадалки в конце меня вообще не вставили.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 12:26
Оценка:
Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:

ЩНА>Статья:

ЩНА>.NET Framework 4.0. Code Access Security
Автор(ы): Щербунов Нейл Анатольевич
Дата: 15.12.2010
Рассмотрены изменения и нововведения в механизме Code Access Security (CAS) появившиеся в версии 4.0 .NET Framework.


Хорошая статья. Сам планировал разобраться с 4.0 -- но руки никак не доходили.

Кстати, корректор, по всему видно, не осилил статью. Неправильное форматирование:

Давайте уже разберемся в разнице полномочий critical- и transparent-кода. Что такого можно первому, чего нельзя второму? Список этих ограничительных операций не так велик. Transparent-коду нельзя:


и

Вот и все, не так и много, как видите.
Давайте, однако, немного уже попрограммируем и проверим хотя бы один пункт этого списка, а заодно увидим пример применения означенных выше атрибутов.

Re[3]: .NET Framework 4.0. Code Access Security
От: SV.  
Дата: 06.02.11 13:13
Оценка: +3
Здравствуйте, Sinix, Вы писали:

S>Не выйдет — это будет примерно три таких же статьи по объёму. Если коротко — оно надо для хостинга untrusted-кода (плагинов/бажных модулей etc).


Здрасьте. Всю жизнь мы юзали плагины безо всякого CAS'а, и тут выясняется, что без него никуда. Посмотрите на реализацию плагинности к фотошопу: плагин требует явного совершения действий по установке, и этого ДОСТАТОЧНО, чтобы не было мэлвари.

Взять хоть плагины к ишаку — с ними как с динозавром на улице. Или он тебе дает при щелчке по ссылке передавать управление экзешнику, или нет. Дает — здравствуй, вирусня. Не дает — прощай, Скайп. Тот самый, обруганный автором, принцип "все или ничего", который — наименьшее зло. Потому, что на практике добросовестный разработчик должен будет через все это дерьмо пробиться, чтобы реализовать нужную функциональность, а недобросовестный найдет очередную дырку в реализации и перезаражет все, что ему надо.

Поэтому начинать надо было с убойного примера: вот, дети, у Васи с CAS'ом кошер и благодать, а у Пети без CAS'а — треф и эпидемия. На примере очень хорошо видно, насколько вешь полезная. Например, ваш пример сразу показывает бесполезность (и это хорошо).

SV.>>Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам.

S>Ну да, со стороны любая сложная тема выглядит раздражающе непонятно. Можно наехать "Чё, умный? Пальцем покажи!". Можно разобраться самому, благо гугль есть, блоги есть, голова, надеюсь, тоже

Это не тема непонятна, а непонятно, почему она должна быть понятна. Как раз наоборот, детали можно посмотреть в гугле, а мотивировать вас ни гугл, ни блоги не должны. Это задача популяризатора — продать вам идею необходимости популяризуемого предмета.

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

S>Зачем? Зачем пытаться пиарить каждую сложную тему? Особенно если без вдумчивого изучения толку от неё — только прокачка ЧСВ. А вот людям, которые уже столкнулись с необходимостью использования CAS, статья однозначно пригодится. Мне пригодится точно.

Хорошие у вас вопросы "зачем". У меня другие. Зачем так писать, и, главное, зачем потом это читать.

SV.>>Если же это "междусобойчик для своих"... то поноса всей тусовке, включая разработчиков этой хрени.

S>Хмм? Если вам ни холодно, ни жарко — зачем набрасывать? Конструктива с таким заходом вы ни от кого не услышите, уверяю. Если интересует что-то предметное — спрашивайте, только, плиз, без наездов впустую.
Re[4]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 13:42
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Здрасьте. Всю жизнь мы юзали плагины безо всякого CAS'а, и тут выясняется, что без него никуда.


Исходим из имеющихся инструментов: если нет простого способа ограничить права плагина -- то голову никто морочить не будет. А если такой способ имеется -- то почему бы нет?

Если вы добавляете фильтр для того-же графического редактора -- зачем этому фильтру доступ к сети?

CAS является новой концепцией, по этому ее воспринимают в штыки. Имхо, у нее большое будущее.

Пользуясь случаем, попиарю свою тулузу с открытым исходным кодом для ограничения прав на уровне кода. Тулуза называется ManagedSandbox: http://managedsandbox.codeplex.com/
ManagedSandbox
Re[2]: .NET Framework 4.0. Code Access Security
От: Pavel Dvorkin Россия  
Дата: 06.02.11 13:58
Оценка: 56 (3)
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, Щербунов Нейл Анатольевич, Вы писали:


A>ИМХО начиная с четвёртого раздела читается тяжеловато. Но тема важная и хорошая! Но написано так, что надо распечатать и читать вечером посвятив весь свой мозг статье. Угадалки в конце меня вообще не вставили.


Я бы иное посоветовал. Совет, впрочем, не мой, а моего научного руководителя кандидатской.

Написал статью — отложи ее на пару недель или даже месяц. Не прикасайся. Через пару недель возьми и прочитай. Все неудачные места для тебя станут видными.
With best regards
Pavel Dvorkin
Re[3]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:00
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я бы иное посоветовал. Совет, впрочем, не мой, а моего научного руководителя кандидатской.

PD>Написал статью — отложи ее на пару недель или даже месяц. Не прикасайся. Через пару недель возьми и прочитай. Все неудачные места для тебя станут видными.

Это очень мудрый совет. Так и надо делать... Ну это если ты одинокий волк и у тебя нет друзей-коолег, которым можно показать статью
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: .NET Framework 4.0. Code Access Security
От: Pavel Dvorkin Россия  
Дата: 06.02.11 14:06
Оценка:
Здравствуйте, adontz, Вы писали:

A>Это очень мудрый совет. Так и надо делать... Ну это если ты одинокий волк и у тебя нет друзей-коолег, которым можно показать статью


Одно другому не мешает. Все равно они не смогут знать статью так же хорошо, как автор.
With best regards
Pavel Dvorkin
Re[5]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:09
Оценка: 30 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

A>>Это очень мудрый совет. Так и надо делать... Ну это если ты одинокий волк и у тебя нет друзей-коолег, которым можно показать статью

PD>Одно другому не мешает. Все равно они не смогут знать статью так же хорошо, как автор.

Так это же хорошо. Одно дело понятно написать о том, что читатель и так уже знает. Другое дело, понятно написать о том, чего читатель ещё не знает. Вещи очевидные для автора, могут не являться таковыми для читателя.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[5]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:13
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Пользуясь случаем, попиарю свою тулузу с открытым исходным кодом для ограничения прав на уровне кода. Тулуза называется ManagedSandbox: http://managedsandbox.codeplex.com/


Не очень понял смысл этой утилиты. Довольно простое WinForms приложение запускается вашей утилитой только как unrestricted.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: .NET Framework 4.0. Code Access Security
От: Sinix  
Дата: 06.02.11 14:16
Оценка:
Здравствуйте, SV., Вы писали:

SV.>Здрасьте. Всю жизнь мы юзали плагины безо всякого CAS'а, и тут выясняется, что без него никуда. Посмотрите на реализацию плагинности к фотошопу: плагин требует явного совершения действий по установке, и этого ДОСТАТОЧНО, чтобы не было мэлвари.


Ок, замените "надо" на "может пригодиться" — слишком категорично выразился.

SV.>Поэтому начинать надо было с убойного примера: вот, дети, у Васи с CAS'ом кошер и благодать, а у Пети без CAS'а — треф и эпидемия. На примере очень хорошо видно, насколько вешь полезная. Например, ваш пример сразу показывает бесполезность (и это хорошо).


И это будет чистой рекламой, не имеющей никакого отношения к реальности. CAS — это в первую очередь часть инфраструкутры .NET-а. Сценариев, где оно используется — выше крыши: asp, sql clr, click once, sharepoint. И, как и всё что связано с инфраструктурой (а тем более — с безопасностью), выбор "использовать или не использовать" должен делаться взвешенно, а не под влиянием очередного витка моды. Так что с этой стороны статья абсолютно корректна.

SV.>Это не тема непонятна, а непонятно, почему она должна быть понятна. Как раз наоборот, детали можно посмотреть в гугле, а мотивировать вас ни гугл, ни блоги не должны. Это задача популяризатора — продать вам идею необходимости популяризуемого предмета.


А почему каждая статья должна опускаться до уровня википедии? Популяризаторства и так хватает выше крыши. А вот серьёзных, детальных статей — наоборот. Просто сама тема такая, что начинающим туда лучше не лезть, а те, кто реально столкнутся с задачами, где может помочь CAS, от воды на полстатьи только поморщатся и уйдут на более прагматичный stackoverflow/профильные блоги.


S>>Зачем? Зачем пытаться пиарить каждую сложную тему? Особенно если без вдумчивого изучения толку от неё — только прокачка ЧСВ. А вот людям, которые уже столкнулись с необходимостью использования CAS, статья однозначно пригодится. Мне пригодится точно.


SV.>Хорошие у вас вопросы "зачем". У меня другие. Зачем так писать, и, главное, зачем потом это читать.

Лично мне — для того чтобы освежить в памяти прочитанное полгода-год назад и перепроверить себя. Ну, и ссылаться теперь есть на что
Re[5]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:18
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>А почему каждая статья должна опускаться до уровня википедии? Популяризаторства и так хватает выше крыши. А вот серьёзных, детальных статей — наоборот. Просто сама тема такая, что начинающим туда лучше не лезть, а те, кто реально столкнутся с задачами, где может помочь CAS, от воды на полстатьи только поморщатся и уйдут на более прагматичный stackoverflow/профильные блоги.


Почему это перечисление разных случаев и оценка адекватности применения технологии в этих случаях стала "водой"?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: .NET Framework 4.0. Code Access Security
От: Pavel Dvorkin Россия  
Дата: 06.02.11 14:24
Оценка:
Здравствуйте, adontz, Вы писали:

A>Так это же хорошо. Одно дело понятно написать о том, что читатель и так уже знает. Другое дело, понятно написать о том, чего читатель ещё не знает. Вещи очевидные для автора, могут не являться таковыми для читателя.


Нечто, о чем автор очень хочет сказать, может быть просто пропущено читателем, либо потому, что он это и так очень хорошо знает (... ну не буду же я внимательно читать очевидные для меня разделы), либо потому, что он этого не знает (... идею я понял, а времени разбираться в деталях и делать тесты нет). Поэтому отзыв коллеги никогда не будет достаточным. И только сам автор может спустя некоторое время оценить, так ли он изложил то, что хотел.
With best regards
Pavel Dvorkin
Re[7]: .NET Framework 4.0. Code Access Security
От: adontz Грузия http://adontz.wordpress.com/
Дата: 06.02.11 14:42
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Нечто, о чем автор очень хочет сказать, может быть просто пропущено читателем, либо потому, что он это и так очень хорошо знает (... ну не буду же я внимательно читать очевидные для меня разделы), либо потому, что он этого не знает (... идею я понял, а времени разбираться в деталях и делать тесты нет). Поэтому отзыв коллеги никогда не будет достаточным. И только сам автор может спустя некоторое время оценить, так ли он изложил то, что хотел.


Ну это какой-то нерадивый читатель получается.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[6]: .NET Framework 4.0. Code Access Security
От: Sinix  
Дата: 06.02.11 15:07
Оценка:
Здравствуйте, adontz, Вы писали:

S>>А почему каждая статья должна опускаться до уровня википедии?

A>Почему это перечисление разных случаев и оценка адекватности применения технологии в этих случаях стала "водой"?

Напомню контекст:

SV.>>Потому, что пока это все, извините, выглядит так, как будто одни программисты (из МС), которым надо отрабатывать ЗП, помогают отрабатывать ЗП другим программистам.
S>Ну да, со стороны любая сложная тема выглядит раздражающе непонятно. Можно наехать "Чё, умный? Пальцем покажи!". Можно разобраться самому, благо гугль есть, блоги есть, голова, надеюсь, тоже

Это не тема непонятна, а непонятно, почему она должна быть понятна. Как раз наоборот, детали можно посмотреть в гугле, а мотивировать вас ни гугл, ни блоги не должны. Это задача популяризатора — продать вам идею необходимости популяризуемого предмета.


Грабли в том (повторяюсь), что security — тема неохватная и попытка рассмотреть "типичные варианты" в рамках пары абзацев будет смотреться полным издевательством. Итак почти треть статьи ушло на описание "что оно есть и откуда пошло". Вы сами попробуйте описать таким образом любую из подсистем фреймворка — увидите.

Не ребят, я вас не понимаю Две достойных статьи впервые за ~полгода (кстати, спасибо, статья по KTM понравилась ) — обязательно надо оттоптаться в комментариях?
Ну станет весь журнал вот таким:
http://rsdn.ru/forum/setup/4144511.aspx
Автор: Бойко Алексей
Дата: 06.02.11

http://rsdn.ru/forum/dotnet/4144514.flat.aspx

Кому хорошо будет?
Re[6]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 15:16
Оценка:
Здравствуйте, adontz, Вы писали:

A>Не очень понял смысл этой утилиты. Довольно простое WinForms приложение запускается вашей утилитой только как unrestricted.


Если простое (не нужен доступ к доп. ресурсам) -- то достаточно (1) Security/Excecuting и (2) UI/SafeTopLevelWindow. Попробуйте запустить так саму программу.

Если же простая программа требует Unrestricted -- значит программу делал чел, ни в дуб ногой не разбирающийся в концепции безопасности .Net.
Re[7]: .NET Framework 4.0. Code Access Security
От: 0K Ниоткуда  
Дата: 06.02.11 15:18
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Если же простая программа требует Unrestricted -- значит программу делал чел, ни в дуб ногой не разбирающийся в концепции безопасности .Net.


Как раз и можно проверить, насколько ваша программа работает под ограниченными привилегиями.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.