Погравши з #YubiHSM близько 4 повних днів, я в повній мірі задоволений вибором! 😁 Тим не менш, він також не дотягує в ряді місць, тому ваш пробіг може відрізнятися (також у деяких місцях, де мені було потрібно, щоб він не дотягнув). 🧵
У чому він абсолютно блищить, так це в його можливостях і відносній елегантності та простоті використання. На відміну від YubiKey, де ви спілкуєтеся з пристроєм безпосередньо, HSM зазвичай розкривається через веб-сервер, що взаємодіє з ним. Це дозволяє використовувати HSM віддалено (з проблемами gnarly opsec).
Yubico надає оболонку CLI, яка може говорити на YubiHSM, що приємно, тому що ви можете відразу ж почати роботу (ви дійсно не хочете використовувати тут свій власний протокол). З іншого боку, це... а не той гучний CLI, до якого ми звикли сьогодні. У нього багато технологічних боргів і піших гармат.
На жаль, YubiHSM не так поширені, тому бібліотеки інтерфейсів з інших мов майже не існують. Yubico робить пітона, тому ви або котите з цим, або падаєте назад до оболонки... Тільки пам'ятайте про пістолети.
Моя основна проблема з футгартами – це "ой, я підписав щось недійсне". Ну так, ой, тому що ви ніколи не зможете пояснити цей запис в журналі аудиту або довести, що ви підписали (в основному тому, що ви навіть не будете знати або не зможете це довести). Що веде нас до поганого: аудиту.
YubiHSM рекламує себе, маючи підписаний журнал аудиту із захистом від несанкціонованого доступу. Ну, підписана частина виявилася маркетинговою, вона не підписана. Журнал аудиту *є* хеш-посиланням, на жаль, без підпису він також непридатний для автономного аудиту, оскільки будь-який журнал може бути підроблений і хешований.
Єдиний спосіб провести аудит YubiHSM - це мати живе з'єднання з ним. Це пов'язано з тим, що ви можете довести, що ви підключені до Yubico HSM (за допомогою підписаних сертифікатів), тому якщо ви довіряєте Yubico та їхньому обладнанню HSM, то коли він каже, що він має хеш H, ви вірите в це. Але це інтерактивно.
Іншим недоліком є те, що журнал аудиту містить лише операції, які він виконував, але не містить даних. Це до певної міри зрозуміло, але також робить логи набагато менш корисними: ваш скрипт зациклився 10 разів і підписав порожній рядок? Що ж, є 10 можливостей для зловмисних підписів.
Крім того, принаймні на даний момент, я не знайшов способу продемонструвати аудитору, що конкретний ключ *є* на пристрої. Якщо ви надасте аудитору доступ до атестації ваших ключів, то так, це працює, але це просто здається неправильним. Без цього я можу лише довести, що *в якийсь момент у мене були ключі*.
Мій особистий біль пов'язаний з тим, що я хочу створити звіт про прозорість для свого @dark_dot_bio проекту, що здається напівнеможливим з YubiHSM. Якщо ваша модель загроз призначена для захисту ключів від зловмисників, YubiHSM ідеально підходить. Якщо ви хочете продемонструвати відсутність неправильного використання, але удача.
В цілому, здається, що немає кращого продукту на ринку в ціновому діапазоні, який я дійсно можу собі дозволити, тому YubiHSM доведеться зробити, але будь-хто, хто вивчає це, майте на увазі, що можливість аудиту передбачає *велику* довіру, якої можна було б уникнути, просто не було. Фіст.
2,39K