Поиграв с #YubiHSM около 4 полных дней, я довольно доволен выбором! 😁 Тем не менее, он также не дотягивает в ряде мест, так что ваш опыт может отличаться (также в некоторых местах, где мне нужно было, чтобы он не подводил). 🧵
Где он действительно выделяется, так это в своих возможностях, относительной элегантности и простоте использования. В отличие от YubiKey, с которым вы общаетесь напрямую, HSM обычно доступен через веб-сервер, который с ним взаимодействует. Это позволяет использовать HSM удаленно (с учетом сложных вопросов операционной безопасности).
Yubico предоставляет оболочку CLI, которая может взаимодействовать с YubiHSM, что приятно, потому что вы можете начать сразу (вам действительно не нужно разрабатывать свой собственный протокол здесь). С другой стороны, это... не тот высокопрофильный CLI, к которому мы привыкли в наши дни. У него много технического долга и подводных камней.
К сожалению, YubiHSM не так распространены, поэтому интерфейсные библиотеки на других языках практически отсутствуют. Yubico предоставляет поддержку для Python, так что вам либо придется использовать это, либо вернуться к командной строке... просто не забывайте о подводных камнях.
Моя основная проблема с "футганами" заключается в том, что "упс, я подписал что-то недействительное". Ну да, упс, потому что вы никогда не сможете объяснить эту запись в журнале аудита или доказать, что вы подписали (в основном потому, что вы даже не будете знать или не сможете это доказать). Что приводит нас к плохому: аудиту.
YubiHSM хвастается наличием защищенного от подделки подписанного аудита. Однако, часть о подписании оказалась маркетингом, он не подписан. Аудит-лог *связан* хешем, к сожалению, без подписи он также бесполезен для оффлайн-аудита, так как любой лог может быть подделан и захеширован.
Единственный способ провести аудит YubiHSM — это иметь к нему активное подключение. Это связано с тем, что вы можете доказать, что вы подключены к Yubico HSM (через подписанные сертификаты), поэтому, если вы доверяете Yubico и их аппаратному обеспечению HSM, то, когда он говорит, что находится на хэше H, вы этому верите. Но это интерактивно.
Другим недостатком является то, что журнал аудита содержит только выполненные операции, но не данные. Это в какой-то степени понятно, но также делает журналы гораздо менее полезными: ваш скрипт выполнил 10 циклов и подписал пустую строку? Что ж, это 10 возможностей для злонамеренных подписей.
Кроме того, по крайней мере на данный момент, я не нашел способа продемонстрировать аудитору, что конкретный ключ *находится* на устройстве. Если вы предоставите аудитору доступ к подтверждению ваших ключей, тогда да, это работает, но это просто кажется неправильным. Без этого я могу только доказать, что *в какой-то момент у меня были ключи*.
Моя личная боль заключается в том, что я хочу создать отчет о прозрачности для моего проекта @dark_dot_bio, что кажется полупрактически невозможным с YubiHSM. Если ваша модель угроз заключается в защите ключей от злонамеренных действий, то YubiHSM идеально подходит. Если вы хотите продемонстрировать отсутствие злоупотреблений, то удачи.
В целом, похоже, что на рынке нет лучшего продукта в ценовом диапазоне, который я могу себе позволить, так что YubiHSM придется использовать, но всем, кто рассматривает его, будьте осторожны, возможность аудита предполагает *много* доверия, которого можно было бы избежать, но этого просто не произошло. Фин.
2,37K