UUID v3란?
UUID 버전 3 RFC 4122의 MD5 해싱을 사용하는 네임스페이스 기반 128비트 식별자(36자 문자열)입니다.
- 네임스페이스 UUID: 미리 정의되었거나 사용자 지정된 UUID 네임스페이스
- Name: 해싱되는 사용자 제공 문자열
- MD5 해시: 네임스페이스 + 이름 조합에 적용됨
형식 예시: 9125a8dc-52ee-365b-a5aa-81b0b3681cf6
UUID v3 작동 방식
- 네임스페이스 UUID 선택 (미리 정의되었거나 사용자 지정)
- 네임스페이스 UUID 바이트와 이름 문자열 바이트 연결
- 연결된 값의 MD5 해시 계산
- 버전 비트를 0011 (버전 3)으로 설정
- 변형 비트를 10 (RFC 4122 표준)으로 설정
- 하이픈이 포함된 32진수 8-4-4-4-12 형식으로 조립
장점 및 고려사항
Advantages | Considerations |
---|---|
|
|
UUID v3 구조
Bits | Content |
---|---|
0-47 | MD5 해시의 처음 48비트 |
48-51 | 버전 (v3의 경우 0011) |
52-63 | MD5 해시의 다음 12비트 |
64-65 | 변형 (RFC4122의 경우 10) |
66-127 | MD5 해시의 나머지 62비트 |
미리 정의된 네임스페이스
Name | UUID | Purpose |
---|---|---|
DNS | 6ba7b810-9dad-11d1-80b4-00c04fd430c8 | 도메인 이름 |
URL | 6ba7b811-9dad-11d1-80b4-00c04fd430c8 | URLs |
OID | 6ba7b812-9dad-11d1-80b4-00c04fd430c8 | ISO OID |
X.500 DN | 6ba7b814-9dad-11d1-80b4-00c04fd430c8 | X.500 구별 이름 |
UUID v3와 다른 버전 비교
Version | 기반 | 사용 사례 | Privacy |
---|---|---|---|
UUID v1 | 시간 + MAC | 시간 순서 ID | ⚠️ MAC 노출 |
UUID v3 | 네임스페이스 + MD5 | 결정적 ID | ✅ 비공개 |
UUID v4 | Random | 보안 무작위 ID | ✅ 비공개 |
UUID v5 | 네임스페이스 + SHA-1 | 결정적 ID | ✅ 비공개 |
UUID v6 | 시간 (재정렬됨) | 정렬 가능한 ID | ⚠️ MAC 노출 |
UUID v7 | 시간 + 무작위 | 정렬 가능한 ID | ✅ 비공개 |
일반 사용 사례
- URL 기반 식별자: URL에서 UUID 생성
- 도메인별 ID: DNS 이름을 UUID로 변환
- 결정적 파일 ID: 콘텐츠 주소 지정
- 사용자 ID: 이메일 또는 사용자 이름에서
- 구성 항목: 일관된 키용
- 문서 참조: 콘텐츠 관리 시스템
자주 묻는 질문
UUID v3는 암호학적으로 안전한가?
그렇지 않습니다. UUID v3는 알려진 암호학적 약점이 있는 MD5를 사용합니다. 더 높은 보안을 위해 UUID v5 (SHA-1) 또는 UUID v4 (무작위)를 고려하세요.
같은 입력이 항상 같은 UUID v3를 생성하나요?
예. UUID v3는 결정적입니다 - 같은 네임스페이스와 이름은 항상 동일한 UUID를 생성하여 재현 가능한 ID에 유용합니다.
UUID v3와 v5의 차이점은?
동일하게 작동하지만 v3는 MD5를, v5는 SHA-1을 사용합니다. SHA-1이 MD5보다 암호학적으로 강하므로 일반적으로 UUID v5가 선호됩니다.
내가 직접 네임스페이스를 만들 수 있나요?
예. RFC 4122는 표준 네임스페이스(DNS, URL, OID, X.500)를 정의하지만, 유효한 UUID를 사용하여 사용자 지정 네임스페이스를 만들 수 있습니다.
UUID v3는 보안 토큰에 적합한가요?
아니요. MD5의 약점과 결정적 특성 때문에 UUID v3는 보안 토큰이나 예측 불가능성이 필요한 용도에 권장되지 않습니다.