Разработка системы защиты SMS-сообщений

Автор: Михайлов Дмитрий Михайлович, Хабибуллин Тимур Рамильевич, Егоров Алексей Дмитриевич, Андряков Дмитрий Александрович, Бадрутдинов Айрат Дамирович

Журнал: Спецтехника и связь @st-s

Статья в выпуске: 1, 2014 года.

Бесплатный доступ

В данной статье рассматриваются средства защиты SMS-сообщений от несанкционированного доступа и вредоносного программного обеспечения. Авторы повествуют о требованиях к системам защиты подобного рода, рассматривают основные угрозы безопасности информации и описывают средства разработки системы.

Защита sms-сообщений, кодировка сообщений, длина ключа

Короткий адрес: https://sciup.org/14967195

IDR: 14967195

Текст научной статьи Разработка системы защиты SMS-сообщений

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

Модель нарушителя должна иметь следующую структуру [1]:

  •    описание нарушителей (субъектов атаки);

  •    предположение об имеющейся у нарушителя информации об объектах атаки;

  •    предположения об имеющихся у нарушителя средствах атаки;

  •    описания объектов и целей атаки; описание каналов атаки.

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

  •    осуществление злоумышленником пассивного прослушивания радиоканала; [2]

  •    атака на оборудование абонентов сети;

  •    перехват информации по каналам связи операторов сети, изменение, искажение, перенаправление передаваемой информации; [3]

  •    перегрузка оборудования оператора связи, вывод связи из строя;

  •    преднамеренная продажа конфиденциальной информации операторами связи сторонним лицам;

  •    преднамеренное предоставление ложной информации абоненту в целях обмана, ввода в заблуждение, саботажа; [4, 5]

  •    сбор данных посредством сторонних приложений, установленных пользователем; [6]

  •    использование уязвимостей операционных систем оборудования абонента [7, 8];

  •    использование уязвимостей интегрированных систем [7];

  •    использование конфиденциальных данных пользователей компаниями-разработчиками оборудования и программного обеспечения в сторонних целях.

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

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

SMS позволяет передавать за раз 1120 бит цифробуквенных сообщений между мобильными телефонами и внешними системами. SMS-сообщения передаются через мобильную сеть в виде простого текста. Содержимое SMS хранится в системе оператора связи и доступно рабочему персоналу. Алгоритм А5, используемый для кодировки передаваемых данных по стандарту GSM, может легко быть взломан [9]. Таким образом, необходимо добавить дополнительное кодирование передаваемых сообщений.

Кодирование может быть разделено на две категории: симметричное и асимметричное. При симметричном кодировании один и тот же ключ используется для кодировки и декодировки. Асимметричное кодирование использует два связанных ключа: один для кодировки, другой – для декодировки. Один из них доступен публично (публичный ключ), другой – хранится в секрете (приватный ключ).

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

Следовательно, суть исследования заключается в поисках возможности применения асимметричных алгоритмов кодирования для защиты SMS.

Существует множество асимметричных алгоритмов кодирования, но чаще всего используется алгоритм Равенства Шамира Адлемана (Shamir and Adleman), иначе известный как RSA, ELGamal, а также кодирование на основе эллиптических кривых [10]. В связи с этим для анализа были выбраны вышеперечисленные алгоритмы.

В публикациях многих авторов описаны способы применения различных методов кодирования для обеспечения конфиденциальности передаваемых SMS-сообщений. В исследовании Лисонек (Lisonek) и Драханского (Drahansky) [11] объясняется, что с помощью алгоритма RSA можно защитить менее 1120 бит информации при условии использования подходящей схемы заполнения. Альбуха (Albuja) и Каррера (Carrera) [12] разработали фреймворк, работающий на телефоне (на базе ARM9), который реализует схемы DES, 3DES, AES и RSA кодирования. Тулани (Toolani) и

Ширази (Shirazi) [13] предложили протокол на основе ECDLP для защиты конфиденциальности в мобильных платежных системах SMS. В исследовании Жао (Zhao) и его коллег [14] показываются возможности применения криптографии на личностной основе для защиты мобильных сообщений. Харб (Harb) [15] предоставил метод использования сессионного ключа 3DES для защиты SMS. Гарза-Салдана (Garza-Saldana) и Диаз-Перез (Diaz-Perez) в своем исследовании [16] показали, как с помощью симметричного кодирования реализовать конфиденциальность в мобильном платежном протоколе на базе SMS. Сонам (Sonam) [17] исследовал уязвимости в сервисах SMS-банкинга. Для этого он использовал методы эллиптических кривых. Хосаин (Hosain) и другие [18] выдвигают систему для улучшения защиты SMS с использованием существующего алгоритма А5. Группа Куата (Kuate) [19] описывает реализацию алгоритма под названием SMS-стек, использующего обе техники кодирования (асимметричную и симметричную) для предоставления конфиденциальности SMS-сообщений.

