Virtio RNG 사용 설정


Virtio RNG는 반가상화된 임의 번호 생성기입니다. Virtio RNG는 가상 머신(VM) 인스턴스의 호스트 머신에서 생성된 엔트로피 풀에서 임의의 숫자를 제공합니다. 엔트로피 풀은 시스템에서 임의의 정보를 무작위로 수집하여 이 정보를 사용하여 SSH 키 또는 고유 ID와 같은 민감한 정보에 사용할 수 있습니다.

시작하기 전에

  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

제한사항

  • Virtio RNG는 Windows 이미지에서 사용할 수 없습니다.
  • 기본적으로 Compute Engine VM은 데몬 대신 Virtio RNG를 사용하여 게스트 엔트로피 풀을 다시 채웁니다. Vitio RNG를 사용하거나 대신 엔트로피 수집 데몬을 사용하려면 설치해야 합니다. 엔트로피 수집 데몬 예시는 rng-tools 문서를 참조하세요.

Virtio RNG가 사용 설정되어 있는지 확인

다음 명령어를 실행하여 VM에서 Virtio RNG가 사용 설정되었는지 확인할 수 있습니다.

lsmod | grep rng

Virtio RNG가 사용 설정되면 다음과 비슷한 출력이 표시됩니다.

virtio_rng             16384  0
rng_core               16384  2 virtio_rng
virtio_ring            28672  4 virtio_rng,virtio_scsi,virtio_pci,virtio_net
virtio                 16384  4 virtio_rng,virtio_scsi,virtio_pci,virtio_net

Virtio RNG 테스트

/dev/random 기기를 사용하여 Virtio RNG를 테스트할 수 있습니다.

  1. SSH를 사용하여 VM에 연결합니다. 예를 들어 gcloud CLI를 사용하여 연결할 수 있습니다.

    gcloud compute ssh VM_NAME
    

    VM_NAME을 VM 이름으로 바꿉니다.

  2. rng-tools을 설치합니다.

    CentOS

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo yum install rng-tools

    Debian

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo apt install rng-tools

    Fedora CoreOS

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo yum install rng-tools

    RHEL

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo yum install rng-tools

    SLES

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo zypper install rng-tools

    Ubuntu LTS

    다음 명령어를 사용하여 rng-tools를 설치합니다.

    sudo apt install rng-tools

    일부 Ubuntu 이미지는 Package 'rng-tools' has no installation candidate 오류를 반환합니다. 이 오류가 발생하면 다음 명령어를 실행합니다.

    sudo apt update
    sudo apt install rng-tools
    
  3. VM에서 rngtest 명령어를 실행합니다.

    cat /dev/random | rngtest -c 1000
    

Virtio RNG가 사용 설정되지 않으면 명령어는 아무것도 반환하지 않습니다. 사용 설정하면 다음과 비슷한 응답이 표시됩니다.

rngtest 2-unofficial-mt.14..
rngtest: starting FIPS tests...
rngtest: bits received from input: 20000032
rngtest: FIPS 140-2 successes: 1000
rngtest: FIPS 140-2 failures: 0
rngtest: FIPS 140-2(2001-10-10) Monobit: 0
rngtest: FIPS 140-2(2001-10-10) Poker: 0
rngtest: FIPS 140-2(2001-10-10) Runs: 0
rngtest: FIPS 140-2(2001-10-10) Long run: 0
rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
rngtest: input channel speed: (min=4.801; avg=7.318; max=7.839)Mibits/s
rngtest: FIPS tests speed: (min=39.005; avg=69.557; max=72.523)Mibits/s
rngtest: Program run time: 2880954 microseconds

다음 단계