Kernel/VM探検隊@東京 No17 https://kernelvm.connpass.com/event/321962/
はじめに HTTPS(HTTP Over TLS)とは SSL/TLS HTTPSの流れ 実際に通信を観察 自己署名証明書の用意 サーバーの作成 WireSharkの準備 リクエストを送信して観察 まとめ 年に1度の技術イベント「RAKUS Tech Conference」を開催します!! はじめに エンジニア2年目のTKDSです! 普段何気なく使ってるほとんどのWebサイトが対応しているHTTPS通信の仕組みについて調べてみました。 本記事では、Wiresharkを用いてHTTPSの内部動作を解析し、どのようにしてデータが保護されているのかを具体的に解説します。 記事の後半では、Wiresharkを使って実際の通信データを観察し、暗号化プロセスの詳細を確認してみます。 HTTPS(HTTP Over TLS)とは HTTPS(HTTP Over TLS)は、HTTPの暗号化版で、ウェブサ
開発・運用の現場から、IIJのエンジニアが技術的な情報や取り組みについて執筆する公式ブログを運営しています。 こんにちは。IIJ Engineers Blog編集部です。 IIJの社内掲示板では、エンジニアのちょっとした技術ネタが好評となって多くのコメントが付いたり、お役立ち情報が掲載されています。 今回は、すでにお気づきの方もいるかもしれませんが、いつの間にか HTTPS 証明書の Common Name の検証が禁止 になっていた件について紹介します。 HTTPS 証明書の検証手続きは、RFC2818 で「Subject Alternative Name があればそれで、なければ Common Name を見よ」となっていました。 If a subjectAltName extension of type dNSName is present, that MUST be used as
面白そうだったのでHTTPS通信パケットを復号してみました。HTTPS通信パケットを復号するにあたり、まずはHTTPSの暗号化方式について調べてみたのでまとめます。 HTTPSの暗号化方式 HTTPS通信の暗号化には公開鍵暗号方式と共通鍵暗号方式の両方を利用したハイブリッド方式により暗号化が行われます。それぞれの暗号化方式についての説明です。 共通鍵暗号方式では、サーバー側もクライアント側も、データの暗号化と復号に同じ鍵を使用します。この方式のメリットは処理時間が短いことです。一方でデメリットとしてサーバーとクライアントで鍵を交換する際に、鍵を盗まれる危険性があります。下の図はすでに鍵交換を終えて、データをやり取りしている状態の図です。どうやって鍵を交換するかまでは、この暗号方式では特に決まっていません。 公開鍵暗号方式は、送受信データの暗号化と復号に異なる鍵(公開鍵と秘密鍵)を使用します
https://example.com/ example.com. IN HTTPS 1 svr.example.com. ; svr.example.com. IN A 192.0.2.1 ; IP IN AAAA 2001:db8::1 example.com. IN A 192.0.2.1 ; IP IN AAAA 2001:db8::1 ; CDN cdn.example.net. IN HTTPS 10 sv1.example.net. alpn=h3,h2 ech=abc … IN HTTPS 20 sv2.example.net. alpn=h3,h2 ech=xyz … sv1.example.net. IN A 192.0.2. 1 sv2.example.net. IN A 192.0.2.2 https://example.com/ ; Web CDN example
みなさんローカル環境での開発時は必要に応じて「自己署名入り証明書」(通称:オレオレ証明書)を作成していると思います。 ほとんどは主にopensslなどを使って作成していたりすると思いますが、オプションが複雑で毎回ググったり、そもそもopensslのバージョンの問題などでコマンドがコケることもしばしばあるのではないでしょうか。僕だけですかね(苦笑) 日頃からサーバーサイドのことをやっているわけではないので結構ストレスを感じながらやっていましたが、今回ServiceWorkerをいろいろ検証(「Workbox + webpackでServiceWorkerのオフラインキャッシュと戯れる」、「ServiceWorkerのキャッシュ戦略を考える」を参照)するにあたって調べたところmkcertというツールを発見。使ってみてものすごく簡単だったのでオススメしたいと思います。 github インストール
Use HTTPS for local development Stay organized with collections Save and categorize content based on your preferences. Most of the time, http://localhost behaves like HTTPS for development purposes. However, there are some special cases, such as custom hostnames or using secure cookies across browsers, where you need to explicitly set up your development site to behave like HTTPS to accurately rep
IPアドレスのサーバ証明書が欲しい場合があります。そうすれば、ドメインを取得せずともサーバとHTTPS通信ができるようになります。 その他にも例えばDNS over HTTPSではIPアドレスでアクセス出来るように、有効な証明書がセットされていたりします。 https://1.1.1.1 https://8.8.8.8 しかし、Let's Encryptでは、IPアドレスのサーバ証明書は取得できません ~$ sudo certbot certonly --nginx -d 160.16.124.39 Requested name 160.16.124.39 is an IP address. The Let's Encrypt certificateauthority will not issue certificates for a bare IP address.ZeroSSLでは出来
はじめに 皆さんは ZeroSSL を知っていますか?個人でウェブサイトを運営している皆さんであれば、多くの方は Let's Encrypt を利用されていると思います。 https://letsencrypt.org/ja/ もちろん僕も使っています。僕の様なエンジニアの方であれば SSL の仕組みもおおよそ理解もしているし、コマンドラインの実行方法も知っておられるのでウェブサイトの SSL 証明書を取得する事もそれほど難しい事ではないでしょう。 しかしそれほど詳しくない方が certbot の様なコマンドを使って SSL 証明書を発行するのは割と難しい事です。そこでご紹介したいのが ZeroSSL です。 https://zerossl.com/ ZeroSSL とは ZeroSSL もまだあまり名前が知られていないせいか、Google 検索で「ZeroSSL」を検索すると「ZeroS
SSL証明書を無料で発行してくれる認証機関「Let’s Encrypt」は、2014年の設立から安全なインターネットの利用に大きく貢献しています。しかし、ハッカーであり研究者でもあるScott Helme氏は、無料の証明書発行をLet’s Encryptのみに頼っている現状を問題として取り上げ、Let’s Encryptの代替となるサービスを紹介しています。 Introducing another free CA as an alternative to Let's Encrypt https://scotthelme.co.uk/introducing-another-free-ca-as-an-alternative-to-lets-encrypt/ Free SSL Certificates and SSL Tools - ZeroSSL https://zerossl.com/ L
This post is also available in: English (英語) 概要 本シリーズは、疑わしいネットワークアクティビティの調査やネットワークトラフィックのパケットキャプチャ(pcap)の確認を業務で行っておられるセキュリティ専門家を読者として想定しています。このため本稿での手順説明は読者の皆さんがWiresharkの使いかたをご存知であることを前提としています。また、本稿にて利用するWiresharkのバージョンは主に3.xとなります。 昨今、対象となる疑わしいネットワークアクティビティのトラフィックが暗号化されていることは珍しくありません。今はほとんどのWebサイトが Hypertext Transfer Protocol Secure(HTTPS)プロトコルを使用しており、そうした通常の Webサイトと同様にさまざまなマルウェアもまた HTTPS を利用していま
Chromeの開発ツールにはNetworkという項目があり,ブラウザでサイトにアクセスしたときのHTTP/HTTPSのアクセスのログを見ることができます.APIの動作確認などできるので,Web開発者なら重宝している機能の一つだと思います. とても便利な機能なので,iOSのWKWebViewでも使えたらいいなと思い開発しました. 下記の動画が作ったサンプルなのですが,アプリ内のWKWebViewでGithubにアクセスしたときのHTTPSリクエストすべてをTableViewに表示できるようになっています. こちらが今回作成したサンプルのレポジトリです. https://github.com/tommy19970714/WebKitURLProtocol これはログを表示するだけですが,この技術を応用する例としては,WKWebView上で開いているyahooのホームページ内にある画像をすべて猫
Intro Web の https 化が進み、それに伴って https を前提とする API も増えてきた。 そうした API を用いた開発をローカルで行う場合、 localhost という特別なホストを用いることもできるが、それだけでは間に合わないケースも少なからずある。 localhost を https にするという方法もあるが、そのように紹介されている方法には、いくつか注意すべき点もある。 この辺りの話を、直近 1 ヶ月で 3 回くらいしたので、筆者が普段使っている方法や注意点についてまとめる。 特に推奨するつもりはない。 Update chrome の --host-rules について追記 localhost での開発の注意点 例として https://example.com にデプロイする予定の ServiceWorker を用いたアプリがあったとする。 開発をローカルで行う
ウェブサーバーとして有名なソフトウェアはApacheやnginxですが、設定が難しいと感じる人も少なくないはず。Google発のプログラミング言語「Go」で開発された「Caddy」は、最低限の設定でSSLによる暗号化やHTTP/3での通信も可能なウェブサーバーです。 Caddy 2 https://caddyserver.com/v2 CaddyはUbuntuやCentOSなどのLinuxで利用可能。今回はUbuntu 18.04にCaddyをインストールしてみます。 下記コマンドを実行すれば、Caddyをインストールすることができます。 echo "deb [trusted=yes] https://apt.fury.io/caddy/ /" \ | sudo tee -a /etc/apt/sources.list.d/caddy-fury.list sudo apt update s
Let's Encryptはドメイン認証証明書を無料で発行してくれるたいへん素晴らしいサービスです。ウェブサイトをHTTPSで提供するためには証明書が必要ですが、Let's Encryptの登場以前は認証局から有料で証明書を発行してもらうのが主流でした。それを無料で発行してもらえるのは大変ありがたいことです。また、発行プロセスは自動化されておりとても簡単です。筆者も個人のウェブサイトは全てLet's Encryptで証明書を取得しています。 ところが、Let's Encryptが発行する無料の証明書なんて信頼できないという教義を信奉するタイプの人々も存在するようです。筆者は最近Twitterで見かけました。ということで、そのような思想を持つ方も安心してインターネットを利用できるように、Let's Encryptによって発行された証明書を使用しているウェブサイトのみブロックするプロキシサーバ
平常時にどんなパケットがやりとりされるかを知っておくと、トラブルが起こったときに何がおかしいのかを発見しやすくなる。そこで、Wiresharkの使い方に慣れながら、通常のパソコンでやりとりされるパケットを見ていこう。 Part4ではインターネットの通信に使うHTTPS▼通信を取り上げる。 3つの画面領域で情報を表示 HTTPS通信は、主にWebサーバーとの通信に使う。HTTPSは、HTTP通信をTLS▼という技術を使って、安全にやりとりするようにしたプロトコル。現在のWeb通信では、従来のHTTPに代わって主流になっている。 まず、HTTPSは仕様上どのようなやりとりをすることになっているかをおさらいしておく。 TLSは、使用するバージョンによってやりとりする流れ(シーケンス)に違いがある。現在、一般的に使われているのは、TLS 1.2とTLS 1.3である。 両者の大きな違いは、ハンドシ
Let’s Encrypt は無料でサーバー証明書を発行してくれる認証局です。2016 年のサービス開始以来、 急速に普及しています。 Let’s Encrypt の証明書発行には ACME プロトコルに対応したクライアントソフトウェアを使います。主要な ACME クライアントソフトウェアは ACME Client Implementations で紹介されています。Let’s Encrypt のサイトでは certbot というツールが推奨されているのですが、 このツールは Windows には対応していません。Windows 環境では win-acme (旧名 letsencrypt-win-simple) というツールが良く使われているようです。 私も、 これまで win-acme を使ってきたのですが、 先日、 ふとしたことで mod_md という Apache モジュールの存在を
個人情報を入力するWebサイトでは、Webブラウザーに鍵マーク(錠マーク)が表示されているのを確認する――。セキュリティーのセオリーとして、筆者が何度も記事に書いたフレーズだ。 だが、「鍵マークが表示されていれば安全」というHTTPSの神話は崩壊した。常識が変わったのだ。 米国の政府組織であるインターネット犯罪苦情センター(IC3)は2019年6月、「Webブラウザーのアドレスバーに、鍵のアイコンあるいは『https』という表示があるという理由だけでWebサイトを信頼しないでください」と注意を呼びかけた。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く