Как новая модель безопасности Lion повлияет на такие вещи, как Python?

Мне любопытно узнать, как новая модель безопасности в OS X Lion повлияет на будущее. В частности, я сомневаюсь в правах и песочнице.

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

Меня интересуют такие вещи, как Python. Моя компания делает небольшое приложение Python для экстренных ситуаций без веб-программного обеспечения. Это включает в себя чтение и запись в файловую систему.

Наше приложение не имеет прав, а именно потому, что это просто код Python, и мы не делаем никаких оболочек Cocoa. Когда вступят в силу требования Mac App Store о том, что все приложения должны быть помещены в «песочницу» и перечислены их права, интересно, выпустит ли Apple обновление для операционной системы и скажет: «С этого момента мы обеспечиваем безопасность именно так, и если вы приложение не соответствует нашей модели безопасности, оно не будет работать, потому что оно небезопасно».

У меня смешанные эмоции по этому поводу. С одной стороны, я думаю, что это здорово для того, чтобы сделать компьютеры потребителей более безопасными. Меньше мошеннического кода и всей этой гнили. С другой стороны, мне кажется, разработка превратится в сущий ад для многих разработчиков.

Мне также интересно, должно ли такое обновление выйти для Lion, если такое же обновление будет выпущено для Leopard или Snow Leopard. Я бы подумал, что это не Leopard, так как он на два поколения отстает от текущей ОС. В Snow Leopard все зависит от того, как долго Apple хочет поддерживать старую ОС.

Так что теперь я предоставляю разработчикам Apple возможность высказать свое мнение по этой теме и, возможно, генерировать мысли там, где раньше их не было.


person Professor Tom    schedule 14.09.2011    source источник
comment
Я бы сказал, что никто не знает, пока Apple действительно что-то не сделает. На данный момент все эти средства безопасности совершенно необязательны, и вы можете продолжать разрабатывать программное обеспечение так же, как и всегда. Не думаю, что это вдруг изменится. Они могут настраивать и применять больше модели безопасности по умолчанию с течением времени, но вы все равно сможете просто писать программное обеспечение. Это обязательно только в том случае, если вы хотите пройти через App Store, что, по моему мнению, является отличным способом привлечь на борт людей, которые хотят распространять программное обеспечение; но это, кажется, не должно вас беспокоить вообще.   -  person deceze♦    schedule 14.09.2011


Ответы (1)


Если бы вы могли внедрить Python вместе со своим скриптом и упаковать его в .app, используя что-то вроде py2app, думаю, вы могли бы добавьте/отредактируйте файл Info.plist, чтобы удовлетворить требования Apple к подписи. Аналогично для прав, я полагаю, вы могли бы отредактируйте файл entitlements.plist .app. Я думаю, что исполнитель песочницы sandboxd не зависит от языка, он просто разрешает/блокирует доступ процесса к устройствам и файлам (например, не предоставляя ограниченные файловые дескрипторы). Имейте в виду, что встроенному интерпретатору Python по умолчанию может потребоваться доступ к некоторым правам для инициализации (поскольку он может быть создан без учета песочницы).

Для устройств iOS (которые должны быть изолированы для продажи в магазине) политика Apple (раздел 3.3.2 соглашения о программе для разработчиков iOS) такова:

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

Кажется, что приведенное выше решение, если возможно, удовлетворило бы этому требованию (при условии, что аналогичное условие будет сделано для приложений OS X). Однако, если вы не заинтересованы в распространении своего приложения в App Store, я не думаю, что вам есть о чем беспокоиться. Я очень сомневаюсь, что в ближайшее время им потребуется подпись кода или права для запуска приложений на вашем компьютере (вместо того, чтобы просто помещать в песочницу те, которые продаются в App Store, что делает его «безопасным» местом для получения приложений).

person shookster    schedule 04.11.2011
comment
Gatekeeper — первый шаг в этом направлении. Он будет представлен в Mountain Lion (10.8) и будет уведомлять пользователя, когда он запускает приложение, которое не подписано, в конфигурации по умолчанию. Однако это не имеет отношения к песочнице. - person Dov; 30.05.2012
comment
@Dov Хотя я считаю, что вы можете подписывать приложения, которые не распространяются через Mac App Store. - person shookster; 04.06.2012
comment
Конечно, можно, в этом вся суть Gatekeeper. При самых строгих настройках вы можете устанавливать только приложения MAS. При средней настройке (по умолчанию) он предупреждает вас, когда вы запускаете любое приложение, отличное от MAS, которое не было подписано разработчиком сертификатом Apple. На наименее ограничительных настройках нет никаких предупреждений, как в Lion. - person Dov; 04.06.2012
comment
sandboxd не является исполнителем, он просто обрабатывает на уровне пользователя регистрацию того, что делает материал песочницы в ядре. - person tml; 23.08.2013