Chrome 56의 API 지원 중단 및 삭제

Joe Medley
Joe Medley

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

SHA-1 인증서 지원 삭제

SHA-1 암호화 해시 알고리즘은 11년 전 약점의 조짐을 처음 보였으며 최근 연구에 따르면 웹 공개 키 인프라 (PKI)의 무결성에 직접적인 영향을 미칠 수 있는 공격이 임박할 수 있습니다.

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

삭제 의도 | Chromestatus 추적기 | 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 추적기 | Chromium 버그

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

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

삭제 의도 | Chromestatus 추적기 | Chromium 버그

유효하지 않은 유형/언어 속성이 있는 스크립트의 모든 가져오기를 허용하지 않음

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

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

이 변경사항으로 Chrome이 Safari와 일치하게 되지만 Firefox는 여전히 유형이나 언어와 관계없이 스크립트를 요청합니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그

MediaStreamTrack.getSources() 삭제

이 메서드는 더 이상 사양에 포함되지 않으며 다른 주요 브라우저에서 지원하지 않습니다. MediaDevices.enumerateDevices()로 대체되었습니다. Blink는 버전 47부터 플래그 없이 이 기능을 지원했으며 다른 브라우저에서도 지원합니다. 아래 예를 참고하세요. 이 가상의 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 추적기 | Chromium 버그

reflected-xss CSP 지시어 삭제

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

삭제 의도 | Chromestatus 추적기 | Chromium 버그

CSP 'referrer' 지시어 대체

CSP referrer 디렉티브를 사용하면 사이트 소유자가 HTTP 헤더에서 리퍼러 정책을 설정할 수 있었습니다. 이 기능은 사용 빈도가 매우 낮을 뿐만 아니라 더 이상 W3C 사양의 일부가 아닙니다.

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

삭제 의도 | Chromestatus 추적기 | Chromium 버그

PaymentAddress.careOf 필드 삭제

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

삭제 의도 | Chromium 버그

SVGViewElement.viewTarget 삭제

SVGViewElement.viewTarget 속성은 SVG2.0 사양의 일부가 아니며 사용 빈도가 낮거나 존재하지 않습니다. 이 속성은 Chrome 54에서 지원 중단되었으며 이제 삭제되었습니다.

삭제 의도 | Chromestatus 추적기 | Chromium 버그