파일 시스템 암호화

Encrypting File System

Microsoft Windows의 EFS(Encrypting File System)는 NTFS 버전[1] 3.0에서 도입된 기능으로 파일 시스템 수준의 암호화를 제공합니다.이 기술을 통해 파일을 투명하게 암호화하여 컴퓨터에 물리적으로 액세스할 수 있는 공격자로부터 기밀 데이터를 보호할 수 있습니다.

EFS는 Windows 2000 이상[2]홈 버전(아래 지원되는 운영 체제 참조)을 제외한 모든 버전의 Windows에서 사용할 수 있습니다.기본적으로 파일은 암호화되지 않지만 사용자는 파일 단위, 디렉토리 단위 또는 드라이브 단위로 암호화를 활성화할 수 있습니다.일부 EFS 설정은 Windows 도메인 [3]환경에서 그룹 정책을 통해 필수화할 수도 있습니다.

다른 운영 체제에 대한 암호화 파일 시스템 구현을 사용할 수 있지만 Microsoft EFS는 이러한 [4]운영 체제와 호환되지 않습니다.암호화 파일 시스템 목록도 참조하십시오.

기본 아이디어

운영체제가 파일 암호화 없이 시스템에서 실행되고 있는 경우 일반적으로 파일에 대한 액세스는 OS가 제어하는 사용자 인증액세스 제어 목록을 통과합니다.그러나 공격자가 컴퓨터에 물리적으로 접근할 수 있게 되면 이 장벽을 쉽게 우회할 수 있습니다.예를 들어 디스크를 분리하여 파일 시스템을 읽을 수 있는 OS가 설치된 다른 컴퓨터에 설치하는 방법이나 로컬 파일 시스템에 액세스하기에 적합한 OS가 포함된 부팅 CD에서 컴퓨터를 재부팅하는 방법 등이 있습니다.

가장 널리 받아들여지고 있는 솔루션은 물리 미디어(디스크, USB 펜 드라이브, 테이프, CD 등)에 암호화된 파일을 저장하는 것입니다.

Microsoft Windows 운영 체제 제품군에서는 EFS가 NTFS 드라이브에서만 이 방법을 사용할 수 있으며, 공개암호화와 대칭암호화함께 사용하여 올바른 키가 없으면 파일을 해독하기가 매우 어렵습니다.

그러나 EFS의 암호화 키는 실제로 사용자 계정 암호에 의해 보호되므로 대부분의 암호 공격에 취약하다.즉, 파일의 암호화는 암호 해독 키를 잠금 해제하기 위한 암호만큼 강력합니다.

작동

파일 시스템 암호화 동작

EFS는 파일 암호화 키(FEK)라고도 하는 대량 대칭 키를 사용하여 파일을 암호화하여 작동합니다.비대칭 키 암호를 사용하는 경우보다 대량의 데이터를 암호화 및 복호화하는 데 시간이 적게 걸리기 때문에 대칭 암호화 알고리즘을 사용합니다.사용되는 대칭 암호화 알고리즘은 운영 체제의 버전 및 구성에 따라 달라집니다. 아래의 Windows 버전에서 사용되는 알고리즘을 참조하십시오.그런 다음 FEK(파일 암호화에 사용되는 대칭 키)는 파일을 암호화한 사용자와 관련된 공개 키로 암호화되고 이 암호화된 FEK는 암호화된 파일의 $[5]EFS 대체 데이터 스트림에 저장됩니다.파일의 암호를 해독하기 위해 EFS 구성 요소 드라이버는 EFS 디지털 인증서(파일 암호화에 사용됨)와 일치하는 개인 키를 사용하여 $EFS 스트림에 저장된 대칭 키를 해독합니다.그런 다음 EFS 구성 요소 드라이버는 대칭 키를 사용하여 파일을 해독합니다.암호화 및 복호화 조작은 NTFS보다 낮은 레이어에서 실행되므로 사용자와 모든 애플리케이션에 대해 투과적입니다.

