犬山城の写真から見える守り
城の強さは、天守の高さだけで決まるのでしょうか? 愛知県犬山市の犬山城は、木曽川の南岸に立つ城です。背後を断崖に守られた地形は、後堅固(うしろけんご)と呼ばれます。天守だけを見るより、川と城内の配置を合わせて見ると、守りを考える手がかりが増えます。
公式解説では、犬山城は1537年に織田信康が築いたと伝えられています。これは城の築城についての説明で、現在の天守全体がその年の姿のままという意味ではありません。現存する天守は、国宝に指定されています。[犬山城公式:歴史と構造]
この記事での城と暗号の関係
以下は、城の地形・構造を入口にした現代技術のたとえです。犬山城で現代の暗号技術が使われていた、という歴史上の主張ではありません。
まずは天守から見える木曽川を、システムの「外側の守り」に重ねてみます。
木曽川と断崖——境界防御の強みと限界
大きな川が背後にあれば、それだけで安心できるのでしょうか? 写真には、幅のある川と対岸の街並みが写っています。陸続きの平地と比べれば、川を越えて城へ近づくには別の手段や手間が必要になります。
現代のシステムにも、外から入ってくる通信を制限する境界防御があります。代表例のファイアウォールは、通信元や通信先などの条件に基づき、通信を通すか止めるかを判断します。川が接近を難しくすることと、ネットワークの入口を絞ることには、守る範囲の外側に障壁を置くという共通点があります。
ただし、川は通行者の身元を判定しません。犬山城公式の歴史解説でも、1584年の小牧・長久手の戦いの際、池田恒興が木曽川を渡って城内へ侵入し、犬山城が秀吉方の拠点になったと説明されています。「天然の要害」と「突破されない」は別の話です。[犬山城公式:歴史]
入口を通れたことは、信頼の証明にはならない
Webサイトのログイン画面も、正規の利用者に使ってもらうため外部に公開します。その許可された入口から、攻撃者が盗んだパスワードを試すこともあります。通信を通す判断と、利用者の本人確認は、別々に必要です。
そこで次に考えたいのが、入口に来た相手へ「何度でも試させてよいのか」という問題です。
急階段——「時間をかけさせる」と「本人を確かめる」
登りにくい階段は、通ってよい人と悪い人を見分けられるでしょうか? 犬山城で印象に残ったのは、天守内部の階段の急さでした。登るときだけでなく、降りるときにも大変さを感じました。しかし、この負担は訪問者にもかかります。
この体験は、試すための手間を増やす対策を考える入口になります。ログインでパスワード候補を次々に試す攻撃に対し、システムは失敗回数を数え、待ち時間を設けたり、試行を制限したりします。これが試行回数制限(レート制限)です。
急階段をこの目的で設計したという説明ではありません。ここでは「先へ進むのに手間がかかる」という体験を、オンラインでの大量試行を抑える仕組みにたとえています。
米国の技術指針NIST SP 800-63Bも、認証の失敗回数を制限し、オンラインでの推測攻撃を抑える仕組みを示しています。ただし、正しいパスワードをすでに盗まれていれば、少ない試行で侵入される可能性があります。[NIST:Rate Limiting]
そこで、異なる種類の証拠を組み合わせて本人を確かめる多要素認証も使います。たとえば、パスワードという「知っているもの」に加え、手元の認証器という「持っているもの」を確かめる方法です。単にパスワードを2回入力することとは違います。
なお、レート制限は、そのログイン窓口に対する試行を抑える仕組みです。パスワードのハッシュ値が流出し、攻撃者が自分の計算機で候補を試す場合には、同じ制限は届きません。保存時の対策はハッシュとソルトの解説で扱っています。
入りにくくすることと本人を確かめることを分けたら、次は「情報そのものをどう守るか」です。
天守からの眺め——見える情報を暗号で守る
高い場所から見渡せれば、城内のすべてが分かるのでしょうか? 天守からは、門や通路、人のいる場所まで見下ろせます。しかし、姿が見えることと、その人の身元や持っている文書の内容が分かることは同じではありません。
ネットワークでも、通信が行われていると分かることと、その内容を読めることは別です。ここで働くのが暗号化です。たとえばHTTPSで使うTLSは、通信内容を暗号化し、通信途中での盗み見や改ざんから保護します。
門番・本人確認・暗号は、それぞれ違う仕事
門で出入りを絞るのが境界防御、相手を確かめるのが認証、文書の内容を鍵のない相手に読ませないのが暗号化、と考えると整理できます。「門があるから文書は平文でよい」とはなりません。
一方、暗号化も万能ではありません。正規の利用者としてログインされ、サービス側で復号された情報を読まれた場合、通信の暗号化だけでは防げません。また、TLSは受信した後のデータの保存方法まで決める仕組みではありません。誰に何を読ませるかという権限の設定や、端末・保存データの保護も必要です。
詳しい仕組みはTLSとサーバー認証の解説へ。犬山城で見た「近づく」「登る」「見渡す」という違いを手がかりにすると、対策の役割を分けて考えやすくなります。
まとめ:守りは役割を分けて重ねる
犬山城から持ち帰れる、暗号の学びは何でしょうか? 大切なのは、1つの強い守りにすべてを任せないことです。
- 木曽川の地形 → 近づきにくくする境界防御で、不要な入口や通信を減らします。
- 急階段の負担 → 大量に試しにくくするログインの試行回数を制限します。本人確認は別途必要です。
- 見渡せても中身は別 → 情報を読ませない暗号化で内容を守り、誰が読めるかを権限で管理します。
このように、異なる役割の対策を組み合わせる考え方を多層防御と呼びます。川だけ、階段だけ、暗号だけに頼るのではなく、1つの対策を越えられた場合に、次の対策が何を守るのかまで考えることが重要です。[NIST:多層防御]

階段が大変だったからこそ、「通りにくさ」と「安全」の違いが気になったんだ。お城の守りを見たら、「ここを越えられたら、次は何で守る?」と考えてみよう。それが暗号を使いこなす入口になるんだよ🐾
参考資料
歴史上の説明と現代技術の説明は、どの資料をもとにしているのでしょうか? 主に以下を参照しました。
- 国宝犬山城「犬山城について」:後堅固の地形、築城の伝承、1584年の攻略、天守の歴史と構造。
- NIST SP 800-63B-4:認証の試行回数制限、オンラインとオフラインの推測攻撃。
- CISA「Require Multifactor Authentication」:複数の要素による本人確認。
- RFC 8446:TLS 1.3:通信の機密性・完全性・認証。
- NIST CSRC「defense-in-depth」:複数の対策を組み合わせる多層防御。
写真3点と階段・風の体験は、運営者の訪問記録に基づきます。城と現代技術の対応づけは、本記事独自の学習用のたとえです。
