Не дай взломать свой Телеграм! Добавляем двухэтапную аутентификацию для надежной защиты

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

image

image

Самоуничтожение аккаунта Telegram

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

  • Перейдите в раздел «Настройки» — «Конфиденциальность».
  • Найдите пункт «Удалить мой аккаунт».
  • В строке «Если я не захожу» выберите период, в течение которого Telegram будет хранить ваши данные. Это может быть 1 год или 6, 3 или 1 месяц.

Можно ли восстановить удаленный аккаунт Телеграм?

К сожалению, нельзя — если вы стерли свой профиль, то вернуть все переписки не получится. Телеграм сразу удаляет удаленные аккаунты, в отличие от ВКонтакте или ТикТока, которые дают пользователям время на «раздумье» и возможность восстановить свою страничку.

Читайте также:

Была ли статья интересна? Поделиться ссылкой

Сегодня мы представляем новый виджет авторизации Telegram Login (OAuth) для осуществления входа через Телеграм на веб-сайты . Когда вы впервые проходите авторизацию через Telegram, наш виджет запрашивает номер телефона и отправляет вам подтверждение для авторизации вашего браузера. Как только это будет сделано впервые, далее вы сможете пройти авторизацию в два клика на любом веб-сайте, где есть авторизация через Telegram. 

Подтверждение входа

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

Боты Telegram — это мощный инструмент коммуникации, но до сегодняшнего дня они не могли первыми начать разговор с посетителями вашего сайта (так как из соображений безопастности и антиспам политики, Вы должны были первыми начать разговор с ботом, чтобы он мог Вам что либо ответить)

Благодаря новому виджету авторизации, взаимодействие бота с веб-сайтом становится возможным в два клика.

В данном примере сообщение от бота приходит сразу после авторизации на веб сайте

Потенциальные варианты использования безграничны. Боты могут использоваться для предоставления поддержки клиентов, принятия платежей, отправки любых уведомлений и многого другого (ограничиваясь лишь фантазией программиста).

Авторизация под контролем

После каждого входа Telegram отправит вам уведомление о разрешенных вами данных, которые вы передали владельцу веб-сайта. Вы можете отменить авторизацию, нажав соответствующую кнопку.

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

Этот простой на первый взгляд инструмент для авторизации — лишь первый этап проекта Telegram ID, который мы будем реализовывать в течение всего этого года.

Не пропустите другие обновления, которые мы анонсировали совсем недавно:

  • Потоковое видео и автоматический ночной режим на Telegram Android .
  • Telegram X для iOS и Android два новых экспериментальных официальных приложения.
  • TDLib — мощный и простой в использовании инструмент для создания пользовательских приложений Telegram.

Categories:

Новости

Tags:

Принцип работы виджета Telegram

6 февраля 2018 года команда Telegram анонсировала запуск Telegram Login Widget для внешних сайтов.

Оценить возможности виджета можно по ссылке: https://testwidgetbot.herokuapp.com/

Виджет предназначен для авторизации на сайте с помощью Telegram.

Виджет представляет собой кнопку с надписью Log in with Telegram. При нажатии на эту кнопку появляется окно, в которое пользователь должен ввести свой номер телефона. Введенный номер телефона не будет сообщен администратору сайта.

После ввода номера телефона пользователю придет уведомление в Telegram от пользователя Telegram следующего содержания:

Андрей, we received a request to log in on testwidgetbot.herokuapp.com with your Telegram account.  To authorize this request, tap the 'Confirm' button below.   Browser: Firefox on Linux IP: xx.xx.xx.xx (Russia)  If you didn't request this, tap 'Decline' or ignore this message. 

Под сообщением будет две кнопки: Accept и Decline. При нажатии Decline запрос авторизации будет проигнорирован. При нажатии Accept запрос авторизации будет принят.

Как только пользователь примет запрос авторизации в приложении Telegram, сайт получит информацию об авторизованном пользователе.

Создание бота Telegram

Для реализации системы авторизации необходимо создать бота.

Для этого необходимо написать в Telegram боту @BotFather. Это служебный бот для создания других ботов.

Создание бота происходит путем отправки ему команды /newbot. Бот запросит имя создаваемого бота, как его будут видеть пользователи. Второй вопрос предполагает ввод username создаваемого бота, @examplebot, t.me/examplebot. Username бота всегда должен заканчиваться на bot или Bot. Это требование Telegram. Пусть наш созданный бот называется @TestWidgetBot.

Если введенное имя уже занято, то будет предложено ввести другое. Если имя свободно, то BotFather пришлет токен созданного бота. Токен представляет собой строку вида xxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx и предназначен для авторизации бота.

Подключение домена

В целях безопасности Telegram требует привязать созданного бота к доменному имени. Для этого нужно отправить боту BotFather команду /setdomain. Бот спросит, к какому боту относится команда (необходимо выбрать созданного ранее бота), после чего ввести домен, к которому будет привязан созданный бот. Например, example.com.

