Pull to refresh

Comments 162

Хорошо у вас получилось я себе делал похожее для того чтобы перестать юзать chrome для сохранения паролей, но пока не допилил. Только я использовал апи node.js для крипто функций и gzip. В итоге собирал все с помощью browserify.
Интереса ради — как оно по скорости в ноде и браузере? Если сделать в keepass файл и поставить вычисления длиной в 1сек — за сколько откроется?
Я точных замеров не проводил, но чтение, изменение и сохранение базы (без записи на диск, только преобразование к buffer), субъективно в node.js в 3-4 раза быстрее (в ноде <1сек, в браузере ~3сек).
Это в стандартной конфигурации с 6000 циклами? У меня в этом случае 200мс и в ноде, и в браузере.
Нет, у меня база с 50000 циклами, не помню в чем ее создавал.
Понятно, секунда задержки — это где-то 3-10млн, в зависимости от машины. Проверил у себя 50k, открылось меньше чем за секунду.
Напишите Доминику, пусть ссылочку добавит.
Круто, спасибо! Я джва года этого ждал :) Когда-то тоже пытался соорудить нечто подобное на GWT, научился открывать базу в браузере, но на UI мне стало скучно и я забил.
Пара вопросов:
1. А почему вы ограничиваете расширения открываемых файлов? Формально, расширение может быть любым, тем более для ключа.
2. Не разобрался, приложение может открывать базы, у которых одновременно задан пароль и ключ? Интуитивно не заработало…
3. Не думали реализовать возможность брать ключ из того же Dropbox, но уже без ограничения на Apps/KeeWeb?
1. Kdbx обычно у всех называются kdbx, здесь нет смысла снимать ограничение. Ключ сейчас ограничен, потому что непонятно, что предлагается выбрать (это такая подсказка пользователю). Вобщем, я понял, кнопка с ключом интуитивно не понятна, надо придумать, что с ней сделать, и убрать ограничение. Подумаю, спасибо.
2. может, надо выбрать базу, нажать на кнопочку с ключом (справа от поля), выбрать файл, ввести пароль и нажать enter
3. про ключ в дропбоксе есть в todo; без ограничения на папку приложения — думал, как это лучше сделать. В том же приложении (всмысле приложение — dropbox app) не хочется давать много прав (могут и аппрув не дать), наверное сделаю ещё одно приложение, которое будет иметь доступ ко всему Dropbox пользователя, и для тех, кто хочет, можно будет выбрать такой вариант.
1. На счет kdbx согласен. А по поводу ключа: все-таки KeePass пользуются обычно относительно продвинутые пользователи, и уж тем более, если они задали ключ. Сложности с выбором файла быть не должно, кмк.
2. Кнопка интуитивно понятна, но не работает. База, ключ, пароль «test». Пробовал сначала вводить пароль, потом указывать ключ, и наоборот — не открывает. ЧЯДНТ?
3. Звучит разумно.
1. согласен, ограничение уберу. может, перенесу кнопку ключа под пароль, а на её месте сделаю стрелочку-enter, сейчас из-за этого может быть путаница.
2. скорее всего — баг, спасибо, сегодня вечером скачаю вашу базу и посмотрю
3. там ещё есть chooser, на который аппрув не нужен, может с ним сделаю, погуглю ещё, как у других.
Я открыл для себя, что ключи в KeePass бывают не только в формате XML (которые генерит KeePass), а ещё и простыми файлами, от которых в этом случае надо посчитать хэш. Спасибо, добавлю их поддержку. А ещё понял, что надо сделать обработку ошибок лучше: это у вас тестовый файл, а так базу с паролями-то не попросишь у пользователя на проверку; сделаю.
Теперь этот ключ открывается, и ограничения нет, спасибо.
Вам спасибо! Проверил — все работает так, как надо. Кстати, было бы классно добавить хоткей Cmd+B, который копирует логин в буфер. И, может быть, Cmd+U, который открывает ссылку в новом окне.
Хоткеи такие сейчас не используются — добавлю, пусть будут, будет удобнее. Делаю новый ui для открытия, скоро он станет понятнее:
Кстати. Было бы классно, если бы пароль в поле ввода можно было выделить с помощью Cmd+A. Объясню. Часто бывает, что пароль набираешь быстро и опечатываешься. Причем знаешь, что была опечатка, но точно не знаешь, сколько символов назад. Привычка — Cmd+A, Del и все сначала. Сейчас это не работает, приходится удаляться посимвольно.
Должно выделяться, у меня работает и в хроме, и в мак-приложении. А в какой версии такой баг?
Я кажется понял, вы про мастер-пароль. Да, точно, сделаю обязательно.
KeeWeb v0.1.1, Mac OS X 10.11, Chrome 46.0.2490.80 (64-bit). Может быть, конечно, что я просто как-то не так собрал.
Если что, я пароль к самой базе, а не сохраненные в ней пароли имею в виду.
Нашёл, исправил, 0.2 будет норм, спасибо.
Kdbx обычно у всех называются kdbx, здесь нет смысла снимать ограничение
У меня файл имеет другое расширение. Не вижу никакого смысла в ограничении по расширению, зачем оно?
Как выше написал, непонятно, что выбирать. Переделаю форму, станет понятно, ограничение будет не нужно, уберу
Под Windows чертовски кривой инсталятор. Как можно было его собрать без:

