Em quase todas as versões do Chrome, observamos um número significativo de atualizações e melhorias no produto, no desempenho e nos recursos da plataforma da Web. Este artigo descreve as suspensões de uso e remoções no Chrome 56, que está na versão Beta desde 8 de dezembro. Essa lista está sujeita a mudanças a qualquer momento.
Remover o suporte a certificados SHA-1
O algoritmo hash criptográfico SHA-1 apresentou sinais de vulnerabilidade pela primeira vez há mais de 11 anos, e pesquisas recentes apontam para a possibilidade iminente de ataques que poderiam afetar diretamente a integridade da infraestrutura de chave pública (PKI) da Web.
Para proteger os usuários contra esses ataques, o Chrome não oferece mais suporte a certificados SHA-1 a partir da versão 56, que foi lançada em janeiro de 2017. A visita a um site com esse certificado resulta em um aviso intersticial. Confira mais detalhes no blog de segurança do Chrome.
Intent to remove | Chromestatus Tracker | Chromium Bug
Remoção de criptografias ECDSA no modo CBC no TLS
A construção do modo CBC do TLS tem falhas, o que a torna frágil e muito difícil de ser implementada com segurança. Embora as cifras no modo CBC ainda sejam amplamente usadas com RSA, elas são praticamente inexistentes com ECDSA. Outros navegadores ainda oferecem suporte a essas cifras. Acreditamos que o risco é baixo. Além disso, o ECDSA no TLS é usado por poucas organizações e geralmente com uma configuração mais complexa (alguns clientes mais antigos só oferecem suporte ao RSA). Portanto, esperamos que os sites ECDSA sejam melhor mantidos e mais responsivos em caso de problemas.
O TLS 1.2 adicionou novas cifras baseadas em AEADs que evitam esses problemas, especificamente AES_128_GCM, AES_256_GCM ou CHACHA20_POLY1305. Embora, no momento, exijamos isso apenas para sites baseados em ECDSA, recomendamos que todos os administradores façam isso. As cifras baseadas em AEAD não melhoram apenas a segurança, mas também o desempenho. O AES-GCM tem suporte de hardware em CPUs recentes e o ChaCha20-Poly1305 aceita implementações de software rápidas. Enquanto isso, as cifras CBC exigem mitigações complexas lentas e acesso a PRNG em cada registro de saída. As cifras baseadas em AEAD também são um pré-requisito para otimizações de HTTP/2 e False Start.
Intent to remove | Chromestatus Tracker | Chromium Bug
Remover gestos do usuário do rolagem por toque
Vimos vários exemplos de anúncios mal escritos ou
maliciosos que acionavam a navegação para rolagens por toque em touchstart
ou em todos os eventos touchend
. Se um evento de "roda" não puder abrir um pop-up, o rolagem
por toque também não poderá. Isso pode quebrar alguns cenários, por exemplo, a mídia
não é reproduzida por toque ou os pop-ups não são abertos por toque. O Safari já falha em abrir pop-ups
em todos esses cenários.
Intent to remove | Chromestatus Tracker | Chromium Bug
Proibir todas as transferências de scripts com atributos de tipo/idioma inválidos
No momento, o scanner de pré-carregamento do Chrome busca itens em elementos <scripts>
,
independente do valor do atributo type
ou language
, embora o script
não seja executado quando analisado. Ao descontinuar a busca, o scanner de pré-carregamento
e o analisador terão a mesma semântica, e não iniciaremos
buscas para scripts que não serão usados. O objetivo é salvar dados de usuários que
navegam para sites com muitas tags de script personalizadas que são pós-processadas (como
type="text/template"
, por exemplo).
O caso de uso de scripts inválidos para ping de servidores é coberto adequadamente pela API sendBeacon.
Essa mudança alinha o Chrome ao Safari, embora o Firefox ainda solicite scripts independente do tipo ou idioma.
Intent to remove | Chromestatus Tracker | Chromium Bug
Remoção de MediaStreamTrack.getSources()
Esse método não faz mais parte da especificação e não é compatível com nenhum outro
navegador importante. Ele foi substituído por
MediaDevices.enumerateDevices()
,
que o Blink oferece suporte sem flags desde a versão 47 e também
é compatível com outros navegadores. Confira um exemplo abaixo. Essa
função hipotética getCameras()
usa primeiro a detecção de recursos para encontrar e
usar enumerateDevices()
. Se a detecção de recursos falhar, ela vai procurar
getSources()
em MediaStreamTrack
. Por fim, se não houver suporte para a API de qualquer
tipo, retorne a matriz cameras
vazia.
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);
}
};
Intent to remove | Chromestatus Tracker | Chromium Bug
Remover a diretiva CSP reflected-xss
Os primeiros rascunhos da especificação da Política de Segurança de Conteúdo do Nível 2
contiam uma diretiva reflected-xss
que oferecia apenas o cabeçalho
X-XSS-Protection
, além de uma sintaxe diferente. Essa diretiva foi
removida da especificação em 2015, mas não antes de ser implementada no Chrome.
O suporte a essa diretiva está sendo removido.
Intent to remove | Chromestatus Tracker | Chromium Bug
Substituir a diretiva "referrer" da CSP
A diretiva referrer
da CSP permitia que os proprietários de sites definissem uma política de referenciadores em
um cabeçalho HTTP. Além de ter
uso muito baixo,
esse recurso também não faz mais parte de nenhuma especificação do W3C.
Os sites que ainda precisam dessa funcionalidade precisam usar <meta name="referrer">
ou
o novo cabeçalho Referrer-Policy.
Intent to remove | Chromestatus Tracker | Chromium Bug
Remoção do campo PaymentAddress.careOf
A interface PaymentAddress
tem um campo careOf
que não é padrão (nenhum
padrão de endereço conhecido oferece suporte a ele). O campo careOf
também não é
necessário. Os campos de destinatário e organização oferecem suporte suficiente para todos
os casos de uso necessários. A adição de careOf
causa problemas significativos em termos de
interoperabilidade com APIs e esquemas de endereço postal atuais. Para uma discussão
mais completa, leia a
proposta de remoção de especificação
no GitHub.
Intent to remove | Bug do Chromium
Remover SVGViewElement.viewTarget
O atributo SVGViewElement.viewTarget
não faz parte da especificação SVG2.0
e seu uso é pequeno ou inexistente. Esse atributo foi
descontinuado no Chrome 54 e removido.