Chrome 56의 API 지원 중단 및 삭제

조 메들리
조 메들리

거의 모든 Chrome 버전에서 제품, 성능, 웹 플랫폼의 기능과 관련된 수많은 업데이트와 개선사항이 확인됩니다. 이 도움말에서는 12월 8일 현재 베타 버전인 Chrome 56의 지원 중단 및 삭제에 관해 설명합니다. 이 목록은 언제든지 변경될 수 있습니다.

SHA-1 인증서 지원 삭제

SHA-1 암호화 해시 알고리즘은 11년 전 처음으로 취약성의 징후를 보였으며 최근 연구에서는 웹 공개 키 인프라 (PKI)의 무결성에 직접적인 영향을 미칠 수 있는 공격의 임박한 가능성을 확인했습니다.

이러한 공격으로부터 사용자를 보호하기 위해 Chrome은 2017년 1월에 안정화 버전이 출시되는 Chrome 56부터는 SHA-1 인증서를 더 이상 지원하지 않습니다. 이러한 인증서를 사용하여 사이트를 방문하면 전면 광고 경고가 표시됩니다. 자세한 내용은 Chrome 보안 블로그를 참고하세요.

삭제 의도 | Chromestatus Tracker | Chromium 버그

TLS에서 CBC 모드 ECDSA 암호화 삭제

TLS의 CBC 모드 구성에는 결함이 있어 취약하고 안전하게 구현하기가 매우 어렵습니다. CBC 모드 암호화는 여전히 RSA에서 널리 사용되지만 ECDSA에서는 거의 존재하지 않습니다. 다른 브라우저에서도 이러한 암호화를 계속 지원하므로 위험성이 낮다고 생각합니다. 또한 TLS의 ECDSA는 소수의 조직에서 사용되며 일반적으로 더 복잡한 설정 (일부 이전 클라이언트는 RSA만 지원)에서 사용되므로 ECDSA 사이트가 문제 발생 시 더 잘 유지 관리되고 응답성이 향상됩니다.

TLS 1.2는 이러한 문제를 방지하기 위해 AEAD를 기반으로 하는 새 암호화를 추가했습니다. 특히 AES_128_GCM, AES_256_GCM 또는 CHACHA20_POLY1305. 현재는 ECDSA 기반 사이트에만 필요하지만 모든 관리자에게 권장됩니다. AEAD 기반 암호화는 보안뿐만 아니라 성능도 개선합니다. AES-GCM은 최신 CPU에 대한 하드웨어 지원을 가지며 ChaCha20-Poly1305는 빠른 소프트웨어 구현을 인정합니다. 한편, CBC 암호화에는 각 발신 레코드에 느리게 복잡한 완화 및 PRNG 액세스가 필요합니다. 또한 AEAD 기반 암호화는 HTTP/2 및 False Start 최적화의 전제 조건입니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그

터치 스크롤에서 사용자 동작 삭제

touchstart 또는 모든 touchend 이벤트에서 터치 스크롤을 위한 탐색을 트리거하는 잘못 작성된 광고 또는 악의적인 광고의 여러 가 확인되었습니다. 'wheel' 이벤트에서 팝업을 열 수 없는 경우 터치 스크롤도 허용되지 않습니다. 이로 인해 터치 시 미디어가 재생되지 않거나 터치 시 팝업이 열리지 않는 등의 일부 시나리오가 중단될 수 있습니다. Safari는 이러한 모든 시나리오에서 팝업을 자동으로 열지 못했습니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그

잘못된 유형/언어 속성이 있는 스크립트의 모든 가져오기 허용 안함

현재 Chrome의 미리 로드 스캐너는 type 또는 language 속성의 값과 관계없이 <scripts> 요소의 항목을 가져오지만 스크립트가 파싱될 때 실행되지 않습니다. 가져오기를 지원 중단하면 미리 로드 스캐너와 파서가 동일한 의미 체계를 갖게 되며 사용하지 않을 스크립트의 가져오기를 시작하지 않습니다. 이는 후처리된 맞춤 스크립트 태그가 많은 사이트 (예: type="text/template")가 있는 사이트로 이동하는 사용자의 데이터를 저장하기 위한 것입니다.

