Безопасно ли хранить (зашифрованные) пароли на GitHub?

21

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

Одна из интересных особенностей pass заключается в том, что все хранится в папке с хорошей иерархией, которая идеально подходит для настройки git-репо (pass даже предоставляет такую ​​возможность). Я хотел бы, чтобы мой пароль был актуальным на всех моих компьютерах.

Тогда безопасно ли передавать пасс git-репозиторий в частный GitHub-репозиторий? Если нет, то в чем слабое звено?

Николас Маттиа
источник
Я бы не рекомендовал делать это. Одной из причин может быть то, что вы оставите зашифрованный пароль, чтобы подвергнуться атаке методом перебора.
тяжело
Учитывая, что это частное репо, я бы предположил (как и клиенты GitHub), что никто, кроме GitHub, не будет иметь доступа к репо. Если, конечно, я однажды не совершу неправильного репо.
Николас Маттиа
1
Кроме того, никто не будет иметь доступа к ключу GPG, поэтому кому-то потребуется взломать 4096-битное шифрование, что маловероятно даже для автономной атаки методом подбора
Николас Маттиа
1
Если они не облажались и пароль закрытого ключа - Password1;) только потому, что я поднял его однажды уже сегодня, я все еще думаю, что суперфиш использует имя своей компании в качестве пароля (komodia). Это просто облегчает взлом, но все же. Глупые ошибки делают пароли легче расшифровывать.
dakre18
Уровень @ dakre18 переходит от «вряд ли случится» к «забавному дешифрованию»
m3nda

Ответы:

13

Краткий ответ

Это нормально, чтобы поставить GitHub Repo Pass.

Подробный ответ

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

Убедитесь, что это хороший ключ (например, тот, который вы упомянули) и не открывайте его никому, потому что им не придется взламывать этот большой старый ключ, чтобы использовать его. Им просто придется скрыть ваш пароль, и, давайте посмотрим правде в глаза, действительно трудно быть уверенным, что ваш пароль достаточно хорош, чтобы остановить всех .

Так что не позволяйте никому видеть ваш ключ. Если вы перенесете свой закрытый ключ на каждый из компьютеров, использующих pass, вы можете просто извлечь свое хранилище с github и использовать закрытый ключ, хранящийся на этих компьютерах по отдельности. Теперь они все будут синхронизированы и в безопасности.

Еще две вещи для рассмотрения

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

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

Тайлер Абаир
источник
Я думаю, что вы делаете три действительно хороших замечания: 1) ключ шифрования отсутствует на сервере 2) кто-то должен видеть, что мой пароль является причиной, почему он зашифрован в первую очередь 3) мои неуклюжие пальцы в основном вынимаются из петля. Но, как сказал @Jens, я должен доверять программному обеспечению.
Николас Маттиа
1
Pass достаточно прост, чтобы не доверять Pass, а доверять PGP. При этом да, вы все равно должны доверять PGP. Я думаю о том, зачем вообще использовать PGP для чего-либо, если вы не верите, что он что-то шифрует?
Тайлер Абаир
7

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

  • Случайная загрузка незашифрованных паролей (вы не будете делать это специально, но уверены, что это может произойти не случайно или из-за какой-то программной ошибки?)
  • Неизвестные недостатки RSA или симметричное шифрование при использовании
  • Выявлены закономерности использования (статистика является мощной)
  • Случайное раскрытие вашего токена доступа приводит к общедоступным данным; если бы вы также держали это в секрете, вы были бы в большей безопасности
  • Наихудший случай - раскрытие всей истории вашего хранилища паролей по сравнению только с текущей

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

Вы когда-нибудь случайно публиковали личную фразу-пароль в каком-то окне чата? Я знаю кучу людей, которые сделали, в том числе и я.

Йенс Эрат
источник
3

Это хороший вопрос, поскольку в прошлом была проблема, когда кто-то помещал частный пароль в публичный репозиторий.

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

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

В целом это не лучшая идея. Это не самое худшее, но лучше подумать о том, «что будет, если?» сценарии. С тобой это может никогда не случиться, но стоит ли это того стоить?

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

dakre18
источник
0

Одна из замечательных возможностей Pass заключается в том, что все хранится в папке с хорошей иерархией, которая идеально подходит для настройки git-репо.

Я думаю, что это не безопасно. Для всех ваш аккаунт (структура каталогов) не зашифрован. Только пароль был защищен gpg.

(пройти даже обеспечивает эту способность)

Если сделать это, используя способность Pass. Может быть, это более безопасно. Но вам нужно перестроить свой магазин, используя "pass git init".

утопический экспресс
источник