한국어

개발자 도구 · Base64 인코더 및 디코더

온라인으로 Base64 토큰 디코딩: 도구가 브라우저에서 실행되어야 하는 이유

· 그것이 중요한 이유

베이스64 개인정보 보호

네트워크 패널에 네트워크 요청이 표시되지 않고 브라우저 탭에서 로컬로 디코딩된 토큰
원본 ToolAcre 벡터 일러스트레이션

많은 온라인 디코더는 입력 내용을 서버로 보냅니다. 즉, 붙여넣은 모든 토큰, 자격 증명 및 페이로드가 공개됩니다. 이 게시물에서는 누출 내용, 도구가 로컬로 유지되는지 확인하는 방법 및 ToolAcre의 디코더가 그런 방식으로 작동하는 이유를 설명합니다.

낯선 사람의 서버를 통과한 API 키 — 양식 게시 디코더에 토큰을 붙여넣으면 실제로 전송되는 내용

엔지니어는 시스템을 디버그하기 위해 Base64로 인코딩된 JWT 또는 API 응답을 검사해야 합니다. 그들은 선호하는 검색 엔진을 열고 온라인 디코더 도구를 찾은 다음 토큰을 입력 필드에 붙여 넣습니다. 이 도구는 디코딩된 페이로드를 즉시 표시하고 엔지니어는 다시 작업을 시작합니다. 그들이 보지 못한 것은 서버로 이동한 것입니다. 즉, 모든 자격 증명, 청구 및 개인 세부 정보가 포함된 전체 토큰입니다. 해당 요청은 기록되어 서버 액세스 로그에 저장되고 프록시에 의해 캐시될 수 있으며 네트워크 트래픽을 모니터링하는 모든 사람에게 확실히 표시됩니다.

온라인 디코더를 사용하는 우연한 선택으로 인해 자신이 통제하지 않는 서비스에 생산 토큰이 공개되었습니다. 이 게시물에서는 원격 디코더에 붙여넣을 때 누출되는 내용, 도구가 로컬에 있는지 확인하는 방법, ToolAcre 디코더가 브라우저에서 작동하여 비밀이 서버로 이동하지 않는 이유를 설명합니다. JWT(JSON 웹 토큰)에는 점으로 구분된 인코딩된 클레임이 포함되어 있습니다. 디코딩되면 중간 섹션에 사용자 ID, 이메일 주소, 역할, 발급 시간, 때로는 API 키 또는 세션 식별자가 표시되는 경우가 많습니다.

Base64 페이로드에 일반적으로 포함되는 내용 — 자격 증명, JWT 클레임, 세션 데이터 및 개인 정보

API 응답의 Base64 페이로드에는 파일 업로드, 서명 또는 부분 암호화 키가 포함될 수 있습니다. 이들 모두는 귀하의 기기 외부로 유출되어서는 안 되는 민감한 데이터입니다. 그러나 개발자가 콘텐츠를 빠르게 읽기 위해 터미널이나 HTTP 응답에서 이러한 값을 복사하여 온라인 디코더에 붙여넣으면 해당 값이 원격 서버로 바로 전달됩니다. 디코더가 많은 사용자를 처리하는 경우 하나의 서버는 수천 개의 토큰과 페이로드로 구성된 데이터베이스를 축적할 수 있습니다.

서버가 처리 후 삭제하더라도 기록되고 전송 중에 표시되며 잠재적으로 다른 서비스에 의해 가로채거나 저장됩니다. 서버 왕복 디코더와 탭 내 디코더 간의 차이는 절대적입니다. 입력을 디코딩하기 위해 POST 또는 GET 요청이 필요한 웹 페이지의 양식은 데이터가 원격 서버로 이동한다는 것을 의미합니다. 서버가 정직하고 즉시 데이터를 삭제하더라도 트래픽이 노출됩니다. 프록시, 로드 밸런서, 모니터링 시스템 및 TLS 종료 지점이 모두 요청을 확인합니다.

두 가지 아키텍처: 서버 왕복 및 탭 내 디코딩 — 바이트가 각각 들어가는 위치와 이를 기록할 수 있는 사람

