Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HTTPSignatures — Signing HTTP Messages draft-ietf-httpbis-message-signatures-01 초안을 구현하는 Burp Suite 확장 프로그램입니다. | Kitploit
도구/GitHubGitHub/nccgroup/httpsignatures
Web Proxies & InterceptionAPI Security TestingWeb SecurityCryptographyAuthenticationAPI Security
GitHubnccgroup/httpsignatures

HTTPSignatures

Signing HTTP Messages draft-ietf-httpbis-message-signatures-01 초안을 구현하는 Burp Suite 확장 프로그램입니다.

저장소 보기
42104년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

HTTPSignatures Burp Suite 확장 프로그램

HTTPSignatures는 Signing HTTP Messages draft-ietf-httpbis-message-signatures-01 사양 초안 문서를 구현하는 Burp Suite 확장 프로그램입니다. 이를 통해 Burp Suite 사용자는 HTTP Signatures가 필요한 애플리케이션을 원활하게 테스트할 수 있습니다.

기능

  • 확장 프로그램이 기존 HTTP Signature 헤더를 감지하면 Burp Repeater, Intruder 및 Scanner에서 자동으로 새 서명과 다이제스트를 생성합니다.
  • 메시지 서명에 rsa-sha256 알고리즘(SHA-256 [RFC6234]을 사용하는 RSASSA-PKCS1-v1_5 [RFC8017])을 지원하고, 다이제스트 헤더에는 SHA-256을 지원합니다.
  • 이 확장 프로그램은 Burp Suite Professional 및 무료 Burp Suite Community Edition에서 작동합니다.

사용 방법

설치

최신 JAR 릴리스 파일을 다운로드하여 Burp Suite의 Extender 탭 / Extensions / Add를 통해 추가합니다.

구성

  1. 확장 프로그램을 로드하면 Burp에 새 HTTP Signatures 메뉴 항목이 추가됩니다.
  2. 구성 탭을 엽니다(HTTP Signatures 메뉴 항목 클릭).
  3. 최소 구성에는 Header Name, keyId, Private key file name and path를 설정해야 합니다. 자세한 설명은 아래를 참조하세요.
  4. 이제 Burp Proxy, Repeater, Intruder 및 Scanner를 사용할 수 있습니다. 확장 프로그램은 구성된 Header Name을 포함하는 각 요청에 대해 새 서명을 생성합니다.

사용

HTTPSignatures가 올바르게 구성되면, Burp Suite 확장 프로그램은 Burp Proxy, Repeater, Intruder 및 Scanner를 통해 전송되는 모든 HTTP 요청에 대해 Header Name 설정에 구성된 HTTP 헤더 값(예: Signature)을 새 서명으로 대체합니다.

HTTPSignatures 구성

문서

Burp Suite 확장 프로그램은 사용하기 전에 구성해야 합니다. HTTPSignatures 구성은 로드된 후 Burp 메뉴에서 찾을 수 있습니다(보통 Help 메뉴의 오른쪽에 위치). 확장 프로그램이 작동하려면 Header Name, keyId, Private key file name and path를 올바르게 구성해야 합니다. 나머지 설정은 선택적으로 조정할 수 있습니다.

  • 헤더 이름: (샘플 값: Authorization, Signature): 서명이 포함된 HTTP 요청 헤더의 이름입니다. IETF 초안은 Signature 헤더 이름을 사용합니다. Oracle Cloud(OCI)는 Authorization 헤더 이름을 사용합니다.

  • keyId: keyId 매개변수는 검증자가 서명의 검증 키를 식별 및/또는 획득하는 데 사용하는 US-ASCII 문자열입니다. 샘플 값은 (ActivityPub의 경우) https://mastodon.example.com/users/myUser 또는 OCI의 경우 ocid1.tenancy.oc1.../ocid1.user.oc1.../{fingerprint}와 같을 수 있습니다.

  • 개인 키 파일 이름 및 경로: 개인 키가 포함된 전체 경로와 파일 이름입니다(예: /home/${USER}/private_key.pem).

  • 다이제스트 헤더 이름: 다이제스트가 포함된 헤더의 이름입니다. OCI의 경우 x-content-sha256, 대부분의 다른 구현에서는 digest여야 합니다.

  • 서명할 헤더 이름: GET: GET 요청에 포함할 헤더 이름입니다(예: date (request-target) host). 값은 요청 메서드와 요청 URI의 경로 및 쿼리로 구성된 특수 식별자입니다(예: ).

