Fetch Metadataリクエストヘッダについて (Sec-Fetch-*)

ブラウザがリソースをFetchするさいに、そのFetchに関するメタ情報をリクエストヘッダに付与するというのがFetch Metadataという仕様です。この情報を用いれば、画像の読み込みのFetchで銀行用のAPIが叩かれるはずがないといった、明らかな不正なリクエスト…

Signed Exchange Reporting for distributors について

Webサイトを一つに固めて署名して再配布可能にする、Web Packagingという仕組みがあります。現在、Web Packagingは以下の3つの仕様からなっています。 Signed HTTP exchanges Bundled HTTP exchanges Loading AMPなどをより標準化された仕組みで実現するため…

Delegated Credentials for TLS について

BoringSSLが「Delegated Credentials for TLS 」に対応したので、簡単に仕様を眺める。 「Delegated Credentials for TLS 」の仕様は、もともとはTLS1.3の仕様の著者でもあるEric Rescorlaによって書かれていたようだが、すでに WG DraftとなっておりMozilla…

HTTP/2 ORIGINフレームのセキュリティを改善する提案仕様

AkamaiのMike Bishop氏らから、「DNS Security with HTTP/2 ORIGIN」という提案仕様が出ている。簡単に読む ORIGINフレームとは ORIGINフレームとは、RFC8336で標準化されているHTTP/2の拡張フレームです。HTTP/2では、複数のドメインへのリクエストでもコネ…

2018年 振り返り (300記事目)

簡単に2018年を振り返ります。 2018年 今年も52記事を書くことができました。興味を持っていただけた記事も多く嬉しく思います。 また夢でもあった「単著の本」を出せたことも良かったと思います。一方で、年末はあまり記事がかけてなかったのと、実際に手を…

QUIC,HTTP/3 の draft-17に関するメモ

12月8日に現在標準化が進められているQUICの仕様のdraft-17が出ました。以下の記事で書いたように、"HTTP over QUIC" のHTTP/3への名称が含まれています。 asnokaze.hatenablog.comその他にも幾つかの変更が含まれているのでざっと目を通す。 「Hypertext Tr…

新しいユーザエージェント表現 User Agent Client Hints の提案仕様

20190218追記 Implement `Sec-CH-UA-*` replacements for `User-Agent`. https://chromium.googlesource.com/chromium/src/+/2fddeeb74abcc3c9e3ba88df4cfb0c1c07e43fc6Chromeでは実装が進められている ユーザエージェントは歴史的背景により、複雑な文字列…

HTTP over QUICと、その名称について (HTTP3について)

さてHTTP/3というと、なにか新しそうなHTTPのような気がしますが、まず基本的なHTTPのセマンティクスに変更はありません。GETやPOSTといったHTTPリクエストがあって、ステータスコードを持つレスポンスが返されます。ただその伝達方法がQUICトランスポートに…

QUICの話 (QUICプロトコルの簡単なまとめ)

2018/12/23 追記 アップデートについて別記事書いた 「QUIC の draft-17に関するメモ - ASnoKaze blog」20181106追記 HTTP over QUICについてちょっと書きました asnokaze.hatenablog.com QUICの話 QUICのプロトコルについて、自分の理解を整理するためにそ…

HTTP 418ステータスコードが予約される

「418 I’m a tea pot」としてよく知られる 418 ステータスコードについて、IETF HTTPbis WGで議論になっていました。「418 I’m a tea pot」はジョークRFCである「RFC2324 Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)」で定義されているステータス…

Auto Upgrade Mixed Contentとは

HTTPSのサイト内にHTTPで提供される画像やスクリプトがあると、「Mixed Content」の仕組みによりURLバーに黄色い警告が出たり、リソースがブロックされます。もちろんスクリプトがブロックされればWebページを正しく表示できません、URLバーに表示されたシー…

NTPを暗号化する Network Time Security for NTP の提案仕様

サーバが正しい時刻に設定されていることは重要であり、時刻同期に使用されるNTPにおいてもサーバの認証や改ざんを防ぎたいというモチベーションは理解できる。IETFのNTP WGでは、まさにNTPを暗号的に保護する「Network Time Security for the Network Time …

JS Self-Profiling API とは

W3C Web Performance Workingの議事録に「JS Self-Profiling API」についての議論があったので簡単に眺めておく。ミーティングの「発表スライドはこちら」 JS Self-Profiling API いわゆるRUM(Real user monitoring)などと同様、実際のユーザ側でJavaScript…

QUICの信頼性のないデータグラム拡張(MESSAGEフレーム/Datagramフレーム)

QUICはUDP上で暗号化された信頼性のあるデータ通信を提供するトランスポートプロトコルです。現在IETFの「QUIC WG」で標準化が進んでおり、先行して実装されていたGoogle版QUICもIETF版QUICへの移行が進められています。 QUICのアプリケーションレイヤ 現在Q…

ブラウザからシリアルポートにアクセスするSerial API

blink-devメーリングリストに「Intent to Implement: Serial API」として「Serial API」の実装に着手する旨の投稿がされている。この「Serial API」はW3CのWICGで議論がされており、ブラウザからシリアルポートにアクセス可能にする。3DプリンタやArdbinoな…

Chrome 71で検討されている iframeへのPermission Delegation

