비밀번호 및 OAuth 토큰 저장
Tier: Free, Premium, Ultimate
Offering: GitLab.com, Self-managed, GitLab Dedicated
GitLab 관리자는 비밀번호와 OAuth 토큰의 저장 방법을 구성할 수 있습니다.
비밀번호 저장
GitLab은 사용자 비밀번호를 해시된 형식으로 저장하여 평문으로 저장되는 것을 방지합니다.
GitLab은 사용자 비밀번호를 해싱하기 위해 Devise 인증 라이브러리를 사용합니다. 생성된 비밀번호 해시는 다음과 같은 속성을 갖습니다:
- 해싱:
- 스트레칭: 비밀번호 해시는 무차별 대입 공격에 대비하여 강화되기 위해 늘어납니다. 기본적으로 GitLab은 bcrypt에 대해 10배, PBKDF2+SHA512에 대해 20,000배를 사용합니다.
- Salt 추가: 각 비밀번호에 암호화적인 salt가 추가되어 사전 계산된 해시 및 사전 공격에 대비합니다. 보안을 높이기 위해 각 salt는 각 비밀번호마다 무작위로 생성되며 두 개의 비밀번호가 동일한 salt를 공유하지 않습니다.
OAuth 액세스 토큰 저장
OAuth 액세스 토큰은 데이터베이스에 PBKDF2+SHA512 형식으로 저장됩니다. PBKDF2+SHA512 비밀번호 저장과 마찬가지로 액세스 토큰 값은 무차별 대입 공격에 대비하여 20,000번 늘어납니다.