質問

Arch Linuxを使用してLuksを使用してハードドライブを暗号化します。通常、キーファイルまたはパスフレーズのいずれかを使用して、暗号化されたボリュームのロックを解除しますが、両方が必要です。

# If keyfile exists, try to use that
if [ -f ${ckeyfile} ]; then
    if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
        dopassphrase=0
    else
        echo "Invalid keyfile. Reverting to passphrase."
    fi
fi
# Ask for a passphrase
if [ ${dopassphrase} -gt 0 ]; then
    echo ""
    echo "A password is required to access the ${cryptname} volume:"

    #loop until we get a real password
    while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
        sleep 2;
        done
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
        if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
            export root="/dev/mapper/root"
        fi
    else
        err "Password succeeded, but ${cryptname} creation failed, aborting..."
        exit 1
    fi

上記のコードは、ボリュームの復号化を処理します。キーファイルが有効かどうかをチェックし、そうでない場合はパスフレーズに戻ることがわかります。これを回避する私の考えは、キーファイルとパスフレーズを取り、それらの値を一緒に追加し、ボリュームを開く新しいキーファイルを作成することです。問題は、ファイルをどこに保存するかわからないこと、RAMに保存することを考えていたが、それがBashで可能かどうかはわかりません。

if  poll_device "${cryptdev}" ${rootdelay}; then
    if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
        [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
        if [ -f ${ckeyfile} ]; then
            bool=true
            while $bool; then
                echo "Enter passphrase: "
                read passphrase
                tmpkey="tmpkeyfile"
                cp ${ckeyfile} ${tmpkey} #Create a temporary keyfile
                echo passphrase >> ${tmpkey} #Add the passphrase to the keyfile
                if eval /sbin/cryptsetup --key-file ${tmpkey} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
                    bool=false

上記のコードは私が念頭に置いていたものです。私は機会がなかったのでコードを試していませんが、ハードドライブの一時的なキーファイルを保存するのに十分安全ではないと思います。
私はバッシュをあまりよく知らないので、あちこちにいくつかのエラーがあるかもしれません。しかし、私は問題を解決する方法についての自分の考えを見せたかっただけです。おそらく、誰でも実際にそれを機能させるのを助けることができます。
キーファイルをRAMに保存することは可能ですか、それとも他の選択肢がありますか?

役に立ちましたか?

解決

あなたが探しているのはSHM / SHMFS、またはTMPFSとして知られていると思います。

shm / tmpfsの使用とそれをマウントして保護する方法について説明するいくつかのリンクを以下に示します

http://www.cyberciti.biz/tips/what-is-devshm-ind-its-practical-usage.html

https://wiki.archlinux.org/index.php//dev/shm

自分自身を小さなパーティションで作成して使用するのは非常に簡単なようです。スクリプトがその場でマウントを作成する場合、ルートとして実行する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top