나는 이 질문을 오랫동안 찾고 있었지만 만족스러운 답변을 찾지 못했습니다.
내 시나리오: encfs를 사용하여 홈 폴더의 일부 디렉터리를 암호화합니다. 더 쉽게 액세스하기 위해 gnome 키링에 암호화된 비밀번호를 저장하는 gnome-encfs를 사용하여 자동 마운트를 설정했습니다. 따라서 이론적으로 내 사용자 비밀번호 데이터는 안전하지 않습니다.
하지만 누군가가 내 상자를 훔쳐 복구 모드에서 루트로 로그인하면 어떻게 될까요? 그는 내 계정 비밀번호를 변경하고 로그인하기만 하면 암호화된 모든 폴더가 마운트되고 해독됩니다.
내 질문은: 이런 일이 발생하지 않도록 하려면 루트 비밀번호를 변경해야 합니까? 포럼의 사람들은 내 컴퓨터에 물리적으로 접근할 수 있는 사람은 누구나 원하는 것은 무엇이든 할 수 있다고 계속 말합니다. 그러나 그것이 제가 처음에 암호화를 설정한 이유입니다. 암호화되지 않은 데이터를 그들이 읽는지는 상관하지 않지만 암호화된 데이터는 안전하기를 바랍니다.
편집: 루트 비밀번호 변경이 권장되지 않는 이유도 이해하지 못합니다. 잊어버리더라도 일반 계정에서 무엇이든 복원하고 새 상자를 설정할 수 있습니다.
답변1
귀하의 하드웨어에 물리적으로 접근하는 사람이 귀하의 하드웨어에 접근하는 것을 막을 수 있는 방법이 없다는 것은 사실입니다.체계. 대부분의 경우 교체만 하면 된다고 생각하는데 /etc/passwd
지금은 깨졌습니다. 커널 외부의 전체 파일 시스템이 암호화된다면 이것이 조금 더 까다로워질 것 같습니다. 나는 그것이 가능하다고 믿지만 아직 해본 적이 없습니다. 아마도 다른 사람이 개입할 것입니다.
그러나 시스템에 대한 루트 액세스 권한을 얻는다고 해서 반드시 암호를 해독할 수 있는 것은 아닙니다.
저는 키링 사용자는 아니지만 말씀하신 대로 암호화된 폴더가 마운트되어 복호화되면다음을 통해 로그인하세요., 이러한 관점에서 루트 액세스 권한을 얻으면 메커니즘을 우회하므로 이는 전혀 안전하지 않습니다.
저는 암호화 작업을 합니다. 안타깝게도 프로그래밍 방식으로 수행하므로 추천할 최종 사용자 소프트웨어가 없습니다. 하지만 몇 가지 개념을 개략적으로 설명할 수 있습니다. (사용자 소프트웨어를 보면 이 목적을 위한 최종 사용자 소프트웨어가 있을 것이라고 확신합니다. 이 정보는 해당 정보의 용도와 사용 방법을 이해하는 데 도움이 됩니다.) 고도로 암호화된 데이터에는 키가 필요합니다. 이는 매우 큰 비밀번호와 비슷합니다. 예를 들어 이전에 SSH 키를 생성한 경우(정확히 동일한 개념) SSH 키는 일반적으로 292개의 ASCII 문자인 2048비트입니다. 이는 다음이 있음을 의미합니다.
2^(2048) = 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656
그러한 키가 가능합니다. 이제 방이 가득한 컴퓨터가 있고 이와 같은 키로 암호화된 무언가를 초당 1,000,000회 무차별 대입 공격을 시도할 수 있다면 이는 1년에 60*60*24*365=31536000초가 될 것입니다. 따라서 가능한 가장 긴 방법은 다음과 같습니다. 암호화를 깨는 방법은 다음과 같습니다.
년도. 물론, 무차별 대입보다 더 나은 전략이 있다고 확신하지만, 시간을 수십억 번 단축하더라도 숨을 멈추지 마십시오.
이것은 의도적인 것입니다. 이것은 하드코어 암호화 알고리즘이며, 그 중 일부는 미군에 의해 의뢰된 것입니다. 그들은 사실상 깨지지 않습니다., 기간. 전쟁 중에 적이 귀하의 하드웨어에 물리적으로 접근할 수 있지만, 귀하의 장치가 암호화되어 있고그 사람들 열쇠가 없어, 그들은 갇혀있었습니다.
따라서 노트북에 있는 암호화된 데이터를 도난당하지 않도록 보호하는 명확하고 간단한 방법은 암호화 키를 노트북에 두지 않는 것입니다. 대신 USB 스틱에 넣을 수 있습니다.
하지만 누군가가 노트북과 열쇠와 함께 있던 것을 가져갔다면 어떨까요(왜냐하면 노트북은 어딘가에 있어야 하는데 기억할 수 없기 때문입니다)? 비밀번호로 키를 암호화합니다. 그러나 16자 ASCII 비밀번호에는 2^(7*16) = 5192296858534827628530496329220096개의 가능성만 있으므로 이제 체인에 약한 링크가 있습니다. 이는 초당 1000000회 시도에서 최대 무차별 대입 크래킹 시간이 164646653302093722365년에 불과하다는 것을 의미합니다. 크랙된 키를 테스트하려면 암호화된 데이터에 적용해야 하기 때문에 초당 시도 횟수를 줄여야 한다고 생각합니다.
내가 말하고 싶은 것은: 암호 해독이 사용자에게 묶여 있다면로그인예, 하드웨어에 접근할 수 있는 사람이라면 누구나 쉽게 해킹할 수 있습니다. 이것이 실제로 gnome이 하고 있는 일인지는 모르겠지만 아마도 암호를 얻을 수 없기 때문일 수도 있습니다(이것은 암호화의 한 형태입니다. 설명 참조). 가능하다면 사용하는 것이 더 똑똑할 것입니다. 왜냐하면 지금은 누군가가 비밀번호를 변경하면 귀하의 로그인으로 폴더의 암호를 해독할 수 없습니다. 하지만 정말로 보호해야 할 것이 있는 경우에는 다른 옵션이 있습니다. [전구: gnome이 하는 일은 아마도 스크램블된 양식을 사용하여 로그아웃할 때 암호화하고(누구나 가능) 로그인할 때 해독하는 것입니다. 이를 테스트하는 한 가지 방법은 사용자를 완전히 로그아웃한 다음 루트로 로그인하고 사용자 비밀번호 변경을 사용하는 것입니다 passwd username
. 아니면 드워프에게 이런 질문을 할 수도 있습니다. ]
노트:단방향 암호화는 되돌릴 수 없지만 항상 동일한 결과를 생성하는 방법을 나타냅니다. 따라서 비밀번호를 입력하고 변환한 후 해당 변환 결과를 기록된 내용(즉, 기록된 내용)과 비교합니다.아니요너의 비밀번호! ). 일치한다면 정말 좋습니다. 하지만 그렇지 않은 경우 /etc/passwd
로그인된 내용을 비밀번호로 전송할 수 있는 방법이 없습니다 . 이는 "단방향" 암호화입니다. 분명히 이 방법으로 암호화한 것은 무엇이든 복구할 수 없게 손실되므로 이는 데이터에 좋지 않습니다. 그러나 이는 암호를 저장하는 표준 방법입니다(실제로 더 잘 알아야 할 Apple과 같은 일부 대기업이 해커에게 잡혔습니다. 말도 안 되는 이유로 그렇게 하지 않고, 고객 비밀번호를 저장해 두어서일반 텍스트로).