Проверяет, доступен ли ваш сервер, и предоставляет правильный сертификат SSL.
Стандартные приложения Android для почты, календаря, контактов и т. д. могут синхронизироваться с серверами, защищенными SSL, но не имеют возможности проверить свой сертификат. По сути, можно либо проверить, выдан ли сертификат одним из стандартных (до Android 4.0, не редактируемых пользователем) центров сертификации, либо не проверять их вообще. Этого недостаточно для надежного подтверждения личности сервера, что сопряжено с риском передачи конфиденциальной информации (паролей учетных записей) не тому серверу. Эта проблема особенно важна, когда сервер находится в полупостоянном соединении и обнаруживается через динамический DNS, использует самоподписанные или частные сертификаты CA или когда используются общедоступные точки доступа Wi-Fi (которые довольно легко подделать и, следовательно, являются обычным MitM-сертификатом). -вектор атаки).
Это приложение через настраиваемые интервалы проверяет, доступен ли данный URL-адрес HTTPS, и идентифицирует ли себя сервер с правильным сертификатом. Он состоит из виджета на главном экране, отображающего статус с помощью цветных «сигнальных огней»:
* зеленый, если с соединением все в порядке
* желтый, когда идет проверка
* красный, когда сервер недоступен
* двойной красный, когда сервер выдает ошибки или не проходит проверку сертификата
* маленький белый, при проверке не требуется
При проверке и при возникновении ошибки настройка глобальной синхронизации отключается. Таким образом, вы должны быть достаточно уверены в том, что синхронизация не попытается подключиться к серверу, личность которого не проверена, поскольку это тот же сервер, что и тот, который вы проверяете.
Это приложение с открытым исходным кодом (GPL). Исходный код и дополнительная документация доступны на моем веб-сайте.
Необходимые разрешения:
ИНТЕРНЕТ - подключитесь к своему серверу (больше нигде)
ACCESS_NETWORK_STATE — определите ваше соединение (WLAN, мобильное...), чтобы узнать, нужна ли проверка.
READ_SYNC_SETTINGS, WRITE_SYNC_SETTINGS — отключить синхронизацию при проверке или ошибке
RECEIVE_BOOT_COMPLETED — автоматический запуск (если возможно, в зависимости от версии Android)
READ_EXTERNAL_STORAGE — читать сертификаты из памяти или SD-карты
Читать далее