LINUX.ORG.RU
ФорумTalks

[жж][НЕНАВЕСТ] Система безопасности в java me

 


0

0

Рисую свой быдлокод, никого не трогаю, почти закончил, даже на эмуляторе он работать стал. Все отлично. Заливаю в телефон. Фиг. Обвешал отловом эксепшенов код как новогоднюю елку, вроде бы все правильно, но... НЕ РАБОТАЕТ! SecurityException и все. Начал отключать фичи по одной, которые могли на пермишшены влиять, комментить большие куски кода. Остался чуть ли не пример из SDK, а все равно не работает, все прежний SecurityException кажет и все. Уже перерыл все настройки безопасности в телефоне, но фиг вам. Ну не хочет сокет создавать, хоть ты тресни.

Потом, уже дергающимися руками и нервно посмеиваясь, тупо скопировал открытие сокета из другого, рабочего мидлета. Завелось. Сравнил по байтам - разница в номере порта. Итого: на 7777 порт коннектится отлично, а на 80 выдает эксепшен, хоть ты тресни. НЕНАВЕСТ. Я 2 часа заливал на телефон новые билды, удовольствие малоприятное, а вот такая вот фигня: an unsigned midlet is not allowed to establish a socket connection to port 80, 443, 8080. Посылаю лучи рака в офисы Nokia.

> Посылаю лучи рака в офисы Nokia.

Надеюсь, они отразятся тебе в печень(мозг у тебя уже поражен раком, причем в терминальной стадии).

nikolayd
()
Ответ на: комментарий от nikolayd

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

EmStudio
() автор топика

а ты не забыл выставить в самом телефоне (и вроде бы даже в жабамашине они выставляются еще) необходимые пермишены для мидлета?

isden ★★★★★
()
Ответ на: комментарий от isden

> а ты не забыл выставить в самом телефоне (и вроде бы даже в жабамашине они выставляются еще) необходимые пермишены для мидлета?

Неа, я уже все настройки перебрал, до каких только мог дотянуться. А когда понял, что проблема связана с номером порта, то и проблему быстро нагуглил, это оказывается фича такая.

EmStudio
() автор топика
Ответ на: комментарий от EmStudio

Что тебе непонятно в словосочетании "неподписаный мидлет", почему твоя криворукая поделка, отлаживаемая методом "закоментить 90% кода" должна иметь полный доступ к моему телефону? И почему нокия должна идти на поводу у всяких "программистов", которые вешают свои кривые поделия на стандартные порты(навроде 80), которые регулярно сканируются ботнетами?

nikolayd
()

>тупо скопировал

>тупо

Что-то мне кажется, что и до этого ты всё делал тупо. Отсюда и все беды.

emperor
()

Безопасность -- одна из ключевых фич Java.

emperor
()
Ответ на: комментарий от nikolayd

> Что тебе непонятно в словосочетании "неподписаный мидлет"

Про это я нагуглил только тогда, когда разобрался с проблемой.

> отлаживаемая методом "закоментить 90% кода"

Мусье умеет отлаживать на устройстве как-то иначе? На обычном телефоне, купленном в магазине? Ибо на эмуляторе оно идеально работало.

> иметь полный доступ к моему телефону?

Вообще-то, оно и так спрашивает "разрешить-запретить" при каждом коннекте, а вот в случае с 80 портом оно даже не спрашивает, а ты никак не можешь разрешить такой коннект, хоть ты тресни. Твой телефон считает себя самым умным и принимает решения за тебя. Очень хороший телефон, ага.

> И почему нокия должна идти на поводу у всяких "программистов"

Дада, спеки тоже читать не нужно...

> оторые вешают свои кривые поделия на стандартные порты(навроде 80), которые регулярно сканируются ботнетами?

А это вообще сервсайд, не нокии решать, что будет на сервере установлено.

EmStudio
() автор топика
Ответ на: комментарий от EmStudio

> Мусье умеет отлаживать на устройстве как-то иначе? На обычном телефоне, купленном в магазине? Ибо на эмуляторе оно идеально работало.

Т.е. это твой первый опыт написания мидлетов. ЧТД.

