비밀번호 및 OAuth 토큰 저장소

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab 관리자는 비밀번호와 OAuth 토큰이 저장되는 방식을 구성할 수 있습니다.

비밀번호 저장소

  • PBKDF2+SHA512는 GitLab 15.2에서 도입되었습니다
    pbkdf2_password_encryptionpbkdf2_password_encryption_write라는 플래그와 함께. 기본적으로 비활성화되어 있습니다.
  • 기능 플래그는 GitLab 15.6에서 제거되었습니다
    그리고 PBKDF2+SHA512는 FIPS 모드에서 실행되는 모든 GitLab 인스턴스에 제공되었습니다.

GitLab은 비밀번호를 평문으로 저장하는 것을 방지하기 위해 해시된 형식으로 사용자 비밀번호를 저장합니다.

GitLab은 사용자 비밀번호를 해시하기 위해 Devise 인증 라이브러리를 사용합니다.

생성된 비밀번호 해시는 다음과 같은 속성을 가집니다:

  • 해싱:
    • bcrypt: 기본적으로 bcrypt 해싱
      함수를 사용하여 제공된 비밀번호의 해시를 생성합니다. 이 암호 해싱 함수는
      강력하고 업계 표준입니다.
    • PBKDF2+SHA512: PBKDF2+SHA512가 지원됩니다:
      • GitLab 15.2부터 GitLab 15.5까지 pbkdf2_password_encryptionpbkdf2_password_encryption_write 기능 플래그가 활성화된 경우.
      • GitLab 15.6 및 이후 버전에서 FIPS 모드가 활성화된 경우(기능 플래그는 필요하지 않음).
  • 스트레칭: 비밀번호 해시는 스트레칭되어
    무차별 대입 공격에 대한 저항력을 강화합니다. 기본적으로 GitLab은 bcrypt에 대해 10의 스트레칭
    계수와 PBKDF2 + SHA512에 대해 20,000을 사용합니다.
  • 솔팅: 각 비밀번호에 대한 암호학적 솔트가 추가되어
    전처리된 해시 및 사전 공격에 대한 저항력을 강화합니다. 보안을 강화하기 위해
    각 솔트는 각 비밀번호마다 무작위로 생성되며, 두 개의 비밀번호가 동일한 솔트를 공유하지 않습니다.

OAuth 액세스 토큰 저장소

OAuth 액세스 토큰은 데이터베이스에 PBKDF2+SHA512 형식으로 저장됩니다. PBKDF2+SHA512 비밀번호 저장소와 마찬가지로, 액세스 토큰 값은
스트레칭되어 무차별 대입 공격에 대한 저항력을 강화합니다.