Теперь можно разместить бота на любой странице example.com.

Для корректной работы виджета авторизации необхоидимо размещать сайт на 80 или 443. То есть, если при разработке запускается тестовый сервер, например, http://example.com:5000/, то виджет авторизации работать не будет. Поддомены тоже не работают, то есть разместить виджет на http://demo.example.com/ не получится. Несколько доменов командой /setdomain указать нельзя.

Возможно, эти недочеты будут устранены в дальнейшем.

Генерация кода виджета авторизации

На странице сайта example.com, в том месте страницы, где необходимо разместить виджет авторизации необходимо разместить виджета. Для получения скрипта можно воспользоваться генератором на странице документации Telegram.

В генераторе нужно ввести следующие параметры.

  1. Username бота, без символа @, например TestWidgetBot.

  2. Размер виджета, Small, Medium или Large.

  3. Выбрать тип авторизации.

    При выборе Redirect to URL при успешной авторизации пользователь будет переадресован на страницу с указанным URL. Параметры авторизованного пользователя (username, chat_id, first_name, last_name и пр.) будут переданы в качестве GET-параметров. Я использую именно этот тип авторизации.

    При выборе Callback параметры пользователя будут переданы в качестве аргумента JavaScript функции. Параметры представляют собой JSON-объект.

  4. Request Access необходимо установить, если требуется, чтобы бот мог начинать диалог с пользователем.

В моем случае получился такой код:

 

Сгенерированный код необходимо скопировать и вставить на странице сайта.

Обработка запроса на сервере

При подтверждении пользователем авторизации на сайте, в зависимости от выбранного параметра “тип авторизации”, либо выполнится JavaScript-функция, либо пользователь будет перенаправлен на страницу Callback URL. В качестве GET-параметров на эту страницу будут переданы данные пользователя.

Рассмортрим второй вариант.

Callback URL в моем случае https://testwidgetbot.herokuapp.com/register/. Telegram не требует, чтобы этот URL совпадал частично или полностью с доменом, который установлен /setdomain

Рассмотрим на примере. Предположим что клиент с chat_id 8951599, именем Andrey, фамилией S, авторизовался на сайте в момент времени 1518613843. Тогда после подтверждения авторизации он будет перенаправлен на URL:

https://testwidgetbot.herokuapp.com/register/?id=8951599&first_name=Andrey&last_name=S&auth_date=1518613843&hash=1678ace4c395d7adgca63f446d2aedb0fad21c935ffced6315fc524a44cb7fc7.

Параметр hash служит для проверки данных. На странице документации приведен алгоритм, по которому следует проводить валидацию данных. Я разработал класс для проверки данных по этому алгоритму, он доступен по ссылке:

https://github.com/ansmirnov/telegram-testwidgetbot/blob/master/tgwidget/utils.py

Использовать класс следует следующим образом:

from .utils import HashCheck  secret = os.getenv('BOT_TOKEN').encode('utf-8')  if not HashCheck(request.GET, secret).check_hash(): # Hash не верен else: # Hash верен 

Переменная окружения BOT_TOKEN должна содержать токен бота.

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

Заключение

В статье описан общий принцип работы авторичзации пользователя на сайте с использованием Telegram Login Widget. В статье используется технологии Python и Django, однако принцип может быть реализован с применением любых технологий, позволяющий обработать GET-запрос.

Разработан демонстрационный проект. Посмотреть результат можно по ссылке https://testwidgetbot.herokuapp.com/ исходный код проекта доступен на GitHub.

Если вам не нужен аккаунт в телеграм или вы сменили номер телефона, то его лучше всего удалить, чтобы злоумышленники не получили доступ к вашей личной информации.

Пошаговая инструкция, как удалить аккаунт Телеграмм навсегда

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

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

На телефоне

Чтобы удалить телеграм на телефоне с любой операционной системой, необходимо:

  • Перейти по ссылке https://my.telegram.org/auth?to=deactivate. Может потребоваться VPN для получения доступа к сайту.
  • Введите номер в международном формате. Для России это +7, для Украины +380, для Белоруссии +375.
  • Вам должно прийти сообщение от Телеграм с длинным кодом, который необходим для удаления аккаунта.
  • Введите полученный код в соответствующее поле на странице удаления.
  • Приложение спросит, по какой причине вы уходите. Вы можете ответить или пропустить этот шаг. Нажмите кнопку Done.
  • Откроется окно, где для подтверждения удаления аккаунта нужно нажать на красную кнопку.

С компьютера

