Question

Je vais chiffrer mon disque dur avec LUKS avec Arch Linux; Normalement, vous utilisez soit un fichier de clés ou un mot de passe pour déverrouiller des volumes chiffrés, mais je veux exiger à la fois.

# 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

Le code ci-dessus gère le déchiffrement d'un volume, comme vous pouvez le voir vérifie si le fichier clé est valide et revient à passphrase si ce n'est pas. Mon idée de se déplacer est de prendre KeyFile et un mot de passe, ajouter les valeurs de ces ensemble et créer un nouveau fichier clé qui ouvre le volume. Le problème est que je ne sais pas où enregistrer le fichier, je l'ai pensé à sauver dans la RAM, mais je ne sais pas si cela est possible avec 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

Le code ci-dessus est ce que j'avais à l'esprit, je n'ai pas essayé le code comme je l'ai pas eu l'occasion, mais je ne pense pas qu'il est assez sûr pour juste sauver KeyFile temporaire sur le disque dur. < br> Je ne sais pas bash très bien, donc il pourrait y avoir quelques erreurs ici et là. Mais je voulais juste montrer mon idée de la façon de résoudre le problème, peut-être quelqu'un peut me aider à obtenir réellement travailler.
Est-il possible de stocker le fichier clé dans la RAM, ou y at-il d'autres alternatives?

Était-ce utile?

La solution

Je pense que ce que vous cherchez peut-être est SHM / shmfs, ou autrement connu sous le nom tmpfs.

Voici quelques liens qui parlent en utilisant SHM / tmpfs et comment le monter et le fixer

http: //www.cyberciti. biz / conseils / what-is-devshm-et-son-pratique-usage.html

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

Il semble assez simple avant de vous créer une petite partition et de l'utiliser. Si votre script va créer le monter à la volée, il devra fonctionner en tant que root.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top