개발자 도구 · SHA 해시 계산기
온라인 해시 도구에 비밀 붙여넣기: 다이제스트가 로컬이어야 하는 이유
· 그것이 중요한 이유
샤-256 보안 개인정보 보호 브라우저 API
해시 도구가 귀하의 입력을 서버로 보내는 경우 귀하가 해시하고 있던 비밀은 이미 귀하의 컴퓨터에서 나간 것입니다. 이 게시물에서는 위험, Web Crypto가 서버를 불필요하게 만드는 방법, 도구가 로컬인지 확인하는 방법에 대해 설명합니다.
구성 파일과 비교하기 위해 해시한 API 키와 그 위치
개발자는 가장 가까운 온라인 해시 도구를 찾을 수 있도록 API 키를 해시하여 구성에 저장된 값과 비교해야 합니다. 키를 붙여넣고 버튼을 클릭한 후 다이제스트를 가져옵니다. 해시가 일치하므로 테스트가 통과됩니다. 아마도 그들이 깨닫지 못하는 것은 API 키가 이미 그들의 컴퓨터를 떠났다는 것입니다. 서버에서 실행되는 모든 해시 도구는 다이제스트를 계산하기 전에 일반 텍스트 입력을 받습니다. 서버는 이를 기록하고, 저장하고, 판매하거나 경쟁업체에 전달할 수 있습니다.
해시 도구는 실제로 올바른 출력을 생성할 수 있고 여전히 입력을 서버에 전달할 수 있기 때문에 속임수는 미묘합니다. 해싱의 수학적 연산은 위치와 무관하므로 아키텍처가 안전하지 않더라도 서버측 해시는 암호학적으로 정확합니다. 공격자가 승리하기 위해 해시 계산을 손상시킬 필요는 없습니다. 단지 일반 텍스트 입력만 있으면 됩니다. 출력이 정확하기 때문에 해시 도구가 로컬이라고 가정하는 개발자는 잘못된 속성을 신뢰하는 것입니다.
서버 측 해시 도구가 수신하는 것 — 정의에 따라 다이제스트가 계산되기 전 전체 일반 텍스트 입력
서버 측 해시 도구에는 정의에 따라 일반 텍스트 입력이 입력으로 필요합니다. 서버는 HTTPS를 통해 이를 수신합니다. 이는 전송 중에 이를 보호하지만 서버에 도달할 때까지만 가능합니다. 그런 다음 일반 텍스트는 서버에 의해 기록되고, 해싱 중에 메모리에 저장되며, 잠재적으로 디스크에 기록되고, 서버가 유지하는 모든 백업 또는 모니터링 추적에 포함됩니다. 서버를 운영하는 회사는 로그를 읽고 거기에 해시된 모든 비밀을 볼 수 있습니다.
대안은 브라우저의 자체 암호화 구현인 Web Crypto를 사용하는 것입니다. HTTPS 또는 로컬 호스트를 의미하는 보안 원본에서 브라우저는 브라우저 프로세스 내에서 완전히 SHA-1, SHA-256, SHA-384 및 SHA-512 다이제스트를 계산하는 함수인 crypto.subtle.digest를 노출합니다. 입력은 장치를 떠나지 않으며 서버도 관련되지 않습니다. 브라우저 구현은 브라우저 공급업체에서 감사하고, 브라우저 공급업체에서 패치하며, 제공된 JavaScript가 아닌 최적화된 기본 코드로 실행됩니다.
서버가 불필요한 이유 — 브라우저의 자체 웹 암호화는 모든 SHA-2 다이제스트를 로컬에서 계산합니다.
해시 도구가 로컬인지 확인하려면 DevTools 네트워크 패널을 열고 도구가 네트워크를 통해 전송하는 내용을 관찰하기만 하면 됩니다. 대부분의 브라우저에서 DevTools는 F12 또는 Cmd+Option+I로 열리며 네트워크 탭은 네트워크 트래픽을 볼 수 있는 곳입니다. 네트워크 탭이 열리고 해시 도구가 표시된 상태에서 일반 텍스트를 붙여넣고 해시 버튼을 클릭한 후 무슨 일이 일어나는지 지켜보세요. 로컬 도구를 사용하는 경우 네트워크 패널에 새 요청이 표시되지 않습니다.
이 확인 방법은 브라우저가 동일 출처 제한을 구현하기 때문에 작동합니다. 페이지는 CORS 문제를 트리거하지 않고 자체 원본에 요청할 수 있으므로 로컬 도구는 원할 경우 동일한 도메인에 있는 서버에 요청할 수 있습니다. DevTools 패널에 네트워크 요청이 나타나면 도구가 데이터를 어딘가로 보내고 있음을 증명합니다. 이를 확인하고 네트워크 트래픽이 없는 것을 확인하는 개발자는 입력이 브라우저를 벗어나지 않는다는 강력한 확신을 갖게 됩니다. ToolAcre SHA 해시 계산기는 해싱 시 비어 있는 네트워크 패널을 생성합니다.
네트워크 패널로 확인 — 요청이 없는지 붙여넣기, 해싱 및 감시
엄격한 콘텐츠 보안 정책은 네트워크 패널 점검 이상의 추가 보증을 제공할 수 있습니다. 콘텐츠 보안 정책은 서버가 전송하는 HTTP 헤더로, 브라우저가 스크립트 로드 및 요청을 허용해야 하는 도메인을 선언합니다. 모든 외부 스크립트, 모든 외부 스타일시트 및 외부 원본에 대한 모든 양식 제출을 허용하지 않는 정책은 손상된 페이지에서 수행할 수 있는 작업을 제한합니다. 정책이 외부 요청을 금지하는 경우 공격자는 입력을 외부 서버로 보내는 악성 코드를 전송할 수 없습니다.
콘텐츠 보안 정책 헤더는 HTTP 응답과 함께 전송되며 DevTools 네트워크 탭의 응답 헤더 섹션에서 검사할 수 있습니다. Content-Security-Policy: default-src 'self';와 같은 줄입니다. script-src 'self'는 스크립트가 동일한 출처에서만 나올 수 있음을 선언합니다. 프레임 상위 항목 '없음'을 포함하는 더 엄격한 정책은 페이지가 iframe에 포함되는 것을 방지합니다. 이는 악성 iframe이 포커스를 도용하려고 시도하는 경우 하나의 공격 벡터를 차단합니다. 이러한 세부 정보는 방어를 이해하는 데 유용하지만 네트워크 패널 확인은 여전히 기본 검증입니다.
CSP는 심층 방어입니다. 여기에서 읽은 저장소 소스는 배포된 헤더를 설정하지 않습니다.
작업된 예: AWS 또는 Azure의 API 키를 ToolAcre SHA 해시 계산기에 붙여넣어 저장된 지문과 비교하여 확인합니다. DevTools를 열고 네트워크 탭을 선택한 다음 녹화 중인지 확인하세요. API 키를 해시 도구에 붙여넣고 SHA-256을 선택한 후 해시를 클릭하세요. 다이제스트가 도구에 표시되고 네트워크 패널에는 새 요청이 표시되지 않습니다. 필요한 경우 해시 정확성을 교차 확인하기 위해 도구 설명서에서 테스트 벡터를 사용할 수 있습니다. 중요한 점은 API 키가 브라우저를 떠나지 않았으며 이제 비밀을 노출하지 않고도 다이제스트를 저장된 값과 비교할 수 있다는 것입니다.
이 워크플로에서 다루지 않는 것은 브라우저 확장 프로그램이 손상되었거나 브라우저 자체가 손상된 경우입니다. 광범위한 권한을 가진 악성 확장 프로그램은 모든 트래픽을 보고, 클립보드 콘텐츠를 가로채고, 사용자가 입력하는 내용을 관찰할 수 있습니다. 제로데이 취약점이나 악의적인 설치를 통해 손상된 브라우저는 강제로 입력을 어디로든 보내야 할 수 있습니다. 이러한 위협에 대해서는 어떤 웹 도구도 보호 기능을 제공할 수 없습니다. 적절한 방어는 브라우저 설치를 신뢰하고 업데이트를 유지하며 설치된 확장 프로그램을 검토하는 것입니다.
실제 사례: 라이브 API 키를 붙여넣는 대신 무해한 마커를 사용하고 요청을 검사합니다.
비밀을 도구에 붙여넣는 사람을 위한 조언은 붙여넣기 전에 해당 도구가 로컬 도구인지 확인하라는 것입니다. 이는 서버 운영자, 직원, 백업 및 로그가 모두 일반 텍스트로 표시되는 가장 큰 위험을 제거하는 간단한 단계입니다. DevTools 네트워크 패널을 사용하여 요청이 없는지 확인한 다음 비밀이 있는 도구를 신뢰하세요. ToolAcre SHA 해시 계산기는 이러한 방식으로 사용되도록 설계되었습니다. 아무것도 저장하지 않고, 아무것도 업로드하지 않으며, 네트워크 패널은 비어 있습니다.
이미 서버 측 도구에 비밀 정보를 붙여넣은 개발자의 경우 다음 단계는 해당 비밀 정보를 교체하는 것입니다. 알 수 없는 서버로 전송된 API 키는 손상된 것으로 간주해야 합니다. 폐지하고 새로 발급받아야 합니다. 비밀번호를 변경해야 합니다. SSH 키를 교체해야 합니다. 인프라 API 키와 같은 정적 비밀의 경우 이는 일회성 작업입니다. 세션 토큰 또는 임시 자격 증명의 경우 토큰이 만료되면 자동으로 교체가 발생합니다.
여기에 포함되지 않는 내용 — 어떤 웹 도구도 방어할 수 없는 브라우저 확장 및 손상된 시스템
온라인 도구에 대한 신뢰 구축은 계산이 발생하는 위치를 이해하고 브라우저 개발자 도구를 사용하여 이해를 검증하는 것부터 시작됩니다. 네트워크 패널은 명확한 신호입니다. 데이터가 브라우저를 벗어나면 그곳에 표시됩니다. 요청에 고유한 테스트 입력이 포함되어 있지 않으면 해당 세션은 로컬 변환 경로에 대한 증거를 제공합니다. 확장 프로그램, 손상된 브라우저 코드 또는 향후 배포에 대해 보장하지 않습니다. 가능한 경우 이 검사와 소스 코드 검토를 결합하면 자신감을 얻을 수 있습니다.
민감한 데이터에 사용할 암호화 도구를 평가하는 조직의 경우 원칙은 동일합니다. 즉, 제어하는 곳에서 계산이 발생하는지 확인하는 것입니다. 개인이 API 키를 해싱하거나 파일을 확인하는 경우 먼저 네트워크 패널 확인을 사용하세요. 프로덕션 시스템의 경우 인증을 위해 일반 해시 대신 HMAC 또는 서명을 사용합니다. ToolAcre SHA 해시 계산기는 학습 및 로컬 다이제스트 계산을 위한 도구 중 하나입니다. 프로덕션 인증에는 적합하지 않습니다.
요점: 확인한 후 신뢰하십시오. ToolAcre SHA 해시 계산기는 브라우저에서 실행되며 방문 사이에 아무것도 업로드하거나 저장하지 않습니다.
투명성 원칙은 ToolAcre 접근 방식의 핵심입니다. 모든 도구는 수행하는 작업, 브라우저가 제공하는 작업, 개발자가 수행해야 하는 작업을 문서화합니다. SHA 해시 계산기는 SHA-256, SHA-384 및 SHA-512에 대한 브라우저의 웹 암호화 구현을 사용하고 HMAC 또는 키 파생을 구현하지 않음을 문서화합니다. 해싱의 경우 도구가 정확합니다. 인증을 위해 개발자는 다른 곳을 찾아야 합니다. 이러한 명확성은 단일 도구가 너무 많은 작업을 수행하려고 할 때 발생하는 혼란을 방지합니다.
개발자가 네트워크 패널이 비어 있고 소스 코드가 열려 있는 것을 확인하면 신뢰 관계가 견고한 기반 위에 있는 것입니다. 이 도구는 주장하는 대로 브라우저의 자체 구현을 사용하여 로컬에서 해시를 계산합니다. 그런 다음 개발자는 도구가 자신의 사용 사례에 적합한지 여부에 대해 정보를 바탕으로 결정을 내릴 수 있습니다. API 키를 확인하는 데 완벽하게 맞습니다. 프로덕션 인증을 위해서는 HMAC가 필요합니다. 비밀번호 저장을 위해서는 Argon2id와 같은 키 유도 기능이 필요합니다. 이러한 경계를 아는 것이 보안 시스템 구축을 향한 첫 번째 단계입니다.