Domanda

Ho intenzione di crittografare il mio harddrive usando Luks con Arch Linux; Normalmente usi un file key o una passphrase per sbloccare i volumi crittografati, tuttavia voglio richiedere entrambi.

# 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

Il codice sopra gestisce la decrittografia di un volume, come puoi vedere controlla se il file key è valido e ritorna su passphrase se non lo è. La mia idea di aggirare questo è quella di prendere un file key e una passphrase, aggiungere i valori di quelli insieme e creare un nuovo file chiave che apre il volume. Il problema è che non so dove salvare il file, stavo pensando di salvarlo in RAM ma non so se sia possibile con 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

Il codice sopra è quello che avevo in mente, non ho provato il codice perché non ho avuto l'opportunità di farlo, ma non credo che sia abbastanza sicuro da salvare il filo chiave temporaneo sul duro.
Non conosco molto bene Bash, quindi potrebbero esserci degli errori qua e là. Ma volevo solo mostrare la mia idea di come risolvere il problema, forse chiunque può aiutarmi a farlo funzionare davvero.
È possibile archiviare il file key in RAM o ci sono altre alternative?

È stato utile?

Soluzione

Penso che quello che potresti cercare sia SHM / SHMFS o altrimenti noto come TMPFS.

Ecco un paio di link che parlano dell'utilizzo di SHM / TMPFS e su come montarlo e fissarlo

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

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

Sembra piuttosto semplice per creare una piccola partizione e usarla. Se la tua sceneggiatura creerà il supporto al volo, dovrà funzionare come root.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top