비밀번호 및 OAuth 토큰 저장소
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
GitLab 관리자는 비밀번호와 OAuth 토큰이 저장되는 방식을 구성할 수 있습니다.
비밀번호 저장소
GitLab은 비밀번호를 평문으로 저장하는 것을 방지하기 위해 해시된 형식으로 사용자 비밀번호를 저장합니다.
GitLab은 사용자 비밀번호를 해시하기 위해 Devise 인증 라이브러리를 사용합니다.
생성된 비밀번호 해시는 다음과 같은 속성을 가집니다:
- 해싱:
-
스트레칭: 비밀번호 해시는 스트레칭되어
무차별 대입 공격에 대한 저항력을 강화합니다. 기본적으로 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 비밀번호 저장소와 마찬가지로, 액세스 토큰 값은
스트레칭되어 무차별 대입 공격에 대한 저항력을 강화합니다.