!insertmacro MUI_PAGE_DIRECTORY

...

!insertmacro MUI_UNPAGE_CONFIRM

?
Я не совсем понимаю, что это значит. Напишите, пожалуйста, баг в electron-builder, проект вроде бы живой и активно поддерживается. А ещё они ассоциации с типами файлов пока так и не научились делать…
Я добавил в шаблон поддержку нескольких языков, юникод и несколько страниц. Могу сделать и ассоциации только название параметра нужно.
Попробуйте этот шаблон: https://github.com/ANTPro/electron-builder/blob/master/templates/installer.nsi.tpl
если соберется, то сделаю патч.
Не собралось:
c:\Projects\keeweb>electron-builder KeeWeb-win32-ia32 --platform=win --out=. --config=./util/electron-builder.json
- Running electron-builder 2.0.2
- Starting creation of installer for ´win
makensis: Processing config: C:\Program Files (x86)\NSIS\nsisconf.nsh

makensis: Processing script file: "C:\Users\Antelle\AppData\Local\Temp\11jjzaeuvakgwsg4gs848installer.nsi" (ACP)
Unicode expects 1 parameters, got 4.
Usage: Unicode true|false
Error in script "C:\Users\Antelle\AppData\Local\Temp\11jjzaeuvakgwsg4gs848installer.nsi" on line 5 -- aborting creation process

Finished makensis with code 1
Похоже используется старый NSIS, а нужен NSIS 3.0. Я уже сделал патч.
Давно хотелось попробовать и изучить (с первого взгляда очень понравился), а с nw.js дело я уже имел.
И что в итоге? electron себя оправдал? Какие плюсы/минусы в сравнении с nw.js?
На первый взгляд, примерно то же самое. Детально я пока интересного рассказать могу не много, потому что приложение собрал только недавно и ещё в подробности не вдавался. Поживу с приложением, поиграюсь, поизучаю — если будет что рассказать, напишу пост, что и как. Из первого непонравившегося в электроне — отсутствие поддержки winxp и авто-апдейр только под мак.
присоединяюсь к вопросу electron vs nw.js
Ещё есть BrowsePass — существенно попроще, но исторически раньше :)

А зачем в TODO указаны mobile apps? Их же и так на каждую платформу хватает.
А что лучше использовать для android?
KeePassDroid или KeePass2Android, на вкус и цвет.
Лучше первое.
KeePass2Android изменяет базу и ее потом не открыть другими средствами.
Особенно это актуально, если синкается база на нескольких машинах (а именно так и должно быть, чтоб не потерять базу).
Не сталкивался с этим. Правда, я не меняю записи на смарте.
я в нем меняю записи на смарте и никаких проблем после синка.
база потом нормально читается в KeePass & KeePassXC
Есть, я даже рассматривал его как вариант форка, но передумал, слишком много переделок.
Mobile apps указаны, потому что существующие под iOS меня не устраивают (например, нет синка с дропбоксом, это совсем грустно), а хочется уже переползти на keepass, потому что 1password стал требовать с меня $60, при том что я сначала купил приложение за 60, а потом обновился за 20. Там посмотрю, если с PhoneGap оно быстро и просто не полетит, про приложения я скорее всего передумаю, а если полетит — и хорошо.
> 1password стал требовать с меня $60

