HPKP란 무엇입니까?

HPKP는 더 이상 사용되지 않는 웹 보안 응답 헤더이며 약어는 HTTP 공개 키 핀을 나타냅니다. 손상되거나 불량 인증 기관이 웹 사이트에 대해 공개적으로 신뢰할 수 있지만 해커가 제어하는 ​​HTTPS 인증서를 발급하는 것을 방지하기 위한 것입니다. 이 시나리오에서 해커는 영향을 받는 웹 사이트에 대해 가로채는 모든 HTTPS 트래픽을 해독할 수 있습니다.

팁: 웹 응답 헤더는 서버가 요청에 응답할 때 포함하는 메타데이터 조각입니다. 다양한 보안 기능을 활성화하고 구성하기 때문에 이들 중 작은 하위 집합을 보안 헤더라고 합니다.

HTTPS 인증서 인프라

HTTPS가 구축되는 인증서 인프라는 신뢰 웹을 기반으로 합니다. 많은 회사가 하나 이상의 루트 인증서를 게시하는 인증 기관(CA) 역할을 합니다. 루트 인증서 세트는 신뢰 저장소의 모든 장치에 포함됩니다. 웹 사이트가 CA에서 자체 HTTPS 인증서를 요청하면 인증서는 루트 인증서로 서명됩니다. 컴퓨터에서 HTTPS 인증서를 확인하면 서명을 확인합니다. 인증서가 신뢰하는 루트 인증서로 서명된 경우 컴퓨터는 HTTPS 인증서도 신뢰합니다.

팁: CA는 루트 인증서로 서명된 중간 인증서를 가질 수도 있습니다. 이러한 중간 인증서는 웹 사이트의 HTTPS 인증서에 서명하는 데에도 사용할 수 있습니다.

인증 기관의 역할은 인증서를 요청하는 사람이 웹사이트의 진정한 소유자임을 확인한 경우에만 인증서를 발급하는 것입니다. 이 구조의 아이디어는 해커가 웹 사이트에 대한 자체 인증서를 생성하는 경우 컴퓨터가 신뢰하는 CA에서 서명하지 않으므로 경고가 표시된다는 것입니다.

HPKP는 무엇을 했습니까?

전체 인증 시스템은 인증 기관의 신뢰성에 의존합니다. 그러나 원래 CA가 해커에 의해 손상되거나 불량자가 되어 인증서를 잘못 발급하도록 선택하는 것에 대한 보호 기능은 없었습니다.

HPKP는 이러한 가능성을 방지하도록 설계되었습니다. 이를 통해 웹 사이트는 고정이라는 프로세스에서 웹 사이트에 대해 신뢰할 수 있는 독점 인증서 목록을 지정할 수 있습니다. 루트 또는 중간 인증서를 고정할 수 있어 기본적으로 단일 CA가 웹사이트에 대한 인증서를 발급할 수 있습니다. 또한 웹사이트 자체의 인증서를 고정하여 올바른 CA라도 다른 유효한 인증서를 발급하는 것을 방지할 수 있었습니다.

기술적으로 고정되는 것은 인증서 자체가 아니라 인증서 키의 해시입니다. 해시는 단방향 암호화 기능입니다. 즉, 웹 사이트에서 브라우저에 제공한 인증서가 고정된 인증서와 일치하는지 확인할 수 있지만 해시를 사용하여 유효한 인증서를 만드는 것은 불가능합니다.

HPKP는 고정할 키가 두 개 이상 필요했으며 그 중 하나는 현재 인증서 체인이 아닌 백업이어야 합니다. 이 백업을 사용하면 사용자의 연결을 방해하지 않는 새 인증서로의 원활한 핸드오버를 구성할 수 있습니다.

웹 사이트에서 브라우저에 제공한 HTTPS 인증서가 고정된 인증서 중 하나와 일치하지 않는 경우 브라우저는 이를 거부하고 사용자가 인증서 오류 메시지를 우회하지 못하도록 해야 합니다.

HPKP의 구조