프로필

HTTPSignatures 구성에서는 탭에서 여러 프로필을 구성할 수 있습니다. ... 탭을 클릭하여 새 탭을 만듭니다. 탭을 두 번 클릭하여 탭 이름을 지정할 수 있습니다. 탭을 저장하려면 "Save" 버튼을 클릭합니다. 탭을 활성 프로필로 표시하려면 "Use this profile" 버튼을 클릭합니다. 활성 탭(프로필)은 빨간색 글꼴과 테두리로 표시됩니다.

전역 구성 설정

전역 구성 섹션에는 모든 프로필에 적용되는 설정이 포함되어 있습니다.

  • 다음 Burp Suite 도구에서 확장 프로그램 활성화: 확장 프로그램은 다음 Burp Suite 도구에서 활성화하거나 비활성화할 수 있습니다.

    • Proxy (기본값: 비활성화됨)
    • Scanner (기본값: 활성화됨)
    • Intruder (기본값: 활성화됨)
    • Repeater (기본값: 활성화됨)

    프록시는 기본적으로 비활성화되어 있습니다. 다른 도구는 기본적으로 활성화되어 있습니다. 프록시 도구는 일반적으로 인터셉트 기능을 사용할 때만 활성화해야 합니다. 확장 프로그램은 비활성화된 경우 서명을 업데이트하지 않습니다.

  • 디버그 로그 활성화: 이 확인란을 활성화하면 디버그 로그가 표준 출력에 출력됩니다. 출력은 Burp Suite의 Extender -> Extensions에서 Signing HTTP Messages 확장 프로그램을 선택하여 구성할 수 있습니다. Output 탭에서 표준 출력이 표시될 위치를 선택할 수 있습니다. 기본값은 Shown in UI이며, 이 경우 출력이 Burp Suite 내에 표시됩니다.

예제 구성

ActivityPub

ActivityPub는 서버 간 인증 및 권한 부여를 위해 HTTP Signatures를 사용합니다.

  • 헤더 이름: Signature
  • keyId: keyId는 publicKey 필드를 검색할 수 있도록 actor에 연결되어야 합니다: https://mastodon.online/users/viktor. curl을 사용하여 키를 검색할 수 있습니다: curl https://mastodon.online/users/viktor -H 'Accept: application/activity+json'|jq
  • 개인 키 파일 이름 및 경로: /home/user/private_key.pem
  • 다이제스트 헤더 이름: digest
  • 서명할 헤더 이름: GET: date (request-target) host
  • 서명할 헤더 이름: HEAD: date (request-target) host
  • 서명할 헤더 이름: DELETE: date (request-target) host
  • 서명할 헤더 이름: PUT: date (request-target) host content-length content-type digest
  • 서명할 헤더 이름: POST: date (request-target) host content-length content-type digest

Oracle Cloud Infrastructure (OCI)

