2009-12-15 1 views
0

Я пытаюсь написать процедуру bash, которая проверяет, является ли вход пользователя правильным паролем для моей базы данных сертификатов.Скрипт для проверки правильности пароля базы данных сертификата

Первоначально я предполагал, что сначала выполнил бы доброкачественную операцию certutil или pk12util в базе данных сертификатов, которая требовала бы пароля. Затем проверьте код возврата, чтобы убедиться, что он был успешным.

Однако аргумент пароля certutil принимает файл паролей (что нежелательно). Я мог бы использовать pk12util для экспорта certifcate и частного ключа для тестирования (не очень довольны дополнительными файлами pk12, лежащими вокруг).

Любые предложения других методов для проверки пароля базы данных?

PR

ответ

1

файл паролей Используйте CertUtil наряду с mktemp(1). Это создает временный файл, который только читается текущим пользователем (который должен быть тем же человеком, который уже знает пароль).

Также добавьте в скрипт trap "rm $tmpfile" EXIT, чтобы убедиться, что пароль удаляется при выходе сценария по любой причине.

Если это еще недостаточно безопасно, вы должны написать небольшую программу на C, которая работает с БД сертификата.

0

Пробуйте использовать Process Substitution. Пример

read -s -p "Enter Password: " pass 
if certutil -f <(echo "$pass"); then 
    # Password correct, do stuff here 
else 
    # Password incorrect, do stuff here 
fi 
Смежные вопросы