Windows - 드라이버 서명 끄기

윈도우와 관련된 장치 드라이버가 있으며 이를 설치하려면 서명을 필수로 요구된다.

개발 과정에서 매번 서명을 무결성을 검증하고 일일이 적용할 수 없으므로 BCD를 사용해 서명을 적용하지 못하도록 고정 시키는 것이 필요하다.

먼저, 설정하기 전 바이오스에서 Secure Boot를 끄도록 한다. 그렇지 않은 경우 보안 정책에 의해 무결성 검증을 하므로 서명을 끌 수가 없다.

다음 BCD를 활용해 서명을 끄는 명령어이다.


장치 드라이버 서명 적용 끄기

bcdedit /set nointegritychecks on

관리자 권한으로 PowerShell 또는 CMD 터미널에서 입력 후 리부팅 시 장치 드라이버 무결성을 체크하지 않고 윈도우 커널에 cat 서명을 무시하고 sys 확장자를 설치해 장치 드라이버를 설치할 수 있게 해준다.

설정을 이전으로 돌아가려면 아래와 같이 off 명령어를 전달하고 리부팅한다.

bcdedit /set nointegritychecks off

윈도우 구형 화면으로 고급 부팅 설정하기

bcdedit /deletevalue {current} nx
bcdedit /set {current} bootmenupolicy legacy
bcdedit /set {current} hypervisorlaunchtype off

Shift + 다시 시작 또는 F8 고급 부팅 메뉴를 구형 윈도우로 동작하도록 하고 가상화 설정을 종료하여 가상화와 관련된 서명을 사용하지 않게 한다.


메모리 무결성 추가로 비활성화하기

위 설정을 모두 진행하여도 드라이버 설치 시 무결성 서명 검증 실패로 52 장치 오류가 발생할 수 있다. 이어서 진행할 부분은 VHS / HCVI 코드 서명에 무결성 체크 감지할 수 있으므로 설정 해제한다.

  1. 윈도우 설정 > 보안 > 장치 보안에서 메모리 무결성 체크를 해제한다.
  2. 아래와 VBS/HHCVI 무결성을 해제한다.
# Disable VBS/HVCI
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v EnableVirtualizationBasedSecurity /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v Enabled /t REG_DWORD /d 0 /f

장치 드라이버 설치 과정

다시 시작 버튼을 누르기 전 Shift 누른 상태로 클릭하여 고급 부팅 옵션이 출력한다.

고급 부팅 화면 - 문제 해결 클릭

고급 부팅 화면 - 고급 옵션 항목 클릭

고급 부팅 화면 - 시작 설정 클릭

고급 부팅 화면 - 다시 시작 버튼 클릭

고급 부팅 화면 - 드라이버 서명 적용 사용 안함 클릭

다음으로 윈도우에서 서명되지 않는 드라이버 설치하기

서명이 끝난 드라이버를 정상적으로 설치할 수 있다.