> Вообще-то, оно и так спрашивает "разрешить-запретить" при каждом коннекте, а вот в случае с 80 портом оно даже не спрашивает, а ты никак не можешь разрешить такой коннект, хоть ты тресни. Твой телефон считает себя самым умным и принимает решения за тебя. Очень хороший телефон, ага.

Да замечательный телефон! Я сам лично на баррикады пойду, когда всяким рукожопым кодерам начнут массовый неограниченный доступ к железкам вроде телефонов давать - это тебе и ботнеты, и ДДоС, где участников хрен поймаешь - нафиг надо такое счастье, ради возможности дать хомячкам легкий способ писать мидлеты.

> Дада, спеки тоже читать не нужно...

Проспись, чтоль, после лекций.

> А это вообще сервсайд, не нокии решать, что будет на сервере установлено.

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

nikolayd
()
Ответ на: комментарий от nikolayd

> Т.е. это твой первый опыт написания мидлетов. ЧТД.

Это мой первый опыт бодания с такими глюками, за 1.5 года такого еще не встречал. Так значит других способов не знаешь? Слив засчитан.

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

Дядь, ты хоть один мидлет запускал? Ты хоть видел, как этот доступ дается?

> ради возможности дать хомячкам легкий способ писать мидлеты.

Не писать, а запускать.

> Проспись, чтоль, после лекций.

Слив засчитан^2

EmStudio
() автор топика
Ответ на: комментарий от nikolayd

> это тебе и ботнеты, и ДДоС

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

EmStudio
() автор топика
Ответ на: комментарий от EmStudio

> Слив засчитан.

Тю, я тебя переоценил. По теме нечего возразить, только передергивать можешь и таскать из контекста? Печально, что такие ограниченные люди работают в IT.

nikolayd
()
Ответ на: комментарий от EmStudio

>Т.е. все ограничивать по максимуму - это нормально?

Это нормально. Между прочим в твоем линуксе все тоже самое, нельзя поменять большинство настроек и запустить большое количество системных утилит без команды sudo. И никто, заметь, не жужжит. И тут все правильно, неподписанный код не должен троянить и таскать в телефон вирусы

Karapuz ★★★★★
()
Ответ на: комментарий от nikolayd

> По теме нечего возразить, только передергивать можешь и таскать из контекста?

Дык у тебя учусь же. Переходы на личности, скрытые оскорбления и все такое. Продолжай же

EmStudio
() автор топика
Ответ на: комментарий от Karapuz

> нельзя поменять большинство настроек и запустить большое количество системных утилит без команды sudo

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

> неподписанный код не должен троянить и таскать в телефон вирусы

Но пользователь должен иметь возможность разрешить коннект, как в случае соединений на другие порты. Иначе получаем АппСтор и анальное рабство, где вообще ничего запустить нельзя.

EmStudio
() автор топика
Ответ на: комментарий от EmStudio

> Переходы на личности, скрытые оскорбления и все такое.

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

nikolayd
()
Ответ на: комментарий от nikolayd

> Да ты не нервничай - это же интернет

Вот именно, а ты в нем, да еще и не прав.

> Эта ситуация возникла исключительно из-за недостатка твоих знаний

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

EmStudio
() автор топика
Ответ на: комментарий от nikolayd

> дебил, прости господи.

И как с такими именами в рабство берут?

EmStudio
() автор топика
Ответ на: комментарий от nikolayd

>Эта ситуация возникла исключительно из-за недостатка твоих знаний

Извините меня, nikolayd, но вы идиот.

Откуда получать подобные знания о фишках, которые в спеках не указаны.

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

mono ★★★★★
()
Ответ на: комментарий от EmStudio

>Иначе получаем АппСтор и анальное рабство, где вообще ничего запустить нельзя.

AppStore - это гораздо более либеральная фишка, чем эти гребаные сертификаты. Доступ есть ко всем функциям телефона и ко всему железу.. но Apple сама решает допускать прогу или нет. Но на своем телефоне разработчик может легко запустить программу на тестирование.

mono ★★★★★
()
Ответ на: комментарий от Karapuz

> все правильно, неподписанный код не должен троянить и таскать в телефон вирусы

здец какой. на лоре народ ратует за подписание кода. ахринеть.

Rastafarra ★★★★
()
Ответ на: комментарий от Karapuz

