zkat’s diary

技術ブログ

2019-01-01から1年間の記事一覧

Influxdbでpercentileを計算する

組み込みの関数、percentileがinfluxdbに存在するので簡単に計算することができます。 docs.influxdata.com 適当なデータを積んで、計算してみます。 あるサーバーへのRTTを測定していることを想定し、以下のようなデータを適当に作りました。 insert testdb…

CT(Certificate Transparency)ログサーバーに書き込める証明書

結論 RFC 6962によれば、ルートに信頼の連鎖がある証明書を登録することができるようです。 1. Informal Introduction In order to avoid logs being spammed into uselessness, it is required that each chain is rooted in a known CA certificate. 3.1. …

TLDのZSKでよく使われている署名アルゴリズム

はじめに DNSSECで使われる署名鍵はKSK(Key Signing Key)とZSK(Zone Signing Key)の2種類があります。 TLDゾーンのZSKについて、どの署名アルゴリズムがよく使わええているか、調べました。 調べ方 まず、TLDの一覧をIANAから取得します。 https://data…

Google Chromeで表示されるCertificate TransparencyのLog IDがKnown Logsに存在するか確認する方法

はじめに Google Chromeでは、デベロッパーツールにて以下のように、閲覧しているウェブサイトの証明書がどのCTログサーバーに登録されているのか表示することができます。 例えば、google.comにて表示しています。 certificate-transparency-google.com Goo…

dnspythonで非再帰問い合わせする

dnspythonのサンプルコードをさらします。 dnspythonで非再帰問い合わせをしつつ、ついでにNSIDも取得してます。 NSIDは、EDNSオプションで使うことのできるもので、実際に応答をした権威DNSサーバー(IP Anycastなどで負荷分散されているDNSサーバーへの問…

CAAにissuewildのセミコロンが指定されているときの証明書の発行

はじめに 証明書を発行しようとする認証局は、必ず対象のドメインについてCAAレコードをチェックする必要があります。 Before issuing a certificate, a compliant CA MUST check for publication of a relevant CAA Resource Record set. tools.ietf.org ド…

Plotly DashアプリをuWSGI+Nginxで動かす簡単なサンプル

Nginxをリバースプロキシにして、Plotly Dashで作ったサンプルアプリを動かしてみます。 uWSGIとNginxは、Unixドメインソケットでつないでみます。 dash.DashのインスタンスからFlaskのアプリをapp.serverとして取り出しています。 以下、コマンドラインから…

左右に縦軸(y軸)があるグラフをplotly dashで作ってみる。

Pythonのplotly dashで左右に縦軸があるグラフをつくるサンプルコードのメモです。 two-sided-graph-with-plotly-dash yaxis2プロパティを設定する必要があります。 左右軸とは関係ありませんが、そのほかに、以下のようなことをしてます。 グラフの凡例を上…

PythonのPlotly DashでJP DNSサーバーのRTT等を可視化するウェブアプリを作った

概要 フロントエンド周りの勉強を目的に、Plotly Dash*1を用いて 権威DNSサーバーのRTT等の可用性を可視化するウェブアプリケーションを作ってみました。 rtt.dns.mtcq.jp graph github.com 実装 実装はシンプルで、下記のような感じ。 dnspython*2を使ってD…

Auditdのaureportをcronで使おうとしてハマる

aureportコマンドをcrontabで実行した際、何度やっても<no events of interest were found>と出力されてしまっていました。 結論としては、--input-logsオプションをつけることで想定通り動作するようになりました。 --input-logs Use the log file location from auditd.conf as input for ana</no>…

SCT(Signed Certificate Timestamp)のLogIDについて

SCTに存在するLogIDがどのように作成されているのか書きたいと思います。 ここで言っているLogIDとは、下記のものです。 google.co.jp-signed-certificate-timestamp-logid 例としてgoogle.co.jpにChromeでアクセスして表示させています。 まずLogIDがなんな…

TLS ExtensionによるSCTの提供について

CT1において、SCT2をクライアントに提供する方法は3つあります。 1. X.509 v3 Extensionによる方法 これは、いろいろなウェブサイトのサーバー証明書で見ることができます。証明書自体にSCTが埋め込まれているものです。 例えばtwitter.comの現時点の証明書…

CT(Certificate Transparency)ログサーバーの可用性

CTログサーバーの可用性を確認できるウェブサイトを見つけました。 作者は、イギリスのNetcraft社(セキュリティ関連の会社)の人の様です。 This website monitors Certificate Transparency log servers to check that they are behaving correctly. ct.gr…

OWASP ZAPでHTTPS通信の中身を確認したい

手順は以下の通り。 ちなみに、得体のしれないルート証明書をインポートすると、 得体のしれないソフトウェアや人に、中間者攻撃を許すことに繋がるので要注意。 1. OWASP ZAPでルート証明書を作成する 「ツール」→「オプション」→「ダイナミックSSL証明書」…

OWASP ZAPでHTTPヘッダを追加したり削除したりする

調査対象ウェブサイトへのHTTPリクエストについて、HTTPヘッダを書き換える手順は下記の通り 1. 書き換え用スクリプトひな形を作成する。 「スクリプト」タブの「HTTP Sender」を右クリックして新規スクリプトのひな形を作成する。 owasp-manipulate-http-he…

Alloyに入門している

Alloyを用いたモデル検査が行えるようになりたくて、勉強をしています。 勉強がてら、「顧客が商品を買う」という挙動についてAlloyで記述してみました。 open util/boolean sig Consumer {} sig Product { price: Consumer -> one Int, bought : Consumer -…