Subresource Integrity 알고리즘과 Web Crypto API 원리
현대 웹 애플리케이션은 성능 향상과 서버 트래픽 분산을 위해 외부 CDN(Content Delivery Network) 서비스로부터 공용 자바스크립트 라이브러리, CSS 스타일시트, 폰트 자원 등을 수신하는 구조에 깊게 의존하고 있습니다. 그러나 CDN 인프라나 제3자 서버가 악의적인 사이버 공격자에게 탈취될 경우, 변조된 악성 자바스크립트 코드(XSS, 스크립트 삽입)가 수백만 명의 사용자 브라우저로 직접 주입되어 사용자 세션 토큰이나 개인정보가 대규모 유출되는 공급망 공격(Supply Chain Attack) 위험이 크게 고조되었습니다. 현대 브라우저 엔진은 외부 자원의 바이너리 무결성을 비동기로 검증하는 Subresource Integrity(SRI) 알고리즘과 고성능 암호화 연산을 집행하는 Web Crypto API 인프라를 전면 가동합니다. Q: CDN에서 수신한 외부 파일이 변조되지 않았음을 브라우저가 어떻게 검증하나요? SRI(Subresource Integrity)는 파일 패킷을 수신하는 즉시 암호화 해시 알고리즘(SHA-256, SHA-384, SHA-512) 을 가동하여 무결성을 검증합니다. SRI(Subresource Integrity) 3단계 검증 프로세스 1. Hash Digest 비교: HTML 태그에 명시된 `integrity` 속성의 Base64 인코딩 해시값과 네트워크로 수신된 실제 파일의 해시값을 즉시 산출하여 대조합니다. 2. Execution Blocking: 해시 단 1비트라도 일치하지 않을 경우 브라우저는 스크립트 실행을 즉각 차단(Block)하고 보안 콘솔 에러를 발화시킵니다. 3. CORS 정책 강제: 타사 도메인 자원의 무결성 검증을 위해 `crossorigin="anonymous"` 속성을 통해 CORS 보안 정책 준수를 강제합니다. ■ 테크니컬 아키텍처: Web Crypto API와 하드웨어 암호화 가속 자바스크립트 메인 스레드 상에서의 소...