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) 부분의 설치 파일 클릭 후 다운로드
설치 진행
*주의: MultiOTP를 설치하고 꼭 셋업(QR_Code생성)과 OTP 등록까지 정상적으로 완료 해야만 한다.
설치 후 셋업(OTP등록) 없이 Windows 로그아웃을 하면 다시 로그인 할 수가 없음 (방법은 있지만 번거롭다.)
*특히 원격에서 주의해서 설치할 것! 잘 못 되면 OTP로 인해 로그인을 못할 수 있음*
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 필요 여부


여기까지 한 후 Windows 로그아웃을 하거나 원격(rdp) 연결을 끊으면 안된다.
프로그램의 설치 위치는 아래와 같다.

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