파일 시스템에 의해 내용이 암호화되는 폴더에는 암호화 속성이 표시됩니다.EFS 구성 요소 드라이버는 이 암호화 속성을 NTFS의 파일 사용 권한 상속과 유사한 방식으로 처리합니다. 폴더가 암호화되도록 표시된 경우 기본적으로 폴더 아래에 생성된 모든 파일 및 하위 폴더도 암호화됩니다.암호화된 파일을 NTFS 볼륨 내에서 이동해도 파일은 암호화된 상태로 유지됩니다.다만, 유저가 명시적으로 Windows 에 요구하지 않고, 파일의 복호화를 실시할 수 있는 경우는, 몇개인가 있습니다.

파일 및 폴더는 FAT32와 같은 다른 파일 시스템으로 포맷된 볼륨에 복사되기 전에 복호화됩니다.마지막으로 SMB/CIFS 프로토콜을 사용하여 암호화된 파일을 네트워크를 통해 복사하면 파일을 네트워크를 통해 전송하기 전에 복호화됩니다.

복사 시 복호화를 방지하는 가장 중요한 방법은 "Raw" API를 인식하는 백업 애플리케이션을 사용하는 것입니다.이러한 Raw API를 구현한 백업 애플리케이션은 암호화된 파일 스트림과 $EFS 대체 데이터 스트림을 단일 파일로 복사하기만 하면 됩니다.즉, 파일은 암호화된 형식으로 "복사"(예: 백업 파일에 복사)되며 백업 중에 복호화되지 않습니다.

Windows Vista 에서는, 유저의 개인 키를 스마트 카드에 보존할 수 있습니다.DRA(데이터 리커버리 에이전트) 키도 스마트 [6]카드에 보존할 수 있습니다.

보안.

취약성

Windows 2000 EFS에는 두 가지 중요한 보안 취약성이 존재했으며, 그 이후로 다양한 대상이 되었다.

Windows 2000에서는 로컬 관리자가 기본 Data Recovery Agent로, 로컬 사용자가 EFS로 암호화된 모든 파일의 암호를 해독할 수 있습니다.Windows 2000의 EFS는 복구 에이전트 없이는 작동할 수 없기 때문에 사용자의 암호화된 파일을 해독할 수 있는 사용자가 항상 있습니다.도메인에 가입되어 있지 않은 Windows 2000 컴퓨터는 로컬 관리자 계정을 인계받을 수 있는 모든 사람에 의해 승인되지 않은 EFS 복호화에 노출될 수 있습니다. [7]이는 인터넷에서 자유롭게 사용할 수 있는 많은 도구를 고려할 때 매우 중요합니다.

윈도우즈 XP 이상에서는 기본 로컬 Data Recovery Agent가 없으며 이를 사용할 필요가 없습니다.SYSKEY를 모드2 또는 3(부팅 시 입력된 Syskey 또는 플로피 디스크에 저장됨)으로 설정하면 로컬 관리자 계정을 통한 부정 복호화의 위험이 줄어듭니다.이는 SAM 파일에 저장되어 있는 로컬 사용자의 패스워드 해시가 Syskey로 암호화되어 Syskey 패스프레이즈/플로피가 없는 오프라인 공격자가 Syskey 값을 사용할 수 없기 때문입니다.

암호 재설정을 통한 개인 키 액세스

Windows 2000에서는 사용자의 RSA 개인 키가 완전히 암호화된 형태로 저장될 뿐만 아니라 사용자의 RSA 개인 키가 더 약하게 보호되는 백업도 있습니다.공격자가 Windows 2000 컴퓨터에 물리적으로 액세스하고 로컬 사용자 계정의 [7]암호를 재설정하면 공격자는 해당 사용자(또는 복구 에이전트)로 로그인하여 모든 파일을 암호 해독할 수 있는 RSA 개인 키에 액세스할 수 있습니다.이는 사용자의 RSA 개인 키 백업이 LSA 암호로 암호화되기 때문입니다. LSA 암호는 LocalSystem에 대한 로그인을 높일 수 있는 모든 공격자가 액세스할 수 있습니다(인터넷 상에 있는 수많은 도구에 의해 제공되는 간단한 정보).