Рассмотрим три техники ассиметрич-ного кодирования, чтобы выделить самый эффективный алгоритм для защиты передаваемых сообщений.

Защита сообщений с использованием алгоритма RSA

Рон Ривест (Ron Rivest), Ади Шамир (Adi Shamir) и Леонард Адлеман (Leonard Adleman) описали схему кодирования RSA в 1978 г. RSA использует модульную арифметику. Алгоритм кодирования RSA может быть описан следующим образом [20]. Выбираются два больших простых числа р и q , вычисляется их произведение и ϕ -функция Эйлера, как показано в (1):

n = p×q ?

ϕ(n) = (p – 1)×(q – 1) .            (1)

Выбирается целое число e , которое должно удовлетворять (2), где gcd означает наибольший общий делитель (great common divisor):

e < ϕ(n), gsd(ϕ(n), e).                         (2)

Затем вычисляется целое число d , используя соотношение (3):

d = e–1 mod (ϕ(n)) .                (3)

Публичными ключами являются { e, n }, а приватными ключами – { d, n }. Для кодировки сообщения M используется соотношение (4):

C = Me mod n .                 (4)

Для раскодирования исходного сообщения M из закодированного текста используется соотношение (5):

M = Cd mod n                 (5)

Защита сообщений с использованием алгоритма ELGamal

Тахир Эльгамал (Taher Elgamal) описал схему кодирования Elgamal в 1985 г. Алгоритм Elgamal определен над циклической группой G порядка р . Он использует дискретные логарифмы. Алгоритм кодирования Elgamal может быть описан следующим образом [21]. Выбираются простое число р , порождающая функция g и целое число pr . у вычисляется из (6):

y = gpr mod p (6)

Публичными ключами являются { p , g и y }, а приватным ключом – pr . Для кодировки сообщения M выбирается целое число k , и закодированное сообщение { a , b } вычисляется при помощи соотношения (7):

a = gk mod p b = Myk mod p

Для раскодирования исходного сообщения M из закодированного текста используется соотношение (5):

M = b/(apr mod p)               (8)

Защита сообщений с использованием алгоритма на основе эллиптических кривых

Нил Коблитз (Neal Koblitz) и Виктор Миллер (Victor Miller) независимо друг от друга предложили схему кодирования методом эллиптических хорд в 1985 г. Метод использует дискретные логарифмы над конечным полем [22]. Простая хорда над конечным полем Zp использует кубическое уравнение вида (9) с a, b, удовлетворяющих условию (10).

y2 mod p = (x3 + ax + b) mod p ,   (9)

где a , b , x и y принимают целые значения от 0 до p – 1.

4a3 + 27b2( mod p) ≠ 0 .            (10)

Схема вычисления основной хорды над полем Zp следующая. Выбирается простое число p , хорда, соответствующая a , b , целое число pr и производящая функция G , являющаяся точкой а на хорде с координатами x и y . G умножается на pr , как показано в (11), чтобы получить pu .

pu(x1, y1) = pr×G(x, y) .           (11)

Приватным ключом является pr , а публичный ключ может быть вычислен как (12):

pu(x1, y1) , G(x, y) , E p (a, b) .          (12)

Для кодировки сообщения M сообщение представляется в виде точки с координатами x и y , выбирается целое число k , и закодированный текст вычисляется по формуле (13):

C = k × G(x, y), M(x m , y m ) +

+ k × pu(x1, y1)                  (13)

Для разрешения проблемы факторизации чисел вместо простых больших чисел могут использоваться субэкспоненциальные алгоритмы. Стойкость Algamal зависит от сложности вычисления дискретных логарифмов на дискретном поле. Если большие поля не используются, могут применяться субэкспоненциальные алгоритмы [23]. Стойкость методов на базе эллиптических кривых зависит от сложности вычисления дискретных логарифмов. Временная сложность алгоритма, решающего данную задачу, вырастает экспоненциально. Отсутствие субэк-споненнциального алгоритма для эллиптической кривой означает, что короткого ключа вполне достаточно для обеспечения высокой защиты [24].

