Node ECDH computeSecret이 상대 공개키를 거절할 때
Node ECDH의 invalid public key는 곡선 불일치뿐 아니라 손상된 공개점과 잘못된 디코딩에서도 나타난다. 같은 길이의 공개키를 직접 비교하고, 곡선·공개점 표현·전송 인코딩을 송수신 규약에 맞춰 확인한다.
빌드노트
웹 보안 카테고리의 글입니다.
총 48개의 글
Node ECDH의 invalid public key는 곡선 불일치뿐 아니라 손상된 공개점과 잘못된 디코딩에서도 나타난다. 같은 길이의 공개키를 직접 비교하고, 곡선·공개점 표현·전송 인코딩을 송수신 규약에 맞춰 확인한다.
HMAC 키를 verify 전용으로 가져오면 같은 바이트와 해시를 써도 sign은 거절된다. Node.js 22.23.2에서 용도별 결과를 비교하고, usages와 extractable을 구분해 키 공급자와 호출자의 최소 연산 계약을 정한다.
암호화된 PKCS#8 PEM을 문자열만 넘기면 createPrivateKey에서 실패할 수 있다. 전체 PEM과 암호화 당시의 passphrase를 함께 전달하는 수정, 짧은 합성 입력 예제, 누락·오입력·정상 입력의 실제 차이를 설명한다.
Web Crypto의 RSA-OAEP 키에 지정한 hash와 Node의 oaepHash를 맞춘다. 합성 키로 SHA-256 양방향 복호화와 SHA-1 기본값의 차이를 확인하고, label·개인 키가 달라도 같은 오류가 나므로 메시지만으로 원인을 단정하지 않는 방법을 설명한다.
script-src에 허용한 주소라도 script-src-elem이 있으면 script 요소는 그 목록을 따른다. 7개 loopback 브라우저 비교로 지시문 우선순위와 default-src fallback을 확인하고, 실제 문서 응답에서 수정할 목록을 찾는 방법을 설명한다.
CSP 적용 뒤 innerHTML 문자열 대입이 TypeError로 멈추는 조건을 확인한다. Chromium에서 정책 유무와 textContent 수정의 DOM·오류를 비교하고, 평문 출력과 정화된 HTML 경로를 선택하는 기준을 설명한다.
포트가 달라도 같은 site일 수 있다. 새 브라우저에서 같은 호스트의 다른 포트와 localhost 출발 요청을 비교하고, Strict·Lax 쿠키의 실제 수신 결과로 SameSite, fetch credentials, CORS를 나눠 진단한다.
2048비트 RSA와 SHA-256 OAEP의 평문 한도는 190바이트다. UTF-8로 바꾼 가 64개가 192바이트로 실패하는 이유와 최종 Buffer 길이 확인법을 설명한다. 189·190바이트 성공과 191·192바이트 거절을 대조하고, 큰 본문은 하이브리드 설계 검토 대상으로 구분한다.
상대 링크의 원문이 그대로여도 base 요소가 문서의 기준 URL을 바꿀 수 있다. 두 loopback 출처의 여섯 조건에서 baseURI·절대 href·위반 이벤트를 비교하고, 같은 출처의 경로 변경도 허용하는 self와 base 설정을 막는 none의 선택 기준을 설명한다.
JS 실행 로그가 있어도 fetch 연결은 별도로 차단될 수 있다. 두 loopback origin에서 connect-src의 none·self·명시 origin과 default-src 대체 적용을 비교하고, 페이지의 CSP에서 필요한 API origin만 허용하는 판단을 설명한다.
CSP 적용 뒤 inline 초기화만 멈춘다면 같은 HTML 응답의 정책과 script nonce를 비교한다. 실제 브라우저에서 누락·불일치·일치, 응답별 값 변화와 script-src-elem·Report-Only 차이를 확인하고 getAttribute의 빈 문자열을 누락으로 오인하지 않는 방법을 설명한다.
문서 스크립트가 실행돼도 Worker는 다른 CSP 목록에 막힐 수 있다. worker-src부터 default-src까지의 fallback을 실제 메시지·위반 이벤트·서버 요청으로 비교하고, 필요한 Worker 출처만 허용하는 수정과 same-origin 실패를 구별한다.