잘못된 스크립트를 사용하여 서버를 핑하는 사용 사례는 sendBeacon API에서 적절하게 다룹니다.

이 변경사항으로 인해 Firefox는 유형이나 언어에 관계없이 스크립트를 계속 요청하지만 Chrome은 Safari에 맞게 조정됩니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그

MediaStreamTrack.getSources() 삭제

이 메서드는 더 이상 사양에 포함되어 있지 않으며 다른 주요 브라우저에서도 지원되지 않습니다. 이 기능은 버전 47부터 플래그 없이 Blink가 지원되고 다른 브라우저에서도 지원되는 MediaDevices.enumerateDevices()로 대체되었습니다. 아래 예를 참고하세요. 이 가상의 getCameras() 함수는 먼저 특성 감지를 사용하여 enumerateDevices()를 찾아 사용합니다. 기능 감지에 실패하면 MediaStreamTrack에서 getSources()를 찾습니다. 마지막으로, 어떤 종류의 API 지원도 없는 경우 빈 cameras 배열을 반환합니다.

    function getCameras(camerasCallback) {
      var cameras = [];
      if('enumerateDevices' in navigator.mediaDevices) {
         navigator.mediaDevices.enumerateDevices()
          .then(function(sources) {
            return sources.filter(function(source) { 
              return source.kind == 'videoinput' 
            });
          })
          .then(function(sources) {
            sources.forEach(function(source) {
              if(source.label.indexOf('facing back') >= 0) {
                // move front facing to the front.
                cameras.unshift(source);
              }
              else {
                cameras.push(source);
              }
            });
            camerasCallback(cameras);
          });
      }
      else if('getSources' in MediaStreamTrack) {
        MediaStreamTrack.getSources(function(sources) {

          for(var i = 0; i < sources.length; i++) {
            var source = sources[i];
            if(source.kind === 'video') {

              if(source.facing === 'environment') {
                // cameras facing the environment are pushed to the front of the page
                cameras.unshift(source);
              }
              else {
                cameras.push(source);
              }
            }
          }
          camerasCallback(cameras);
        });
      }
      else {
        // We can't pick the correct camera because the API doesn't support it.
        camerasCallback(cameras);
      }
    };

삭제 의도 | Chromestatus Tracker | Chromium 버그

반영된-xss CSP 지시어 삭제

콘텐츠 보안 정책 수준 2 사양의 초기 초안에는 다른 구문 외에 X-XSS-Protection 헤더만을 제공하는 reflected-xss 지시어가 포함되었습니다. 이 지시어는 2015년에 사양에서 삭제되었지만 Chrome에 구현되기 전에는 삭제되지 않았습니다. 이 지시어에 대한 지원은 이제 삭제됩니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그

CSP '리퍼러' 지시어 교체

CSP referrer 지시문을 사용하면 사이트 소유자가 HTTP 헤더에서 리퍼러 정책을 설정할 수 있습니다. 이 기능은 사용량이 매우 적을 뿐만 아니라 더 이상 W3C 사양에 포함되지 않습니다.

여전히 이 기능이 필요한 사이트에서는 <meta name="referrer"> 또는 새 Referrer-Policy 헤더를 사용해야 합니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그

PaymentAddress.careOf 필드 삭제

PaymentAddress 인터페이스에는 비표준인 careOf 필드가 있습니다 (잘 알려진 주소 표준에서 지원하지 않음). careOf 필드도 불필요합니다. 수신자 및 조직 필드는 필요한 모든 사용 사례를 충분히 지원합니다. careOf를 추가하면 기존 우편 주소 스키마 및 API와의 상호 운용성 측면에서 심각한 문제가 발생합니다. 자세한 내용은 GitHub의 사양 삭제 제안을 참고하세요.

삭제 의도 | Chromium 버그

SVGViewElement.viewTarget 삭제

SVGViewElement.viewTarget 속성은 SVG2.0 사양에 속하지 않으며 사용법이 적거나 존재하지 않습니다. 이 속성은 Chrome 54에서 지원 중단되었으며 이제 삭제되었습니다.

삭제 의도 | Chromestatus Tracker | Chromium 버그