Согласно руководству Национального Института Технологий (NIST) по сравнению силы кодирования [25] эллиптические кривые на малых ключах предоставляют кодирование, аналогичное кодированию с помощью RSA и ELGamal на более длинных ключах. В табл. 1 представлены результаты сравнения степени защиты алгоритмов в зависимости от длины ключа.

Как показано в табл. 1 , эллиптическая кривая на ключах длиной 160 и 224 бита представляет кодирование, эквивалентное полученному с помощью алгоритмов RSA и ELGamal с ключами 1024 и 2048 бит соответственно. Можно заметить, что RSA и ELGamal предоставляют одинаковую степень защиты при одинаковом размере ключа. Также можно отметить, что с ростом длины ключей увеличивается и количество защищенных битов.

В рамках данного исследования, было разработано приложение на платформе J2ME (Java 2 Micro Edition) с использованием технологий WMA (Wireless Messaging API) [26], предназначенное для сравнения трех вышеперечисленных технологий кодирования. Данное приложение выполнялось на мобильном телефоне с процессором ARM9 с частотой 219 МГц, с доступными 10 Мб внутренней памяти и виртуальной машиной JVM с включенным JIT (Justin-time compilation – компиляция «на лету»).

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

Временем генерации ключа будем считать время, потраченное на создание пары ключей. Для каждого выбранного алгоритма и длины ключа были проведены пять тестов, и по формуле (15) вычислено среднее значение. Результаты представлены в табл. 2 .

Ь.=^’ (15) /=i где ti - время последовательной генерации ключа, kt время средней генерации ключа.

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

Для раскодирования сообщение M вычисляется по формуле (14) и представляется в исходном виде:

M = +k × pu(x1,y1) – pr×k×G(x,y) = = M(x m ,y m ) + k × pr × G(x,y) –

pr×k×G(x, y ) = M(x m , y m ) . (14) Безопасность ассиметричных криптосистем базируется на таких сложных математических задачах, как: факторизация чисел, вычисление дискретного логарифма на дискретном поле и вычисление дискретного логарифма эллиптической кривой [22]. Основывающийся на факторизации чисел RSA сильно зависит от сложности факторизации больших простых чисел.

Таблица 1. Сравнение степени защиты алгоритмов в зависимости от длины ключа

Security bits

RSA

ELGamal

Elliptic

80

1024

1024

160

112

2048

2048

224

128

3072

3072

256

192

7680

7680

384

256

15360

15360

512

Таблица 2. Время генерации ключа в миллисекундах

Размер ключа

RSA

ELGamal

Elliptic

160

951

406

2437

224

1237

830

4449

256

1957

895

6451

512

16863

15946

40317

1024

76498

68773

318574

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

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

Заметим, что время кодирования – это время, потраченное на перевод текста в кодированный текст. Для каждой выбранной длины ключа и алгоритма были закодированы случайные SMS-сообщения разной длины. Среднее время кодирования рассчитано по формуле (16), результаты записаны в табл. 3 .

e^il^ (16) /=1

где ei – время кодирования случайного сообщения, Et – среднее время кодирования.

Табл. 3 показывает, что время кодирования зависит от длины ключа – увеличение длины ключа приводит к росту времени кодирования. Время кодирования алгоритма RSA и ELGamal больше, чем соответствующее время для метода эллиптических кривых и алгоритма RSA при той же степени защиты. Согласно табл. 3 для увеличения уровня защиты алгоритма ELGamal потребовалось увеличить длину ключа. Таким образом, алгоритм ELGamal сможет обеспечивать кодирование SMS не далее 2030 г.

Время раскодирования – это время, требуемое для преобразования кодированного текста в обычный текст. Все предыдущие закодированные SMS-сообщения были раскодированы; среднее время раскодирования было рассчитано по формуле (17), результаты были записаны в табл. 4 .

^' ц ^i 5 (17) ;=| где di – время декодировки случайного сообщения, Dt – среднее время декодировки.

Таблица 3. Время кодирования в миллисекундах

Размер ключа

RSA

ELGamal

Elliptic

160

18

2816

2696

224

28

5842

6268

256

37

7098

8545

512

258

29338

57236

1024

2013

140979

411558

Таблица 4. Время раскодирования в миллисекундах

Размер ключа

RSA

ELGamal

Elliptic

160

10

18

1292

224

28

27

2907

256

37

37

3932

512

259

194

27034

1024

1966

1107

198823

Таблица 5. Размер SMS после кодирования

Алгоритм

Размер ключа

Зашифрованный бит

Количество SMS

RSA

256

614

1

ELGamal

256

1222

2

Elliptic

256

789

1

RSA

512

1230

2

ELGamal

512

1230