모든 Oracle Cloud Infrastructure(OCI) API 요청에는 HTTP Signatures가 필요합니다. 이 구현은 일부 수정 사항이 적용된 초안 사양을 기반으로 합니다.

  • 헤더 이름: Authorization
  • keyId: <TENANCY OCID>/<USER OCID>/<KEY FINGERPRINT>, 예: ocid1.tenancy.oc1..<unique_ID>/ocid1.user.oc1..<unique_ID>/<key_fingerprint>
  • 개인 키 파일 이름 및 경로: /home/user/private_key.pem
  • 다이제스트 헤더 이름: x-content-sha256
  • 서명할 헤더 이름: GET: date (request-target) host
  • 서명할 헤더 이름: HEAD: date (request-target) host
  • 서명할 헤더 이름: DELETE: date (request-target) host
  • 서명할 헤더 이름: PUT: date (request-target) host content-length content-type x-content-sha256
  • 서명할 헤더 이름: POST: date (request-target) host content-length content-type x-content-sha256
  • 서명에 쿼리 매개변수 포함: true

IntelliJ IDEA로 빌드하기

  1. 이 저장소를 클론하고 IntelliJ IDEA에서 HTTPSignatures 폴더를 Open or Import 합니다.
  2. 프로젝트를 컴파일합니다(Build -> Build Project).
  3. Burp Suite에 가져올 JAR 파일을 생성합니다: File -> Project Structure로 이동하여 Project Settings -> Artifacts를 선택합니다.
  4. 더하기 기호를 클릭하여 "From modules with dependencies"로 새 JAR 파일을 생성하고 OK를 클릭합니다.
  5. "Include in project build" 확인란을 선택하여 프로젝트 빌드 시 JAR 파일을 자동으로 생성하고 OK를 클릭합니다.
  6. 프로젝트를 다시 빌드합니다(Ctrl+F9 또는 ⌘+F9).
  7. JAR 파일은 프로젝트 폴더의 out/artifacts/HTTPSignatures_jar/HTTPSignatures.jar에 생성됩니다.
  8. Extender 탭 -> Extensions -> Add를 통해 JAR 파일을 Burp에 로드합니다.

명령줄에서 Maven으로 빌드하기

  1. 이 저장소를 클론합니다.
  2. mvn package assembly:single 명령으로 프로젝트를 컴파일하고 JAR 파일을 생성합니다.
  3. JAR 파일은 프로젝트 폴더의 target/HTTPSignatures-1.0-SNAPSHOT-jar-with-dependencies.jar에 생성됩니다.
  4. Extender 탭 -> Extensions -> Add를 통해 JAR 파일을 Burp에 로드합니다.

의존성

Java 프로젝트를 빌드하려면 세 가지 의존성이 필요합니다:

  • Apache HttpClient (https://hc.apache.org/httpcomponents-client-ga/)
  • Tomitribe의 HTTP Signatures Java Client (https://github.com/tomitribe/http-signatures-java)
  • Burp Extender API (https://github.com/PortSwigger/burp-extender-api)
도구 다운로드
(request-target)
get /foo?param=value
  • 서명할 헤더 이름: HEAD: HEAD 요청에 포함할 헤더 이름입니다(예: date (request-target) host).

  • 서명할 헤더 이름: DELETE: DELETE 요청에 포함할 헤더 이름입니다(예: date (request-target) host).

  • 서명할 헤더 이름: PUT: PUT 요청에 포함할 헤더 이름입니다(예: date (request-target) host content-length content-type digest).

  • 서명할 헤더 이름: POST: POST 요청에 포함할 헤더 이름입니다(예: date (request-target) host content-length content-type digest).

  • 서명에 쿼리 매개변수 포함: 이 불리언 값은 쿼리 매개변수(예: ?param=value)를 서명에 포함할지 여부를 지정합니다. 초안 표준에서는 쿼리 매개변수가 (request-target) 식별자의 일부라고 명시하지만, 모든 구현이 쿼리 매개변수를 포함하는 것은 아닙니다. 기본값은 true입니다.

  • 서명에 포트 포함: 일부 구현에서는 포트를 host 헤더에 포함하지 않습니다(예: localhost:8080). 이 설정은 false로 설정하면 host 헤더 값에서 포트를 제거할 수 있습니다. 기본값은 true입니다.

  • 서명에 쿼리 매개변수 포함: true
  • 서명에 포트 포함: true
  • 서명에 포트 포함: true