> И тут все правильно, неподписанный код не должен троянить и таскать в телефон вирусы

Все бы ничего, если бы программист мог сам подписывать и выпускать свои сертификаты, не обращаясь за разрешением к производителю.

praseodim ★★★★★
()
Ответ на: комментарий от mono

> Извините меня, nikolayd, но вы идиот.

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

> Откуда получать подобные знания о фишках, которые в спеках не указаны.

В спеках на что? Доки на сайте сана? Не верю, что нокия в доках не указала на то, что неподписанный код выполняется с пониженными привилегиями. Написать говнокод своими кривыми лапками и пердеть на форуме, как плохо он работает на "кривом" железе "сраных проприетарщиков" - святая обязанность каждого линуксойда.

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

Трололо. Пристрелю я тебя, пожалуй. Моё право.

nikolayd
()
Ответ на: комментарий от praseodim

> Все бы ничего, если бы программист мог сам подписывать и выпускать свои сертификаты, не обращаясь за разрешением к производителю.

Что, так сложно?

Sun Java Wireless Toolkit for CLDC User’s Guide • March 2008

6.2 Selecting the Security Policy

The toolkit supports the security policies defined by both JSR 185 (Java Technology
for the Wireless Industry) and JSR 248 (Mobile Service Architecture or MSA). The
protection domains are further described in Section 6.2.1, “MSA Protection
Domains” on page 6-3 and Section 6.2.2, “Java for the Wireless Toolkit Industry
Protection Domains” on page 6-4.

To choose the security policy you want the emulator to use, select Edit > Preferences
from the KToolbar menu and select Security in the Category list. From the Security
Policy combo box, choose either MSA or JTWI. Select one of the available security
policies.

When you use Run via OTA. your packaged MIDlet suite is installed directly into
the emulator and it is placed in a protection domain at installation time. The
emulator uses public key cryptography to determine the protection domain of
installed MIDlet suites.

If the MIDlet suite is not signed, it is placed in the default protection domain. The
default is different for MSA and JTWI. See Sections 6.2.1 and 6.2.2. If the MIDlet is
signed, it is placed in the protection domain that is associated with the root
certificate of the signing key’s certificate chain.

For example, suppose Respectable Software, a hypothetical company, wants to
distribute a cryptographically signed MIDlet suite. Respectable Software buys a
signing key pair from Super-Trustee, a hypothetical certificate authority. Using the
signing key, Respectable Software signs the MIDlet suite and distributes their
certificate with the MIDlet suite. When the MIDlet suite is installed on the emulator
or on a device, the implementation verifies Respectable’s certificate using its own
copy of Super-Trustee’s root certificate. Then it uses Respectable’s certificate to verify
the signature on the MIDlet suite. Assuming everything checks out, the device or
emulator installs the MIDlet suite into the protection domain that is associated with
Super-Trustee’s root certificate, most likely identified_third_party.

The toolkit provides tools to sign MIDlet suites, manage keys, and manage root
certificates.

iZEN ★★★★★
()

>unsigned midlet is not allowed to establish a socket connection to port 80, 443, 8080

то есть, из JavaME нельзя программно скачать страничку? Даже на собственном тестовом телефоне? Ололо!

adarovsky ★★★★
()

Доступ к управлению разрешениями и сертификатами должен быть у пользователя. У владельца любого устройства должен быть доступ ко всем его возможностям без всяких онлайновых сервисов.

Xenius ★★★★★
()
Ответ на: комментарий от iZEN

> Что, так сложно?

> Respectable Software buys a signing key pair from Super-Trustee

Да, с этого момента сложно. А в справке телефона сказано, что левый сертификат фиг воткнешь.

EmStudio
() автор топика
Ответ на: комментарий от adarovsky

> то есть, из JavaME нельзя программно скачать страничку? Даже на собственном тестовом телефоне? Ололо!

Есть нюансы:

1. В случае Nokia, собственных тестовых телефонов не бывает. Это телефоны Nokia.

2. Страничку получить можно, предварительно подписав мидлет, отвалив за это бабла

3. Как вариант, можно работать через http-фреймворк (часть MIDP), где ограничения проще, телефон просто спросит "разрешить-запретить?", но он только для получения страничек и годится, ибо имеет дофига ограничений.

EmStudio
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.