Чи існує таке поняття, як підписаний ключ SSH?


9

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

Отже, я створив ключ, використовуючи ssh-keygen і подав свій відкритий ключ для вставки у файл дозволеного_кейса віддаленого хоста. Однак це відхилило ІТ-безпека, яка сказала, що вона створить для мене ключ, і надішле мені приватний ключ. Причина: "Нам потрібні ключі SSH для підпису групи з безпеки ІТ. Це означає, що ми маємо певну роль у відстеженні та підзвітності".

Очевидно, у мене з цим проблеми. Маючи приватний ключ, згенерований кимось іншим, означає, що я можу змусити цю людину маскуватися як мене, не знаючи мене. Я намагаюся знайти способи спростувати цей аргумент.

Наскільки я можу google, начебто не відомий спосіб підписати ключі таким чином, щоб це допомагало відстежувати особу, яка ввійшла в систему. Той факт, що я представив свій відкритий ключ, означає, що я є власником ключа, а хтось, хто входить на віддалений сервер за допомогою цього ключа, за замовчуванням ідентифікується як я. Як підписання допоможе? І як би вони все-таки підписали?

Хтось, будь ласка, підкаже мене, якщо я помиляюся, дякую!


Гаразд, тепер, коли ми визначили, що неможливо підписати ключі SSH, мені потрібно показати ІТ-безпеці, як вони насправді можуть відслідковувати, хто входив у систему (я повинен бути конструктивним, мабуть, якщо не високої якості ). На власному сервері я встановив LogLevel sshd на DEBUG. Тож тепер, коли я входжу в систему, я бачу такий фрагмент:

Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx

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

debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1

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

Дякую!


2
Можливо, вони роздрукують ключі, підпишуть їх (на папері) і потім подадуть у файл?
innaM

Хеш-значення, яке ви отримуєте, швидше за все, так званий відбиток ключа. Рекомендую ознайомитись з посібником по відкриттю, як можна перелічити ці відбитки пальців.
Niels Basjes

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

Відповіді:


13

За час, коли ви задали своє питання, Всесвіт змінилася.

Openssh5.4 додав підтримку саме тих сертифікатів, якими ви були після. Дивіться примітки до випуску на веб- сайті http://www.openssh.org/txt/release-5.4 (та довідкові сторінки) для отримання додаткової інформації, або якщо ви дійсно хочете бути божевільним, подивіться на PROTOCOL.certkeys для деталей горі.


Щойно побачив це через дуже довгий час ... здається законним :) Спробую, спасибі!
feicipet

8

Перше моє враження, читаючи ваше запитання, полягає в тому, що ІТ-особа змішала SSH та SSL (він повинен бути підписаний нами), а також не розуміє, як підпис SSL насправді працює.

У будь-якому разі немає можливості підписати ключ SSH (що я знаю).


+1 ви не можете підписувати ssh ключі так само, як ви можете підписувати PGP або SSL сертифікати. Я б шукав роз'яснення у них.
Девід Пашлі

4

Щось невірно в цьому запиті.

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

  1. Ви створюєте для себе пару ключів (називайте цей мій ключ)
    • Коли ви хочете щось надіслати,
    • ви спочатку зашифруєте його my-key-private
    • потім завантажив на сервер цей зашифрований файл
    • Хтось із серверів повинен змінити процес, наприклад,
    • вони використовують ваше my-key-pub код для розшифрування файлу
    • якщо ви надіслали файл, розшифровка відновить його
    • інакше вони не отримають жодного корисного файла
    • фактично, ви підписали файл своїм приватним ключем
    • вони підтвердили підпис за допомогою вашого відкритого ключа
    • відповідальність здійснюється ними, підтверджуючи, що ви надіслали файл

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


Це вступні питання, які ви можете задати своїм ІТ.
Якщо підзвітність - це турбота про ІТ,

  1. Як вони переконуються, що ви не ділитесь / не втрачаєте пару ключів, яку вам дали? і,
    • Чим ця концепція пари ключів від ІТ відрізняється від пароля, який вам дав ІТ.
      Навіщо взагалі турбуватися про пари ключів.

Ви думаєте про PGP / GnuPG для шифрування файлів. У цьому випадку підпис ключа є нормальним. Оригінальне питання стосується ключів SSH. Було б сенс, якби вони просили PGP-підписаний / зашифрований PGP-ключ (після перевірки та підпису PGP-ключів один одного).
пг

@pgs, я намагаюся побачити, на що тут спрямований ІТ-людина.
nik

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

@feicipet, коли тактичні - це те, де мої останні мої моменти допоможуть тобі.
nik

@feicipet, ваша мета полягає в тому, щоб, нарешті, змусити їх усвідомити мінімум, який вони повинні зробити для правильного досягнення своїх намірів.
nik

2

Немає причин, щоб ви не могли використовувати сертифікати X.509 для автентифікації SSH замість голих клавіш - насправді я б хотів би цього, якби OpenSSH працював таким чином! Але, біржової версії OpenSSH немає, і це домінуюча реалізація в наші дні.

Я бачив кілька виправлених версій OpenSSH, що плавають навколо, і комерційна реалізація SSH.com також підтримує аутентифікацію X.509. Отже, якщо ваша організація використовує одне із цих, вимагати, щоб ключі були підписані центральним органом, було б багато сенсу.

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

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