2016-02-15 2 views
-1

Я должен обеспечить, чтобы носители (изображения, видео и аудио), сделанные моим приложением, зашифрованы и не видны за пределами приложения. С этой целью я не уверен, следует ли использовать шифрование AES или Libsodium. Из форумов эти два метода получают хорошую печать, поэтому этот метод является самым сильным и наиболее эффективным с точки зрения потребностей в памяти, скорости и общей безопасности.Безопасный способ шифрования медиафайлов (изображений, видео и аудио) в Android

Во-вторых, в автономном режиме, когда приложение не имеет подключения к Интернету, что является самым безопасным способом управления ключами шифрования?

+0

В сторону: Если вам нужна пересадка сердца, вы идете к ортопеду или сердечному хирургу, оба являются сертифицированными врачами. По аналогии талантливый программист - ортопед, криптографический эксперт домена - сердечный хирург. Выбери один. – zaph

+0

Я получаю аналогию :-) –

ответ

1

Libsodium - хорошо зарекомендовавшая себя библиотека, AES (Advanced Encryption Standard) - это хорошо защищенный алгоритм шифрования, они не такие же.

Libsodium предоставляет AES в режиме GCM, что неплохо, так как включает аутентификацию.

Проблема с Libsodium заключается в том, что она имеет ограниченные алгоритмы, поэтому интероперабельность низкая.

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

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

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

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

Обновление:
Единственное безопасное управление ключами - не иметь ключа на устройстве; на мое МСП (эксперт по предметным вопросам). Требовать, чтобы пользователь вводил кодовую фразу при каждом вызове приложения и следил за тем, чтобы приложение закрывалось после каждого использования. Затем вам нужно будет добавить код для попыток ограничения скорости с возможными экспоненциальными задержками. Наконец, пользователь должен будет иметь действительно хорошую кодовую фразу.

+0

Спасибо Zaph, из того, что я собираю в вашем комментарии, тот факт, что libsodium использует AES в режиме GCM, делает его более безопасным, для шифрования моя главная цель - защитить его от хорошо финансируемого типа Govt сценарий. Для управления ключами любезным советом о силе использования хранилища ключей ключей для управления ключами в приложении –

+0

См. Обновление ответа. Вам нужно определить атакующего, его мотивацию, возможности и сколько времени и денег они готовы потратить. Если вы защищаетесь от WFG (хорошо финансируемое правительство), надежды мало. Вдоль этих строк возникает вопрос о том, что именно побудило бы WFG предоставить значительные ресурсы для участия, мой «презренный МСП» догадывается о чем-то существенно незаконном. – zaph

+1

Из [* CRYPTO-GRAM] (https: // www. schneier.com/crypto-gram/archives/2016/0215.html):, 15 февраля 2016 г. * «Если на ваш компьютер захочет достаточный квалифицированный, финансируемый и мотивированный злоумышленник, они находятся. Если они не , это потому, что вы недостаточно высоко в своем списке приоритетов, чтобы побеспокоиться ». – zaph

Смежные вопросы