ブラウザ
Chrome72正式リリース!「TLS 1.0」「TLS 1.1」が非推奨に
2019年01月31日 8:00
おはようございます!社員Aです👩
1月29日にリリースされた「Google Chrome 72」で、「TLS 1.0」「TLS 1.1」が非推奨になり、その他アップデートで変更された点を詳しくまとめていきたいと思います。
▼前回・Chrome71リリースの記事はこちら
もくじ
TLS 1.0およびTLS 1.1が非推奨に
「Google Chrome 72」では、TLS 1.0およびTLS 1.1が非推奨になりました。
TLS(Transport Layer Security)はHTTPSを保護するプロトコルです。20年近くも前のTLS 1.0とそのさらに前のバージョンであるSSLまでさかのぼる長い歴史を持っていますが、下記のようにいくつかの弱点があります。
- TLS 1.0と1.1はMD5とSHA-1(どちらも弱いハッシュ)をFinishedメッセージのトランスクリプトハッシュに使います。
- TLS 1.0と1.1は、サーバー署名にMD5とSHA-1を使用します。(注:これは証明書の署名ではありません。)
- TLS 1.0と1.1はRC4とCBC暗号のみをサポートします。RC4は壊れているので削除されました。TLSのCBCモード構築には欠陥があり、攻撃に対して脆弱でした。
- TLS 1.0のCBC暗号は、さらにそれらの初期化ベクトルを誤って構成します。
- TLS 1.0はPCI-DSSに準拠しなくなりました。
Chromeはこれらのプロトコルも廃止し、Chrome 81(2020年初頭)に削除が予定されています。
ページのアンロード中にポップアップを許可しない
ページは、window.open()
アンロード中に新しいページを開くために使用されなくなります。
こちらについては奥が深いので、後日別で記事を書きたいと思います。
HTTPベースの公開キー固定を削除
HTTPベースの公開鍵固定(HPKP)は、Webサイトが、サイトの証明書チェーンに存在する1つ以上の公開鍵を固定するHTTPヘッダーを送信できるようにすることを目的としていましたが、リスクがあることからこの機能は削除されています。
[Ad3]
レンダリングFTPリソースを削除
非推奨および削除に向けた1つのステップは、FTPサーバーからのレンダリング・リソースを非推奨にして代わりにそれらをダウンロードすることです。
Chromeはディレクトリリストを生成しますが、ディレクトリ以外のリストはブラウザに表示されるのではなくダウンロードされます。
JavaScriptでパブリッククラスのフィールドを作成しやすくなった
ここからはデベロッパー向けですが、Chrome 72ではゲッターとセッター、静的メソッドとパブリックプロパティを完備した、期待通りに動作するクラスを作成することができます。
パブリッククラスフィールドをクラス定義内で直接宣言できるようになり、コンストラクタ内でそれを行う必要がなくなりました。
プライベートクラスフィールドのサポートは現在進行中とのことです。
class Counter { _value = 0; get value() { return this._value; } increment() { this._value++; } } const counter = new Counter(); console.log(counter.value); // → 0 counter.increment(); console.log(counter.value); // → 1
ユーザーアクティベーションAPI
Chrome 72ではUser Activation v2が導入されました。これにより、すべてのゲートAPIのユーザーアクティベーションが簡単になります。これは、すべてのブラウザでライセンス認証がどのように機能するかを標準化することを目的とした新しい仕様に基づいています。
hasBeenActive
関連付けられているウィンドウのライフサイクル中にユーザーによるアクティブ化が行われたことがあるかどうかを示します。isActive
関連付けられているウィンドウの現在のライフサイクルにユーザーアクティベーションがあるかどうかを示します。
物事のリストをローカライズするIntl.format
Chrome 72には、.format()
リストのレンダリングを簡単にする新しい方法があります。他のIntl
API と同様に、パフォーマンスを犠牲にすることなく、JavaScriptエンジンに負担をかけます。
const opts = {type: 'disjunction'}; const lf = new Intl.ListFormat('fr', opts); lf.format(['chien', 'chat', 'oiseau']); // → 'chien, chat ou oiseau' lf.format(['chien', 'chat', 'oiseau', 'lapin']); // → 'chien, chat, oiseau ou lapin'
関連記事
この記事を書いた人
社員A
入社8年目。フロントエンドエンジニア・デザイナーの社員Aです。 小動物が好きで、デグー・チンチラと暮らしています!トレンドの情報を発信できるようにがんばります☺