Windows XP 이후에서는 사용자의 RSA 개인 키는 패스워드 리셋디스크(Windows XP가 도메인의 멤버가 아닌 경우) 또는 Active Directory(Windows XP가 도메인의 멤버인 경우) 중 하나에 저장되어 있는 오프라인 공개 키를 사용하여 백업됩니다.즉, Windows XP를 Local System으로 인증할 수 있는 공격자는 PC의 하드 드라이브에 저장된 복호화 키에 액세스할 수 없습니다.

Windows 2000, XP 이후에서는 사용자의 RSA 개인 키는 사용자의 NTLM 비밀번호 해시 및 사용자 이름을 사용하여 암호화됩니다. 소금에 절인 해시를 사용하면 프로세스를 되돌리고 사용자의 패스프레이즈를 모르는 상태에서 개인 키를 복구하기가 매우 어렵습니다.또한 시스템 키를 모드 2 또는 3(부팅 시 입력된 시스템 키 또는 플로피 디스크에 저장됨)으로 설정하면 로컬 사용자의 비밀번호 해시가 SAM 파일에 암호화되어 저장되므로 이 공격이 완화됩니다.

기타 문제

사용자가 성공적으로 로그온하면 자신의 EFS 암호화된 데이터에 액세스할 때 추가 인증이 필요하지 않으며 암호 해독이 투명하게 수행됩니다.따라서 사용자의 암호가 손상되면 해당 데이터에 자동으로 액세스하게 됩니다.Windows 에서는 사용자 계정 패스프레이즈의 버전을 되돌릴 수 있는 암호화로 저장할 수 있습니다.단, 디폴트 동작은 더 이상 아닙니다.또한 로컬 사용자 계정 패스프레이즈의 해시를 저장하도록 설정할 수도 있습니다(또한 Windows XP 이전 버전에서는 디폴트로 저장됨).이 로컬 사용자 계정 패스프레이즈의 해시는 공격받을 수 있습니다.또한 로컬 사용자 계정 암호 구문을 NTLM 해시로 저장하므로 암호가 약한 경우 "무지개 테이블"을 사용하여 쉽게 공격할 수 있습니다(Windows Vista 이후 버전에서는 기본적으로 취약한 암호가 허용되지 않음).로컬 패스프레이즈에 대한 사소한 brute-force 공격의 위협을 완화하려면 이전 버전의 Windows를 (그룹 정책의 [Security Settings]부분을 사용하여) LM 해시를 저장하지 않도록 설정해야 합니다.또, 물론, Autologon(일반 텍스트패스프레이즈를 레지스트리에 보존)을 netable로 하지 않도록 설정할 필요가 있습니다.또한 14자를 초과하는 로컬 사용자 계정 암호를 사용하면 Windows가 SAM에 LM 해시를 저장하지 않고 NTLM 해시에 대한 브루트 포스 공격을 더 어렵게 만들 수 있습니다.

일반 텍스트 파일을 암호화된 파일로 변환할 때 EFS를 사용하여 파일을 암호화할 때 일반 텍스트 파일은 지워지지 않고 단순히 삭제됩니다(즉, 파일 시스템에서 "사용 중이 아님"으로 플래그가 지정된 데이터 블록).즉, 예를 들어 TRIM을 지원하는 SSD에 저장되지 않는 한 덮어쓰지 않는 한 쉽게 복구할 수 있습니다.EFS에 대한 알려진 어려운 기술 공격을 완전히 완화하려면 암호화를 폴더 수준에서 구성해야 합니다(이러한 디렉터리에 생성된 Word 문서 백업과 같은 모든 임시 파일도 암호화되도록 함).개별 파일을 암호화할 때는 암호화된 폴더에 복사하거나 "제자리" 암호화한 후 디스크 볼륨을 안전하게 삭제해야 합니다.Windows Cipher 유틸리티는 (/W 옵션과 함께) 삭제된 평문 파일이 포함된 빈 영역을 삭제하기 위해 사용할 수 있습니다.다양한 서드파티 유틸리티도 사용할 수 있습니다.[8]

