Як безпечно зробити резервну копію приватного ключа GPG?


25

Я знайшов дуже цікавий менеджер паролів CLI під назвою pass . Для його використання ви створюєте пару ключів GPG2 і використовуєте інструмент, який допоможе вам зберігати паролі у зашифрованих файлах gpg2.

Для шифрування файлів (додавання нового пароля) він використовує відкритий ключ.

Для розшифрування файлів (отримання збереженого пароля) використовується приватний ключ, для якого потрібен пароль.

Це чудово працює.

Тепер, коли інструмент зберігає всі мої паролі, я хочу створити резервну копію всіх цих даних, щоб, якщо мій комп'ютер вийшов з ладу, мене не заблокували всі мої онлайн-акаунти.

Інструмент чудово інтегрується з git, тому мені вдалося легко натиснути .gpg файли до мого приватного git repo на іншому комп’ютері. Як я розумію, ці файли марні без закритого ключа, щоб розшифрувати їх.

Моє запитання таке: як мені зробити безпечну резервну копію приватних і відкритих ключів, щоб я міг відновити "базу даних" на іншій машині, якщо виникне потреба? Чи можу я просто зберігати як відкриті, так і приватні ключі у своєму git repo та пізніше імпортувати їх на іншій машині? Або вважається небезпечною практикою зберігання приватного ключа в приватному, локальному git repo? Для доступу до git repo потрібен пароль. Приватний ключ шифрується та вимагає відкриття пароля - чи безпечно це зберігання?

Відповіді:


10

Збереження приватного ключа PGP в системі контролю ревізії само по собі не викликає суттєвих проблем безпеки. Зберігання приватного ключа в локальному, приватному (неопублікованому) сховищі git не повинно мати суттєвих наслідків для безпеки порівняно із збереженням приватного ключа на одному комп’ютері, але поза будь-яким сховищем git.

Єдине питання, про яке я можу подумати, пов'язане зі збереженням приватного ключа в контрольованому версією способі - це те, що якщо ви не зможете якось знищити старі версії, зміни ключових парольних фраз дозволяють придбати набагато менший захист, ніж вони могли б інакше.

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

Визнаючи, що безпека зберігання не є досконалою, і тим більше, що в сучасних умовах, коли люди регулярно створюють резервні копії хмарних сервісів (що в перекладі буквально означає «чужий комп’ютер»), ми зазвичай захищаємо наші секретні ключі за допомогою паролів. Я вірю, що навіть якщо ви працюєте, наприклад, gpg-agent, ви робите те саме.

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

Однак це досить велике значення, якщо: паролі чи парольні фрази більшості людей досить хитрі, наскільки комп'ютерні спроби їх зламати. GnuPG намагається працювати так добре, як може, з тим, що ви їм надаєте, але для надійного захисту даних вам потрібна хороша парольна фраза, і вам потрібно встановити її перед тим, як імпортувати приватний ключ у сховище git. Після того, як ключ імпортований, зловмисник може в принципі атакувати будь-яку його версію, і якщо вони мають підстави вважати, що певна редакція має парольну фразу нижчої якості, це, швидше за все, піде на це. З цієї причини переконайтесь, що ви обережно вибираєте парольну фразу. Я написав невеликий буквар про те, як обробляти паролі, в тому числіпропозиції щодо вибору паролів або парольних фраз, які вам потрібно мати можливість запам’ятовувати , що може бути корисним.


6

Нещодавно я розглядав подібне налаштування. Перш ніж вирішувати ваше питання, дозвольте мені зазначити, що мене турбує. Це пояснюється з великою довжиною тут . Якщо коротко - коли Pass викликає GPG, він виконує непотрібні асиметричні криптовалюти (RSA / EC) під кришкою. Непотрібне - адже тут немає недовіреної партії.

Це дратує, оскільки асиметрична криптовалюта менш захищена від майбутнього, ніж симетрична криптовалюта. Наприклад, асиметрична криптовалюта сьогодні зламана досить великими квантовими комп'ютерами, яких ще не існує. Більш загально, асиметричні криптовалюти покладаються на "математичні проблеми", які ми не знаємо, як вирішити, тим більше, ніж симетричні криптовалюти.

Щоб пом'якшити цю слабкість, найменше, що ви могли б зробити, - це також зберегти відкритий ключ GPG, який використовується разом із Pass приватним, тому що, наприклад, (потенційна) квантова атака потребує цього відкритого ключа: дивіться тут .

Що стосується вашого актуального питання, то незрозуміло, чи збираєтесь ви зберігати git repo (з паролями) публічно чи приватно. Якщо ви хочете залишати його приватним, ви можете майже все, що завгодно, і знизити безпеку приватного ключа GPG до того, на якому носії, де ви створюєте резервну копію репо. Однак це може стати проблемою з куркою та яйцями: якщо РЕПО приватне, як повернути його у випадку аварії? Іншими словами, у випадку «поганої аварії», ви повинні спочатку отримати щось, що ви отримаєте . Таким чином, ви можете захотіти зберегти git repo приватним, але створити резервну копію ключа GPG таким чином, щоб ви могли отримати перше, незалежно від будь-якого іншого.

