이것은 실제로 Mac OS X에서 발생하지만 Mac OS X보다는 여기에서 답을 얻을 수 있다고 생각합니다.http://apple.stackexchange.com
encfs를 사용하여 암호화된 디렉터리가 있습니다. 실수로 거기에서 .encfs6.xml을 삭제했습니다.
이제 이 디렉토리를 encfs 디렉토리로 마운트하려고 하면 encfs는 거기에 새로운 암호화된 볼륨을 생성하려고 합니다. 새 항목을 만드는 대신 기존 항목을 열도록 강제할 수 있나요?
물론 비밀번호는 기억하고 있어요.
답변1
.encfs6.xml
키가 들어 있습니다. 파일을 분실하면 파일의 암호를 해독할 수 없습니다.
암호화 키는 비밀번호에서 파생되지 않습니다. Derived from Password는 에 저장된 파일 암호화 키를 암호화하는 데 사용되는 키입니다 encfs6.xml
. 이것이 표준 접근 방식입니다. 이렇게 하는 데는 두 가지 이유가 있습니다.
- 보안상의 이유로: 비밀번호는 일반적으로 낮은 엔트로피를 갖습니다. 일반적으로 가능한 모든 가능성(
12345678
,password
,iloveyou
,Passw0rd
, ...)을 열거하여 찾을 수 있습니다. 반면에 키는 무작위로 생성됩니다. 올바른 키를 추측할 가능성이 무시할 수 없다면 우주의 나이보다 오래 걸릴 것입니다. 따라서 귀하의 비밀번호를 추측하는 공격자는 키 파일에도 접근할 수 있어야 합니다.encfs6.xml
. (단, 암호화된 데이터와 함께 키 파일이 저장되지 않은 경우에는 이점이 없습니다.) - 유용성: 이렇게 하면 비밀번호를 변경하는 경우 소프트웨어만 업데이트하면 되며
.encfs6.xml
모든 파일을 다시 암호화할 필요는 없습니다.
.encfs6.xml
백업에서 복원합니다.
백업이 없는 경우 삭제된 파일을 검색하는 포렌식 도구를 사용하여 복구할 수 있습니다. 물론 이것이 작동한다는 보장은 없으며, 작동한다고 해도 반드시 쉬운 것은 아닙니다.
답변2
각 솔트와 반복 횟수를 추측하는 아이디어가 있지만 원래 알려진 암호를 사용하여 파일을 복구/재구축할 수 있지만 .encfs6.xml
파일을 잃지 않을 수 있습니다 <encodedKeyData>
... 유용하다고 생각되는 옵션을 사용하여 테스트를 시도했습니다 --anykey
. 해야 한다:
--anykey
키 확인 확인을 끄세요. 이를 통해 EncFS를 보조 암호와 함께 사용할 수 있습니다. 이는 암호화된 파일 시스템에 별도의 파일 세트를 저장하는 데 사용할 수 있습니다. EncFS는 올바르게 디코딩되지 않는 파일을 무시하므로, 별도의 비밀번호로 생성된 파일은 해당 비밀번호로 파일 시스템이 마운트된 경우에만 표시됩니다.
.encfs6.xml에는 다음 정보가 포함되어 있습니다.
<encodedKeySize>44</encodedKeySize>
<encodedKeyData>
t+mDmS6qiUwJcUY2rX2oj6jMlfQ3QIiGPG2BRZspTUZiUOcKBxIq70uVILk=
</encodedKeyData>
<saltLen>20</saltLen>
<saltData>
9pmECBnKHDXpW+3E+Z7WO9xWwls=
</saltData>
<kdfIterations>147015</kdfIterations>
<desiredKDFDuration>500</desiredKDFDuration>
EncodedKeyData와 일치하지 않더라도(다른 데이터로 변경) --anykey
원본 파일은 원래 비밀번호로 읽을 수 있다고 생각합니다. 이와 같이 인코딩된 키 데이터를 제외한 다른 모든 데이터를 기억/추측합니다. 그래서 새로운 EncFS 폴더와 테스트 파일을 생성하고 .encfs6.xml
파일을 편집하거나 항목을 변경하거나 삭제해 보았습니다 <encodedKeyData>...</encodedKeyData>
.
쓸모 없는, 데이터가 잘못된 경우 자동으로 마운트되지만 파일은 해독되지 않습니다. 다음 오류로 인해 항목 삭제가 실패합니다.
종료를 호출한 후 'boost::archive::iterators::dataflow_Exception' 인스턴스가 발생합니다.
What(): base64 문자 집합에 없는 값을 디코딩하려고 시도했습니다.
중단됨
유일한 용도는 --anykey
파일 이름 암호화를 사용하여 다른 비밀번호로 일부 파일을 "숨기는" 것 같지만 여전히 원래 인코딩된KeyData가 필요합니다.
그리고 <saltData>
한 문자를 변경하면 encfs --anykey
어떤 암호로도 성공적으로 설치되지만 파일의 암호가 해독되지 않으며 원래 암호로도 오류가 발생하지 않습니다.
그래서 당신은100% 필수이 .encfs6.xml
파일은 암호화 키가 포함된 키 파일과 같습니다(제 생각에는 LUKS 헤더와 비슷합니다).