관리자 권한을 얻을 수 있는 모든 사용자는 Data Recovery 에이전트 구성을 덮어쓰거나 재정의하거나 변경할 수 있습니다.예를 들어 공격자가 (서드파티 도구를 사용하여) 관리자 계정을 해킹하고 원하는 DRA 인증서를 Data Recovery 에이전트로 설정하고 대기할 수 있기 때문에 이는 매우 심각한 문제입니다.이것은 2단계 공격이라고 불리기도 합니다.이것은 PC의 분실이나 도난에 의한 위험과는 크게 다른 시나리오이지만 악의적인 내부자에 의한 위험이 강조됩니다.

이러한 공격의 첫 단계 이후 사용자가 파일을 암호화하면 FEK는 지정된 DRA의 공개 키로 자동으로 암호화됩니다.공격자는 이후 모든 EFS 암호화 파일에 대한 전체 액세스 권한을 얻으려면 Administrator로 컴퓨터에 한 번만 더 액세스하면 됩니다.공격자는 암호화된 파일을 오프라인으로 백업하고 다른 곳에서 복원하며 DRA의 개인 키를 사용하여 파일을 해독할 수 있으므로 Syskey 모드 2 또는 3을 사용해도 이 공격으로부터 보호되지 않습니다.이러한 악의적인 내부자가 컴퓨터에 물리적으로 접근할 수 있는 경우 모든 보안 기능은 무관하다고 간주됩니다.이는 루트킷, 소프트웨어 또는 하드웨어 키로거 등을 컴퓨터에 설치할 수 있기 때문입니다.이는 DRA 정책을 덮어쓰는 것보다 훨씬 흥미롭고 효과적일 수 있습니다.

회복

EFS로 암호화된 파일은 이전에 사용한 공용 키와 일치하는 RSA 개인 키를 사용해야만 암호를 해독할 수 있습니다.사용자 개인 키의 저장된 복사본은 궁극적으로 사용자의 로그온 암호에 의해 보호됩니다.Windows 외부에서 다른 운영 체제(Linux 등)를 사용하여 암호화된 파일에 액세스할 수 없습니다. 특히 현재 서드파티 EFS 구성 요소 드라이버가 없기 때문입니다.또한 사용자의 로그인 비밀번호를 재설정하기 위해 특수 도구를 사용하면 사용자의 개인 키를 해독할 수 없으므로 사용자의 암호화된 파일에 액세스할 때 사용할 수 없습니다.이로 인해 사용자가 비밀번호를 잊어버리거나 암호화 키를 백업하지 못한 경우 데이터가 손실될 수 있습니다.이로 인해 "지연된 휴지통"이라는 용어가 생겨났는데, 이는 경험이 부족한 사용자가 자신의 파일을 암호화하는 경우 데이터 손실이 불가피해 보이는 것을 설명하기 위함이었다.

공개 키 인프라에서 발급한 키를 사용하도록 EFS가 구성되고 PKI가 키 보관 및 복구를 사용하도록 구성된 경우 먼저 개인 키를 복구하여 암호화된 파일을 복구할 수 있습니다.

열쇠들.

  • 사용자 비밀번호(또는 스마트카드 개인 키): 사용자의 DPAPI 마스터 키를 복호화하기 위한 복호화 키 생성에 사용됩니다.
  • DPAPI 마스터 키: 사용자의 RSA 개인 키를 해독하는 데 사용됩니다.
  • RSA 개인 키: 각 파일의 FEK를 해독하는 데 사용
  • 파일 암호화 키(FEK): (프라이머리 NTFS 스트림에서) 각 파일의 데이터를 복호화/암호화하는 데 사용됩니다.
  • SYSKEY: SAM에 저장된 캐시된 도메인 검증자 및 비밀번호 해시를 암호화하기 위해 사용됩니다.

