Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
MRAK87
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 5
#1

Передача пароля из Android приложения в PHP - Программирование Android

25.07.2014, 22:14. Просмотров 1106. Ответов 16
Метки нет (Все метки)

Здравствуйте.

Подскажите, пожалуйста, начинающему разработчику Android в каком направлении двигаться.
Есть приложение под Android, пользователь регистрируется на мобильном приложение, пароль отсылается по запросу POST на сервер, где php-скрипт принимает этот параметр, дальше уже работает проверка валидности пароля и хеша-пароля из БД. Это все уже отлажено.
Вопрос как на Java зашифровать пароль, передать в запросе POST, затем PHP скрипт должен принять зашифрованный пароль и расшифровать его? Чтобы нельзя было по сети передавать в явном виде пароль.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
26.07.2014, 23:24     Передача пароля из Android приложения в PHP #2
SSL
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.07.2014, 00:50     Передача пароля из Android приложения в PHP #3
Цитата Сообщение от Netscape Посмотреть сообщение
SSL
А не слишком круто? У меня есть простой хостинг с PHP, теоретически могу активировать и SSL, но...
1) насколько я знаю нужны ключи. Обычно их покупают. И это дороже самого хостинга. Год назад в Израиле слышал бесплатные выдавали на пол года, но это было исключение... Вроде можно свой сгенерировать, но как среагируют браузеры - скорее всего ошибкой - "ключ устарел", "ключ не правильный"...
2) нужно настроить сервер - одни папки обычным протоколом а другие переадресовывать на https
3) Скачать и отправить из андроида - это вроде уже совсем другие наборы команд... Другой протокол, другие классы...

Мне самому предстоит подобное
Пока планирую пока просто шифровать ключ при передаче своим методом (с привязкой к дате/часу) и дешифровать в РНР...
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.07.2014, 10:36     Передача пароля из Android приложения в PHP #4
Цитата Сообщение от Tester64 Посмотреть сообщение
1) насколько я знаю нужны ключи. Обычно их покупают. И это дороже самого хостинга. Год назад в Израиле слышал бесплатные выдавали на пол года, но это было исключение... Вроде можно свой сгенерировать, но как среагируют браузеры - скорее всего ошибкой - "ключ устарел", "ключ не правильный"...
генерьте сами. Ну будет он не "официальный", ну и чёрт с ним. Всё равно безопасность будет.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
27.07.2014, 14:12     Передача пароля из Android приложения в PHP #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Всё равно безопасность будет
А намного сложнее будет переписать скачивание/отправку? где-то встречал упоминание совсем других классов, вроде обязательное подключение в проект jar-классов.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
27.07.2014, 16:07     Передача пароля из Android приложения в PHP #6
Цитата Сообщение от YuraAAA Посмотреть сообщение
Ну будет он не "официальный", ну и чёрт с ним. Всё равно безопасность будет.
self-signed сертификаты полная лажа.

Цитата Сообщение от Tester64 Посмотреть сообщение
Обычно их покупают.
Обычно - да, необычно - раздают бесплатно: https://www.startssl.com/
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.07.2014, 16:16     Передача пароля из Android приложения в PHP #7
Цитата Сообщение от Netscape Посмотреть сообщение
self-signed сертификаты полная лажа.
а-та-та, а ну ка обоснуйте.

Similarities Between Signed and Self-Signed Certificates

Whether you get your certificate signed by a certificate authority or sign it yourself, there is one thing that is exactly the same on both:

Both certificates will generate a site that cannot be read by third-parties. The data sent over an https connection or SSL, will be encrypted regardless of whether the certificate is signed or self-signed.
In other words, both types of certificates will encrypt the data to create a secure website.
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
27.07.2014, 19:39     Передача пароля из Android приложения в PHP #8
Цитата Сообщение от YuraAAA Посмотреть сообщение
а-та-та, а ну ка обоснуйте.
self-signed сертификаты untrusted.