Стойте, а в честь чего он стал требовать еще бабло? Там же разовая оплата софта?
За апдейты просят: багфиксы, секьюрити фиксы, новые операционки. Нет, я не говорю, что это должно быть бесплатным, но 60 баксов — это перебор.
За апдейты у меня вроде бы не просили еще, в апп сторе они приходят периодически. За другую операционку да, это печально :(
О, вы ещё не попали на эту их замануху. Я уже за 4 (кажется) года попал. Раз в год-два выходит новая мажорная версия, апдейт до неё стоит денег. А старая — да, ваша навечно, но больше не обновится.
Хм, я покупал изначально v4.4.1 (сейчас инвойс поднял) год с лишним назад. Сейчас стоит 5.4, все обновлялось через апп стор, ниразу дополнительно не платил.
У меня был десктоп, mac+windows, страничка проверки возможности апдейта по ключу говорит, что обновиться со скидкой уже нельзя. Мобильный да, кажется обновился в этот раз.
А, у меня только мак-версия, возможно обновление виндовой хотело денег.
К слову, фича-реквест вам — поле для otp, как в 1pass. Фича весьма удобная.
UFO just landed and posted this here
UFO just landed and posted this here
Самая быстрая реализация для web, которую я нашёл — это asmCrypto

Тут пишут, что WebCrypto API в разы (если не на порядок) быстрее asmCrypto.
Попробую обязательно, спасибо что упомянули. Может кстати получиться и не быстрее, потому что здесь задача в том чтобы сделать много итераций шифрования ключа, а не просто последовательно обработать блоб. Проверим, если полетит, интегрирую.
Не взлетело, причём сурово не взлетело, получается что webcrypto медленнее в моём случае в 50 раз. Если кто разбирается в webcrypto — может быть, я что-то делаю не так и можно быстрее? Вот код (на jsbin не положить, secure origin нужен).
Что-то в воскресенье плохо думается под вечер. Вот jsbin. На 10000 циклов от 500мс с webcrypto, а надо 1 000 000 циклов в секунду. Если покажете что не так, буду благодарен.
Я не знаком ни с тем, ни с другим, но в коде для WebCrypto на каждый раунд добавляются накладные расходы на вызов webCrResult, тогда как в asmCrypto transformRounds передаётся куда-то глубже, поближе к коду шифрования.
Да, я как раз писал об этом: asmCrypto я пропатчил таким образом, чтобы количество циклов поддерживалось внутри библиотеки т.е. совсем-совсем близко к asm.js-шифрованию, без копирования буферов. В webcrypto вряд ли вообще когда-нибудь поддержат такой параметр, потому что он странный и в общем случае ненужный. Скорее всего накладные расходы на маршалинг в webcrypto для такой задачи оказались слишком велики. Поэтому таки ждём WASM, он спасёт производительность веба.
К тому же, сравниваются разные режимы AES. Насколько я понимаю, CBC требует больше операций, чем ECB. Вот здесь предлагают варианты как эмулировать KeePass-овский ECB посредством WebCrypto-вского CBC.
Да, ECB самый быстрый шифр (фидбека-то нет). Но если эмулировать другим режимом — затраты на фидбек всё равно в алгоритме будут, просто он не будет учитываться. Я сейчас собрал не рабочий вариант, а прототип для оценки производительности, в рабочем варианте, конечно, надо эмулировать ECB, чтобы шифровалось правильно.
На два потока разделить можно (равно как можно и в asmCrypto). Важен порядок: у asmCrypto 10мс, у WebCrypto — 500. Пока что не вижу возможности его использования для этой задачи.
Я о том, что если сравнивать производительность — то в одинаковых условиях. А то в вышеприведённом тесте asmCrypto работает в заведомо более лёгком режиме, чем WebCrypto.

Плюс, накладные расходы в WebCrypto можно сократить, делая каждым вызовом эдак с сотню-тысячу раундов как описано во втором ответе на StackOverflow.

Если WebCrypto и правда в разы быстрее, как сказал Lockal, усилия могут окупиться, особенно на мобильных девайсах (у меня некоторые юзеры по 10 млн раундов ставят-с...)
Про несколько вызовов в одном — это как раз то, чего хотелось. Попробую завтра.
WebCrypto обработал 10M раундов за 1-2 сек способом из второго ответа на SO. Добавлю поддержку обязательно, спасибо большое. Если делать это в 2 потока — можно открыть даже быстрее десктопа.
Спасибо, что такой пиар моей работе сделали, я автор asmcrypto.

Что касается webcrypto и AES, чтобы не ходить по граблям, взгляните на мой другой проект, github.com/vibornoff/webcrypto-shim, — там исправлены косяки реализаций в IE и Safari.

К сожалению, IE < 11 и Safari < 8 не имеют реализации webcrypto api, поэтому придется остаться на asmcrypto если хотите большей поддрежки старых браузеров.
Спасибо! Посмотрю, что за косяки, с webcrypto я пока не работал, поэтому скорее всего тоже напоролся бы. Да, конечно asmCrypto оставлю пока как fallback.
Ну и поскольку шифруются половинки ключа, это дело отлично делится на два параллельных потока ;)
UFO just landed and posted this here
Сделал WebCrypto, время открытия теперь, если он поддерживается, практически как в KeePass. Опытным путём подобрал количество операций, производимых за один вызов WebCrypto, это где-то 10 000 — 100 000.
график
Интересно было бы на код взглянуть, как вы это сделали.
Сколько в итоге итераций может сделать браузер (на среднем компе) за секунду, на чистом js?
17M 2.2 сек.
Но не разглядел сходу в коде, это pbkdf алгоритм или нет?
Нет, это алгоритм, используемый KeePass для получения мастер-ключа. Много раз шифруется блок AES-ECB, что аналогично длинной нулевой последовательности AES-CBC.
Ясно.
Но есть ощущение, что таким образом можно делать хороший ключ из (относительно) несложного пароля. Но найденные до ныне js решения pbkdf2 дают не более 10^4 итераций за 1-2 секунды.