HPKP 헤더에는 3개의 필수 부분과 2개의 선택적 부분이 있습니다. 헤더의 제목은 "Public-Key-Pins"이어야 하며 다음 두 개 이상의 인증서에는 'pin-sha256=""' 형식으로 고정된 base64 인코딩 SHA256 해시가 있어야 합니다. 마지막 필수 부분은 브라우저가 제한 사항을 적용해야 하는 시간(초)인 "최대 연령"입니다.

팁: SHA256은 HPKP에서 사용하는 해싱 알고리즘입니다. Base64는 0-9, az, AZ 및 특수 문자 "+" 및 "/"의 64자 문자 집합입니다. "="는 필요한 경우 마지막 두 문자까지 채우는 데 사용됩니다. 

선택적 설정은 "includeSubDomains" 및 "report-uri"입니다. "includeSubDomains는 "최대 연령" 타이머 기간 동안 현재 웹사이트의 모든 하위 도메인에 HPKP 보호를 적용하도록 브라우저에 지시합니다. "report-uri"는 오류 보고서를 보낼 수 있는 웹 사이트를 지정할 수 있는 기능으로 문제를 식별하고 해결하는 데 도움이 되도록 설계되었습니다.

"Public-Key-Pins-Report-Only"라는 헤더의 두 번째 변형이 있습니다. 모든 것이 동일하지만 오류가 발견되면 브라우저와 "report-uri"(구성된 경우)에 오류 메시지를 반환하는 것 외에는 아무 조치도 취하지 않습니다. 보고서 전용 변형은 오류가 사용자에게 문제를 일으키지 않는 배포 전에 헤더의 전체 규모 테스트를 가능하게 하도록 설계되었습니다.

HPKP 관련 문제

HPKP는 두 가지 주요 이유로 더 이상 사용되지 않습니다. 헤더가 그것을 사용하는 웹사이트에 심각한 문제를 일으킬 수 있는 두 가지 방법이 있었습니다. HPKP Suicide 및 Ransom PKP입니다.

HPKP 자살은 웹 사이트의 합법적인 소유자가 고정된 모든 키에 액세스할 수 없는 문제입니다. 이는 우발적인 삭제, 해킹, 바이러스, 데이터 손상 또는 기타 여러 이유로 발생할 수 있습니다. HPKP를 올바르게 구현하는 것과 특히 인증서 교체 중에 업데이트를 유지하는 것이 복잡하기 때문에 구성 오류가 발생하기 쉽습니다. 그러나 HPKP를 사용하면 문제가 발생하면 웹사이트를 방문한 모든 최근 방문자가 "최대 연령" 타이머 기간 동안 웹사이트에 액세스할 수 없습니다. 웹사이트 smashingmagazine.com은 정확히 이 문제에 대한 경험을 자세히 설명 하는 기사 를 게시했으며, 이 기사 는 수정 사항이 배포되기 전 4일 동안 대부분의 방문자가 사이트를 오프라인 상태로 만들었습니다.

Ransom PKP는 해커가 웹 서버에 액세스한 다음 신뢰할 수 있는 모든 인증서와 키를 훔친 다음 반환에 대한 몸값을 요구하는 이론적인 공격입니다. 일반적인 설정에서는 새 키와 인증서를 생성하고 한 시간 이내에 웹사이트를 백업하고 실행할 수 있습니다. 그러나 HPKP를 활성화하면 해당 키가 고정됩니다. 고정된 인증서를 사용자에게 제공할 수 없는 경우 사용자는 "최대 연령" 타이머 기간 동안 웹사이트에 액세스할 수 없습니다. 구성에 따라 백업이 있는 경우 이 문제를 해결하지 못할 수 있습니다.

이 두 가지 문제로 인해 새 사용자는 웹 사이트에 정상적으로 액세스할 수 있습니다. 이전 HPKP 헤더가 브라우저에 현재 누락된 인증서만 신뢰하도록 지시하는 것을 본 적이 없기 때문입니다. 그러나 일반 고객 및 독자와 같은 모든 최근 방문자는 "최대 연령" 타이머의 전체 기간을 기다려야 합니다.

이러한 문제의 심각성과 구성 및 유지 관리의 복잡성을 감안할 때 HPKP 헤더의 사용은 매우 낮았습니다. 결국 주요 브라우저는 이에 대한 지원을 완전히 중단하는 데 동의했으며 몇 년 이내에 HPKP 헤더는 보편적으로 사용되지 않습니다.



