DEV Community

dss99911
dss99911

Posted on • Originally published at dss99911.github.io

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

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
Enter fullscreen mode Exit fullscreen mode

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

2. Keychain에 OTP 키 저장

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

Keychain에 키 저장:

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

예시:

security add-generic-password -a user@example.com -s otp-service -w mysecretkey123
Enter fullscreen mode Exit fullscreen mode
  • -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)
Enter fullscreen mode Exit fullscreen mode

OTP 생성:

oathtool --totp --base32 "$PASSWORD"
Enter fullscreen mode Exit fullscreen mode

예시 출력:

123456

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

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

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

항상 허용의 위험성

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

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

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

설정 확인 방법:

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

“항상 허용” 설정 해제:

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

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"
Enter fullscreen mode Exit fullscreen mode

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

7. 보안 권장 사항

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

결론

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


Originally published at https://dss99911.github.io

Top comments (0)