Тем временем обе версии Telegram временно исчезли из App Store из-за «недопустимого контента».
Поделиться
Поделиться
Команда Telegram официально представила альтернативный клиент Telegram X для Android — сам мессенджер появился в Google Play ещё неделю назад. Также компания рассказала о библиотеке TDLib (Telegram Database Library), на основе которой собран Telegram X. С её помощью разработчики смогут создавать собственные версии мессенджера с различными функциями.
Разработчики Telegram X сделали акцент на плавной анимации и обновлённом интерфейсе c нативной поддержкой тёмных тем. Также Telegram X разрешает просматривать сообщения без открытия чата. В целом же, разработчики обещают внутри мессенджера много «сюрпризов», которые упростят работу с приложением.
Открытая библиотека TDLib, в свою очередь, позволит создавать новые версии мессенджеров, которые будут работать в экосистеме Telegram. Для разработчиков есть дополнительная документация и открытый код на GitHub.
РАЗМЕЩАЕМ БОТА НА СЕРВЕРЕ | Телеграм боты ч. 5
Инструмент разрешает создавать приложения для любой платформы, включая Android, iOS, Windows, MacOS и Linux. Также TDLib совместима с любым языком программирования, поддерживающими функцию C. Команда Telegram пообещала, что TDLib обеспечит стабильную работу сервиса при медленном интернет-подключении. Ко всем локальным данным, как и к любой другой информации внутри экосистемы Telegram, применяется оконечное шифрование.
Telegram X для iOS появился ещё в конце декабря прошлого года. Однако 1 февраля пользователи Reddit обнаружили, что обе версии мессенджера, включая классический Telegram, пропали из App Store. Приложения недоступны и в России.
Павел Дуров объяснил удаление обоих мессенджеров из App Store тем, что в них содержался «неприемлемый контент». После решения этой «незначительной», по словам Дурова, проблемы приложения снова вернутся в App Store.
Обновлено в 19:31. По словам Павла Дурова, оба приложения вернулись в строй.
Ранее стало известно, что Telegram тестирует функцию, с помощью которой пользователь может группировать каналы в отдельную ленту новостей.
A/B-тестирование от Flocktory: быстрый запуск тестов и оптимизация вашего сайта для роста конверсий
A/B-тесты — инструмент продуктового и маркетингового тестирования контента и функциональности сайта с комплексной аналитикой результатов.
С помощью этого инструмента вы сможете менять содержимое сайта на основе лучших практик Flocktory и кастомных гипотез, которые мы поможем сформулировать. А также повысить конверсию сайта и сэкономить время продуктовых и технических команд.
Тестирование и оптимизация сайта проходят без вовлечения вашей IT-команды, а результаты тестов доступны в личном кабинете в реальном времени.
Источник: www.cossa.ru
How To Make A Windows and Mobile Telegram Messenger App
In this article, you will learn about Telegram Messenger, why use Telegram Cloud in your own applications, TDLib Library, using OpenSSL for security and encryption, developing your own Telegram in Windows app development software, and much more.
What is Telegram Messenger?
Telegram Messenger is a popular cloud instant messaging application. This application offers multiple services including instant text messaging and video calls which are end to end encrypted. Telegram also allows for secure file sharing and many other powerful features which would be hard to do independently in your own code.
Telegram Messenger is famous for the level of security it offers for users. Furthermore, Telegram Messenger offers a free and open Telegram API that allows anyone to create their own messaging apps operating in the Telegram cloud. To ease Telegram API integration, a cross-platform library completely free is provided too. This library is known as TDLib library.
Why use the Telegram cloud in your own application ?
Telegram Messenger is more than an instant messaging application; it’s a real social network with the capabilities and features we’ve come to expect. For example, if you need a notification feature in your application, integrating with the Telegram cloud allows you to get this feature very quickly and be in touch with all Telegram users.
A brief look at TDLib library.
The advantage of using the TDLib component library are :
- Cross platform capability (Windows,Android,iOS,MacOS,Linux)
- High-performance. it can be red in the documentation that each TDLib instance can manage around 20000 bots.
- Consistent: The TDLib checks that all incoming messages and answers are dispatched in the correct temporal order.
- Reliable : TDLib can work on slow and unstable internet connections.
- Secure: All local data are encrypted.
- Asynchronous : Each call to TDLib doesnt block main thread.
We use OpenSSL to provide security and encryption
This library has also some dependency with OpenSSL. It also needs to use the Zlib compression library. This will mean we need to download those packages and include . or link the following third party binaries from them as you can see below:
- tdjson.dll
- libcrypto-1_1.dll
- libssl-1_1.dll
- zlib1.dll
The Windows version of TDLib needs Visual C++ runtime that can be found at : https://www.microsoft.com/en-us/download/details.aspx?id=52685
How can I develop my own Telegram client in Delphi?
The TDLib libray has a lot of exposed methods and despite the detailed documentation, it’s not so easy to deal with it directly. However the components suite of ESEGECE company does a lot of the hard work for you and provides the main methods to develop your own customized Telegram client. We’ve talked before about ESEGECE on the blog. Their components have a pretty wide range of uses and are definitely worth checking out.
Is there a Telegram messenger component for use in Delphi?
The first step will be to download the Websockets components suite of ESEGECE here in order to use their TsgcTDLib_Telegram component.
Declare a new Telegram application
To be allowed to connect to the Telegram Messenger cloud, you will need an API ID and API Hash Key. To get them, you will need to
- Sign up for Telegram cloud with any Telegram client.
- Log in to the site : https://my.telegram.org
- Go to API development tools and fill out the form and you will get api_id and api_hash parameters required for user authorization.
Use TsgcTDLib_Telegram component
Start a new VCL or FireMonkey FMX project with Delphi and drag drop the TsgcTDLib_Telegram component. You are ready to create your own Telegram client.
How does a messenger app work?
As for any client-server architecture, a client needs to be connected to the server before it can send or receive any data. To keep things secure there is an authentication system. Let’s have a look how the authorization mechanism works.
Telegram App Authorization steps
Developer must fill some mandatory parameters to be able to connect to Telegram cloud. You can go to my.telegram.org to get the API authorization keys which can be found in the the Telegram.API property group. If developer wants to be declared as a user a phone number must be set. If he/she wants to be declared as a bot then a bot token must be set.
See below for an example of initialization of an instance of the TsgcTDLib_Telegram class.
//sgcTelegram was drag dropped on a form no need to create
sgcTelegram . Telegram . API . ApiHash : = apiHash ;
sgcTelegram . Telegram . API . ApiId : = apiID ;
sgcTelegram . Telegram . PhoneNumber : = » + 0155512345678 ‘;
sgcTelegram.ApplicationVersion := ‘ 1.0 ‘;
sgcTelegram.DeviceModel := ‘ Desktop ‘;
sgcTelegram.LanguageCode := ‘ en ‘;
sgcTelegram.SystemVersion := ‘ Windows ‘ ;
//here Active = True means the connection is queried
sgcTelegram . Active : = true ;
As soon as the Active property is set to True, some events are fired to finalize the authorization procedure.
The OnConnectionStatus event
This event is fired each time the connection status changes. Some values of Status are:
- connectionStateConnecting
- connectionStateUpdating
- connectionStateReady
The OnAuthenticationCode event
The phone number is registered on the Telegram cloud and a grant code is sent through Telegram application.If the phone number is not registered to the Telegram cloud the grant code is sent through SMS.
Just implement in the a simple InputBox to enter the receieved code to complete the authorization process.
procedure TFormTelegram . sgcTelegramAuthenticationCode ( Sender : TObject ; var Code :
Code : = InputBox ( ‘Telegram’ , ‘Introduce Telegram Code’ , » ) ;
OnRegisterUser events allow us to sign up new users to Telegram and our messenger app
In the case of the used phone number was not registered on the Telegram system, the sign up process is started automatically . This sign up process needs the first name and the last name of the user. To get them an event OnRegisterUser is fired . See below a very simple implementation of this event :
procedure TFormTelegram . sgcTelegramRegisterUser ( Sender : TObject ;
var FirstName , LastName : string ) ;
FirstName : = InputBox ( ‘Telegram’ , ‘Your FirstName’ , » ) ;
LastName : = InputBox ( ‘Telegram’ , ‘Your LastName’ , » ) ;
OnAuthorizationStatus events and what they do
During all these authorizations steps, an event OnAuthorizationStatus is fired to describe which step is achieved in this process. Most values of the status are:
- authorizationStateWaitTdlibParameters
- authorizationStateWaitEncryptionKey
- authorizationStateWaitPhoneNumber
- authorizationStateWaitCode
- authorizationStateLoggingOut
- authorizationStateClosed
- authorizationStateReady
Once the authorization is granted, the application is ready to send and receive messages with other Telegram users.
How to exchange messages on the Telegram cloud
With our use of the Telegram API instant messaging applications are built around a chat room and users subscribed to that room. Literally, users join in a chat room and exchange messages. To send a public message for several users in the same chat room, only the identifier of the chat room is needed. The Telegram cloud will dispatch the message to all users associated to this chat room. Ultimately, the goal of a chat application is to receive and send messages publicly to the group and privately. Let’s check how it works with the TsgcTDLib_Telegram component.
How do I receive messages from Telegram users in my Delphi Windows and Mobile apps?
It’s the simplest part. Just implement the event OnMessageText(Sender: TObject; MessageText: TsgcTelegramMessageText); When another user of Telegram sends a message to you, this event will be fired in your application. The class TsgcTelegramMessageText owns properties ChatID and SenderUserID that allow to identify in which chat room and which user sent the message. The content of the message is set in the property Text of this class.
How can we send messages to Telegram users from our app?
The method of the TsgcTDLib_Telegram class used to send a message is SendTextMessage(aChatID:integer;aMessageText:string); It means we must know the ChatID of the chat room where to send the message. In this case all the members of this chat room will receive the message. If the chat room is already opened and the exchange of messages is already started, the ChatID is already known through the event OnMessageText. But, if the user of the application wants to start the chat, the problem is a bit more tricky to solve. To create a chat room and get its ChatID , we can use the method CreateNewBasicGroupChat(aUserIds array of Int64;const aTitle:string); to create a group chat or CreatePrivateChat(userId:integer); to create a chat with a single user.
The list of user identifiers (aUserIds) is passed with the title of the room chat This list symbolizes the list of participants in the chat. The ChatID will be returned in the event OnNewChat(Sender: TObject; Chat:TsgcTelegramChat);
The Chat identifier (ChatId) is reachable through the property ChatId of TsgcTelegramChat class. To create a chat room and to be able to send message to other users we need to know the user identifiers (UserID) of the message target.
How do I get a Telegram user identifier from a phone number?
The UserID is a number only known by Telegram cloud. The phone number, however,. is the public identifier in the real world for any user.
The TDLib exposes a method to get the UserID of an user from his phone number in the case he is registered on the Telegram cloud. The list of Telegram APIs can be read here.
To use directly the APIs in Json format , we must use the method TDLibSend. It sends a command to the TDLib library and the result of this command is seen through the event OnEvent(Sender: TObject; const Event,Text: string); The parameter Event as a string allows to categoryze the event type and the parameter Text is the whole data in JSon format. The number of API exposed in TDLib is really huge but lets have a look at the one used to get an UserID from a phone number. The TDLib API to get the UserID from a phone number is importContacts. The documentation is as below :
The type is a function that return importedContacts structure. The input parameter of importContacts function is an array of contact structure. Then have a look at the contact structure.
How to programmatically define a contact in Telegram using only the phone number
It means you can describe a contact by his phone number, first name, last name, vcard and user_id. Lets define the contact with the phone number only. The ‘importContacts‘ method call in JSon will write like.
Источник: blogs.embarcadero.com
Шифрование в Telegram
Обзор вопросов шифрования данных в мессенджере Telegram.
Основная статья о мессенджере: Telegram
2019: Маскировка трафика под протокол HTTPS
12 августа 2019 года стало известно, что благодаря недавним нововведениям трафик Telegram теперь может маскироваться под протокол HTTPS (TLS + HTTP/2.0) – с этой целью в код клиента был добавлен префикс секрета «ee». Также в добавок к base16 (hex) появилась возможность шифровать секрет в адресе прокси-сервера с помощью base64.
На август 2019 года в Telegram используется собственный протокол MTProto, появившийся около года назад – тогда же для него вышел официальный прокси. В MTProto отсутствуют служебные заголовки, позволяющие идентифицировать его. Однако выявить использование протокола, а заодно и самого мессенджера, все-таки можно по длине пакетов. Дело в том, что при установке соединения между клиентом и прокси-сервером происходит обмен пакетами определенной длины, а при работе – пакетами одной и той же длины. Это дало провайдерам возможность выявлять трафик Telegram по длине пакетов, передаваемых по MTProto.
Для решения вышеуказанной проблемы в целях маскировки протокола разработчики мессенджера добавили случайный байт в каждый пакет. Тем не менее, данный шаг влиял на совместимость, из-за чего разработчики добавили в секрет префикс «dd». Ажиотажный спрос и шоковые нагрузки. Как пережили 2022 год российские ИТ-разработчики, выросшие более чем на 100%
Поскольку использование MTProto продолжал выдавать трафик Telegram (благодаря чему его успешно блокируют в Иране и Китае с помощью атак повторного воспроизведения), разработчики решили реализовать в нем возможность маскировки под другие протоколы. В частности, был добавлен дополнительный слой инкапсуляции поверх TCP, и теперь данные словно «заворачиваются» в записи TLS. Также была реализована эмуляция TLS-рукопожатия [1] .
2018
Уязвимость в шифровании данных
По сообщению от 13 декабря 2018 года исследователи из Cisco Talos сообщили об уязвимостях в популярных мессенджерах, использующих шифрование. По словам специалистов, WhatsApp, Telegram и Signal можно взломать с помощью атак по сторонним каналам. Подробнее здесь.
В списке 20 самых защищенных мессенджеров по версии Artezio
Аналитический отдел Artezio (Артезио) (входит в группу компаний ЛАНИТ) 26 ноября 2018 года опубликовал список 20 мессенджеров, способных обеспечить высокий уровень приватности. Рейтинг был составлен по итогам комплексного тестирования программ, при этом качество шифрования данных и надежность средств защиты информации были ключевыми критериями при формировании итоговой экспертной оценки, сообщили TAdviser представители Artezio. Telegram расположился на третьем месте списка. Подробнее здесь.
Telegram хранит переписку в незашифрованном виде
31 октября 2018 года стало известно, что Telegram в версии для десктопов сохраняет всю переписку пользователей на жёстком диске без шифрования.
Как выяснил эксперт по безопасности Натаниэль Сачи (Nathaniel Suchy), Telegram использует базу данных SQLite для хранения сообщений, которую не очень просто прочитать, но которая в целом лишена шифрования. Проанализировав «сырые» данные, предварительно сконвертированные в более простой для просмотра формат, Сачи смог найти имена и телефонные номера, которые можно проассоциировать друг с другом. Даже в этом виде информацию было непросто считать, однако нескольких специально написанных скриптов хватило, чтобы вычленить необходимые данные, сообщили в CNews.
Десктопная версия Telegram предлагает парольную защиту, чтобы предотвратить неавторизованный доступ к приложению. Эта опция не связана с шифрованием, и при должном умении злоумышленник может добраться до чатов пользователей и прочитать их. Как утверждает издание Bleeping Computer, в общую базу направляются все сообщения, вне зависимости от того, используется «секретный» режим переписки или «облачные чаты».
В CNews отметили, что Telegram Desktop не поддерживает секретные чаты как таковые, это функция доступна только в мобильных клиентах. В режиме Secret Chat Telegram исправно шифрует сообщения и файлы вложений при передаче; в этом режиме используется сквозное шифрование, исключающее возможность перехвата и просмотра содержимого переписки третьей стороной. Однако, при обмене данными через облако (то есть, не напрямую), сквозное шифрование не используется; разработчики утверждают, что алгоритм шифрования, защищающий каналы клиент-сервер и сервер-клиент, весьма надёжен, а благодаря тому, что переписка сохраняется в облаке, у пользователя существует возможность просматривать её с любого устройства.
В вопроснике Telegram говорится, что проблема с восстановлением данных в истории чатов на новом устройстве (в случае потери смартфона, например) не имеет элегантных решений в парадигме сквозного шифрования. В то же время надёжное резервное копирование — базовая функция любого мессенджера для массового рынка. Чтобы решить эту проблему, некоторые приложения (WhatsApp и Viber, в частности) допускают дешифруемые резервные копии, что ставит приватность их пользователь под угрозу — даже если они сами не активировали функцию резервного сохранения данных. Другие приложения вообще отказываются от резервных копий.
Далее разработчики указывают, что они выбрали «третий путь», в котором чаты дифференцированы: при использовании «облачных» чатов резервное копирование на клиентской стороне отключается, а при использовании секретного режима пользователи получают полный контроль над данными, хранение которых для них нежелательно (иными словами, резервные копии сохраняются локально).
Проблема в том, как именно они сохраняются: судя по тому, что написал Суиш, метод хранения как минимум части архивов далёк от безопасного.
Павел Дуров, создатель Telegram
Можно, сказать, что если некий злоумышленник получает неавторизованный доступ к компьютеру жертвы, это уже лишает смысла дискуссии о безопасности баз данных Telegram, — как и любых других данных. Существует, однако, ряд вполне жизненных ситуаций, когда архив сообщений в Telegram может утечь на сторону: например, если перед продажей компьютера его данные удалены небезвозвратно, а с возможностью восстановить их. Или же злоумышленник получает удалённый доступ к компьютеру жертвы (например, топ-менеджера) и его в первую очередь интересуют его коммуникации, в том числе содержимое переписки в Telegram. С такой особенностью Telegram мало что может помешать хакеру ознакомиться с этими сообщениями, отметили в CNews.
Олег Галушкин, директор по информационной безопасности компании SEC Consult Services
РКН просил изменить код Telegram для получения ключей шифрования
До начала блокировки Telegram в России ФСБ и Роскомнадзор в течение года пытались убедить руководство компании Telegram изменить архитектуру мессенджера и предоставить ключи для дешифрования переписки пользователей. Как считают в ведомствах, у компании есть для этого техническая возможность. Об этом сообщила в июне 2018 года представитель Роскомнадзора в ходе рассмотрения жалобы представителей Telegram на решение Таганского районного суда по блокировке сервиса в России.
Русскоговорящие хакеры научились воровать переписку из настольной версии Telegram
По сведениям экспертов по безопасности фирмы Talos, обнаруживших проблему, за две недели злоумышленники выпустили сразу две вредоносные программы, атаковавшие Telegram. Первая воровала реквизиты доступа и файлы cookie из браузера, вторая научилась воровать кэш Telegram, содержащий данные переписки, файлы ключей шифрования (а заодно и реквизиты доступа к Steam). Все эти данные вредоносная программа загружает на несколько аккаунтов сервиса pcloud.com — причём в незашифрованном виде [3] .
Злоумышленник — а исследователи с высокой долей вероятности установили его личность — выбрали в качестве мишени именно десктоп-версию Telegram потому, что она не поддерживает функцию Secret Chats (секретные чаты) и имеет довольно слабые настройки по умолчанию. При этом вредонос не атакует никаких уязвимостей, эксплуатируются лишь архитектурные особенности.
Бывший коллега Дурова раскрыл принцип шифрования сообщений в Telegram
Бывший коллега Павла Дурова, Антон Розенберг, рассказал в интервью телеканалу RT о принципах шифрования сообщений, использующихся в популярном мессенджере Telegram [4] .
По словам эксперта, чаты в приложении разделены на облачные и секретные. В случае с секретными чатами расшифровать переписку невозможно, поскольку шифрование сообщений является сквозным, то есть осуществляется только на устройствах отправителя и получателя.
«Telegram не видит содержимое сообщения, только метаданные. Это более надежно, но реализация в Telegram не очень удобна, секретные чаты доступны только с одного устройства, и поэтому ими практически никто не пользуется», — отметил Розенберг.
В свою очередь сообщения в облачных чатах передаются сначала на серверы Telegram, после чего расшифровываются с использованием протокола MTProto. В данном случае переписка может быть расшифрована администрацией мессенджера.
2016
Немецкой полиции удалось взломать аккаунты пользователей Telegram
Сотрудники Федерального ведомства уголовной полиции Германии (BKA) на протяжении последних нескольких лет взламывают аккаунты пользователей в мессенджере Telegram. Об этом сообщило авторитетное издание Motherboard, которое опубликовало интервью с одним из сотрудников ведомства [5] .
Впервые считавшийся полностью защищенным Telegram был атакован силовиками еще в 2015 г. Тогда ради этого было создано специальное программное обеспечение, получившее название Bundestrojaner. Тогда BKA удалось получить доступ к аккаунтам, групповым чатам и медиа-файлам, которые пересылали друг другу с помощью мессенджера 8 членов ультранационалистической группировки, планировавшей поджог общежития для мигрантов.
По словам осведомителя Motherboard, доступ был получен всего через несколько минут после атаки Bundestrojaner. Спустя 12 дней все члены группы были арестованы, вскоре их приговорили к длительным срокам заключения.
Как сообщает издание, ссылаясь на собственные источники, с тех пор практика взломов прижилась: только в 2015 г. BKA получила доступ к 32 аккаунтам в Telegram, еще 12 подобных эпизодов относятся к этому году. Все их владельцы подозревались или подозреваются в серьезных преступлениях: международном терроризме, ультраправом терроризме или шпионаже.
Несмотря на то, что подобная деятельность в определенной степени регламентируется немецким законодательством (закон, дающий право подобного взлома, был принят еще в 2008 г.), журналисты Motherboard предположили, что отдельные методы BKA все же могут считаться противозаконными, также могут иметь место случаи злоупотребления как Bundestrojaner, применение которого было официально одобрено в 2016 г., так и другим созданным на его основе программным обеспечением.
При этом, используемые криминальной полицией Германии программы могут «читать» сообщения только из незашифрованных чатов. Против сквозного шифрования BKA пока ничего придумать не смогла, хотя специальная группа программистов ведет над этим работу.
Создание модифицированных версий Bundestrojaner под конкретные задачи, по словам собеседника Motherboard, даже не требует особой сноровки, речь идет об изменении одной-двух строчек исходного кода. Сами команды запрашивают переотправку кодов аутентификации, маскируясь на удаленных устройствах под оригинальный Telegram.
Протокол шифрования MTProto
Для обеспечения безопасности сообщение мессенджера создан протокол MTProto. Он предполагает использование нескольких протоколов шифрования. При авторизации и аутентификации используются алгоритмы RSA-2048, DH-2048 для шифрования, при передаче сообщений протокола в сеть они шифруются AES с ключом, известным клиенту и серверу. Используются и криптографические хэш-алгоритмы SHA-1 и MD5.
Защита от перехвата пересылаемых сообщений со стороны сервера Telegram обеспечивается в режиме «секретных» чатов (Secret Chats) (доступен с 8 октября 2013 года). В этом режиме выполняется шифрование, при котором только отправитель и получатель имеют общий ключ (end-to-end шифрование), с применением алгоритма AES-256 в режиме IGE (англ. Infinite Garble Extension) для пересылаемых сообщений. Сообщения в секретных чатах не дешифруются сервером, а история переписки сохраняется только на двух устройствах, инициаторах создания чата.
Примечания
- ↑Трафик Telegram теперь может маскироваться под протокол HTTPS
- ↑Telegram хранит переписку в незашифрованном виде. Дуров негодует и оправдывается
- ↑Русскоговорящие хакеры научились воровать переписку из Telegram
- ↑Бывший коллега Дурова раскрыл принцип шифрования сообщений в Telegram
- ↑Немецкой полиции удалось взломать Telegram
Источник: www.tadviser.ru