Офлайн-резервні рішення є численними, адвокати, підвали та ін. Дивіться тут . Але підвали не для всіх, тому дозвольте запропонувати онлайн-рішення:

  • Створіть надзвичайно сильну парольну фразу, яку не слід вводити роками. Пропозиція: довге, запам'ятоване неправильне написання фрази, яка має деяке особисте значення, або з книги, у якої не буде вичерпано копій, якщо вам потрібно її шукати.

  • Створіть тарбол за допомогою експортованого секретного ключа GPG та, можливо, ваших SSH-даних.

  • Зашифрувати його симетрично кодову фразу: gpg --symmetric --armor.

  • Створіть безкоштовний обліковий запис хостингу git.

  • Створіть загальнодоступний сховище, яке можна клонувати без повноважень.

  • Покладіть туди зашифрований та броньований куля дьогтю.

Щоб відновити його після "поганої аварії":

  • Завантажте живу USB-накопичувач.

  • Клоніруйте громадські репо.

  • gpg --decrypt.

Симетрична парольна фраза стане вашим головним захистом від зомбі. Люди іноді не дають вам чи анонімному читачеві користі від сумнівів, коли справа стосується вибору парольних фраз. Але з хорошою парольною фразою симетрична криптовалюта повинна бути суцільною.

Коли ви експортуєте приватний ключ свого GPG, він буде зашифрований власною парольною фразою. Останні версії GPG не дозволять незашифрований експорт. Тут ви можете використовувати свою "звичайну" парольну фразу GPG. Просто пам’ятайте, що у випадку аварії вам знадобляться обидва паролі, щоб дістатися до приватного ключа вашого GPG.


4

Інший варіант, який я використовую, це: роздрукувати свій ключ на папері .

Деталі наведені у відповіді. Великими перевагами є: Ви можете легко зберігати його там, де вам захочеться, і ви можете перевірити, чи він все ще є в хорошій формі, просто подивившись на нього. Але найбільша перевага полягає в тому, що ніхто не може зламати його, фактично фізично не перебуваючи в тому місці, де ви зберігаєте резервну копію та приймаєте її.


Наскільки я бачу, папір не має переваги перед знімними носіями в цьому випадку, і недоліком є ​​те, що якщо вам потрібно відновити ключ, вам доведеться набрати все гнучко для ключа.
КАРТА

Перевага в тому, що він набагато довговічніший, і ви можете перевірити, чи читається він ще на власні очі без комп’ютера. Якби у мене був долар за кожен дискет, компакт-диск чи DVD, який я використав, який тепер має непоправні помилки в даних, я б міг піти на свято з цими грошима. Вам не потрібно нічого вводити! PaperBack друкує його у вигляді двовимірних кодів із доданим виправленням помилок. Ви просто скануєте або сфотографуєте його, і програма перетворить його назад у все, що ви дали йому для друку раніше.
Йозеф каже, що повернеться до Моніки

Припускаючи, звичайно, що у вас ще є технологія для цього.
КАРТА

Ну, ймовірність того, що я легко зможу отримати Windows VM або Linux з Wine з копією цього програмного забезпечення з відкритим кодом за 20 років, на мою думку, набагато більша, ніж ймовірність того, що я можу отримати апаратне забезпечення для читання дискети / CD / DVD. Припустимо, я це зробив у 1990 році. Зараз я навіть можу запускати програмне забезпечення з того часу у своєму браузері . Але удачі, якщо ви намагаєтеся придбати обладнання, яке дозволяє читати дискети 5 1/4 дюйма з вашим сучасним ПК.
Йозеф каже, що повернеться до Моніки

2

Ще одна відповідь на це - "офлайн", тобто зберігання його в захищеному місці та не підключеному до жодного комп'ютера. Я зберігаю повну незашифровану копію всіх моїх ключів на дискеті (я це робив уже давно, зараз це звичка) у сейфі в банку. Причина, по якій я зберігаю їх нешифрованими на носіях у банку, полягає в тому, що одним із потенційних сценаріїв "втрати" ключа є забуття прохідної фрази (мої пас фрази, як правило, мають багато дивних пунктуацій та написання, а забуття лише однієї з них робить це непридатний). Мені ніколи не довелося вдаватися до того, щоб повернути його з тієї копії, але я планую найгірше.

Крім того, в засобах масової інформації є відкликання ключа та примітка, яка вказує моїм спадкоємцям про те, що з цим робити, якщо я більше не доступний.


Якщо ви створили резервну копію приватного ключа основного підпису, чи не може це використовуватись для отримання сертифікату відкликання? У якому сценарії корисно створити резервну копію довідки про відкликання?
Матей Девід

Ага так, але ви повинні зрозуміти, що я не можу бути впевнений у тому, наскільки комп’ютерною буде людина, яка виконує запит (зверніть увагу, що не я буду користуватися ним, а "мої спадкоємці"). Отож, вже створена ануляція та вказівки "просто надіслати електронний лист із доданим файлом" є меншою ймовірністю неправильного керування.
КАРТА

@MateiDavid Генерування сертифікату відкликання, коли ви спочатку створюєте пару ключів і зберігає цей сертифікат відкликання, дозволяє вам відкликати ключ, якщо ключ вам недоступний. Існують дійсні сценарії, де це може статися. Звичайно, ви повинні дуже добре зберігати сертифікат про відкликання, тому що кожен, хто потрапить на нього, може опублікувати його, відкликаючи вашу ключову пару. Я не дуже впевнений, як сертифікат відкликання навіть застосовується до ситуації з ОП.
CVn

Так, ми опустилися в щурячу яму. Прошу вибачення, моя згадка про сертифікат відкликання була лише для повноти опису кроків, які я вживаю, і не мала нічого спільного з початковим запитанням.
КАРТА
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.