Есть мысли как этот алгоритм для этих целей прикрутить?
А сколько у них получилось? Сам алгоритм ещё сложнее, т.е. 1M pbkdf не получится, даже нативные реализации столько не умеют.
Там 1000. Встречал ещё 10000.
Интересно какой нынче максимум у нативных за 1-2 сек. Надо ещё покопаться.
И правда странно.
Вот тут ещё пишут что 1М это «annoyingly long». Может ещё под мобильные железки ориентируются.
Смотря в каких целях ещё использовать. Если при открытии странички, или ещё какой-то быстрой операции, где пользователт не предполагает ожидание, то на слабом компе — 1M=3с — это и правда annoingly long, а 100k=300ms — you can notice.
Будет ли возможность использовать свои загруженные иконки?
У самого KeePass есть плагин Download favicons как то так называется и он позволяет загружать любые фавиконки. Да что там, в самом Кепасе можно загружать и назначать любые картинки, просто этот плагин частенько упрощает процесс.
Типа того получится https://i.gyazo.com/1c8ba175e23a963e2bb63f41819d9519.png
Будет обязательно, в TODO у меня это есть, фича полезная, фавиконы для сайтов нужны обязательно. В читалке поддержка иконок есть, нет её только в UI. Засада в чтении формата ico под маком и линкусом, придумаю что-нибудь, как более важное порешаю.
Судя по названию PwCustomIcon.m_pbImageDataPng, в базе иконки хранятся в PNG, так что показывать существующие можно без проблем.
Значит, ещё проще сделать будет, отлично.
Теперь можно. И фавиконки даже сделал. Правда не нашёл ни одного бесплатного сервиса, способного возвращать иконку больше чем 16x16, поэтому в вебе только 16x16 из www.google.com/s2/favicons.
Очень хорошо получилось, а есть возможность их сделать цветными по умолчанию, а то на глаз проще можно найти подходящую фавиконку по ее цвету.
Возможность есть, по умолчанию цветные не всем понравятся, добавлю опцию в настройки.
Эх, не получится, CORS там нету.
А вот и появился стоящий повод перейти с kdb на kdbx. Спасибо за приложение :).
Интересно что решили встроить поддержку Dropbox.
Может тогда уж и протокол KeePassHttp запилить, чтобы интеграция с ChromeIPass \ PassIFox тоже была? Это всё же самый популярный плагин.
Спасибо за идею, добавлю в TODO, выглядит совсем просто, сделаю. Правда получится только для десктоп-приложения, конечно же.
Еще здорово было бы поддержку OneDrive. Не все пользуются дропбоксом. Тем более теперь, когда первый в виндовсе по умолчанию стоит.