Схема использования недоверительного сертификата предполагает, что подпись сертификата можно проверить, только используя публичный ключ, часть которого находится в самом сертификате. Т.е. сертификат подтверждается, публичным ключом который является частью самого сертификата (сертификат подтверждает сам себя). Именно по этой причине браузеры не доверяют таким сертификатам.
Добавлено через 20 минут
Разделяю мнение этого чувака:

It is always been told that SSL certificates are only secure if they are issued and signed by a trusted signing authority, and that we should never use a self-signed certificate except for limited internal use and for testing purposes. We would be crazy to implement a self-signed certificate in a production environment.
http://scn.sap.com/community/securit...d-certificates
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
28.07.2014, 02:07     Передача пароля из Android приложения в PHP #9
Цитата Сообщение от Netscape Посмотреть сообщение
Обычно - да, необычно - раздают бесплатно: https://www.startssl.com/
если я правильно понял, это всего на год... потом все равно покупать прийдется? за 200$ (при минимально-разумном хостинге за 60-120$)?

Цитата Сообщение от YuraAAA Посмотреть сообщение
генерьте сами.
А чем обычно подобное генерят? Можно ли сделать ключ на 1024 и выше бит? На что (кроме надежности) это влияет? Логично что скорость шифровки/расшифровки падает, но андроид с этим справится? Сильно вырастит нагрузка на сервер?

Цитата Сообщение от Netscape Посмотреть сообщение
Т.е. сертификат подтверждается, публичным ключом который является частью самого сертификата (сертификат подтверждает сам себя).
Не понял... Поправьте меня, но надежность SSL заключается в 2х механизмах:
1) канал общения с вашим сайтом шифрутся ключем и взломать его тяжело даже имея сам ключ сертификата.
2) то с кем вы общаетесь точно ваш сайт, т.к. это гарантирует ключ выданный фирмой МММ (и лично фирма МММ)

Тогда...
1) Ключ действительно шифрует. И без спец оборудования его фиг вломаешь. Вроде мелкого провайдера, сидящего на линии. Или малолетнего хакера сидящего в локалке.
2) Теоретически я сам могу обьявить себя особой подтверждающей правильность сертификата. (без международной лицензии, и т.д.). Кто подтверждает на сайте гугла что сертификат гугла действительно выдан гуглу? Где обычно хранится "вторая половинка" купленного ключа ?
MRAK87
0 / 0 / 0
Регистрация: 31.07.2013
Сообщений: 5
28.07.2014, 18:37  [ТС]     Передача пароля из Android приложения в PHP #10
Вы от темы отошли, а нет ли простого варианта без всяких SSL. Например, на java зашифровать пароль с открытым ключом, а затем передать через POST зашифрованный пароль, а уже на стороне PHP дешифровать, зная открытый ключ?
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
29.07.2014, 00:42     Передача пароля из Android приложения в PHP #11
Цитата Сообщение от MRAK87 Посмотреть сообщение
а нет ли простого варианта без всяких SSL
Думал над подобным... (сам пока в открытую пароли передаю)
Насколько я знаю, PHP само по себе не особо поддерживает шифрование, как и андроид. Все нужно писать самому, а это обчно подглючивает (это обычно специалисты писать должны).

1) шифровать предстоит и параметры в строке заспроса, и пост-параметры, и передаваемое/получаемое "тело" (файл).
2) зашифровать относительно надежно строку еще можно, хотя про открытые ключи в ПХП не слышал. разве что через левые библиотеки (некоторые из которых требуют админ доступа для установки в настройки ПХП).
3) зашифровать файл - это опять-же долго и тяжело. К тому-же предстоит одинаковое шифрование поддерживать на обоих системах. А я до сих пор не нашел даже метода шифрования зип-файлов в обоих языках.

ИМХО, SSL-"тунель" самое надежное средство, но не для новичка... Там идет шифрование ВСЕГО и сразу. Причем на низком уровне и написано все это достаточно надежно (проверено мировыми криптоаналитиками).