2

Elliptic

512

1635

2

RSA

1024

2470

3

ELGamal

1024

2470

3

Elliptic

1024

3198

3

Можно заметить, что нет существенной разницы между временем раскодирования 1024-битного ключа для RSA и ELGamal или соответствующего 160-битного ключа для эллиптической кривой, которая эквивалентна по мощности кодирования, как показано в табл. 3 .

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

Для анализа длинной последовательности битов кодированного текста было решено использовать 159-битные случайные SMS-сообщения. Соответствующие закодированные биты для различных длин ключей представлены в табл. 5 . Эти результаты показывают, что обычно закодированные сообщения становятся длиннее, чем оригинальные сообщения. Примем во внимание тот факт, что в одно SMS могут входить только 1120 бит сообщения.

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

Была проведена доработка данного исследования, разработано приложение на платформе J2ME, предназначенное для сравнения трех вышеперечисленных технологий кодирования на современных мобильных телефонах. Данное приложение выполнялось на телефоне с процессором Exynos 4412 с частотой 1400 МГц, с доступными 64 Мб оперативной памяти и виртуальной машиной JVM с включенным JIT.

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

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

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

Табл. 8 показывает, что время кодирования зависит от длины ключа – увеличение длины ключа приводит к росту времени кодирования.Таким образом, вывод о том, что алгоритм ELGamal сможет обеспечивать кодирование SMS не далее 2030 г., подтверждается. При проведении данного исследования также не выявлено существенной разницы между временем раскодирования 1024-битного ключа для RSA и ELGamal или соответствующего 160-битного ключа для эллиптической кривой, которая эквивалентна по мощности кодирования, что оставляет методы на базе эллиптических кривых лучшим вариантом. Если длина ключа становится слишком большой, метод более не применим для SMS-кодирования.

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

Следовательно, оценка производительности рассмотренных методов защиты SMS-сообщений показала, что генерация ключа, время кодирования и раскодирования увеличивается по мере увеличения размера ключа. Алгоритмы с большими ключами не допустимы в кодировании SMS-сообщений по причине объемных требований к вычислительным мощностям используемого оборудования, независимо от того, насколько усовершенствованным оно стало. Однако использование метода эллиптических хорд с меньшим ключом кодирования позволяет очень эффективно использовать ресурсы аппарата и предоставлять необходимое кодирование при передаче сообщений. Таким образом, предлагаемым решением для защиты SMS-сообщений является создание программного комплекса, реализующего рассмотренный алгоритм кодирования. Реализация может быть выполнена как непосредственно на мобильных устройствах абонентов сети в виде программного

Таблица 6. Время генерации ключа в миллисекундах

Размер ключа

RSA

ELGamal

Elliptic

160

38

16

97

224

35

24

127

256

49

22

161

512

211

199

503

1024

477

429

1989

Таблица 7. Время кодирования в миллисекундах

Размер ключа

RSA

ELGamal

Elliptic

160

0,675

106

101

224

0,75

156

168

256

0,86

166

200

512

3

344

671

1024

12

826

2411

Таблица 8. Время раскодирования в миллисекундах

Размер ключа

RSA

ELGamal

Elliptic

160

0,38

0,68

48

224

0,75

0,72

78

256

0,87

0,87

92

512

3

2

217

1024

12

7

1165

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

