Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. Read more...

Task #919327

Updated by Сергей Старых almost 4 years ago

<pre> 
 - Все экземпляры ClipAngel и клиентов Android всех пользователей используют единую облачную БД Firebase с одним именем и паролем, прошитыми в коде 
 - Имя (идентификатор) канала рассылки клипов генерируется приложением ClipAngel от параметров:  
    - SID пользователя Windows  
    - MAC адреса ethernet контроллера 
 - Канал клипов - ветка в БД с именем канала 
    - Data - данные клипа - Base64 строка зашифрованная открытым ключом канала 
    - Recipients - идентификаторы получателей 
 - Функция UpdateCryptoKeys генерирует новую пару ключей шифрования и сохраняет их в файловой системе с NTFS шифрованием 
 - Команда "Настроить канал клипов"  
    - Если в файловой системе уже существуют настройки текущего имени канала, существует канал, то запрашивает "Сгенерировать новые ключи шифрования?". Если ответ - да или для текущего имени канала нет настроек в файловой системе, да, то вызывается UpdateCryptoKeys() 
    - Открывает окно с QR кодом для сканирования устройством android. В QR коде будет лежать  
        - имя канала 
        - закрытый (приватный) ключ 
    - После сканирования клиент android добавляет свой идентификатор PUSH-клиента в ветку канала в подветку Recipients. 
 - Команда клипа "Отправить в канал клипов" 
    - Отправляет клип не более 10КБ 
    - Шифрует структуру (клип, имя компьютера, текущая дата) открытым ключом и помещает в свойство "Data" канала 
     - Текущую дату помещает в свойство "DateClipChannelDataSend" в настройки приложения 
     - Отправляет всем получателям канала (подветка Recipients канала) push сигнал "Данные канала обновлены" 
 - При установленной дате DateClipChannelDataSend - раз в час ClipAngel пытается очистить данные (ключ Data) в канале, если прошло 12 часов 
 - Клиент андроид, получив push сигнал "Данные канала обновлены", берет из канала свойство "Data" и пытается расшифровать его закрытым ключом.  
    - Если расшифровка неуспешна, то показывает уведомление "Канал клипов сменил шифрование. Требуется перепривязка к приложению ClipAngel".  
    - Если расшифровка успешна, то показывает уведомление "От <Компьютер> получен клип созданный 1ч30мин назад (Y получателей): 
 [Текст клипа]".  

 !Уязвимость 
   - Злоумышленник находит в исходниках ClipAngel или в перехваченном трафике приложений (?) имя и пароль для доступа к Firebase БД и может периодически удалять каналы всех пользователей. Выгоды ему нет, но может сделать это чисто ради забавы. 
 Варианты защиты 
   - Сделать в исходниках приложений отдельный класс FirebaseCredentials со свойствами Login и Password. Не класть в git этот исходник. 
 </pre>

Back