どさにっき IoT 〜2016年9月上旬〜

by やまや
<< = >>

2016年9月9日(金)

サブドメイン管理者が親ドメインの SSL 証明書を取得する

_ 中国最大級の認証局「WoSign」がニセの証明書を発行していたことが判明。サブドメインの管理権限がある人が親ドメインの SSL 証明書が取得できちゃったんだって。この問題、他の CA でもあるんだよね、実は。

_ 具体的に言うと Let's Encrypt がそれ。 この記述。example.com ドメインの所有者かどうか判断する方法のひとつとして、_acme-challenge.example.com の TXT レコードに指定のトークンを記述せよ、というのが挙げられている。ということで、ユーザが自由にサブドメインを作れるサービス上で _acme-challenge というサブドメインを作成すれば親ドメインの証明書を発行してもらえる。今回の WoSign の件のように任意のサブドメインでいけるわけではなく、ラベルにアンスコが含まれるのでちゃんとしたサービスであればバリデーションで弾かれる可能性も大きいけど、でもそれさえクリアできれば親ドメインの所有者に気付かれることなく Let's Encrypt (あるいは他の ACME プロトコルを実装した CA)から証明書を取得できちゃう。

_ https://maya.st/には Let's Encrypt から発行された証明書が入ってるけど、これは実際にこの方法を使って取得した。具体的には、maya.st ゾーン内に _acme-challenge というレコードを作るのではなく、maya.st から NS を*委譲されていない* _acme-challenge.maya.st というゾーンを maya.st ゾーンと同じサーバ上で作成することによって取得した( 参考)。親ドメイン(maya.st) も子ドメイン(_acme-challenge) も管理してるのは同じ人間なんでひとり2役だけど。

_ この件は今年の6月に気がついて7月には Let's Encrypt には報告済み。が、なんかトンチンカンな返答 (*1)が返ってきて、いや、そーじゃねーよ、というやりとりを何回か繰り返して結局無視されて対応されず。こっちの英語がおかしかったのかなー。そんなわけで、これまで黙ってたけど晒してみた。


(*1): 「appending the label "_acme-challenge" と書いてあるだろ(prepending じゃなくて)、だから _acme-challenge.example.com じゃなくて example.com_acme-challenge というレコードを作ってくれ」という返事が来た。マジで。

<< = >>
やまや