지원되는 운영 체제

창문들

기타 운영 체제

다른 운영 체제 또는 파일 시스템은 EFS를 기본적으로 지원하지 않습니다.

Windows 버전별로 이용 가능한 신기능

윈도 XP
  • 클라이언트 측 캐시 암호화(오프라인 파일 데이터베이스)
  • 도메인 전체의 공개 키를 사용한 DPAPI 마스터 키 백업 보호
  • 사용자 인증서 자동 등록(EFS 인증서 포함)
  • 암호화된 파일에 대한 다중 사용자(공유) 액세스(파일 단위) 및 암호화된 파일 공유 시 사용되는 인증서 해지 확인
  • 암호화된 파일은 다른 색상으로 표시할 수 있습니다(기본적으로는 녹색).
  • 필수 복구 에이전트 필요 없음
  • 지원되지 않는 파일 시스템으로 이동할 때 파일이 자동으로 해독될 수 있는 경우 경고
  • 패스워드 리셋디스크
  • Active Directory에서 위임된 서버용 EFS over WebDAV 및 원격 암호화
Windows XP SP1
  • 모든 EFS 암호화 파일에 대한 AES-256 대칭 암호화 알고리즘 지원 및 기본 사용
Windows XP SP2 + KB 912761
  • 자체 서명된 EFS 인증서 등록 금지
Windows Server 2003
  • 디지털 아이덴티티
  • 자체 서명된 EFS 인증서를 등록할 때 최소 키 길이를 적용하기 위한 RSAKeyLength 설정 적용
Windows[10] Vista 및 Windows Server[11][12] 2008
  • 클라이언트 사이드 캐시 사용자별 암호화(오프라인 파일)
  • PC/SC 스마트 카드에 RSA 개인 키 저장(사용자 또는 DRA) 지원
  • EFS 키 재생성 마법사
  • EFS 주요 백업 프롬프트
  • PC/SC 스마트 카드에서 DPAPI 마스터 키 취득 지원
  • 페이지 파일 암호화 지원시스템
  • BitLocker를 사용[13][14]EFS 관련 비밀 보호(Windows Vista의 Enterprise 또는 Ultimate 에디션)
  • 적용할 그룹 정책 컨트롤
    • 문서 암호화 폴더
    • 오프라인 파일 암호화
    • 암호화된 파일 인덱싱
    • EFS용 스마트 카드 필요
    • 스마트 카드에서 캐시 가능한 사용자 키 생성
    • 사용자 키가 생성되거나 변경될 때 키 백업 통지 표시
    • EFS 인증서 자동 등록에 사용할 인증서 템플릿 지정
Windows Server 2008[12]
  • Windows Server 2008 서버에 등록된 EFS 자체 서명 증명서의 기본 길이는 2048비트 RSA 키 길이입니다.
  • 모든 EFS 템플릿(사용자 및 데이터 복구 에이전트 인증서)의 기본 길이는 2048비트 RSA 키 길이입니다.
Windows 7 및 Windows Server 2008 R2[15]
  • 타원곡선암호 알고리즘(ECC).Windows 7은 하위 호환성을 위해 ECC 알고리즘과 RSA 알고리즘의 혼합 모드 조작을 지원합니다.
  • EFS 자체 서명 인증서는 ECC를 사용할 때 기본적으로 256비트 키를 사용합니다.
  • EFS는 자체 서명된 RSA 인증서를 사용하는 경우 1K/2k/4k/8k/16k/16k 비트 키를 사용하거나 ECC 인증서를 사용하는 경우 256/384/521 비트 키를 사용하도록 구성할 수 있습니다.