Без автозаполнения полей браузера тяжко. А что мешает сделать поддержку ChromeIPass в браузере? Можно же тоже его запихать в фоновую страницу собственного браузерного плагина. Тогда и виндовс приложение не понадобится.
Есть такое, когда-нибудь будет. Если я правильно понял, плагин подключается к http-серверу, поднимаемому из приложения. Вот из веба такой сервер не поднять, там надо по-другому интегрироваться. Посмотрю потом про интеграцию с плагинами, как лучше и правильнее. Два плагина в браузере точно ставиться не будет, это очень плохой экспериенс.
Действительно, фиксированный порт на localhost.
Расширения хрома поддерживают listen.

По поводу интеграции passifox\chromeipass — в продвинутых настройках расширения можно оверрайдить адрес keepasshttp сервера, но там нет поддержки https, поэтому удалённо это делать опасно, и настройка спрятана под красную кнопку.
По моему классная идея, с удовольствием заменил бы приложение одним html-файлом.

Сразу к вам фич-реквест: было бы крайне удобно, если бы оно как-то запоминало последний открытый файл, если это возможно сделать вообще.

Перешёл бы на вас, когда вы доберётесь второй-третьей версии.
Десктоп-приложения запоминают. Веб тоже будет, когда будет реализовано оффлайн-хранилище, чтобы базу из Дропбокса можно было бы сохранить в indexedDb, открыть оффлайн и засинкать, когда появится сеть — туда же будут сохраняться и открытые из файлов. Пока что прорабатываю UX для такого хранилища, чтобы было понятно, не страшно и без принудительных сохранений всего и вся без вопросов.
Согласен, да хотя бы первой. Сейчас что есть — сыро. Пока очень сыро, сам пользуюсь, натыкаюсь на баги, исправляю.
С защитой данных в контролах понятно, а как насчет расшифрованных данных во внутренних переменных? В дампе найти можно?
Все пароли и кастомные поля, помеченные защищёнными, хранятся заXOR-енными (код) и достаются только когда нужно значение (например, при копировании); по ним ещё предусмотрен поиск без расшифровки значения целиком. Остальное хранится открытым текстом.
Сейчас в UI есть недоделка: пароли изменяются в обычном инпуте, безопасный контрол сейчас только на экране ввода мастер-пароля, это пока что не успел.
достаются только когда нужно значение

Вот это значение потом зачищается из памяти или нет? Я не в курсе, как с этим в ноде, но подозреваю, что проблемы есть.
Если в нужный момент завалить систему с крэшдампом, там будет расшифрованный пароль?
Нет, уже не получится сделать. Значение надо обязательно достать в string, а это память, управляемая GC, к ней нет доступа. Вот когда будет авто-тайп — доставать значение не потребуется, тогда удастся этого избежать.
Вообще сделать, конечно, получится, если захотеть: можно из плюсово аддона залезть внутрь V8::String и зачситить. Скорее всего уже что-то есть такое, надо поискать.
Спасибо.
Всегда игнорю из .idea только workspace.xml — чтобы при открытии проекта в идее, в нём уже были настройки, библиотеки, исключения dist-ов и всякое.
Не спорю что такое решение имеет место быть и удобно пока Вы один, но если вдруг в проект вольются еще разработчики, это решение будет многим мешать.
Я конечно вряд ли смогу помочь с проектом, но просто для информации говорю.
И чем же оно будет мешать?
например разным содержимым файла misc.xml
Вопрос, игнорить .idea или нет — интересный, конечно. Вот на работе у нас настройки коммитятся, мы к этому пришли, потому что проект настраивать каждый раз было сложно. Тут даже рассказано, как их закоммитить. Кто-то считает, что коммитить их не надо вообще. С другой стороны, это гит, если мешают изменения в каком-то файле, всегда есть git update-index --assume-unchanged
Общие настройки можно частично донести через Settings Repository.

