The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

В Cryptkeeper всплыла проблема, приводящая к заданию фиксированного пароля "p"

01.02.2017 21:03

Пользователи экспериментальных репозиториев Debian Testing и Unstable столкнулись с заслуживающей внимания проблемой: Cryptkeeper, GNOME-апплет для организации работы с шифрованными каталогами, перестал обрабатывать задаваемые пользователем пароли. После создания шифрованного каталога, указанный пароль не подходил для последующего доступа к нему, так как для создаваемых в Cryptkeeper шифрованных каталогов всегда стал устанавливаться пароль "p".

Проблема оказалась связана с переносом в debian-пакет EncFS (Cryptkeeper является надстройкой над EncFS) исправления, устраняющего крах при передаче пустого пароля. Попутно в исправлении была изменена логика передачи пароля в командной строке. Исправление пока не вошло в состав релиза EncFS, поэтому осталось незамеченным в дистрибутивах Linux, кроме нестабильных репозиториев Debian.

При создании шифрованного каталога Cryptkeeper вызывал команду encfs при помощи следующей конструкции:


   execlp ("encfs", "encfs", "-S", crypt_dir, mount_dir, NULL);
   ...
   write (fd[1], "p\n", 2);
   write (fd[1], password, strlen (password));
   write (fd[1], "\n", 1);

Опция "-S" определяла режим передачи пароля через стандартный ввод, а первая строка "p\n" указывала на активацию параноидального режима:


   $ encfs -S ~/cipher ~/plain/
   Creating new encrypted volume.
   Please choose from one of the following options:
    enter "x" for expert configuration mode,
    enter "p" for pre-configured paranoia mode,
    anything else, or an empty line will select standard mode.
   ?> p

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

