Скрипт для проверки правильности пароля базы данных сертификатов - PullRequest
0 голосов
/ 15 декабря 2009

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

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

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

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

PR

Ответы [ 2 ]

1 голос
/ 15 декабря 2009

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

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

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

0 голосов
/ 16 декабря 2009

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

read -s -p "Enter Password: " pass
if certutil -f <(echo "$pass"); then
    # Password correct, do stuff here
else
    # Password incorrect, do stuff here
fi
...