Windows 10 버전 1607 및 Windows Server 2016
  • FAT 및 exFAT에 [16]EFS 지원을 추가합니다.

Windows 버전에서 사용되는 알고리즘

Windows EFS는 파일이 암호화될 때 사용 중인 Windows 버전에 따라 다양한 대칭 암호화 알고리즘을 지원합니다.

운영 체제 디폴트 알고리즘 기타 알고리즘
윈도 2000 DESX (없음)
Windows XP RTM DESX 트리플 DES
Windows XP SP1 AES 트리플 DES, DESX
Windows Server 2003 AES 트리플 DES, DESX[17]
윈도 비스타 AES 트리플 DES, DESX
Windows Server 2008 AES 트리플 DES, DESX(?)
윈도 7
Windows Server 2008 R2
혼합(AES, SHA 및 ECC) 트리플 DES, DESX

「 」를 참조해 주세요.

레퍼런스

  1. ^ "File Encryption (Windows)". Microsoft. Retrieved 2010-01-11.
  2. ^ EFS는 Windows 2000 Server 및 Workstation, Windows XP Professional, Windows Server 2003 및 2008 및 Windows Vista 및 Windows 7 Business, Enterprise 및 Ultimate에서 사용할 수 있습니다.
    EFS는 Windows XP Home Edition 또는 Windows Vista 및 Windows 7의 Starter, Basic 및 Home Premium 에디션에서 사용할 수 없습니다.윈도우즈 9x 시리즈 운영 체제에서는 기본적으로 EFS의 기반인 NTFS를 지원하지 않기 때문에 구현할 수 없습니다.
  3. ^ "Encrypting File System". Microsoft. 1 May 2008. Retrieved 24 August 2011.
  4. ^ "Cryptographic Filesystems, Part One: Design and Implementation". Security Focus. Retrieved 2010-01-11.
  5. ^ "Encrypting File System".
  6. ^ Chris Corio (May 2006). "First Look: New Security Features in Windows Vista". TechNet Magazine. Microsoft. Archived from the original on 2006-11-10. Retrieved 2006-11-06.
  7. ^ a b ntpasswd, 1997년 이후 사용 가능 2016년 2월 12일 웨이백 머신에서 보관
  8. ^ "The Encrypting File System". technet.microsoft.com.
  9. ^ "Windows - Official Site for Microsoft Windows 10 Home & Pro OS, laptops, PCs, tablets & more". www.microsoft.com. Archived from the original on 2007-02-03. Retrieved 2008-01-20.
  10. ^ Kim Mikkelsen (2006-09-05). "Windows Vista Session 31: Rights Management Services and Encrypting File System" (PDF). presentation. Microsoft. Retrieved 2007-10-02.[데드링크]
  11. ^ "Encrypting File System". documentation. Microsoft. 2007-04-30. Archived from the original on 2014-01-20. Retrieved 2007-11-06.
  12. ^ a b "Changes in Functionality from Windows Server 2003 with SP1 to Windows Server 2008: Encrypting File System". documentation. Microsoft. 2007-09-01. Archived from the original on 2008-03-25. Retrieved 2007-11-06.
  13. ^ Scott Field (June 2006). "Microsoft Windows Vista Security Enhancements" (DOC). whitepaper. Microsoft. Retrieved 2007-06-14.
  14. ^ Microsoft Corporation (2006-11-30). "Data Communication Protocol". patent. Microsoft. Retrieved 2007-06-14.
  15. ^ "Changes in EFS". Microsoft TechNet. Retrieved 2009-05-02.
  16. ^ "[MS-FSCC]: Appendix B: Product Behavior". Microsoft. 2017-09-15. Retrieved 2017-10-02. Support for FAT and EXFAT was added in Windows 10 v1607 operating system and Windows Server 2016 and subsequent.
  17. ^ Muller, Randy (May 2006). "How IT Works: Encrypting File System". TechNet Magazine. Microsoft. Retrieved 2009-05-22.

추가 정보