Кстати, до сих пор не услышал ответа: тяжело ли переписать с обычного GET/POST на SSL? Нужны ли для этого отдельные библиотеки?

Добавлено через 4 минуты
Цитата Сообщение от MRAK87 Посмотреть сообщение
Например, на java зашифровать пароль с открытым ключом, а затем передать через POST зашифрованный пароль, а уже на стороне PHP дешифровать, зная открытый ключ?
Зачем Вам "открытый ключ"? Если я правильно понял, и код на PHP и код на андроиде пришете ВЫ! А значит можно использовать ЗАКРЫТЫЙ ключ любой сложности. Хоть по словарю. Любая методика подойдет, а не зная метода шифрования с обоих сторон тяжело расшифровать строку...
ILNAR_93
Android
219 / 219 / 22
Регистрация: 19.01.2013
Сообщений: 1,642
Записей в блоге: 3
29.07.2014, 11:34     Передача пароля из Android приложения в PHP #12
Если не нужна сверх защита, если защита нужна от всяких ламеров то можно использовать параллельное шифрование задаешь ключ шифрования (можно сделать чтобы менялся со временем)

отправляешь "зашифрованный" принимаешь и расшифровываешь перед использованием

)

p.s. не селен в теме защиты инфы )
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
29.07.2014, 12:42     Передача пароля из Android приложения в PHP #13
Цитата Сообщение от kaspersky Посмотреть сообщение
можно сделать чтобы менялся со временем
Просчитывал подобное... по идее класно, но в реале будет лажей! Есть шанс что отставание часов мобилки на минуту даст сбой. На тысяче устройств это будет приличным процентом глюков... Был случай, когда сервер сам перевел часы на другую часовую зону. Админ перекинул скрипты на другой сервак и забыл настройку в ПХП. В результате на целых 2 часа разница была (по гринвичу стало).

Расчитал для себя такую схему - RND строка приклеивается к паролю и является частью ключа или влияет на выбор ключа на другой стороне. Может быть привязано ко времени и проверяться с зазором (123 с 1:00 до 3:00, а 456 с 2:00 до 4:00)

Но это все - "костыли"! SSL - теоретически самый простой и относительно надежный вариант. Вопрос только насколько тяжело из андроида получать и отправлять файлы через SSL. Специально еще не гуглил, пока интересует общее мнение...
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
29.07.2014, 19:26     Передача пароля из Android приложения в PHP #14
Цитата Сообщение от Tester64 Посмотреть сообщение
SSL - теоретически самый простой и относительно надежный вариант. Вопрос только насколько тяжело из андроида получать и отправлять файлы через SSL. Специально еще не гуглил, пока интересует общее мнение...
Всё верно, это самый простой и надёжный вариант. Вся разница: обычное соединение это http://... порт 80, защищённое - https://.... порт 443. Всё.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
31.07.2014, 09:17     Передача пароля из Android приложения в PHP #15
md5
YuraAAA
1566 / 1308 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
31.07.2014, 11:00     Передача пароля из Android приложения в PHP #16
Цитата Сообщение от kirawa Посмотреть сообщение
md5
тогда уже bcrypt
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2014, 03:50     Передача пароля из Android приложения в PHP
Еще ссылки по теме:
Заставка для приложения android Android
Закрытие приложения эклипс android Android
Android > 5 версии права приложения Android
Анимация текста Android приложения Android
Жизненный цикл Android приложения Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
01.08.2014, 03:50     Передача пароля из Android приложения в PHP #17
Цитата Сообщение от kirawa Посмотреть сообщение
md5
Цитата Сообщение от YuraAAA Посмотреть сообщение
тогда уже bcrypt
Это равносильно открытой передаче пароля... ссылку в чистом виде можно будет повторить (например) для скачивания того-же файла. И она не устареет и через неделю. Единственное что это усложнит - нельзя будет ввести этот пароль в регистрационную форму. Но если протокол простой, то имея лишь ссылки его легко взломать...
Yandex
Объявления
01.08.2014, 03:50     Передача пароля из Android приложения в PHP
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru