Pages:
Author

Topic: 🔓 Шифруем приватные ключи своими силами (Read 579 times)

hero member
Activity: 504
Merit: 732
у большого числа пользователей очень слабо представление о компьютере, прямо на уровне секретарши блондинки

В принципе, мы все с этого начинали. Но кто-то пошел дальше, а кто-то сконцентрировался на совсем иных вещах. Это вполне логично - нельзя быть докой во всем. Другое дело, что "нельзя быть докой" не равняется "быть полным ламером", и в век информации хоть какие-то знания об айти иметь необходимо - тем паче, если потом лезешь в такую сферу, как крипта. И вот тут у многих главный затык: они всю жизнь считали, что знания о компьютере им не пригодятся (поскольку занимались совсем другим) - а тут вдруг они не просто нужны, а буквально требуются. А на их любимом ютуб-канале "Как заработать миллион, не шевеля даже пальцем" об этом, естественно, упомянуть забыли.

Quote
написать подобное сможет любой человек даже совсем не знакомый с JS

Я помню, как начиналось лично мое знакомство с JS. Это был не первая попытка проникнуть в мир кода, но предыдущие явно были на поверхностном уровне, потому что начинать мне пришлось с самого тупого, конкретно - с вопроса "что такое переменная". Рили: ни один справочник по JS, даже позиционируемый как руководство для полных "нулей", не удосуживался "разжевать", что это, блин, такое. Обычно все стартовало со слов "создадим переменную блаблабла" или "var используется для создания переменных" - и далее уже с этими переменными производили какие-то базовые операции. То есть люди, составлявшие эти пособия, были убеждены, что понятие "переменная" всем доступно на интуитивном уровне, хотя это не так. Да, потом, в процессе "копания", все встало на свои места и были даже обнаружены всякие неочевидные нюансы. Но это было потом. Так что "написать подобное" человек, незнакомый с JS, конечно, сможет, но на уровне "переписал какую-то белиберду на неизвестном языке" - если, конечно, он секретарша-блондинка, а не секретарша-программист.
member
Activity: 266
Merit: 59
hero member
Activity: 504
Merit: 732
Судя по форуму большинство людей не доверяет программам даже с открытым исходным кодом

В таком случае это большинство не будет доверять и тому, кто напишет для них подобный "шифровальщик". Ибо все почти элементарно, когда вы знаете JS, но если не знаете (тем паче - не занимались программированием и вообще гуманитарий), само предложение "давайте напишем чего-нибудь простенькое на JS" для вас будет уже вопросом на миллион долларов. Чисто психологически. И Вы не будете доверять программам с открытым исходным кодом, поскольку для Вас этот код - темный лес, и Вы просто не в состоянии прочитать его и понять, что он там делает.

Если же Вы изучали JS, Вам доступно несколько больше, чем модифицирование тега script в шапке страницы. Например, Вы сможете использовать спец. библиотеки для шифрования. Ну, и полагаться на Math.random() скорее всего не будете.

Хотя, как по мне, лучше было бы направить основные усилия не на шифрование, а на предотвращение попадания информации в руки злоумышленника. Вот здесь как раз для обывателей все гораздо прозрачнее - и, при должном усердии, для них это будет куда эффективнее, чем возня с кодом, который они не понимают.
copper member
Activity: 224
Merit: 1
По мне так самый надёжный способ это две флешки, бумага и записать на CD диск и не надо нечего шифровать.
newbie
Activity: 23
Merit: 0
флэшку или листок можно не только дома так то хранить. к вам органы частят с обыском то вообще?)
member
Activity: 266
Merit: 59
Дело в том, что чтобы злоумышленник получил скрипт нужно чтобы он о нем знал и целенаправленно искал на компьютере, причем наверно придется создавать специальный вирус под эту задачу.

А если учесть что файлик переименован и спрятан в системной папке то такого типа "поиски ключа" практически непрактичны для любого взломщика, другое дело если человек знает что там 100 к Bitcoin-в лежит на кошельке, а так ну скомуниздил он у вас зашифрованные кеи, проверил - пустые, ну и пойдёт он дальше, не будет тормозить и рытся в системных файлах. Другое дело если ему вздумается проверить по датам открытия файлы, но это уж совсем из ряда фантастики.
О том и речь, что вероятность похищения скрипта для обычного пользователя крайне мала. Вот если данный способ был бы популярным, тогда хакеры наверно озаботились бы зловредами под это дело для массового использования, а просто так никто не будет это делать. 
sr. member
Activity: 728
Merit: 317
Crypto Casino & Sportsbook
Дело в том, что чтобы злоумышленник получил скрипт нужно чтобы он о нем знал и целенаправленно искал на компьютере, причем наверно придется создавать специальный вирус под эту задачу.

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

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

Я думаю человек имел в виду что не доверяет сторонним программным продуктам и операционным системам, (а вообще мне кажется у него просто паранойя зашкаливает Grin ).

member
Activity: 266
Merit: 59
Я не понимаю зачем эти ключи вообще шифровать, если их нельзя вообще хранить на цифровых носителях и устройствах. На бумажку выписал, а еще лучше две и спрятал в разные углы. Хрен кто что догадается
С чего вы взяли, что нельзя хранить на цифровых носителях? Ну и как удобно руками их каждый раз набирать когда в кошелек нужно войти? Wink Что будет, если ваша бумажка с приватным ключом попадется на глаза кому-нибудь?
newbie
Activity: 26
Merit: 0
Я не понимаю зачем эти ключи вообще шифровать, если их нельзя вообще хранить на цифровых носителях и устройствах. На бумажку выписал, а еще лучше две и спрятал в разные углы. Хрен кто что догадается
member
Activity: 266
Merit: 59
Простой вариант. Порядок применения алгоритмов жестко прописан в программе, мы только выбираем количество алгоритмов которые будут использованы. Тогда количество вариантов равно n*(n+1)/2 что в вашем примере дает 21 вариант.

Нет, тут все-таки не так. У каждого чекбокса два положения "вкл" и "выкл". По сути 1 чекбокс - это бит информации. А 6 чекбоксов можно записать как 6-значное двоичное число. Вариантов получает 2n - 64. Но вариант "000000" в расчет не берем, поэтому 63.
Согласен, что то я не то насчитал первый раз. Правильно 2n-1

Сложный вариант. Порядок выбора чекбоксов определяет порядок их применения. Тогда количество вариантов равно сумме всех n! от 1 до n что дает 873 варианта, а если увеличить число чекбоксов до 9 то уже 409113 комбинаций.

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

Тут всё верно. Зашифрованный ключ наверняка будет храниться рядом со скриптом, уж на одном компьютере точно (иначе будет жутко неудобно им пользоваться). Поэтому я и предположил теоретически, что у злоумышленника есть и то, и другое. Эта задача мне интересна именно в этом контексте. Так вот, даже 400к+ вариантов ничто для брутфорса. Злоумышленник может понять логику шифрования и написать скрипт для перебора всех вариантов.

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

Дело в том, что чтобы злоумышленник получил скрипт нужно чтобы он о нем знал и целенаправленно искал на компьютере, причем наверно придется создавать специальный вирус под эту задачу. Все это сложно и далеко не каждому под силу.
Можно пойти еще дальше и у части алгоритмов сделать необходимость вводить переменные руками. Например на сколько частей делить и тому подобное, что дополнительно усложнит возможность перебора.
full member
Activity: 224
Merit: 186
Простой вариант. Порядок применения алгоритмов жестко прописан в программе, мы только выбираем количество алгоритмов которые будут использованы. Тогда количество вариантов равно n*(n+1)/2 что в вашем примере дает 21 вариант.

Нет, тут все-таки не так. У каждого чекбокса два положения "вкл" и "выкл". По сути 1 чекбокс - это бит информации. А 6 чекбоксов можно записать как 6-значное двоичное число. Вариантов получает 2n - 64. Но вариант "000000" в расчет не берем, поэтому 63.

Сложный вариант. Порядок выбора чекбоксов определяет порядок их применения. Тогда количество вариантов равно сумме всех n! от 1 до n что дает 873 варианта, а если увеличить число чекбоксов до 9 то уже 409113 комбинаций.

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

Тут всё верно. Зашифрованный ключ наверняка будет храниться рядом со скриптом, уж на одном компьютере точно (иначе будет жутко неудобно им пользоваться). Поэтому я и предположил теоритически, что у злоумышенника есть и то, и другое. Эта задача мне интересна именно в этом контексте. Так вот, даже 400к+ вариантов ничто для брутфорса. Злоумышленник может понять логику шифрования и написать скрипт для перебора всех вариантов.
newbie
Activity: 54
Merit: 0
Да хранение в архиве под поролем и когда другие о нём не знают уже достаточная мера,никто не хакает компы(особенно грамотных юзеров) чтобы лазить в их файлах и тд...
member
Activity: 266
Merit: 59
Идея понятная. Я бы наверно, только, все алгоритмы шифрования сделал на одной странице и для каждого вывел чекбокс. Чекбоксы пронумеровать. При шифрование отмечаем чекбоксы с желаемыми алгоритмами - получаем набор цифр (набор номеров чекбоксов), который и будет подобием пароля.

Правда, если знать что есть зашифрованный пароль и есть такая утилита, где, чтобы рашифровать, нужно правильно выставить чекбоксы, то подобрать чекбоксы не так сложно. Если не ошибаюсь, получается 2n - 1 вариантов, где n - кол-во чекбоксов. При 6 чекбоксах - это всего-то 63 варианта.
Ошибаетесь. Ответ зависит от логики работы программы.

Простой вариант. Порядок применения алгоритмов жестко прописан в программе, мы только выбираем количество алгоритмов которые будут использованы. Тогда количество вариантов равно n*(n+1)/2 что в вашем примере дает 21 вариант.

Сложный вариант. Порядок выбора чекбоксов определяет порядок их применения. Тогда количество вариантов равно сумме всех n! от 1 до n что дает 873 варианта, а если увеличить число чекбоксов до 9 то уже 409113 комбинаций.

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

Поэтому я больше склоняюсь к использованию ключа. Нужен алгоритм, который используют вводимую пользователем строку для шифрования, при этом зашифрованный приватник также должен быть в 16-ричном представлении и той же длины, что и оригинал. В таком случае обычный XOR не подходит (самый простой способ шифрования с ключом). Если есть варианты алгоритмов с ключом, то интересно будет послушать.
Давно известно, что применяя простой алгоритм замены можно зашифровать так, что даже теоретически его будет невозможно расшифровать. Для этого нужно соблюсти несколько условий: ключ должен быть абсолютно случайным, длинной равной длине шифруемого сообщения и использоваться только один раз. После этого можно спать спокойно.

Только зачем все эти сложности? Ведь этот ключ придется тоже прятать. При этом приватный ключ сам по себе является набором случайных символов и если мы изменим хотя бы один символ в произвольном месте, то для приватного ключа эфира получим 1.1579208923731619542357098500869*1077 комбинаций, что равнозначно простой генерации приватника на удачу в надежде найти кошелек с миллионами на балансе.
В итоге мне кажется запомнить и сохранить в безопасности несложный алгоритм модификации проще, чем ключ длинной 64 символа.

Даже если вы храните флешку за диваном под плинтусом, это не значит, что она не может оказаться в неподходящий момент на самом видном месте.
надо использовать микросд карточку и закапывать ее в землю под фикусом на пару сантиметров - мало кто там рыться будет Grin
Ну да, про цветочный горшок конечно никто не в курсе Grin да и карточка там корродировать не будет... Хотя речь в приведенной вами цитате совсем о другом. Смысл в том, что вам ее нужно периодически доставать, чтобы войти в свой кошелек. А большинство людей не машины и она вполне может оказаться лежащей на столе когда рядом окажется соседский паренек.
full member
Activity: 210
Merit: 140
Даже если вы храните флешку за диваном под плинтусом, это не значит, что она не может оказаться в неподходящий момент на самом видном месте.
надо использовать микросд карточку и закапывать ее в землю под фикусом на пару сантиметров - мало кто там рыться будет Grin
full member
Activity: 224
Merit: 186
Идея понятная. Я бы наверно, только, все алгоритмы шифрования сделал на одной странице и для каждого вывел чекбокс. Чекбоксы пронумеровать. При шифрование отмечаем чекбоксы с желаемыми алгоритмами - получаем набор цифр (набор номеров чекбоксов), который и будет подобием пароля.

Правда, если знать что есть зашифрованный пароль и есть такая утилита, где, чтобы рашифровать, нужно правильно выставить чекбоксы, то подобрать чекбоксы не так сложно. Если не ошибаюсь, получается 2n - 1 вариантов, где n - кол-во чекбоксов. При 6 чекбоксах - это всего-то 63 варианта.

