Password and OAuth 토큰 저장
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-Managed, GitLab Dedicated
GitLab 관리자는 비밀번호와 OAuth 토큰이 어떻게 저장되는지 구성할 수 있습니다.
비밀번호 저장
GitLab은 사용자 비밀번호를 해시된 형식으로 저장하여 평문으로 저장되지 않도록 합니다.
GitLab은 사용자 비밀번호를 해싱하기 위해 Devise 인증 라이브러리를 사용합니다. 생성된 비밀번호 해시에는 다음과 같은 속성이 있습니다:
-
해싱:
-
bcrypt: 기본적으로
bcrypt
해싱 함수가 제공된 비밀번호의 해시를 생성하는 데 사용됩니다. 이 암호 해싱 함수는 강력하며 업계 표준입니다. -
PBKDF2+SHA512: PBKDF2+SHA512는 다음을 지원합니다:
- 피처 플래그가 활성화된 경우, GitLab 15.2에서 15.5까지.
- FIPS 모드가 활성화된 GitLab 15.6 이후(피처 플래그가 필요하지 않음).
-
bcrypt: 기본적으로
- 스트레칭: 비밀번호 해시는 브루트 포스 공격에 대비하여 강화되기 위해 늘어납니다. 기본적으로 GitLab은 bcrypt에 대해 10배, PBKDF2 + SHA512에 대해 20,000배의 스트레칭 인자를 사용합니다.
- 솔팅: 각 비밀번호에 암호학적 솔트가 추가되어 사전 계산된 해시 및 사전 공격에 대비합니다. 보안을 강화하기 위해 각 솔트는 무작위로 생성되며 두 개의 비밀번호가 동일한 솔트를 공유하지 않습니다.
OAuth 액세스 토큰 저장
- PBKDF2+SHA512는 GitLab 15.3에서 도입되었으며
hash_oauth_tokens
라는 플래그와 함께 사용됩니다.- 기본적으로 GitLab 15.5에서 활성화되었습니다.
- GitLab 15.6에서 피처 플래그가 제거되었습니다.
OAuth 액세스 토큰은 PBKDF2+SHA512 형식으로 데이터베이스에 저장됩니다. PBKDF2+SHA512 비밀번호 저장과 마찬가지로 액세스 토큰 값은 브루트 포스 공격에 대비하여 20,000회 스트레칭됩니다.