Я не призываю целиком игнорить .idea/ — просто надо понимать, что будет мешать других разработчикам, а что нет.
Те же misc.xml и workspace.xml это сугубо персональные файлы.
Файл modules.xml смешанный — в нём есть как общие, так и персональные настройки.
А каталог runConfigurations/ и вовсе не должен игнориться — он предназначен для командной работы
Я думал, misc.xml как раз не мешает, а workspace.xml и tasks.xml всегда игнорю (по официальному гайду jetbrains, игнорить надо всё кроме workspace.xml и tasks.xml — может гайд устарел?). Спасибо, буду знать.
Если вы про этот guide, то там в комментариях написаны причины, по которым надо игнорить misc.xml
О, даже в комментариях там уже написали, когда я ещё его читал, там не было, не знал, что его надо игнорить.
Такая гора работы проделана. Жаль, что KeePass, а не pass. Я сам всё ещё пользуюсь кипасом, но только по привычке. По-моему, надо переходить на пасс, потому что у него более грамотная архитектура. Разделение по файлам упрощает синхронизацию и даёт возможность расшаривания паролей.
Если будет популярен, в модели всегда можно сделать поддержку другого формата. Хотя я не вижу причин на него переходить. Чем он более грамотный — хранением пароля в отдельном файле? Ну да, когда-то может быть удобно, хотя я думаю, что передача 50..100кб на один пароль (вся база поменяется) в условиях современного интернета жить не мешает.
В формате есть только пароль, а это значит, что все клиенты должны изобретать собственный формат для цветов, иконок,… — клиент получится или совсем без фич, или со своим форматом, а вот этого уже не хотелось бы.
Отдельные файлы позволяют вносить правки параллельно с нескольких устройств. Например, ноут в оффлайне, я на нём сохраняю новый пароль и выключаю. Даже если база была изменена до его следующего включения, в большинстве случаев всё должно синхронизироваться без вопросов. У официального кипаса, вроде, уже что-то есть на этот счёт, но сторонние клиенты вряд ли это поддерживают.

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

На счёт формата — вы правы. Нужно его развивать пока реализаций не много. Но ведь ограничений никаких нет. Всё, что может KeePass, можно реализовать и в формате pass.

Не подумайте, что я пришёл сюда критиковать ваш титанический труд. Просто очередная скорбь по тому, что более совершенные технологии часто проигрывают более распространённым.
В кипассе есть мёрж, и я сделаю авто-мёрж при синхронизации, с оффлайном по-другому не получится.
Про расшаривание согласен, но это уже больше энтерпрайз-фича. С другой стороны в кипасс атомарная единица — файл. Не так гибко, но тоже можно.
Реализовать можно, но поддерживать будет только реализовавший клиент или тот, кто согласится с принятым форматом. Официально формат не установлен, к сожалению.
Блин, как круто! — все работает, офигенно.

Добавтье пожалуйста поддержку синхронизации измененных данных при сохранении, если открытый файл был изменен другим человеком/программой.
И кастомные иконки растровые, что бы значки сайтов отображались.