Автор Cryptkeeper полагал, что интерфейс "encfs -S" является стабильным способом манипуляции с encfs, а на деле всё оказалось не так. Разработчики encfs указали на то, что изменение произведено в находящейся в разработке кодовой базе и будет отменено, так как непреднамеренно нарушает ABI. В релиз данные изменения не входили. Логика изменения была в том, что обычно для монтирования пытаются использовать команду "echo 'qwerty'| encfs -S $(pwd)/a $(pwd)/b", которая также приводится в некоторых примерах. Кроме того, в документации опция "-S" определена только для монтирования директорий, но не для их создания. По сути Cryptkeeper использовал недокументированную возможность.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
Лицензия: CC-BY
Тип: Тема для размышления
Короткая ссылка: https://opennet.ru/45960-cryptkeeper
Ключевые слова: cryptkeeper
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:15, 01/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +26 +/
    - Хьюстон у нас проблемы !
    - p
     
     
  • 2.4, Аноним Анонимович Анонимов (?), 22:39, 01/02/2017 [^] [^^] [^^^] [ответить]  
  • +33 +/
    int get_random()
    {
    return 4;
    };
     

  • 1.2, Аноним (-), 22:34, 01/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Это все ФИДОшники!
     
     
  • 2.44, Андрейка (ok), 14:00, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    кащениты
     
  • 2.54, фунт (?), 22:46, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    У них с Н тема была
     

  • 1.9, Аноним (-), 23:06, 01/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1. Все пароли ведут в Р
    2. Шифры детям не игрушка
    3. Ты думаешь здесь один такой умный.
     
  • 1.14, Аноним (-), 00:30, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Правая рука не знает, что делает левая
     
     
  • 2.49, Anonimous (?), 17:59, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    зато версия же самая свежайшая, школьники оценили бы
     

  • 1.16, trolleybus (?), 01:04, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    "— Ах, так все эти “Пы” были Пятачки? А я думал, это были Пухи." (с)
     
  • 1.17, Crazy Alex (ok), 01:25, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    ну, на то тестинг и существует
     
  • 1.18, Аноним (-), 01:37, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Тоже мне додумались использовать синтаксис командной строки для межпрограммного взаимодействия.
    Oh shi.. это же весь Юникс такой...
     
     
  • 2.19, Аноним (-), 04:00, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это боль... На предыдущем месте работы небольшие программки на сишечке были как скрипты на каком-нибудь шелле
     
  • 2.32, Я. Р. Ош (?), 11:09, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +3 +/
    толсто же
    лучше про гвнмамонтного наслоения исторического вантузного апи попробуй потролить - уже тоньше полюбому выйдет
     
     
  • 3.56, Аноним (-), 10:00, 03/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, он действительно тот ещё тролль, поскольку никсы не "такие". Но, строго говоря, для подобных операций действительно надо бы использовать фиксированный API программы, а не аргументы бинарника.
     
     
  • 4.59, Я. Р. Ош (?), 00:50, 04/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Все в ваших руках
     

  • 1.20, Anonymissimus (?), 05:20, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Вообще никакой проблемы не наблюдаю. Уязвимость нашли в нестабильном дистре. Ну так он и создан для греблеходцев.
     
     
  • 2.45, КО (?), 14:05, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Забавно было бы, если б они унифицированно поменяли запрос пароля и при создании и при запросе на подключение. Никто б и не заметил, что пароли перестали подходить. :)
     
  • 2.57, Аноним (-), 10:03, 03/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще никакой проблемы не наблюдаю. Уязвимость нашли в нестабильном дистре. Ну так
    > он и создан для греблеходцев.

    <sarcasm>Какую уязвимость? Наоборот, создал контейнер - фиг вскроешь потом.</sarcasm>

     

  • 1.24, Аноним (-), 08:44, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Я уже сто раз говорил, что в sid х..чат все, что ни попадя, не утруждаясь проверкой. Удивительно, что подобных факапов так мало, хотя скорее всего большинство просто не получает широкой огласки.
     
     
  • 2.28, Andrey Mitrofanov (?), 09:25, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Удивительно, что подобных факапов так мало, хотя
    > скорее всего большинство просто не получает широкой огласки.

    "Они" работают над этим. https://www.opennet.ru/openforum/vsluhforumID3/110290.html#134 _ https://www.opennet.ru/openforum/vsluhforumID3/105391.html#15 //именной сайт-то уже завезли?

     
  • 2.42, freehck (ok), 13:45, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Я уже сто раз говорил, что в sid х..чат все, что ни попадя, не утруждаясь проверкой.

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

    В данном случае один из патчей, который мейнтейнер притащил в пакет encfs, содержал в себе регресс.

    И для тестинга это, вообще говоря, нормально. Он для того и существует, чтобы такие косяки вылавливать.

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

    Есть мнение, что такие утверждения надо доказывать. Поскольку Вы голословны, то сдаётся мне, что Вы либо дурень, либо занимаетесь наглым пиаром, как справедливо заметил Андрей в сообщении #28.

    PS: Андрей, я немного додумал Вашу мысль, Вы не возражаете?

     
     
  • 3.47, Andrey Mitrofanov (?), 14:17, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > мне, что Вы либо дурень, либо занимаетесь наглым пиаром, как справедливо
    > заметил Андрей в сообщении #28.
    > PS: Андрей, я немного додумал Вашу мысль, Вы не возражаете?

    Можно не спрашивать. https://www.opennet.ru/openforum/vsluhforumID9/10142.html#14 ССылки, расшаркивания излишни -- [за новый бытъ] флудить, тролить и офто-печь надо... ближе к %) теме/цели.

     

  • 1.26, Аноним (-), 09:15, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    p - password
     
  • 1.27, Лютый жабист__ (?), 09:20, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    В Дебаине вообще всё плохо с безопасностью, вспоминаем патченный SSL 8)
     
     
  • 2.29, Andrey Mitrofanov (?), 09:27, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > В Дебаине вообще всё плохо с безопасностью, вспоминаем патченный

    pid(1). //captain fix.

    > 8)

     

  • 1.30, Аноним (-), 09:36, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Для тех, у кого пароль P, ничего не изменилось.
     
     
  • 2.38, Аноним (-), 12:26, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Блин, в EncFS ещё и пароль нечувствительный к регистру что-ли?
     

  • 1.31, Нанобот (ok), 10:34, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    вначале напихают шелл-скриптов во все дыры, а потом удивляются, почему при первом же чихе всё разваливается
     
     
  • 2.34, Andrey Mitrofanov (?), 11:41, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > вначале напихают шелл-скриптов во все дыры, а потом удивляются, почему при первом
    > же чихе всё разваливается

    Без скриптов https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=843160#95 -- тоже. Иииии??? Ваши выводы?---

     
     
  • 3.55, Аноним (-), 03:21, 03/02/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С скриптами было б еще хуже!
     

  • 1.37, Аноним (-), 12:24, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Но sid же для того и существует чтоб пробовать всякие экспериментальные штуки.
    Не было бы сида, вышла бы стабильная версия encfs с этим изменением интерфеса и связка с Cryptkeeper была бы сломана в релизных версиях.
    А так все выяснилось на этапе разработки.

    Статья полезная.
    Показывает что документацию нужно читать, а не вольно интерпретировать
    Казалось бы, кто подумает пихать что-то кроме пароля в stdin после таких строк
    [code]
    -S, --stdinpass
    Read password from standard input, without prompting.
    ...
    [/code]

    P.S. Ну и прокапитаню.
    > Я уже сто раз говорил, что в sid х..чат все, что ни попадя, не утруждаясь проверкой.

    Sid это и есть провекра. Ваш КО.

     
     
  • 2.39, Аноним (-), 13:00, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Не вышла бы.
    Ошибка исправлена и внесены изменения в репы именно в Testing и Unstable.
    О чем вы?
     
     
  • 3.40, Аноним (-), 13:13, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы небыло сида,
    то могла бы выйти стабильная версия encfs, с этим изменением поведения при указании опции "-S",
    и связка encfs с Cryptkeeper была бы сломана в релизных (стабильных) версиях encfs и Cryptkeeper.
    Замечу что encfs и Cryptkeeper существуют не только в Debian.

    Так понятнее?
    И, простите за любопытство, Вы омич?

     
     
  • 4.41, Аноним (-), 13:25, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    "Если бы бабушка была дедушкой.." (с)
    Не тупите и не хамите!
    Встаньте перед зеркалом и объясняйте там что хотите.
    Не надо тут очевидные вещи выдавать аз открытия.

    Суть одна - не попали и не попали бы.

     
  • 4.46, freehck (ok), 14:06, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если бы небыло сида, то могла бы выйти стабильная версия encfs, с
    > этим изменением поведения при указании опции "-S", и связка encfs с
    > Cryptkeeper была бы сломана в релизных (стабильных) версиях encfs и
    > Cryptkeeper.

    Истина. В этим и есть разница между тестированием программы и тестированием программного комплекса. Сколько раз уже объяснял это здесь, но анонам всё как об стенку горох.

     

  • 1.51, Аноним (-), 18:22, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Полный p!
     
  • 1.52, Аноним (-), 19:15, 02/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зато корневой раздел не удаляет.
     
     
  • 2.53, Аноним (-), 21:35, 02/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Это WIN!
     

  • 1.58, deadfood (ok), 23:14, 03/02/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А т.е. сделать нормальный CLI для encfs (чтобы передавать через stdin только пароль, а вот эти вот 'p' сделать в качестве ключа командной строки) --- задача невыполнимая?
     
     
  • 2.63, пох (?), 23:12, 08/02/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > сделать нормальный CLI для encfs
    > задача невыполнимая?

    ну сами ж видели - попытались сделать ключом командной строки - теперь у всех пароль 'p'. ;-)
    Что более дурная идея - использовать из внешних программ вместо (отсутствующих) cli или спецбиблиотеки - программу с _консольным_ (а не CL) интерфейсом, каковой и является encfs или идея делать в подобных программах консольный интерфейс вместо cli (при том, что тупые юзеры, неспособные ни алиас создать, ни параметр набрать - все равно пользуются интуитивно приятной гуевой оболочкой), не знаю.

    И это лучшее, что у нас есть из доступного в линуксе, увы.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру