Oracle® Solaris 11.2의 ZFS 파일 시스템 관리

인쇄 보기 종료

업데이트 날짜: 2014년 12월
 
 

ZFS 파일 시스템 암호화

암호화는 개인 정보 보호를 위해 데이터가 인코딩되는 프로세스이며 데이터 소유자가 인코딩된 데이터에 액세스하려면 키가 필요합니다. ZFS 암호화를 사용할 경우 다음과 같은 이점이 있습니다.

  • ZFS 암호화는 ZFS 명령 세트와 통합됩니다. 다른 ZFS 작업과 마찬가지로 키 변경 및 rekey와 같은 암호화 작업은 온라인으로 수행됩니다.

  • 기존 저장소 풀은 업그레이드하여 사용할 수 있습니다. 특정 파일 시스템을 암호화할 수도 있습니다.

  • CCM 및 GCM 작업 모드에서 키 길이 128, 192 및 256으로 AES(Advanced Encryption Standard)를 사용하여 데이터가 암호화됩니다.

  • ZFS 암호화는 암호화 알고리즘의 사용 가능한 하드웨어 가속 또는 최적화된 소프트웨어 구현에 자동으로 액세스할 수 있게 하는 Oracle Solaris Cryptographic Framework를 사용합니다.

  • 현재까지는 개별 파일 시스템이더라도 /var 디렉토리와 같은 다른 OS 구성 요소 또는 ZFS 루트 파일 시스템을 암호화할 수 없습니다.

  • ZFS 암호화는 종속 파일 시스템에 상속될 수 있으며,

  • create, mount, keysource, checksumencryption 권한이 지정된 일반 사용자는 암호화된 파일 시스템을 만들고 키 작업을 관리할 수 있습니다.

ZFS 파일 시스템을 만들 때 암호화 정책을 설정할 수 있지만 정책을 변경할 수는 없습니다. 예를 들어, tank/home/darren 파일 시스템은 암호화 등록 정보를 사용으로 설정하여 생성됩니다. 기본 암호화 정책은 문장암호를 입력하는 프롬프트를 표시하는 것입니다. 문장암호는 최소 8자여야 합니다.

# zfs create -o encryption=on tank/home/darren
Enter passphrase for 'tank/home/darren': xxxxxxx
Enter again: xxxxxxxx

파일 시스템에 암호화가 사용으로 설정되었는지 확인합니다. 예를 들면 다음과 같습니다.

# zfs get encryption tank/home/darren
NAME              PROPERTY    VALUE        SOURCE
tank/home/darren  encryption  on           local

파일 시스템의 암호화 값이 on일 경우 기본 암호화 알고리즘은 aes-128-ccm입니다.

래핑 키는 실제 데이터 암호 키를 암호화하는 데 사용됩니다. 래핑 키는 위 예와 같이 암호화된 파일 시스템을 만들 때 zfs 명령에서 커널로 전달됩니다. 래핑 키는 파일에 raw 또는 hex 형식으로 포함되어 있거나 문장암호에서 파생됩니다.

래핑 키의 형식과 위치는 다음과 같이 keysource 등록 정보에 지정됩니다.

keysource=format,location
  • 형식은 다음 중 하나입니다.

    • raw – 원시 키 바이트입니다.

    • hex – 16진수 키 문자열입니다.

    • passphrase – 키를 생성하는 문자열입니다.

  • 위치는 다음 중 하나입니다.

    • prompt – 파일 시스템을 만들거나 마운트할 때 키 또는 문장암호를 묻는 메시지가 표시됩니다.

    • file:///filename – 파일 시스템의 키 또는 문장암호 파일 위치입니다.

    • pkcs11 – PKCS#11 토큰에서 키 또는 문장암호의 위치를 설명하는 URI입니다.

    • https://location – 보안 서버의 키 또는 문장암호 파일 위치입니다. 이 방법을 사용하여 키 정보를 일반 텍스트 상태로 전송하는 것은 권장되지 않습니다. URL에서 GETkeysource 등록 정보의 형식으로 요청된 사항에 따라 키 값 또는 문장암호를 반환합니다.

      keysource에 대해 https:// 로케이터를 사용할 때 서버가 제공하는 인증서는 libcurl 및 OpenSSL로 신뢰되는 인증서여야 합니다. 고유한 신뢰 앵커 또는 자체 서명된 인증서를 /etc/openssl/certs의 인증서 저장소에 추가합니다. PEM 형식 인증서를 /etc/certs/CA 디렉토리에 두고 다음 명령을 실행합니다.

      # svcadm refresh ca-certificates

keysource 형식이 passphrase인 경우 래핑 키가 문장암호에서 파생됩니다. 그렇지 않으면 keysource 등록 정보 값이 원시 바이트나 16진수 형식으로 실제 래핑 키를 가리킵니다. 문장암호를 파일에 저장하거나 확인 메시지가 표시되는 원시 바이트 스트림에 저장하도록 지정할 수 있습니다. 후자의 경우 대체로 스크립팅에만 적합합니다.

파일 시스템의 keysource 등록 정보 값이 passphrase를 식별하는 경우 래핑 키는 PKCS#5 PBKD2 및 파일 시스템별 임의 생성된 salt를 사용하여 문장암호에서 파생됩니다. 즉, 종속 파일 시스템에서 사용할 경우 동일한 문장암호가 다른 래핑 키를 생성합니다.

파일 시스템의 암호화 정책은 종속 파일 시스템에 상속되며 제거할 수 없습니다. 예를 들면 다음과 같습니다.

# zfs snapshot tank/home/darren@now
# zfs clone tank/home/darren@now tank/home/darren-new
Enter passphrase for 'tank/home/darren-new': xxxxxxx
Enter again: xxxxxxxx
# zfs set encryption=off tank/home/darren-new
cannot set property for 'tank/home/darren-new': 'encryption' is readonly

암호화 또는 암호화 해제된 ZFS 파일 시스템을 복사하거나 마이그레이션해야 하는 경우 다음 사항을 고려해 보십시오.

  • 현재 수신 풀의 데이터 세트에 암호화가 사용으로 설정된 경우에도 암호화 해제된 데이터 세트 스트림을 보내고 암호화된 스트림으로 받을 수 없습니다.

  • 다음 명령을 사용하여 암호화 해제된 데이터를 암호화가 사용으로 설정된 풀/파일 시스템에 마이그레이션할 수 있습니다.

    • cp –r

    • find | cpio

    • tar

    • rsync

  • 복제된 암호화된 파일 시스템 스트림을 암호화된 파일 시스템으로 수신할 수 있으며 데이터가 암호화된 상태로 유지됩니다. 자세한 내용은 Example 5–4를 참조하십시오.