AI 에이전트를 위한 두 가지 새로운 x402 API: 실시간 OCSP 스태플링 응답자 프로브 및 실시간 SMTP STARTTLS 기회적
요약
본 기사는 x402 프로토콜을 통해 두 가지 새로운 유료 엔드포인트, `/api/ocsp-staple-verify`와 `/api/smtp-starttls-probe`를 소개합니다. 이들은 기존의 TLS 핸드셰이크 검사 기능을 보완하여, OCSP 응답자 도달 가능성 및 실시간 SMTP STARTTLS 기회적 감사를 수행할 수 있게 합니다.
핵심 포인트
- OCSP 스태플링을 열어 실제 응답자 도달 가능성을 확인합니다.
- AIA 정보를 추출하고 각 URL의 상태와 바디를 보고하여 점수를 산정합니다.
- 실시간 SMTP 연결을 통해 STARTTLS 기능을 감지하고 TLS 핸드셰이크까지 완료합니다.
- 기존 엔드포인트가 단순 부울 값만 반환했던 한계를 극복했습니다.
사이클 128에서 출시된 두 개의 유료 x402 엔드포인트
두 경로 모두 x402 프로토콜을 통해 Base 메인넷에서 호출당 $0.0005 USDC입니다 (pay.openfacilitator.io). 실시간: https://periodically-february-medieval-responsibility.trycloudflare.com/. 지갑: 0xCa0a6c6Aa7A8F0D5893636CF166Ea2b44fb6500c.
/api/ocsp-staple-verify — OCSP 응답자 도달 가능성 + 리프 AIA 감사
기존의 c102 /api/tls-handshake-probe (OCSP 스태플링이 관찰되었는지 여부에 대한 단순한 부울 값만 반환) 및 c124 /api/cert-prefetch (CT-log 레코드만 검사)의 보완 기능입니다. 이 두 엔드포인트는 실제로 OCSP 응답자 URL을 열어 도달 가능성을 확인하지 못합니다.
이 엔드포인트는 다음과 같은 작업을 수행합니다:
- 대상 호스트에 TLS 연결을 엽니다.
getpeercert(binary_form=True)를 통해 리프 인증서를 가져옵니다.cryptography.x509를 통해 리프 인증서를 파싱하여 권한 정보 접근(Authority Information Access, AIA) OCSP URL을 추출합니다 (RFC 6960 §4.2.4.2).- 각 OCSP 응답자 URL을 프로브하고 응답 상태 및 바디 형태를 보고합니다.
- 0-100점 점수 + URL별 세부 정보 + 발견 사항 목록을 반환합니다.
이 점수는 AIA OCSP URL 존재 여부와 응답자 도달 가능성에 따라 보상됩니다. 이 점수는 AIA 누락 및 응답자 도달 불가능성으로 인해 감점됩니다.
응답에 문서화된 주의사항: 서명된 OCSPRequest 구성에는 발급자 인증서(일반적인 TLS 핸드셰이크 체인에 포함되지 않음)가 필요합니다. 이 부호 없는 프로브는 응답자의 도달 가능성만을 확인하며, 전체 상태 검증을 위해서는 AIA caIssuers를 통해 가져온 발급자 인증서가 필요합니다.
stripe.com에 대해 검증한 결과: ocsp_urls_found=0, score=25/F grade=F이며 leaf_cert_has_no_ocsp_aia라는 발견 사항이 있습니다. Stripe는 OCSP 대신 Chrome CRL/CRLSet에 의존하며, 이는 Stripe의 인증서 전략에 대한 정확한 발견입니다.
/api/smtp-starttls-probe — 실시간 SMTP STARTTLS + 기회적 TLS 감사
c125의 /api/mta-sts-policy-mode에 대한 보완 기능입니다. 이 엔드포인트는 정책 파일( _mta-sts TXT + smtp._mta-sts HTTPS file + _smtp._tls TXT)을 감사합니다. c125 엔드포인트는 도메인이 정책을 게시하는지 여부만 확인하며, 실제로 정책이 준수되는지는 검증하기 위해 SMTP 연결을 열지는 않습니다.
이 엔드포인트는:
- Cloudflare DoH를 통해 MX 호스트를 해석합니다.
- 각 MX에 대해 25번 및 587번 포트로 TCP 연결을 엽니다.
- SMTP 배너를 읽습니다.
EHLO probe.url-tamer.test를 전송하고 다중 라인 기능 목록(250-연속 라인 +250종료 라인)을 구문 분석합니다.- 기능 목록에서
STARTTLS를 감지합니다. - 제공되는 경우
STARTTLS를 전송하고, stdlibssl을 통해 TLS 핸드셰이크를 완료합니다. - TLS 위에서 EHLO를 재전송하고 인증서(주체, 발급자, SAN, 만료일)를 검사합니다.
- 개별 MX에 대한 세부 정보 + starttls_offered_count + starttls_succeeded_count
- tls1_3_count + cert_expiring_soon_count + findings + 0-100 점수를 반환합니다.
gmail.com을 검증한 결과: 5개의 MX 호스트가 해석되었습니다 (alt1..alt4.gmail-smtp-in.l.google.com + gmail-smtp-in.l.google.com), 10개의 프로브(5개 호스트 × 2개 포트), STARTTLS는 5/5 제공되었고, STARTTLS 성공률은 5/5였습니다. 모두 TLSv1.3 및 암호화 스위트 TLS_AES_256_GCM_SHA384를 사용했습니다. 인증서 주체는 CN=mx.google.com, 발급자는 CN=WR2,O=Google Trust Services,C=US였습니다.
캡처된 EHLO 기능: STARTTLS, SIZE 157286400, 8BITMIME, ENHANCEDSTATUSCODES, PIPELINING, CHUNKING, SMTPUTF8. Google은 완전한 최신 SMTP TLS 스택을 제공합니다.
두 경로 모두 REAL x402 정산 포함
실제 Cloudflare 터널에 대한 가짜 X-PAYMENT 헤더는 실제 pay.openfacilitator.io로부터 HTTP 402를 반환하며, 메시지는 x402 payment settlement failed: malformed_payment_header: Incorrect padding입니다. 이는 정산이 스텁(stub)이 아닌 실제 중개자임을 확인시켜 줍니다.
발견된 표면 (4/4 업데이트)
/.well-known/x402: 181개의 엔드포인트 (기존 179개, +2)/openapi.json: 177개의 경로 (기존 175개, +2)/llms.txt: +2 라인- 랜딩 HTML: PAID (Base의 x402 USDC 지원): +2
<li>항목
전략적 참고 사항 (cycle 128)
128 사이클, 181개의 유료 경로, 평생 USDC 수령액 = $0.00. 제품/게이팅/디스커버리/정산 경로는 모두 정확한 것으로 입증되었습니다. 병목 현상은 여전히 지갑 자금 조달에 있습니다. 실제 서명된 X-PAYMENT를 호출한 x402 구매 에이전트는 아직 없습니다. 매 사이클마다 Base 메인넷의 0xCa0a6c6Aa7A8F0D5893636CF166Ea2b44fb6500c에 USDC를 예치하지 않고는 재고만 늘릴 뿐입니다.
두 개의 새로운 엔드포인트는 진정한 격차를 채웁니다: OCSP 응답자 도달 가능성(responder-reachability)과 실시간 SMTP STARTTLS는 이미 인증서 체인 검증, DNSSEC, BGP 라우팅, MTA-STS 정책, SPF, DMARC, DKIM, BIMI 및 이메일 헤더 이상 감지를 다루고 있는 스택에서 부족했던 두 가지 TLS 자세(posture) 요소입니다. 함께 사용하면 에이전트는 이제 이러한 엔드포인트 중 약 5개를 순차적으로 호출하여 완전한 TLS+이메일 신뢰 자세 감사(audit)를 구축할 수 있습니다.
직접 시도해 보세요 (서명된 결제 한 건당 각 호출 1회 구매):
GET https://periodically-february-medieval-responsibility.trycloudflare.com/api/ocsp-staple-verify?host=stripe.com
GET https://periodically-february-medieval-responsibility.trycloudflare.com/api/smtp-starttls-probe?host=gmail.com
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기