섀도우 파일에는 암호화된 비밀번호가 있나요?

섀도우 파일에는 암호화된 비밀번호가 있나요?

man 5 shadow두 번째 필드에 대해서는 다음과 같이 말합니다 .

암호화된 비밀번호

요즘 정말 그런가요? "해시된 비밀번호"라고 말해야 한다고 생각합니다. 내가 맞나요?

답변1

아니요, 섀도우 파일에는 암호화된 비밀번호가 포함되어 있지 않습니다. 제가 본 어떤 Unix 변형에도 없습니다. 이를 위해서는 어딘가에 암호화 키가 필요합니다. 어디에 있을까요?

심지어 원작도crypt기능실제로는 해시 함수입니다. 비밀번호를 키로 사용하여 작동합니다.DES. 의 출력은 crypt모든 비트가 0인 블록의 암호화입니다. 이는 구현의 일부로 암호화 기능을 사용하지만 crypt작업은 암호화 작업이 아닙니다.해시 함수: 역함수를 계산하기 어려워 동일한 출력을 생성하는 두 값을 찾기 어려운 함수입니다.

제한 사항 내에서 원래 DES 기반 crypt구현은 다음 기본 원칙을 따랐습니다.좋은 암호화 해시 함수: 되돌릴 수 없는 기능,소금, 감속 계수. 오늘날의 컴퓨팅 성능을 고려할 때 적합하지 않은 것은 디자인이 아니라 제한 때문입니다. 비밀번호 최대 8자, 전체 크기로 인해 무차별 대입 공격이 쉽고, 솔트가 너무 짧고, 반복 횟수가 너무 짧습니다.

이 이름 때문에 crypt(그리고 암호화가 내부적으로 사용된다는 사실 때문에 crypt) 그리고 최근까지 암호화에 대해 교육받은 사람이 거의 없었기 때문에 이 기능에 대한 광범위한 문서 crypt와 다른 맥락에서 동등한 문서에서는 이를 "암호화 암호화"라고 설명합니다. ". 하지만 실제로는 비밀번호 해시이며 항상 그래왔습니다.

최신 시스템은 보다 강력한 알고리즘을 기반으로 하는 암호화 해시 함수를 사용합니다. 이러한 알고리즘 중 일부는 "MD5", "SHA-256" 및 "SHA-512"라고 불리지만 해시 계산은 MD5(비밀번호 + 솔트)와는 달리 느린 속도 요구 사항을 충족하는 반복 해시입니다(비록 공통 방법에는 GPU 기반 가속을 방지하기 위한 메모리 경도가 부족합니다.

답변2

man 5 shadow"암호화된 암호" 섹션에서 이를 참조합니다 crypt(3). 매뉴얼( )을 읽어보면 man 3 crypt기존 DES 암호화 암호와 현재 사용되는 해싱 알고리즘을 모두 사용할 수 있음을 알 수 있습니다. 따라서 "암호화된 비밀번호"가 해당 필드에 포함될 수 있는 내용을 완전히 포함하지 않는다고 생각하신 것이 맞습니다. 더 나은 설명은 "암호화되거나 해시된 비밀번호"입니다.

답변3

설정에 따라 다릅니다. 섀도우 파일에는 암호화된(자체 및 솔트 포함) 비밀번호가 포함될 수 있지만 해시 여부는 형식에 따라 다릅니다.

시스템은 해시 함수를 기반으로 새 비밀번호를 입력할 수 있지만 여전히 이전 형식을 지원할 가능성이 높습니다.

항목이 a로 시작하지 않으면 지원되는 해시 함수 중 하나를 사용하지 않고 $출력된 것으로 간주됩니다.crypt

~에서섀도우 파일에 대한 Wikipedia 항목:

"$1$"은 MD5를 나타내고, "$2a$"는 Blowfish, "$2y$"는 Blowfish(8비트 문자를 올바르게 처리함), "$5$"는 SHA-256, "$6$"는 SHA-512,

관련 정보