macOS에서 OATH Toolkit과 Keychain으로 OTP 로그인 설정하기

이 글에서는 macOS에서 OATH ToolkitKeychain을 사용해 안전하게 OTP(One-Time Password) 기반 인증을 구현하는 방법을 설명합니다. 또한, Keychain의 항상 허용(Always Allow) 설정의 보안 위험에 대해서도 다룹니다.


1. OATH Toolkit 설치

OATH Toolkit은 TOTP(Time-Based One-Time Password) 생성에 사용됩니다. macOS에서는 Homebrew를 통해 간단히 설치할 수 있습니다.

설치 명령어:

brew install oath-toolkit

설치 후, oathtool 명령어를 사용해 OTP를 생성할 수 있습니다.

2. Keychain에 OTP 키 저장

Keychain은 macOS의 기본 암호 관리 시스템으로, OTP 키를 안전하게 저장할 수 있습니다. 아래 명령어로 Keychain에 키를 저장하세요.

Keychain에 키 저장:

security add-generic-password -a <계정명> -s <서비스명> -w <OTP 키>

예시:

security add-generic-password -a user@example.com -s otp-service -w mysecretkey123
  • -a: 계정 이름(예: 이메일 주소)
  • -s: 서비스 이름
  • -w: 저장할 OTP 키

이 명령은 Keychain에 otp-service라는 이름으로 OTP 키를 저장합니다.

3. OTP 생성

Keychain에 저장된 OTP 키를 사용해 TOTP를 생성하려면 아래 단계를 따르세요.

Keychain에서 키 가져오기:

PASSWORD=$(security find-generic-password -a user@example.com -s otp-service -w)

OTP 생성:

oathtool --totp --base32 "$PASSWORD"

예시 출력:

123456

이제 생성된 OTP를 인증 시스템에 입력하여 로그인할 수 있습니다.

4. Keychain의 “항상 허용(Always Allow)” 설정 주의

Keychain은 기본적으로 항목 접근 시 사용자 인증을 요구합니다. 하지만 “항상 허용” 옵션을 활성화하면 보안 위험이 발생할 수 있습니다.

항상 허용의 위험성

  • “항상 허용”은 특정 앱이나 명령어(security 등)가 추가 인증 없이 Keychain에 저장된 데이터를 가져오도록 허용합니다.
  • 악성 스크립트가 Keychain 데이터를 유출할 가능성이 있으므로, 민감한 항목에 대해 “항상 허용”을 사용하지 않는 것이 좋습니다.

5. Keychain 접근 설정 확인 및 변경

Keychain 항목의 접근 권한을 확인하고 필요한 경우 수정할 수 있습니다.

설정 확인 방법:

1.	응용 프로그램 > 유틸리티 > 키체인 접근 실행.
2.	저장된 항목을 선택하고 정보 가져오기 클릭.
3.	Access Control(접근 제어) 탭으로 이동.

“항상 허용” 설정 해제:

1.	“Confirm before allowing access” 선택.
2.	**“Ask for Keychain password”**를 활성화해 추가 보안을 적용.
3.	Save Changes를 클릭하여 저장.

6. 자동화 스크립트 작성 (선택 사항)

Keychain과 OATH Toolkit을 활용한 OTP 생성을 자동화하려면 아래 스크립트를 사용할 수 있습니다:

#!/bin/bash

# Keychain에서 OTP 키 가져오기
PASSWORD=$(security find-generic-password -a user@example.com -s otp-service -w)

# OTP 생성
OTP=$(oathtool --totp --base32 "$PASSWORD")

# 생성된 OTP 출력
echo "Your OTP is: $OTP"

위 스크립트를 저장하고 실행하면 OTP가 자동으로 생성됩니다.

7. 보안 권장 사항

  1. Keychain 접근 권한 최소화:
    • 민감한 항목은 “항상 허용”을 비활성화하고 접근 요청 시 사용자 인증을 요구하세요.
  2. macOS 최신 상태 유지:
    • 보안 취약점을 방지하기 위해 macOS와 모든 소프트웨어를 최신 상태로 유지하세요.
  3. 강력한 로그인 비밀번호 사용:
    • macOS 로그인 비밀번호는 Keychain 암호화의 핵심이므로 강력한 비밀번호를 설정하세요.

결론

macOS에서 OATH Toolkit과 Keychain을 사용하면 안전하게 OTP 기반 인증을 설정할 수 있습니다. 하지만 Keychain의 “항상 허용” 설정은 보안 위험을 초래할 수 있으므로, 민감한 항목에 대해서는 사용하지 않는 것을 권장합니다. Keychain의 강력한 보안과 함께 적절한 설정으로 보안을 강화하세요.