콘텐츠로 드라이브 암호화

콘텐츠로 드라이브 암호화

저는 각각 3TB의 하드 드라이브 2개를 가지고 있습니다. 첫 번째 드라이브는 매우 중요한 콘텐츠로 가득 차 있습니다. 다음 기술을 사용하여 두 번째 3TB 드라이브를 암호화했습니다.

https://www.youtube.com/watch?v=J_g-W6hrkNA

그리고 암호화되지 않은 첫 번째 드라이브의 파일을 암호화된 두 번째 드라이브에 복사합니다. 이제 첫 번째 드라이브를 암호화하고 싶습니다. 어떻게 해야 하나요? 콘텐츠가 포함되어 있으므로 드라이브 위의 링크를 사용하여 암호화하면 지워질 것이라고 가정합니까?

답변1

당신이 해야 할 일은 원본 드라이브를 안전하게 지워 암호화되지 않은 데이터를 모두 제거한 다음 암호화를 설정하고 파일을 복사하는 것입니다.

먼저, 원본 드라이브가 완전히 지워지므로 백업이 올바른지 확인해야 합니다. 다음 명령을 사용하여 드라이브를 지우십시오.

# dd if=/dev/urandom of=/dev/sdX bs=4096

sdX지우려는 드라이브는 어디에 있습니까? /dev/zero대신 urandom을 사용 /dev/urandom하는 것이 더 안전하지만 urandom이 더 오래 걸리기 때문에 사용할 수 있습니다 . 이에 대한 자세한 내용을 확인할 수 있습니다.여기. 올바른 드라이브(가능한 한 다른 드라이브)를 지워서 손상될 가능성이 없도록 하십시오.

이런 방식으로 삭제된 데이터는 복구할 수 없다는 점에 유의하세요(그게 포인트입니다).

디스크가 안전하게 지워지고 더 이상 암호화되지 않은 데이터가 남아 있지 않으면 암호화를 설정하고 데이터를 복사할 수 있습니다.

답변2

내부 암호화가 가능하지만 위험합니다. 지금까지는 삭제/포맷/mkfs하고 다른 곳의 파일로 다시 채우는 것이 더 쉽습니다.

내부 방법의 경우 먼저 파일 시스템을 축소하여 2MiB드라이브 시작 부분에 최소한 LUKS 헤더를 위한 공간을 확보해야 합니다. 안전을 위해 조금 더 작게 만드세요.

2MiB그런 다음 암호화된 컨테이너의 모든 데이터 에는 LUKS 헤더로 인해 최소한 하나의 오프셋이 있다는 점을 기억해야 합니다 . 따라서 암호화된 컨테이너에 대한 암호화되지 않은 선형 복사본은 dd각 쓰기가 아직 읽지 않은 데이터를 덮어쓰게 되므로 작동하지 않습니다.

이러한 상황을 방지하려면 복사 작업을 역방향으로 실행해야 합니다. 에서는 이에 대한 직접적인 지원이 없지만 까지 각 단계에서 1을 감소시키는 역방향 루프에서 이를 사용하여 시뮬레이션 dd할 수 있습니다 .seek=$x skip=$x count=1$x$x=0

/dev/sdx1파일 시스템이 있는 장치를 사용하는 예 ext4:

# make sure it's not mounted anywhere
umount /dev/sdx1
# backup the first 128MiB somewhere
dd bs=1M if=/dev/sdx1 of=/somewhere/sdx9.backup count=128
# shrink filesystem by 128MiB
resize2fs /dev/sdx1 $(($(blockdev --getsize64 /dev/sdx1)/1024/1024-128))M
# create encryption layer
cryptsetup luksFormat /dev/sdx1
cryptsetup luksOpen /dev/sdx1 luksx1
# dd backwards using GiBs of memory. Change math and bs for less memory usage.
for x in $(seq $(($(blockdev --getsize64 /dev/sdx1)/1024/1024/1024+1)) -1 0)
do
    dd bs=1G iflag=fullblock seek=$x skip=$x count=1 \
       if=/dev/sdx1 of=/dev/mapper/luksx1
done
# include backup for region previously overwritten by LUKS header
dd bs=1M if=/somewhere/sdx9.backup of=/dev/mapper/luksx1
# grow filesystem to full size
resize2fs /dev/mapper/luksx1

이를 수행하기 전에 임시 장치로 프로세스를 테스트하십시오.

어느 시점에서든 프로세스가 취소되면 반 암호화된 내용으로 끝나게 되므로 원인이 거의 손실됩니다.

일부 프런트엔드는 거의 동일한 접근 방식을 사용합니다. cryptsetup재암호화 절차 자체가 있거나 행운을 시험해 볼 수도 있습니다.http://www.johannes-bauer.com/linux/luksipc/. 나는 그것이 어떻게 작동하고 어떤 문제가 발생할 수 있는지 이해하기 때문에 수동 방법을 선호합니다.

관련 정보