Loading AI tools
위키백과, 무료 백과사전
암호학에서 PBKDF1 및 PBKDF2(Password-Based Key Derivation Function 1 및 2)는 무차별 대입 공격에 대한 취약성을 줄이는 데 사용되는 슬라이딩 계산 비용이 있는 키 유도 함수이다.[1]
PBKDF2는 RSA Laboratories의 PKCS(공개 키 암호 표준) 시리즈, 특히 PKCS #5 v2.0의 일부이며 국제 인터넷 표준화 기구의 RFC 2898로도 게시되었다. 이는 최대 160비트 길이의 유도 키만 생성할 수 있는 PBKDF1을 대체한다.[2] 2017년에 게시된 RFC 8018(PKCS #5 v2.1)에서는 비밀번호 해싱에 PBKDF2를 권장한다.[3]
PBKDF2는 입력된 비밀번호 또는 패스프레이즈에 솔트 (암호학) 값과 함께 HMAC(해시 기반 메시지 인증 코드)와 같은 의사 난수 기능을 적용하고 이 과정을 여러 번 반복하여 유도 키를 생성한 후 후속 작업에서 암호화 키로 사용할 수 있다. 추가된 계산 작업으로 인해 비밀번호 크래킹이 훨씬 더 어려워지며 이를 키 스트레칭이라고 한다.
2000년에 표준이 작성되었을 때 권장되는 최소 반복 횟수는 1,000회였지만, 매개변수는 CPU 속도가 증가함에 따라 시간이 지남에 따라 증가하도록 의도되었다. 2005년 커버로스 표준에서는 4,096번의 반복을 권장했다.[1] 애플은 iOS 3에 2,000개, iOS 4[4]에 10,000개를 사용한 것으로 알려졌다. 2011년 라스트패스는 자바스크립트 클라이언트에 5,000번의 반복을 사용했고 서버 측 해싱에 100,000번의 반복을 사용했다.[5] 2023년에 OWASP는 PBKDF2-HMAC-SHA256에는 600,000번, PBKDF2-HMAC-SHA512에는 210,000번의 반복을 사용할 것을 권장했다.[6]
비밀번호에 솔트를 추가하면 공격에 미리 계산된 해시(레인보 테이블)를 사용하는 능력이 줄어들고, 여러 비밀번호를 한꺼번에 테스트하는 것이 아니라 개별적으로 테스트해야 한다는 의미이다. 공개 키 암호화 표준에서는 최소 64비트의 솔트 길이를 권장한다.[7] 미국 국립표준기술연구소에서는 최소 128비트의 솔트 길이를 권장한다.[8]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.