А так, чую переезд с официального клиента на ваш вовсе не за горами :)
В планах есть, для этого нужно реализовать оффлайн + мёрж, сделать не так быстро, но будет, при изменениях в дропбоксе записи на девайсе с открытым файлом будут появляться. Кастомные иконки и их скачивание тоже запланированы, с ними просто.
Заметил 2 проблемы: не работает вставка (это фича?); если начать создавать новую запись, переключиться в другое окно чтобы что-то скопировать, вернуться обратно, окно сбросится. :(
Не работает под маком? Это баг, под маком из-за отключённого меню не работают сейчас все шорткаты. Про вернуться в другое окно не думал, интересный казус получился; подумаю, как лучше сохранять значение инпута, не добавляя кнопки Save (сечас по потере фокуса).
Есть ли поддержка аппаратных ключей как второго фактора авторизации? Таких как Yubico Neo.
Нет, вообще не знал, что даже в KeePass так можно. А как это делается — плагином?
Я пользуюсь LastPass, там такое возможно. Если бы кто-то реализовал в открытом продукте — было бы круто.
А как к этому отнесется keepass? базу-то неплохо бы держать в обратно-совместимом формате.
Ну так с базой это не связано. Там ключи собираются вместе и затем считается общий хеш, ни как не влияющий на содержание базы. Просто появится еще одни тип ключа.
Я нашёл, там плагин есть какой-то, т.е. уже поддерживает (я правда не изучал, насколько что там как сделано, посмотрю) — вообще keepass поддерживает любых кастомных провайдеров (в виде дополнительного значения в мастер-хэше), так, к примеру, там сделана встроенная привязка к windows-аккаунту.
В мобильном хроме (samsung s5) — падает после авторизации в дропбоксе.
Сори стормозил — нужно просто открывать сраницу в режиме полной версии
Странно, и на чём там падать? Теоретически, только размеры отличаются. Вроде не должно, на iOS в хроме всё хорошо и в полной, и в мобильной версии. Как дойдут руки, проверю на мобильных на андроиде.
текст немного мелковат в основном окне, возможно ли сделать опцию выбора размера шрифта?
Можно, правда стили пофиксить надо будет. Пожелание в TODO записал, как будет время разобраться, сделаю.
Огромная работа, спасибо.

Не могу сказать что работает без сучка и я даже не знаю почему случались баги.
Сначала не хотел файл сохраняться на дропбокс (просто висел и всё), только я решил подебажить и начал писать об этом — начал сохраняться. Может запрос не проходил (там есть timeout?)
Потом Сафари на яблофоне не видела его содержимого. Но после отключения режима Private который может очень мешать — заработало.
В Хроме на яблофоне вообще не заводится. Всё заканчивается страницей с цветом бэграунда приложения и ничем больше. take.ms/06SAv Даже если запрашивать Desktop page. Но я его не особо использую на мобильном.

Я просто FYI это всё описываю, думаю вам самому интересно какие бывают проблемы и бывают ли.
С добавлением и редактированием вообще на мобильных сейчас глючно. О проблемах интересно, конечно, буду фиксить по мере возможности, как доберусь до мобильных. На андроиде пока вообще не смотрел даже, заводится ли.
Хм, в создании группы кнопка OK и правда нужна, спасибо (потому что непонятно, как выйти из диалога), в остальных местах кнопки OK нет принципиально: где можно, сохраняется сразу же, без кнопок.
А зачем на десктопе дропбокс? Так же и так есть файлы из дропбокса.
> Так же и так есть файлы из дропбокса.
У меня нет. Я не использую десктопный Dropbox. Только Web. Да и в любом случае в синхронизации может быть задержка. Может у меня как раз льётся что-то на дропбокс (если бы я использовал его). И то что я открою с десктопа будет не то же, что сейчас уже на сервере.
Хм, значит имеет смысл не отключать.
Пожалуйста, сделайте возможность удалить Attachment из записи. Сейчас можно только всю запись грохнуть.
Выделить аттачмент, cmd-del
Странно, посмотрю, скорее всего глюка в получении клиента и авторизации.
О, тогда всё ясно, спасибо. По Cmd-S будет автосейв всех файлов, там запускается синк с дропбоксом, в котором сейчас баг. Решится уже скоро, как раз сейчас делаю оффлайн и этот самый синк.
С добавлением в Safari тоже есть проблемы

image

image
Практически нигде не предусмотрено кнопок «Ок». Войти на мобильном можно только нажав «Ввод» на выдвижной клавиатуре. Но это ок. А вот группу уже не создашь — ввод на клавиатуре не работает.

upd: а, так группу и на десктопе с трудом можно создать. Это нужно догадаться что поле работает только на потерю фокуса
В Electron приложении для Mac OS почему-то нету возможности открыть с DropBox в принципе
В десктопной версии для Linux — аналогично.
Так задумано, там проверяется, а не десктоп ли это, и отключается дропбокс (предполагается, что файлы из дропбокса есть всегда и так, и в много% случаев это справедливо). Я пока думаю над тем, как, не прилагая усилий, сделать, чтобы работал и дропбокс (для этого надо origin как у сайта, а не file://) и настраиваемые автоапдейты (а для него надо уметь открывать страничку из файла). Как/если придумаю, будет дропбокс и на десктопе.
Разобрался с дропбоксом, оказывается, в электроне он не работает из-за каких-то хитрых настроек безопасности (на страничке дропбокса в попапе падает ошибка). Написал рабочий dropbox-js AuthDriver для электрона, если кому-то нужен — вот он.
Вы просто прочитали мои давние мысли и реализовали! Низкий поклон вам!
У меня история началась с переходом на мак: долго искал что же можно использовать, в итоге купил KyPass Companion. Он оказался настолько глюкавым, что пришлось просить вернуть деньги. Хотелось мультиОСное с возможностью синхронизации в облаке и тут я попадаю на Ваш пост.

С удовольствием сделаю донат.
Под мак сейчас вообще клиентов хороших нет. Есть macpass, но он мало что умеет, KeePassX странный, в KeePass из-под моно, даже если закрыть глаза на интерфейс, файлы создаются через раз.
настолько глюкавым
Осторожно, у меня пока глюки тоже есть, ещё 0.x…
Я установил и начал активно пользоваться. Словлю баги, обязательно сделаю репорт.
А подскажите, куда писать предложение Feature Requests? Может есть общедоступный такой список?
Спасибо. В issues, как обычно, с пометкой [Feature request] но проверьте, нет ли такого в TODO.
Подскажите, какие недостатки у варианта сохранять kdbx в indexedDB, а не в файловой системе клиента? Backup и restore из файла, безусловно, полезны, но режимом по умолчанию для web-приложения могла бы быть браузерная база.
Никаких нет. Именно так сейчас и сделано: для браузера сохраняется в indexeddb и предлагается открыть оттуда оффлайн (если база была открыта из дропбокса или залита файлом). Десктоп-приложения сохраняет файлы, открытые из файлов, обратно, в ФС.
Виноват. Меня смутила фраза:
Работать, каждый раз скачивая файл, неудобно, собрал приложения на electron
.
Кажется, я понял, о чём вы. Сейчас файл считается сохранённым, когда пользователь его скачал (потому что indexeddb исчезнет при переустановке браузера) — точечка пропадает, страничка закрывается без предупреждения,… Вы имеете в виду, что хорошо было бы позволить сделать режим — открывать из indexeddb и работать прямо с ним, а в файл экспортировать по желанию. Согласен, есть оно в TODO, но сделано будет нескоро, вместе с другими хранилими кроме дропбокса, потому что требует решить задачи:
— полноценный оффлайн и синк (пока думаю над мат.моделью, будет в декабре, напишу пост на хабр про CRDT)
— рефакторинг работы с хранилищем (будет в январе)
— UX и UI выбора хранилища (уже после 1.0)
И все-таки, расскажите параноику, что с безопасностью у такого решения? (куда могут уйти мои пароли, и файлы баз?)
Страшно.
и как это может зависеть не только от кода автора, но и кода сторонних библиотек?
Мастер-пароль в памяти в plaintext не хранится даже в момент ввода, другие пароли и protected-поля достаются только когда вы запрашиваете редактирование (безопасное редактирование будет попозже) или копирование. Я привёл скриншот известного приложения, которое пароли вот вообще не XOR-ит.
Файлы баз никуда никогда не отправляются, приложение полностью оффлайновое, ни одного ресурса ниоткуда не загружает, можете отключиться от сети и работать. В десктопе апдейт-чек при желании полностью отключаем, работает по https.
> как это может зависеть от кода автора
полностью, разумеется
> и кода сторонних библиотек
библиотеки, связанные напрямую с чтением kdbx и дешфировкой: kdbxweb (принадлежит автору), включающий в себя asmCrypto, pako и xmldom. asmCrypto используется из форка автора, pako и xmldom sensitive data не обрабатывают и по сети ходить не умеют.
Всё остальное (backbone и разные либы, если интересно — список в Settings/About) тоже open-source и наличие в них закладок специально для этого приложения крайне маловероятно.
А, еще, извините если вопрос глупый: дополнения браузера имеют доступ к данным друг друга? т.е. используя подобное дополнение, и условно небезопасное сможет ли оно получить доступ к паролям? (как я понял вы пока не планируете создавать дополнений?)

И, правильно ли я понимаю, пока отсутствует дополнение — нужно каждый раз в ручную находить в приложении нужный сайт, логин и пароль, и дважды копировать из приложения в браузер данные?
> имеют доступ к данным друг друга? нет. но дополнений у меня пока нет, это просто страничка
> используя подобное дополнение, и условно небезопасное сможет ли оно получить доступ к паролям? да. если какое-нибудь дополнение имеет доступ к страничкам, оно может сделать с ними всё что угодно, в том числе и с этой страничкой
> нужно каждый раз… — да. авто-тайпа и интеграции с плагинами пока нет.
Про первые два вопроса. Если предположить, что в браузере есть небезопасные дополнения — лучше использовать десктоп-приложение, оно не зависит от браузера, это просто приложение с интегрированным вебкитом в качестве движка. Но всё равно пароль в конечном счёте так или иначе попадёт в браузер, так что лучше дополнения сомнительные не ставить.
А что с поддержкой U2F? Планируется?
UFO just landed and posted this here
Only those users with full accounts are able to leave comments. Log in, please.

Articles