Leave a Comment

Chrome에서 항상 전체 URL을 표시하도록 강제하는 방법

Chrome에서 항상 전체 URL을 표시하도록 강제하는 방법

Chrome은 기본적으로 전체 URL을 표시하지 않습니다. 이 세부 사항에 크게 신경 쓰지 않을 수도 있지만 어떤 이유로 전체 URL을 표시해야 하는 경우 Google 크롬이 주소 표시줄에 전체 URL을 표시하도록 하는 방법에 대한 자세한 지침을 참조하세요.

이전 Reddit을 다시 얻는 방법

이전 Reddit을 다시 얻는 방법

Reddit은 2024년 1월에 다시 디자인을 변경했습니다. 변경된 디자인은 데스크톱 브라우저 사용자가 볼 수 있으며 링크를 제공하면서 기본 피드를 좁힙니다.

한국에서 암호화폐 베팅의 위험과 과제에 대한 이해

한국에서 암호화폐 베팅의 위험과 과제에 대한 이해

아시아는 카지노와 베팅 애호가들에게 큰 허브 역할을 하고 있습니다. 카지노 업계에서 암호화폐가 부상하면서 다양한 지역의 플레이어가 카지노 게임에 쉽게 참여하고 즐길 수 있게 되었습니다.

Google Lens를 사용하여 교과서의 콘텐츠를 복사하는 방법

Google Lens를 사용하여 교과서의 콘텐츠를 복사하는 방법

책에서 가장 좋아하는 인용문을 Facebook에 입력하는 것은 시간이 많이 걸리고 오류로 가득 차 있습니다. Google 렌즈를 사용하여 책의 텍스트를 기기로 복사하는 방법을 알아보세요.

Chrome에서 서버 DNS 주소를 찾을 수 없는 문제 수정

Chrome에서 서버 DNS 주소를 찾을 수 없는 문제 수정

때때로 Chrome에서 작업할 때 특정 웹사이트에 액세스할 수 없고 "Fix Server DNS 주소를 Chrome에서 찾을 수 없습니다"라는 오류가 표시됩니다. 문제를 해결하는 방법은 다음과 같습니다.

Google Home에서 알림을 만드는 방법에 대한 빠른 가이드

Google Home에서 알림을 만드는 방법에 대한 빠른 가이드

알림은 항상 Google Home의 주요 특징이었습니다. 그것들은 확실히 우리의 삶을 더 쉽게 만들어줍니다. 중요한 심부름을 놓치지 않도록 Google Home에서 알림을 만드는 방법을 빠르게 살펴보겠습니다.

넷플릭스: 비밀번호 변경

넷플릭스: 비밀번호 변경

선호하는 브라우저나 Android 앱을 사용하여 Netflix 스트리밍 비디오 서비스의 비밀번호를 변경하는 방법.

귀하(또는 다른 사람)가 Facebook에 가입한 날짜를 찾는 방법

귀하(또는 다른 사람)가 Facebook에 가입한 날짜를 찾는 방법

Facebook이 2023년에 17주년을 맞이했다는 사실을 알고 계셨나요? 시간이 빨리 흘러 여러분의 Facebook 계정이 생각보다 오래되었을 수도 있습니다.

Instagram 노트가 표시되지 않거나 작동하지 않나요? 6가지 해결 방법

Instagram 노트가 표시되지 않거나 작동하지 않나요? 6가지 해결 방법

인스타그램 노트는 인스타그램 사용자가 친구 목록에 있는 사람들이 읽을 수 있도록 짧은 메모를 남길 수 있는 기능입니다. 문제는 일부 사람들이 메시지 페이지에서 메모 옵션이 사라진다고 보고한다는 것입니다.

Snapchat에서 스냅을 재생하는 방법

Snapchat에서 스냅을 재생하는 방법

Snapchat은 사용자가 Snaps라고 하는 사진과 동영상을 친구들과 공유할 수 있는 소셜 미디어 앱입니다. 하지만 친구의 Snap을 놓치고 다시 보고 싶다면 어떻게 해야 할까요?