개발자 도구 · SHA 해시 계산기
해싱은 암호화가 아닙니다: SHA-256 해시를 해독할 수 없는 이유
· 그것이 중요한 이유
암호화 보안 인코딩
키나 역수가 없습니다. 해시는 단방향 함수입니다. 이 게시물에서는 암호화와의 차이점, 해시 조회 사이트가 해시를 역방향으로 표시하는 이유, 개인 데이터 해싱의 의미에 대해 설명합니다.
이 해시를 해독하십시오 — 해싱이 무엇인지에 대한 오해를 드러내는 티켓
일부 SHA-256 해시의 암호 해독을 요청하는 지원 티켓이 도착합니다. 이를 읽는 개발자는 해싱이 무엇인지에 대한 오해를 의심합니다. 혼란은 당연합니다. 해싱과 암호화 모두 암호화 알고리즘을 포함하고 둘 다 뒤섞인 것처럼 보이는 출력을 생성하며 둘 다 보안과 관련이 있습니다. 그러나 그것들은 근본적으로 다른 도구입니다. 암호화는 되돌릴 수 있습니다. 해싱은 그렇지 않습니다. 이러한 구별은 혼동으로 인해 실제 보안 시스템이 손상될 정도로 중요합니다. 티켓은 시스템 설계에 영향을 미치는 일반적인 이해 격차를 나타냅니다.
해시 함수는 단방향 함수입니다. 입력을 해시하여 다이제스트를 얻을 수 있지만 다이제스트에서 입력을 복구하는 키와 역작업이 없습니다. 이는 제한사항이나 버그가 아닙니다. 이는 해시의 정의 속성입니다. ToolAcre SHA 해시 계산기는 붙여넣은 텍스트의 다이제스트를 생성하며 버튼이 없기 때문에 "해독" 버튼이 없습니다. 이 작업은 선택이 아닌 수학으로 되돌릴 수 없습니다. 역방향 기능이 없다는 것은 요청할 수 있는 기능이 아닙니다.
암호화에는 키와 반대 키가 있습니다. 해싱에는 둘 다 없습니다 — 일반 용어의 정의 차이
암호화는 다르게 작동합니다. 암호화 알고리즘은 일반 텍스트와 키를 사용하여 암호문을 생성합니다. 암호문은 뒤섞여 있어 키가 없으면 읽을 수 없습니다. 결정적으로, 동일한 키는 암호문을 다시 일반 텍스트로 해독할 수 있습니다. 암호화는 원래대로 되돌릴 수 있도록 설계되었습니다. 데이터를 비밀로 유지하기 위해 암호화합니다. 다시 읽으려면 암호를 해독하세요. 암호화의 보안은 비밀 키에 따라 달라집니다. 열쇠를 갖고 있는 사람만이 변환을 되돌릴 수 있습니다.
해싱에는 키나 반전이 없습니다. 고정 길이 다이제스트를 생성하기 위해 무언가를 해시합니다. 동일한 입력은 항상 동일한 다이제스트를 생성합니다. 다른 입력은 다른 다이제스트, 즉 충돌 저항 속성을 생성합니다. 그러나 다이제스트를 가져와 입력을 생성할 수는 없습니다. 기능은 한 방향으로만 진행됩니다. 나중에 해독할 수 있도록 데이터를 암호화해야 한다면 해싱은 잘못된 도구입니다. 확인이나 콘텐츠 주소 지정을 위해 데이터의 지문이 필요한 경우 해싱이 정확합니다. 올바른 도구를 선택하려면 차이점을 이해해야 합니다.
해시 조회 사이트 작동 방식 — 암호 해독이 아닌 사전 계산된 공통 입력 사전
이러한 구별은 매우 중요하므로 비밀번호 확인 보안의 기초가 됩니다. 서버는 비밀번호를 저장하지 않습니다. 비밀번호를 해싱한 결과를 저장합니다. 사용자가 로그인하면 서버는 제출된 내용을 해시하고 저장된 값과 비교합니다. 서버가 손상되고 해당 데이터베이스가 도난당하는 경우 공격자는 비밀번호 자체를 얻지 못하고 해시만 얻습니다. 해시의 단방향 특성은 공격자가 해시에서 비밀번호를 리버스 엔지니어링할 수 없음을 의미합니다. 시스템의 보안은 이 속성에 따라 달라집니다.
서버가 대신 암호화를 사용한 경우(비밀번호를 암호화하고 해독할 수 있는 경우) 키를 훔치는 손상으로 인해 모든 비밀번호가 즉시 노출됩니다. 해싱은 되돌릴 수 없기 때문에 특별히 선택되었습니다. 이것이 비밀번호 시스템이 암호화가 아닌 해싱을 사용하는 이유입니다. 비가역성은 제한이 아닙니다. 이는 전체 보안 모델입니다. 암호화된 비밀번호 데이터베이스는 암호화가 되돌릴 수 있기 때문에 근본적으로 해시된 비밀번호 데이터베이스보다 취약합니다.
낮은 엔트로피 입력이 약점입니다. 이메일 주소, 전화번호 또는 짧은 PIN을 해싱하면 보호 기능이 거의 제공되지 않는 이유
해시 조회 사이트는 해독이라는 착각을 일으키기 위해 존재합니다. 이러한 사이트는 공통 입력 및 해당 해시로 구성된 미리 계산된 테이블을 호스팅합니다. "레인보우 테이블"은 사전 준비된 사전입니다. 테이블에는 가장 일반적인 수천 개의 비밀번호 해시, 특정 길이까지의 모든 영숫자 조합 또는 여러 언어의 전체 단어 목록이 포함될 수 있습니다. 사이트 운영자는 이미 해싱 작업을 완료하고 결과를 저장했습니다. 누군가가 조회 사이트에 해시를 제출하면 사이트는 어떤 것도 해독하지 않습니다. 단순히 테이블에서 해시를 조회합니다. 해시가 있는 경우(일부 사전 단어 또는 비밀번호 패턴이 일치하는 경우) 테이블은 원래 입력을 반환합니다. 이는 해당 기술에 익숙하지 않은 사람에게는 마법의 암호 해독처럼 보이지만 이는 단지 데이터베이스 조회일 뿐입니다. 사이트는 해시를 반전시키지 않습니다. 미리 계산된 값과 비교하는 것입니다.
실제 사례 — 추측 가능한 값을 해싱하고 사전이 이를 복구하는 방법과 복구할 수 없는 긴 임의 값 비교 표시
이것이 낮은 엔트로피 입력이 취약한 이유입니다. "password"와 같은 일반적인 비밀번호나 다른 사람의 이메일 주소와 같은 예측 가능한 값을 해시하는 경우 조회 사이트에서 이미 해당 해시를 계산하여 저장했을 가능성이 높습니다. 조회는 원래 값을 즉시 반환합니다. 256 문자 임의 문자열을 해시하는 경우 지구상의 어떤 조회 사이트에도 해당 특정 해시가 미리 계산되어 있지 않습니다. 입력이 사전에 없기 때문에 조회 사이트는 아무것도 반환하지 않습니다. 해시의 보안은 전적으로 입력의 엔트로피에 달려 있습니다.
ToolAcre SHA 해시 계산기는 이를 직접적으로 보여줍니다. 일반적인 단어를 해시하면 공격자가 자체 사전 서비스를 실행하면 해당 단어를 찾아볼 수 있습니다. 긴 임의 값을 해시하면 대규모 사전에도 해당 값이 포함될 가능성이 없습니다. 동일한 입력이 동일한 출력을 제공하는 해싱의 결정론이 사전 공격을 가능하게 합니다. 해시를 검증에 유용하게 만드는 것도 바로 이 때문입니다. 조회를 가능하게 하는 동일한 속성으로 확인도 가능합니다.
실제로 암호화를 원하는 경우 — 데이터를 다시 가져와야 하는 경우, 해시가 잘못된 도구인 경우
실제로 암호화를 원할 때(비밀 데이터를 보내고 나중에 복구해야 할 때) 암호는 올바른 도구입니다. AES는 대칭 암호화의 최신 표준입니다. 하나의 키가 공유되어 일반 텍스트를 암호화하고 암호 텍스트를 해독합니다. RSA 또는 타원 곡선 암호화는 비대칭 암호화에 사용됩니다. 즉, 공개 키는 암호화하고 개인 키는 해독합니다. 이러한 도구는 설계상 되돌릴 수 있습니다. 보안은 비가역성이 아닌 키 비밀성에서 비롯됩니다. 실수는 암호화가 필요한 곳에 해싱을 사용하는 것입니다. 나중에 확인하기 위해 신용카드 번호를 해시하면 해독할 수 있는 방법이 없습니다. 개인 식별자를 해시하고 나중에 이를 복구해야 하는 경우 해싱은 잘못된 선택입니다. 이는 암호화가 필요한 상황입니다.
실제 예제는 두 가지 용도를 명확하게 구분합니다. 서로에게 그리고 직원들에게 비밀로 유지되어야 하는 사용자 ID 목록이 있습니다. AES로 암호화하고 결과를 저장합니다. 나중에 사용자를 조회해야 할 때 이를 해독하고 읽습니다. 해싱은 작동하지 않습니다. 일단 해시되면 ID는 영원히 손실됩니다. 대조적으로, 사용자 비밀번호가 있습니다. 해시하고 해시를 저장합니다. 사용자가 로그인하면 제출 내용을 해시하고 저장된 값과 비교합니다. 비밀번호 자체를 복구할 필요는 없습니다. 암호화가 잘못되었습니다. 초기 설정 후에는 일반 텍스트 비밀번호를 사용할 수 없습니다.
여기서 다루지 않는 내용 — 기준을 높이지만 별도의 주제인 키 및 솔트 해싱 디자인
솔팅 및 키 해싱은 다이제스트를 암호화로 전환하지 않으므로 별도로 처리할 가치가 있습니다. 솔트는 동일한 저엔트로피 입력이 서로 다른 저장된 레코드를 생성하도록 하며, 키는 유효한 인증 값을 계산하는 사람을 제한할 수 있습니다. 출력은 되돌릴 수 없는 상태로 유지됩니다. 복구 시도는 역을 적용하는 대신 후보 입력을 테스트하여 계속 진행됩니다.
비밀번호 해싱은 의도적인 비용과 솔트를 추가하는 반면 HMAC는 비밀 키로 메시지를 인증합니다. ToolAcre는 두 작업을 모두 구현하지 않습니다. 이 문서 외부에 보관하면 일반 SHA-256에 검토된 비밀번호 기록 또는 메시지 인증 구성과 동일하게 즉석에서 접두사를 추가하여 설명하는 위험한 지름길을 피할 수 있습니다.
요점: 단방향만 — ToolAcre SHA 해시 계산기는 다이제스트를 계산합니다. 아무것도 존재할 수 없기 때문에 역방향 버튼이 없습니다.
ToolAcre SHA 해시 계산기는 해싱의 실제 동작을 보여줍니다. 즉, 텍스트 붙여넣기, 요약 가져오기 완료 등이 있습니다. 반전은 불가능하거나 의도되지 않았습니다. 이 도구는 "암호 해독" 기능이 존재할 수 없기 때문에 제공을 올바르게 거부합니다. 암호화가 필요한 경우 적절한 암호를 사용하십시오. 반전이 없다는 것은 도구의 제한이 아닙니다. 해싱에 대한 수학적 사실입니다. 단방향 함수는 되돌릴 수 없기 때문에 강력한 도구입니다. 그들은 되돌릴 수 없는 방식으로 데이터를 커밋합니다. 원본을 공개하지 않고 검증을 제공합니다. 데이터베이스가 도난당하더라도 안전한 비밀번호 시스템을 가능하게 합니다. 솔트 처리되고 적절하게 비용이 조정된 비밀번호 해시는 추측을 통해 되돌릴 수 없게 됩니다. 비가역성은 보안 메커니즘입니다.
ToolAcre SHA 해시 계산기는 단방향이고 목적이 있으며 브라우저의 자체 웹 암호화 구현에 의해 적절하게 계산되는 다이제스트를 계산합니다. 검증이나 무결성을 위해 해시가 필요한 경우 이를 사용하세요. 데이터를 비밀로 유지하고 나중에 검색해야 하는 경우 암호화가 도구입니다. 되돌릴 수 없는 해싱과 되돌릴 수 있는 암호화의 차이점을 이해하는 것은 보안과 실제로 필요한 작업을 수행하는 시스템 구축의 기본입니다.