eCryptfs를 사용하여 홈 디렉터리를 암호화하고 사용자가 로그인하지 않고도 파일에 액세스하고 싶습니다. pam_mount 프로그램은 암호화된 파일 시스템을 자동으로 마운트하지만 이는 사용자가 로그인한 경우에만 발생하는 것 같습니다. 사용자에게 로그인을 요구하지 않거나 자동 로그인을 활성화하지 않고 이 작업을 수행할 수 있는 방법이 있습니까?
아마도 잘못된 방향으로 가고 있는 것 같습니다. Python 프로그램을 정적 디스플레이로 실행하려고 하지만 다른 컴퓨터에 드라이브를 마운트하고 암호화되지 않은 파일을 볼 수 있는 사람에게 Python 코드를 노출하고 싶지 않습니다. . 애플리케이션은 systemd 서비스를 사용하여 시작됩니다.
답변1
애플리케이션을 실행하고 스크립트를 사용하여 표시하기 위해 데이터를 읽을 수 있기를 원하지만, 사람들이 컴퓨터에 액세스할 수 있고 하드 드라이브를 제거할 수 있는 경우에는 데이터를 읽을 수 없도록 하고 싶습니다.
암호화가 도움이 될 수 있지만 키가 디스크에 없는 경우에만 가능합니다. 따라서 자동 마운트는 잊어버리십시오. 도움이 되지 않습니다. 키가 디스크에 있으면 데이터를 암호화하지 않는 것에 비해 보안이 향상되지 않습니다.
키가 디스크에 없다면 어디에 있을까요?
- 키는 비밀번호에서 파생될 수 있습니다. 하지만 시작 시 누군가가 비밀번호를 입력해야 합니다.DM 비밀번호ecryptfs보다 설정이 더 쉽습니다. ecryptfs는 각 사용자가 자신의 암호화 키를 갖도록 다중 사용자 시스템용으로 고안된 반면, dm-crypt는 전체 디스크 또는 파티션을 암호화하도록 설계되었습니다.
- 키는 컴퓨터에 영구적으로 연결되지 않은 다른 이동식 하드웨어에 있을 수 있습니다. 가장 간단한 해결책은 dm-crypt와 USB 드라이브 또는 SD 카드의 키 파일을 사용하는 것입니다. 마찬가지로, 키가 들어 있는 드라이브를 삽입하려면 시작 시 누군가가 있어야 합니다.
- 키는 컴퓨터에 영구적으로 연결된 다른 하드웨어에 있을 수 있습니다. 그러나 공격자가 다른 디스크에서 부팅하고 키를 복구한 다음 원본 디스크를 해독하는 것을 방지해야 합니다. 또는 다른 디스크에서 부팅하고 기존 디스크의 시작 코드를 수정하여 데이터를 내보내거나 비밀번호 없는 로그인을 허용할 수 있는 프로그램을 추가한 다음 원래 디스크에서 부팅합니다. 그래서 어떤 형태로든 필요합니다.보안 부트. (아래 그림과 같이 안전 부팅입니다.너키를 갖고 컴퓨터에서 실행되는 것을 제어할 수 있다는 것은 제조업체가 키를 갖고 있어 사용자가 선택한 운영 체제를 설치하지 못하게 하는 보안 부팅과 반대입니다. )
물리적 보안에만 의존하고 싶지 않고(전동 도구 없이는 열 수 없는 잠긴 상자에 컴퓨터를 넣는 것), 컴퓨터가 부팅될 때마다 누군가 개입하는 것을 원하지 않는 경우, 보안 부팅이 유일한 솔루션인지 확인하십시오.
이는 다음과 같은 기계가 필요하다는 것을 의미합니다.완전한 생산 관리제어할 수 있는 장치 또는 제어할 수 있는 Secure Boot가 포함된 Arm 보드(다소 드물지만 Secure Boot가 포함된 Android 휴대폰이나 iPhone에서 앱을 실행할 수 있습니다).
답변2
Giles가 지적했듯이 분명히 열쇠가 필요합니다어딘가에, 비밀번호를 입력하거나 외부 USB를 수동으로 연결하지 않고도 이 프로세스를 자동화하려면 기본적으로 TPM 또는 이에 상응하는 장치가 필요합니다.
더 정확하게 말하면 기술적으로는 필요하지 않습니다.보안 부트. 이 문구가 가끔 느슨하게 사용되는 것 같지만, 이 기사에서는 부팅 체인 구성 요소의 디지털 서명을 확인하는 UEFI 사양의 부팅 보안 기능을 언급하고 있습니다. 실제로 보안 부팅과 TPM은 완전히 독립적입니다. TPM 없이 보안 부팅을 사용하거나, 보안 부팅 없이 TPM을 사용하거나, 두 가지를 동시에 사용할 수 있습니다.
또한 TPM은 보안 부팅이라는 유사한 기술과 함께 더 일반적으로 사용됩니다.신뢰할 수 있는 부팅, 그러나 TPM과 함께 신뢰할 수 있는 부팅을 사용해야 한다는 요구 사항은 없습니다. 단, 시스템의 어떤 구성 요소를 신뢰 체인에 연결할 수 있는지 결정하는 능력이 확장되어 해당 구성 요소의 무결성이 사용 가능 여부를 결정하는 데 중요한 역할을 할 수 있습니다. 신뢰할 수 있는 스타트업에서의 역할. TPM은 비밀이 필요한 일부 소프트웨어에 비밀을 넘겨줍니다.
많은 실제 세부 정보를 제외하고 매우 간단한 요약에서 TPM은 SHA-1 및/또는 SHA-256 해시 다이제스트(TPM 버전에 따라 다름)를 가져옵니다.측정, 기계가 시작될 때 시스템의 소프트웨어 구성 요소입니다. PCR 또는 플랫폼 구성 레지스터라는 TPM 내부 레지스터에 축적됩니다. 어떤 구성 요소를 측정하는 펌웨어/소프트웨어의 특성은 시스템의 개별 구성 요소가 전체 패러다임을 얼마나 잘 지원하는지에 크게 좌우되지만 결국에는 TPM을 통해 다양한 비밀을 잠그는 데 사용할 수 있는 많은 측정이 필요합니다. . 예를 들어 키를 TPM의 NVRAM에 기록하고 이러한 측정의 특정 세트에 잠길 수 있으므로 정확한 세트와 해당 값이 존재하거나 기록 시 지정된 값과 일치하지 않는 한 TPM에서 읽기 액세스를 허용하지 않습니다. 다른 방법도 있지만 여기서는 간단히 소개하겠습니다.
그러나 실제로 이것은 궁극적으로 소프트웨어를 작성하거나 무언가를 사용하게 된다는 것을 의미합니다.기존의, TPM과의 통신을 처리하고 TPM에서 비밀을 얻은 다음 LUKS 파티션 암호 해독과 같이 필요한 모든 목적에 사용합니다.