Webサイトがカメラや位置情報をアクセスする際にパーミッションを要求する場合がある。iframeで埋め込んだページでも同じようにパーミッション要求が行える。Chrome 71で導入が検討されている「Permission Delegation」では、iframeで埋め込まれたページでの…

HTML要素からHTTP/2優先度を指定する Priority Hints が動いた

HTTP/2にはクライアントからHTTPリクエストの優先度を指定することができる。サーバはその優先度に基づいてHTTPレスポンスを返す(無視しても良い)。 一般的にはブラウザ自身が判断し、ページのレンダリングを早くするためにCSSなどは優先度を高く、画像は優…

キャッシュがHitした情報を示すCacheヘッダの標準化提案

CDNなどのサービスは、リクエストがキャッシュにヒットしたかどうかをx-cacheヘッダに格納してレスポンスしてくれますこのx-cacheヘッダは独自の形式であり、例えば以下のようになっています。 (CDNによっては、x-cache以外のヘッダを使うものもあります)f…

DNS over HTTPSサーバを見つけるためのTXTレコードの提案仕様

DNS over HTTPS(DoH)の標準化が進められており、引き続き注目を集めている。 asnokaze.hatenablog.com一方で、DoHサーバをどのように見つけるか、見に行かせるかの議論が始まっています。 JPNIC Blog :: DNS over HTTPSとDHCP -IETF102における議論- で紹…

Loading Signed Exchangesの仕様 (WebPackaging)

WebPackagingと呼ばれる仕組みが議論されているのは、以前このブログでも紹介したとおりである。 asnokaze.hatenablog.comこの仕組みは3つの仕様からなる。 Signed HTTP exchanges (参考: HTTP/2 クロスオリジン サーバプッシュを可能にする提案仕様 - ASnoK…

セキュリティトークンを識別するための secret-token URI Scheme の提案仕様

セキュリティートークンを間違えて公開してしまうセキュリティインシデントが増えています。例えば、シークレットやトークンをソースコードに埋め込んだままコミット・公開してしまったりなどです。機械的にセキュリティトークンを識別できるようになれば、…

Cookieにかわる Sec-HTTP-State ヘッダの提案

Cookieの様々な問題を解決するために、Webセキュリティー界隈で活躍されるMike West氏から「Tightening HTTP State Management」というCookieに変わるHTTPにおいてステートを扱う仕組みが提案されています。現在はIETFのHTTPbis WGのMLに投稿されただけで仕…

NginxでTLS1.3の0-RTTハンドシェイク (ssl_early_data)を試す

追記20180922 OpenSSLも対応しました 「support for TLSv1.3 early data with OpenSSL.」 http://hg.nginx.org/nginx/rev/548a63b354a2 昨日、NginxがTLS1.3の0-RTTハンドシェイクをサポートしたので試した。無事動作することが確認できた。該当コミットはこ…

Fetchの仕様で application/report を送信時にCORSが必要になった

以前このブログでも書いたNetwork Error Loggingなど、Webサイトを表示する際に発生した問題のレポートを指定されたエンドポイントに送信する機能が増えてきている。 asnokaze.hatenablog.comこのレポート送信に関する仕様はReporting APIで定義されている。…

Clear-Site-Dataヘッダでブラウザに記憶されているデータを消す

Webブラウザは表示したサイトに関する様々なデータを記憶しています例えば cookie cache HTTP認証の情報 localStorage service worker registrations しかしサーバ側からこれらのデータを明示的に消すのは難しい場合があります。例えば、httpOnlyのcookieは…

ブラウザの廃止される機能を使っていることを検知する Deprecation Reports (+ Intervention reports )

w3c

20180713追記 Intervention reports について追記しました ブラウザのバージョンアップは定期的に行われており、その度に廃止される機能もあります。廃止されることは公式にアナウンスされますが、そもそも自分が使っているかどうかすべてを把握することは難…

TLS1.0, TLS1.1 の廃止する提案仕様

TLS1.3にRFC8446が採番され、RFCとして出るのを待つばかりになっている。一方で、「Deprecating TLSv1.0 and TLSv1.1」というTLS1.0とTLS1.1の廃止についての提案仕様がIETFで出ている。 TLS1.0, TLS1.1 廃止事情 カード情報セキュリティの国際統一基準 PCI …

Forwarding-Loop Attacks攻撃を防ぐCDN-Loopヘッダの提案仕様

Forwarding-Loop Attacks攻撃を防ぐ「CDN Loop Prevention」 という仕様が提案されています。 背景 CDNへのDoS攻撃として、リクエストをCDN内でループさせる「Forwarding-Loop Attacks」という攻撃手法が知られています。CDNユーザの設定ミスや、攻撃者がユ…

Chromeが6週間毎にTLSバージョン番号を変更していくかもしれない

[修正] ossificationを骨化と訳してましたが、硬直化に変更しました TLS1.3の標準化が終わり、もうRFCとして出されるのを待つばかりになっている。そんなTLSワーキンググループのメーリングリストに、ChromiumやBoringSSLの開発に携わるDavid Benjamin氏よ…

Network Error Loggingを用いたポートスキャン手法について

w3c

20180711追記 この問題は解決されました Handle errors in different phases differently #83 include_subdomains はDNSの名前解決エラーのみをレポート出来、TCP関連のエラーは通知できません。 ReportingObserver で、Network Error Loggingは監視できませ…