cat /dev/urandom의 출력은 얼마나 일시적입니까?

cat /dev/urandom의 출력은 얼마나 일시적입니까?

내 서버에서 다음 명령을 사용하여 토렌트를 만듭니다.

cat /dev/urandom |tr -dc A-Z9|head -c${1:-81} 

출력을 복사한 후 터미널을 닫으면 생성된 토렌트를 완전히 복구할 수 없나요? 나는 어느 시점에 내 서버에 액세스할 수 있는 누군가가 어떤 종류의 기록에서 출력을 검사할 수 있을지 걱정됩니다.

답변1

무작위 생성기의 데이터는 여러 위치를 통과합니다.

  1. 커널부터 시작됩니다. 다른 임의 생성기와 마찬가지로 커널의 임의 생성기는 엔트로피 소스에 의해 시드되는 결정론적 임의 비트 생성기(DRBG)로 구성됩니다. Linux에서 사용하는 DRBG는 역추적 방지 기능이 있습니다. 즉, 공격자가 특정 순간(커널 수준 액세스가 필요함)에 RNG의 상태를 알아내더라도 이전 상태를 계산할 수 없으므로 RNG를 찾을 수 없습니다. 이전 출력.

  2. 커널은 cat프로세스에 전달되거나 나중에 파이프된 데이터의 복사본을 보관하지 않습니다.

  3. 프로세스가 종료 되면 cat해당 메모리가 커널로 다시 해제됩니다. 해제된 메모리는 즉시 삭제되지 않습니다. Linux는 메모리를 프로세스에 배포하기 전에만 삭제합니다. (할당 시 지우기가 해제 시 지우기보다 성능이 좋기 때문입니다.) 따라서 종료 후에도 데이터가 RAM에 한동안 남아 있을 수 있습니다 cat. 이 데이터를 얻으려면 잠재적으로 수십만 명의 후보자 중에서 메모리에서 올바른 페이지를 찾기 위한 커널 수준 액세스와 일부 포렌식 기술이 필요합니다. 다른 프로세스( tr, ) 도 마찬가지입니다 head.

  4. 파이프는 어디에도 메모리를 저장하지 않습니다. 데이터는 한 프로세스에서 다른 프로세스로 직접 복사됩니다.

  5. 데이터가 터미널에 표시됩니다. 아마도 터미널 에뮬레이터의 메모리 어딘가에 저장되어 있을 것입니다. 다시 스크롤할 수 있는 한 확실히 저장되며 터미널 에뮬레이터가 메모리를 관리하는 방식에 따라 나중에 프로세스의 메모리에 복사본이 남아 있을 수 있습니다. 터미널 에뮬레이터의 메모리에서 데이터를 찾으려면 계정에 대한 액세스가 필요합니다.

  6. 세션을 구체적으로 기록하지 않는 한 터미널에 표시된 데이터는 파일에 저장되지 않습니다.

  7. 데이터는 비디오 메모리에 보관될 수도 있습니다(텍스트 형식이 아닌 특정 순간에 표시되는 픽셀 집합 형식). 비디오 메모리를 지우는 메커니즘이 없으며 때로는 이미지 조각이 오랜 시간 동안 남아 있는 경우도 있습니다. 비디오 메모리를 확인하려면 커널 수준 액세스가 필요합니다.

  8. 클립보드를 사용하여 터미널에서 데이터를 복사하는 경우 클립보드 데이터가 저장될 위치에 대해 걱정해야 합니다. 복사본이 터미널 에뮬레이터의 메모리에 남아 있는 것처럼 복사본은 일정 기간 동안 X 서버의 메모리에 남아 있을 수 있습니다. 이 사본을 찾으려면 루트 수준의 액세스와 심각한 포렌식 기술이 필요합니다.

  9. 클립보드 관리자(아마도 데스크톱 환경의 일부)가 있는 경우 클립보드 내용 기록을 어디에 저장할지 걱정해야 합니다.

전체적으로 유일한 실제 위험은 클립보드 관리자를 사용할 때입니다.

답변2

쉘 명령의 출력은 쉘 히스토리 파일에 저장되지 않습니다.

출력을 파일에 저장하거나 전체 쉘 세션을 기록하지 않는 한, 이 명령의 결과는 시스템에 전혀 표시되지 않습니다.

관련 정보