Поэтому я больше склоняюсь к использованию ключа. Нужен алгоритм, который используют вводимую пользователем строку для шифрования, при этом зашифрованный приватник также должен быть в 16-ричном представлении и той же длины, что и оригинал. В таком случае обычный XOR не подходит (самый простой способ шифрования с ключом). Если есть варианты алгоритмов с ключом, то интересно будет послушать.
member
Activity: 252
Merit: 25
Очень интересный вариант. Именно из-за необходимости вводить все вручную в свое время отбросил вариант с заменой символов. Единственное что, думаю лучше не применять единый алгоритм ко всему ключу. Лучше разделить его допустим на 2 или 3 части и к каждой применить свой вариант перемешивания. Компьютеру это сделать легко, зато подбор алгоритма станет совсем маловероятным событием.
member
Activity: 266
Merit: 59
А по-моему хорошая тема. Почему нет? Хочет человек спать спокойнее и немножко знает яваскрипт - взял и сделал себе дополнительный барьер. Насколько это удобно не возьмусь судить, т.к. надо пробовать.

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

Это от того что не существует алгоритма, генерирующего случайные числа. Есть функции, которые выдают один и тот же числовой ряд в зависимости от начальной величины. Вроде в с++ это называется srand() и туда в качестве отправной точки "вшивают" значение системного времени. Так что раз в сутки есть вероятность получить одно и тоже.
Можете скачать примеры, я для этого их и сделал, чтобы можно было поиграться с ними и оценить удобство и возможности. Вы правы, со случайными числами в компьютерах действительно серьезные проблемы. Тот способ, что в примерах дает псевдослучайные числа, можно взять и более сложный алгоритм с лучшей рандомностью, но для данного применения думаю это не критично. К тому же на практике, надо думаю добавить еще к цифрам буквы.
member
Activity: 182
Merit: 11
А по-моему хорошая тема. Почему нет? Хочет человек спать спокойнее и немножко знает яваскрипт - взял и сделал себе дополнительный барьер. Насколько это удобно не возьмусь судить, т.к. надо пробовать.

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

Это от того что не существует алгоритма, генерирующего случайные числа. Есть функции, которые выдают один и тот же числовой ряд в зависимости от начальной величины. Вроде в с++ это называется srand() и туда в качестве отправной точки "вшивают" значение системного времени. Так что раз в сутки есть вероятность получить одно и тоже.
member
Activity: 266
Merit: 59
Изначально вы не говорили про перемешивание, "3 слова на 45-ой странице уголовного кодекса разделенные спецсимволами". Я понял это примерно так: закон@запрещает*воровать

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

Поэтому воспринимать серьезно сервис Касперского думаю не стоит. Он не проверяет стойкость пароля, а просто выдает усредненные данные "с потолка" исходя из длинны пароля, использованных символов и наверно проверяя по самым распространенным вариантам паролей. На деле все зависит как ломать, на чем ломать и от чего собственно пароль.
legendary
Activity: 1204
Merit: 1585
shaman
Перенес цитату из другой темы.

Что касается вашего алгоритма создания пароля. Мне кажется его нельзя назвать сильно надежным. Дело в том, что простым брутфорсом никто вменяемый думаю заниматься не будет. Используют подбор по словарю плюс всякие маски и другие хитрости. В результате 3 слова разделенных спецсимволами не является чем то непреодолимым и вполне может быть подобрано за вменяемое время.


Маски - тема интересная, в моем методе их нет. Словарь - в которм будут комбинации из трех слов? Видел много разных баз с паролями, но с тремя словами не видел никогда.
В моем очень простом методе все сводится к тому, что надо все символы клавиатуры, включая спецсимволы и не только - необходимо будет смешать их миксером и поставить на перебор, так как ни один словарь не даст этого результата, а алгоритма -нет

И в итоге, если брать проверку паролей от Касперского мы получим:


Причем самое интересное в том, что здесь два простых слова и два спецсимвола. И это только на то, чтобы сломать один архив из двух.

ps: Совсем не отрицаю вашего метода, есть просто несколько личных моментов, которые не люблю.
Pages:
Jump to: