パスワードとOAuthトークンの保管
GitLab 管理者はパスワードと OAuth トークンの保存方法を設定できます。
パスワードの保存
GitLabは、パスワードがプレーンテキストとして保存されるのを防ぐために、ハッシュ化されたフォーマットでユーザーパスワードを保存します。
GitLabはDevise認証ライブラリを使ってユーザーパスワードをハッシュ化します。作成されたパスワードハッシュは以下の属性を持ちます:
- ハッシュ:
- ストレッチング: パスワードハッシュはブルートフォース攻撃に対して強固にするためにストレッチングされます。デフォルトでは、GitLabはbcryptに10、PBKDF2 + SHA512に20,000のストレッチング係数を使用します。
- ソルティング:事前に計算されたハッシュ攻撃や辞書攻撃から身を守るため、各パスワードに暗号化ソルトが追加されます。セキュリティを高めるため、各ソルトはパスワードごとにランダムに生成され、2つのパスワードが同じソルトを共有することはありません。
OAuthアクセストークンの保管
- PBKDF2+SHA512 は GitLab 15.3 で
hash_oauth_tokens
というフラグで 導入されました。- GitLab 15.5ではデフォルトで有効になっています。
- GitLab 15.6で機能フラグが削除されました。
OAuthアクセストークンはPBKDF2+SHA512フォーマットでデータベースに保存されます。PBKDF2+SHA512パスワードの保存と同様に、アクセストークンの値はブルートフォース攻撃に対して強固にするために20,000倍に伸ばされます。