Email or username:

Password:

Forgot your password?
Umnik

developer.android.com/referenc Ещё не изучал подробно, но пока выглядит интересно. Новая апишка в #android 15.

Сначала объяснение проблемы. Если вы создаёте средство общение (IM, почтовый клиент, может что-то ещё) между пользователями и ваш продукт должен быть с честным E2EE, то будет проблема с тем, как хранить ключи собеседников.

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

Вообще, обычный путь - обязывать пользователя создавать резервные копии, которые нужны не только для хранения переписок, но и для хранения секретов с этим пользователем. Переустановил приложение, не сделав резервную копию секрета - ССЗБ. Разные приложения по-разному вас "накажут". Кто-то сохранит переписку (не у вас, разумеется, а у дяди где-то, пусть и зашифрованную), но сбросит доверие, предупредив собеседника о смене ключа. Кто-то не сохранит ничего и вы будете начинать общение с чистого листа. Кто-то забекапит куда-то вообще всё и вы, как пользователь, ничего не заметите.

В общем, каждый использует свой подход.

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

Пока надо ещё будет разобраться, есть ли защита от сторонних приложений. Если доступ проверяется по паре "имя пакет + подпись", то этого, в целом, достаточно.

Ещё не смотрел, будет ли контакт в записной книге, или это скрытый контакт. Будет ли он попадать в резервную копию самого Гугла (только для телефонов с GPS).

5 comments
⚛️Revertron

@umnik Но ведь всё равно надо городить свою систему для семи предыдущих версий Андроида.

Umnik

@Revertron надо, да. Но это пока.
Помню, когда появилась 6 с её рантайм пермишенами, на Хабре писали, что фигня, у всех хорошо если 5-ки, а то вообще 4-ки.

⚛️Revertron

@umnik Ну да, пришлось 10 лет ждать :)

Umnik

@Revertron сильно меньше. Тогда телефоны были достаточно дёшевы, если вспомнить. И дешевле в долларах, и дешевле в местных курсах.

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

Шуро

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

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

Go Up