Multiotp 라는 오픈소스 2FA 프로그램을 적용하여 Windows 로그인 (오프라인 및 온라인) 안정성 강화에 대해 다룬다.


1. 프로그램 설치

1-1. Microsoft Visual C++ redistributable (v14) 설치

다운로드 : https://learn.microsoft.com/ko-kr/cpp/windows/latest-supported-vc-redist?view=msvc-170

1-2. Multiotp 설치 및 셋업

https://download.multiotp.com
multiOTP Credential Provider for Windows (open source) 부분의 설치 파일 클릭 후 다운로드

설치 진행

multiOTPCredentialProviderInstaller.exe 실행하여 설치 진행

-> 설명

  • Logon : Windows 로그인 시 OTP 인증 필요 여부
    *오프라인(콘솔) 로그인 시에도 OTP 2차 인증을 원하면 Local and Remote 선택
    *RDP만 원격 접속에만 OTP 2차 인증을 원할 경우 Only Remote 선택
    *주의 : Local and Remote 선택 시 OTP 연동에 문제가 있을 경우 로그인 불가
    (안전모드에서 Multiotp 프로그램을 제거해야 로그인 가능 - 방법 안내)
  • Unlock : 잠금 해제 시 OTP 인증 필요 여부
    *Windows 화면 잠금 상태일 때 잠금 해제 시에 OTP 입력 요구 (오프라인(콘솔)에서 필요시 사용)
  • CredUI : 관리자 권한 실행 시 OTP 필요 여부

프로그램의 설치 위치는 아래와 같다.

2. 셋업 진행

CMD 창을 관리자 모드로 실행 (또는 터미널을 관리자 모드로 실행)

> cd "c:\Program Files\multiOTP"

> multiotp.exe -fastcreatenopin "USER"

> multiotp.exe -set "USER" description="HomePC-USER OTP"

> multiotp.exe -qrcode "USER" mypc-qrcode.png

-> 아무런 메지지가 출력되지 않는 것이 정상 (옵션 등을 잘 못 입력 시 아래와 같이 에러 메지지 출력)

C:\Program Files\multiOTP>multiotp.exe -fastcreateopin mmc7
Reply-Message := "ERROR: User doesn't exist"
--> 위와 같이 옵션이 잘 못되면 엉뚱한 에러가 나옴. gastcreatenotpin이 정상 옵션임 (위는 n이 빠짐)

생성한 qr-code 이미지 확인


스마트폰 또는 PC의 웹브라우저에 구글 OTP 설치하고 QR코드를 통해 OTP 등록
(구글플레이스토어 및 크롬웹스토어를 통해서 앱 설치)

c:\Program Files\multiOTP\mypc-qrcode.png 파일을 열어 QR코드 이미지를 구글 OTP 앱의 렌즈를 통해 인식시키기

해당 qr-code 이미지 파일은 안전한 곳에 백업본을 저장해 둔다.

로그인 진행

multiotp가 설치/셋업된 PC에 rdp로 로그인을 하면 OTP를 입력하라고 나오는데 이 때 구글 OTP 앱을 실행하여 OTP 숫자를 입력하면 로그인이 완료된다.



기타 multiotp 프로그램 명령

- multiotp 의 server-type 변경하기

> multiotp.exe -config server-type="local and remote"

> multiotp.exe -config server-type="remote"
(또는 C:\Program Files\multiOTP\config\multiotp.ini --> server-type 부분 수정)

만약 프로그램 삭제를 하지 않고 리셋 하고자 한다면 아래 폴더 내의 리셋 대상 계정과 연관된 파일을 삭제하고 셋업을 진행한다.

C:\Program Files\multiOTP\credusers

C:\Program Files\multiOTP\users

Windows Logon 2차 인증 (2FA) 적용

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다