Список литературы Разработка системы защиты SMS-сообщений

  • Типовые требования по организации и обеспечению функционирования шифровальных (криптографических) средств, предназначенных для защиты информации, не содержащей сведений, составляющих государственную тайну, в случае их использования для обеспечения безопасности персональных данных при их обработке в информационных системах персональных данных [Электронный ресурс]: Сертификат ФСБ Утвержден руководством 8 Центра ФСБ России 21 февраля 2008 года № 149/6/6-622 URL: rkn.gov.ru/docs/20081218101535n8.doc.
  • Михайлов Д.М., Жуков И.Ю. Защита мобильных телефонов от атак./Под ред. Ивашко А.М. -М.: Фойлис, 2011. -192 с.: ил.
  • Бельтов А.Г., Жуков И.Ю., Михайлов Д.М., Стариковский А.В., Пихтулов А.А., Толстая А.М. Тенденции развития методов мобильного мошенничества с помощью службы передачи данных GPRS./Спецтехника и связь, 2012. -№ 4. -С. 6 -8.
  • М.И. Фроимсон, А.М. Рапетов, Н.В. Сычев. SMS-дезориентация пользователей мобильных телефонов./Безопасность информационных технологий. «Безопасность мобильной связи», 2012. -2БМС. -С. 17 -21.
  • А.В. Зуйков, П.Е. Минин, Д.М. Михайлов, А.С. Смирнов, А.В. Стариковский, М.И. Фроимсон. Мошенничество с SMS-сообщениями в системе ANDROID. Научная сессия НИЯУ МИФИ-2012. Аннотации докладов в 3 томах. -М.: НИЯУ МИФИ, 2012. Т. 2. -С. 235.
  • Иванов Павел. Телефонные закладки и безопасность мобильного устройства./Information Security, 2012. -№ 6. -С. 30 -31.
  • Михайлов Д.М. Выявление признаков негласного слежения за местоположением абонентов в сетях беспроводной связи./Спецтехника и связь, 2013. -№ 2. -С. 44 -47.
  • Фроимсон М.И., Кутепов С.В., Тараканов О.В., Шереметов А.В. Основные принципы построения защищенной операционной системы для мобильных устройств./Спецтехника и связь, 2013. -№ 1. -С. 43 -47.
  • R. Dave. SMS vulnerabilities and XMS technology./Network Security Solutions. -Technical Report, 2006.
  • W. Stallings. Cryptography and network security./Prentice Hall, 2006. -New Jersey, United State.
  • Lisonek D., Drahansky M. Sms encryption for mobile communication./Security Technology, 2008.SECTECH'08.International Conference on. -IEEE, 2008. -С. 198 -201.
  • Albuja J.P., Carrera E.V. Trusted sms communication on mobile devices./Proceedings of the 11th Brazilian Workshop on Real-Time and Embedded Systems. -Recife-Brazil. -2009. -С. 165 -170.
  • Toorani M., Beheshti A. SSMS-A secure SMS messaging protocol for the m-payment systems./Computers and Communications, 2008. -ISCC 2008. -IEEE Symposium on. -IEEE, 2008. -С. 700 -705.
  • Zhao S., Aggarwal A., Liu S. Building secure user-to-user messaging in mobile telecommunication networks./Wireless Telecommunications Symposium, 2008. -WTS 2008. -IEEE, 2008. -С. 151 -157.
  • Harb H., Farahat H., Ezz M. SecureSMSPay: secure SMS mobile payment model./Anti-counterfeiting, Security and Identification, 2008./2nd International Conference on. -IEEE, 2008. -С. 11 -17.
  • Garza-Saldaa J.J., Díaz-Pérez A. State of security for SMS on mobile devices./Electronics, Robotics and Automotive Mechanics Conference, 2008. CERMA'08. -IEEE, 2008. -С. 110 -115.
  • Soram R. Mobile sms banking security using elliptic curve cryptosystem./IJCSNS, 2009. -Т. 9. -№. 6. -С. 30.
  • Hossain A. et al. A proposal for enhancing the security system of short message service in GSM./Anti-counterfeiting, Security and Identification, 2008./2nd International Conference on. -IEEE, 2008. -С. 235 -240.
  • Kuaté P.H., Lo J.L. C., Bishop J. Secure asynchronous communication for mobile./Proceedings of the Warm Up Workshop for ACM. -IEEE ICSE, 2010. -ACM, 2010. -С. 5 -8.
  • Robinson S. Still guarding secrets after years of attacks, rsa earns accolades for its./SIAM News, 2003. -Т. 36. -№. 5. -С. 1 -4.
  • Gamal T.E. A public key cryptosystem and a signature scheme based on discrete logarithms. -1985. URL: http://groups.csail.mit.edu/cis/crypto/classes/6.857/papers/elgamal.pdf.
  • W. Chou. Elliptic curve cryptography and its applications to Mobile Devices. -University of Maryland, 2003. -Technical report. URL: ttp://honors.cs.umd.edu/reports/ECCpaper.pdf.
  • Verkhovsky B.S. Integer factorization: solution via algorithm for constrained discrete logarithm problem./Journal of Computer Science, 2009. -Т. 5. -№. 9. -С. 674.
  • Ghosal R., Cole P.H. Elliptic curve cryptography. -University of Adelaide Auto-ID Labs, Technical Report, 2006. URL: http://www.autoidlabs.org/uploads/media/AUTOIDLABS-WP-HARDWARE-026.pdf.
  • Barker E., Roginsky A. Recommendation for the transitioning of cryptographic algorithms and key sizes. -CiteSeerx, USA, Tech. Rep. NIST Special Publication, 2010. -С. 800 -131.
  • Li S., Knudsen J. Beginning J2ME: from novice to professional. -Apress, 2005.
Еще
Статья научная