Соглашусь, что на все 100 не защититься, особенно при возможности подмены номера со стороны мошенников, но все равно помогает здорово, особенно против рекламщиков.
boomburum, а почему не прикрутили ко всему этому многофакторную аутентификацию на основе тех же Рутокен Web? Если уж делать сервис аутентификации, то надо вообще уйти от чисто парольной защиты.
А такой вопрос: если уж мы меняем систему, то что мешает нам изменить логику блокировщика и переустановить его? (он же тоже реализован как приложение?)
Кстати говоря, в iOS тело SMS по умолчанию частично видно на экране блокировки, в случае с Альфа-банком код туда тоже влазит. Так что уязвимость немного надуманная.
Впервые эта тенденция кажется появилась еще в железных плеерах (на моем древнем Cowon X5 уже не было возможности остановить трек), что меня первое время дико удивляло, если не сказать раздражало. Потом как-то уже привык, потому что действительно в нормальных плеерах stop заменяет rewind, который перематывает на начало трека.
Сейчас кнопка действительно нужна при воспроизведении потоков (тот же TuneIn на iOS кажется не останавливает кеширование записи на паузе, причем я не понимаю критериев того, как он это делает).
Это ограничение, накладываемое условием неизвлекаемости ключей шифрования. Они не могут покинуть токен и, следовательно, нельзя сделать копию токена. Если поступиться этим принципом, то можно импортировать ключевые пары на токен, но при этом они будут извлекаемыми в дальнейшем.
По поводу «копии в сейфе»: все серьезные системы обычно проектируются с поддержкой нескольких ключей таким образом, чтобы при утрате одного можно было бы восстановить доступ. Таковы уж сложности обеспечения должного уровня защищенности.
Я возможно недостаточно полно рассказал про привязку токена.
Если снять галочку «Привязать токен к учетной записи» на странице аккаунта, то будет восстановлен старый мастер-ключ и отобразятся файлы, зашифрованные на нем. MEGA после логина всегда присылает полный список хранящихся файлов, но отображает только те, атрибуты которых удалось расшифровать.
Ядро и алгоритмы одинаковые, но ключевая пара, которая создается при первом вызове функции зашифрования, всегда будет уникальна. Так что токен надо всегда беречь как зеницу ока.
Да, на счет второго и третьего я догадывался. Просто уже не было сил смотреть в сторону работы с общими файлами =)
По поводу первого — файлы не теряются, они просто перестают отображаться в файл-менеджере, ну и собственно нельзя будет их скачать. Если отвязать токен, то файлы отобразятся снова.
В обоих видах токенов (Web и ЭЦП) ключ действительно неизвлекаемый. Все операции по шифрованию, подписи и т.п. реализованы аппаратно, а драйвер отвечает только за передачу команд на токен. Причем в современных операционных системах для работы с токенами не приходится устанавливать дополнительных драйверов, поскольку устройства работают по стандартизированным протоколам.
Как вам уже попытались подсказать выше, для современных браузеров используется HTML5 FileReader, если браузер его не поддерживает, то используется Flash-аплоадер.
По коду сайта процесс загрузки можно проглядеть по такой цепочке функций: FileSelectHandler(event) -> startupload() -> initupload2() -> initupload3() -> ul_dispatch_chain() -> ul_dispatch_read()
Имя файла приходит из события, файлы затем забиваются в очередь, а непосредственно чтение происходит в ul_dispatch_read и читается с помощью метода readAsArrayBuffer. Чтение происходит блоками по 20 кб, по завершению вызывается метод onloadend, в котором содержимое файла записывается в очередь файлов на загрузку в виде Uint8Array.
Загрузка и запись файла происходит аналогично с помощью FileWriter. Имя файла живет внутри объекта FileWriter (dl_fw). Непосредственно запись на диск происходит в функции dl_dispatch_write при вызове dl_fw.write(dlblob);
В меге можно легко подменить нижний уровень криптографии (ядро AES, реализуемое библиотекой SJCL). Для этого надо всего лишь, чтобы эта подмена реализовала простой интерфейс с конструктором, принимающим пароль в виде массива из 4х или 8 элементов, и функции за(рас)шифрования таких же массивов. Таким образом мы заменим AES.
Хешей там используется несколько видов, помимо SHA есть еще HMAC-подобная функция хеширования stringhash, с помощью которой в сервисе хешируется e-mail пользователя в различных ситуациях. Его можно подменить также, как описано в статье.
Доткому пока не писал, потому что пока ведем общение с заинтересованными разработчиками здесь, это важнее.
Сейчас кнопка действительно нужна при воспроизведении потоков (тот же TuneIn на iOS кажется не останавливает кеширование записи на паузе, причем я не понимаю критериев того, как он это делает).
Год не скажу, но стоит 2 руб. 85 коп =)
По поводу «копии в сейфе»: все серьезные системы обычно проектируются с поддержкой нескольких ключей таким образом, чтобы при утрате одного можно было бы восстановить доступ. Таковы уж сложности обеспечения должного уровня защищенности.
Если снять галочку «Привязать токен к учетной записи» на странице аккаунта, то будет восстановлен старый мастер-ключ и отобразятся файлы, зашифрованные на нем. MEGA после логина всегда присылает полный список хранящихся файлов, но отображает только те, атрибуты которых удалось расшифровать.
По поводу первого — файлы не теряются, они просто перестают отображаться в файл-менеджере, ну и собственно нельзя будет их скачать. Если отвязать токен, то файлы отобразятся снова.
По коду сайта процесс загрузки можно проглядеть по такой цепочке функций:
FileSelectHandler(event) -> startupload() -> initupload2() -> initupload3() -> ul_dispatch_chain() -> ul_dispatch_read()
Имя файла приходит из события, файлы затем забиваются в очередь, а непосредственно чтение происходит в
ul_dispatch_read
и читается с помощью методаreadAsArrayBuffer
. Чтение происходит блоками по 20 кб, по завершению вызывается методonloadend
, в котором содержимое файла записывается в очередь файлов на загрузку в видеUint8Array
.Загрузка и запись файла происходит аналогично с помощью
FileWriter
. Имя файла живет внутри объектаFileWriter (dl_fw)
. Непосредственно запись на диск происходит в функцииdl_dispatch_write
при вызовеdl_fw.write(dlblob);
Хешей там используется несколько видов, помимо SHA есть еще HMAC-подобная функция хеширования stringhash, с помощью которой в сервисе хешируется e-mail пользователя в различных ситуациях. Его можно подменить также, как описано в статье.