Чтобы удалить Телеграм с ПК нужно:

  1. Перейти по ссылке https://my.telegram.org/auth?to=deactivate. В некоторых случаях может потребоваться VPN, чтобы получит доступ к сайту.
  2. Введите свой номер телефона, на который зарегистрирован аккаунт в Телеграм. Номер вводится в международном формате, т.е. вначале ставится «+» и код страны. Для России это +7, для Украины +380, для Белоруссии +375.
  3. Теперь нажмите кнопку «Next».
  4. В телеграм должно прийти служебное сообщение с длинным паролем, который необходим для удаления аккаунта.
  • Нажмите «Далее». Откроется новая страница, в одном из полей которой нужно ввести полученный пароль.
  • Затем перед вами появится меню, состоящее из трех пунктов. Вам нужен второй – деактивация аккаунта.
  • Затем появится поле с вопросом, почему вы уходите. Вы можете ответить на него, а можете пропустить. Нажмите кнопку «DONE».
  • Телеграм еще дает вам шанс передумать. В следующем окне вам предложено два вариант ответа – «Да, удалить мой аккаунт» и «Нет, я еще подумаю». Если вы твердо решили выйти из Телеграм, нажмите красную кнопку.
  • После этого появится уведомление, что аккаунт успешно удален.

Где можно найти ссылку на удаление?

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

Также ссылку можно найти на официальном сайте Телеграм https://tlgrm.ru/ в разделе «FAQ».

Как временно деактивировать Телеграм?

Временно деактивировать аккаунт в Телеграм невозможно. Если вам мешают уведомления от приложения, его можно просто удалить на ПК или телефоне. В этом случае они никак вас не побеспокоят.

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

Возможно ли восстановить удалённый профиль?

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

Что такое удалённый аккаунт в Телеграмме (deleted account telegram)?

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

Автоматическое удаление учётной записи

Телеграм дает своим абонентам возможность настроить автоматическое удаление аккаунта, если они долго бездействуют. Подобная функция полезна, если вы, например, боитесь того, что у вас украдут телефон. Срок бездействия может быть установлен от 1 месяца до 1 года.

Также программа автоматически удаляет страницу, если вы бездействуете в течение 6 месяцев. Рассуждает приложение, видимо, просто – раз в течение такого срока мессенджер не понадобился, то и в дальнейшем не потребуется.

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

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

Разрешаем писать боту первым

Боты Telegram — это мощный инструмент коммуникации, но до сегодняшнего дня они не могли начать разговор первыми. Даже если бы вы хотели, чтобы они обратились к вам, сначала вам нужно было «стартануть» их.

Благодаря новому виджету входа, переход от взаимодействия с сайтом к разговору на Telegram становится абсолютно без трения .

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

Все под контролем

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

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

Этот простой инструмент для входа в систему — это первый этап проекта Telegram ID , который мы будем развертывать в течение всего этого года.

Как настроить виджет авторизации через телеграмм

Виджет входа Telegram — это простой способ авторизации пользователей на вашем веб-сайте.

Настраиваем бота

Чтобы использовать виджет входа, вам понадобится бот Telegram .

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

Пользователи будут видеть это сообщение при входе на ваш сайт:

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

Связь домена и бота

После того, как вы выбрали бот, отправить команду /setdomain  отцу ботов @Botfather  для того, чтобы связать домен вашего сайта с ботом. Затем настройте свой виджет и вставьте код на свой сайт.

Конфигурация виджета

По ссылке вы можете задать конфигурации виджета.

Получение данных авторизации

После успешного авторизации виджет может возвращать данные двумя способами:

  • перенаправляя пользователя к URL-адресу, указанному в data-auth-urlатрибуте, со следующими параметрами: id , first_name , last_name , username , photo_url , auth_date и hash ;
  • вызывая функцию обратного вызова data-onauthс JSON-объект , содержащий Ид , first_name , last_name , имя пользователя , PHOTO_URL , auth_date и хэш — полей.

Проверка авторизации

Вы можете проверить аутентификацию и целостность полученных данных путем сравнения полученного хэш-параметра с шестнадцатеричным представлением подписи HMAC-SHA-256 строки проверки данных с хешем SHA256 маркера бота, используемого в качестве секретного ключа ,

Строка проверки данных представляет собой конкатенацию всех полученных полей, отсортированных в алфавитном порядке, в формате key=с символом перевода строки (‘ n’, 0xA0), используемым в качестве разделителя — например 'auth_date=nfirst_name=nid=nusername='.

Полная проверка может выглядеть так:

data_check_string = ...  secret_key = SHA256()  if (hex(HMAC_SHA256(data_check_string, secret_key)) == hash) {    // data is from Telegram  }

Чтобы предотвратить использование устаревших данных, вы можете дополнительно проверить поле auth_date , которое содержит отметку времени Unix при получении аутентификации.

Оцените статью
Рейтинг автора
4,8
Материал подготовил
Егор Новиков
Наш эксперт
Написано статей
127
А как считаете Вы?
Напишите в комментариях, что вы думаете – согласны
ли со статьей или есть что добавить?
Добавить комментарий