서버가 정직하지 않거나 손상된 경우 이제 귀하의 토큰이 다른 사람의 데이터베이스에 저장됩니다. 탭 내 디코더는 요청이 전혀 전송되지 않음을 의미합니다. 입력한 텍스트, 붙여넣은 Base64 문자열 및 디코딩된 결과는 모두 장치의 브라우저에 유지됩니다. 서버에 연결되지 않고 제3자가 데이터를 볼 수 없으며 브라우저 자체 JavaScript가 변환을 수행합니다. 직접 확인하는 데는 1분이 소요되며 브라우저에 내장된 네트워크 패널만 필요합니다.

새 탭에서 Base64 인코더 및 디코더를 열고 개발자 콘솔(대부분의 브라우저에서 F12)을 열고 네트워크 탭을 클릭합니다. 목록이 비어 있는지 확인하거나 지우기 버튼을 클릭하세요. 이제 샘플 토큰이나 Base64 문자열을 디코더에 붙여넣고 디코드를 클릭하세요. 네트워크 패널을 주의 깊게 살펴보세요. 완전히 비어 있고 새 요청이 나타나지 않으면 브라우저에서 로컬로 디코딩이 발생한 것입니다. 서버에 대한 요청이 나타나면 해당 요청에 데이터가 포함된 것입니다.

네트워크 패널에서 자신을 확인하는 방법 — 붙여넣는 동안 요청을 관찰하고 조용한 패널이 증명하는 것

또는 페이지 소스 HTML 또는 JavaScript를 열고(마우스 오른쪽 버튼 클릭, 페이지 소스 보기) 양식이 게시되거나 가져오는 위치를 검색합니다. 페이지가 로드된 도메인과 동일한 도메인이 아닌 원격 엔드포인트로 보내는 경우 입력이 장치에서 나가는 것입니다. 빠른 네트워크 패널 검사를 통해 디코더가 로컬인지 원격인지 확인합니다. 엄격한 로컬 도구는 무언가를 디코딩할 때 요청을 하지 않습니다. 입력을 매개변수로 사용하는 GET 요청이 없고, 양식 데이터가 있는 POST가 없으며, API에 대한 가져오기 호출이 없습니다.

작업 중에 패널은 완전히 비어 있습니다. 이것은 위조하기 어렵지 않습니다. 영리한 도구는 로컬에서 디코딩하고 데이터를 추적 서버로 보낼 수도 있습니다. 그렇기 때문에 콘텐츠 보안 정책을 확인하는 것도 중요합니다. 네트워크 패널의 응답 헤더 탭에 표시되는 엄격한 콘텐츠 보안 정책은 다양한 유형의 외부 호출을 배제합니다. 외부 스크립트, 글꼴 및 이미지를 금지하고 임의 엔드포인트에 대한 양식 게시를 허용하지 않는 정책은 악의적이거나 손상된 페이지가 수행할 수 있는 작업을 제한합니다.

분석이나 타사 스크립트도 중요하지 않은 이유 — 엄격한 콘텐츠 보안 정책이 자동 유출을 배제하는 방법

CSP는 절대적인 보장은 아니지만 네트워크 검사와 결합되어 도구가 주장하는 대로 작동하고 있다는 강력한 증거입니다. 전체 확인을 위해 네트워크 패널, 외부 요청에 대한 페이지 소스 및 CSP 헤더의 세 가지를 동시에 보면서 샘플 토큰을 디코딩합니다.

요청을 하지 않고, 제3자 JavaScript를 포함하지 않으며, 추가 로드를 금지하는 엄격한 CSP를 선언하는 페이지는 모든 것을 허용하는 페이지보다 손상되기가 훨씬 어렵습니다. Base64 인코더 및 디코더는 이 접근 방식을 사용합니다. 작업은 장치의 웹 작업자에서 실행되고, 사이트에는 외부 코드를 금지하는 엄격한 CSP가 있으며, 페이지는 디코딩할 때 네트워크 요청을 하지 않습니다.

작업된 예: 네트워크 패널이 열린 상태에서 샘플 토큰 디코딩 — 요청 없음, 저장소 없음, 나중에 삭제할 항목 없음

네트워크 패널, 브라우저 콘솔 및 페이지 소스에서 이를 직접 감사한 다음 도구 개인 정보 보호 약속보다는 자신의 관찰을 신뢰할 수 있습니다. 모든 토큰 유출이 악의적인 디코더에서 발생하는 것은 아니기 때문에 더 넓은 맥락이 중요합니다. 모든 트래픽을 모니터링하고 요청을 기록하는 브라우저 확장 프로그램은 확장 프로그램이 손상되었거나 악의적인 경우 정직한 로컬 도구에 붙여넣은 내용을 볼 수 있습니다. 편의를 위해 모든 복사 및 붙여넣기 작업을 저장하는 클립보드 관리자는 토큰을 보관할 수 있습니다.

작업하는 동안 누군가가 화면을 보는 숄더서핑은 디코딩된 값을 직접 캡처합니다. 이는 웹 도구 제어 외부에 있습니다. 디코더 자체는 확장 수준 액세스 또는 물리적 관찰로부터 보호할 수 없습니다. 그러나 서버 왕복 노출을 제거할 수 있고 제거해야 합니다. 실제 생산 토큰을 무엇이든 붙여넣으려면 해당 도구가 로컬에서 실행되어야 합니다. 로컬 디코더를 사용할지 원격 디코더를 사용할지 결정하는 것은 시간이 지남에 따라 더욱 복잡해지는 보안 선택입니다. 원격 디코더를 한 번 사용하면 하나의 토큰이 노출되고 하나의 서버에 데이터가 있음을 의미합니다.

여기서 다루지 않는 것 — 웹 도구의 통제 범위를 벗어나는 브라우저 확장 프로그램, 클립보드 관리자 및 숄더 서핑

원격 디코더를 정기적으로 사용한다는 것은 수백 개의 토큰이 제어할 수 없는 서버를 통해 흐른다는 것을 의미합니다. 온라인 도구에 민감한 값을 붙여넣는 습관을 들이는 개발자는 점차적으로 그것이 허용 가능한지 스스로 훈련하여 노출을 정상화합니다. 로컬 디코더로 전환하면 도구 수준에서 노출이 완전히 제거됩니다. 로그나 채팅 기록에 나타나는 토큰과 같은 다른 문제는 해결되지 않지만, 제어 가능한 유출 원인을 제거합니다. 도구가 로컬에 있는지 확인하는 것은 주장을 신뢰하는 것이 아니라 관찰 가능 항목을 확인하는 문제입니다.

네트워크 패널 트래픽, 페이지 소스 코드, HTTP 헤더 및 브라우저 콘솔 오류는 모두 증거를 제공합니다. 도구가 로컬이라고 주장하지만 이를 확인할 방법이 없다면 의심이 타당합니다. ToolAcre Base64 인코더 및 디코더는 브라우저에서 완전히 실행되며 디코딩할 때 요청을 하지 않습니다. 네트워크 탭을 열고 실제 토큰을 붙여넣고 디코딩하면 나가는 요청이 표시되지 않습니다. 디코딩된 값은 브라우저에만 나타납니다. 어떤 서버에도 저장되지 않고, 분석으로 전송되지 않으며, 어디에도 기록되지 않고, 다시 방문하면 브라우저 캐시에 저장되며 페이지가 캐시됩니다.

요점: 데이터가 이미 있는 곳에서 디코딩 — Base64 인코더 및 디코더가 계정이나 업로드 없이 브라우저에서 완전히 실행되는 방법

로컬에서 디코딩하면 토큰이 그대로 유지됩니다. 실용적인 조언은 간단합니다. Base64 토큰 또는 JWT을 디코딩해야 하는 경우 브라우저에서 로컬로 실행되는 도구를 사용하세요. 네트워크 패널을 열고 디코딩하는 동안 확인하여 요청이 없는지 확인하세요. 서버에 게시하는 온라인 도구를 발견하면 사용을 중단하세요. 데이터가 원격 서버로 이동하는 도구에 프로덕션 토큰, API 키 또는 민감한 데이터를 붙여넣지 마십시오. 단기 토큰을 저장하고 장기 토큰을 정기적으로 교체하여 노출 창이 최소화되도록 하세요.

ToolAcre Base64 인코더 및 디코더의 경우 붙여넣은 토큰과 자격 증명은 탭에 유지되며 네트워크 패널을 빠르게 살펴보면 직접 확인할 수 있습니다.