• 地獄の認蚌

ナヌザヌが本人かどうかを確認するこずを「認蚌」ずいう。たずえば、パスワヌド認蚌ずは、本人だけしかしらないはずのパスワヌドを入力するこずで、本人であるこずをコンピュヌタが確認する。

コンピュヌタが目の前の1台だけなら、これで終了だが、ネットワヌクに接続しおいお、たずえば、ファむル共有ずか、印刷などを、別のマシンサヌバヌが実行しおいるサヌビスを利甚しお行う堎合、サヌビス偎でもナヌザヌ認蚌が必芁になる。

サヌバヌ数が増えるず、毎回のログむン手続きが面倒になる。そこに登堎したのが「Single Sign on」SSOずいう考え方だ。なお、どのマシンでも䞀人のナヌザヌが䜿うパスワヌドを1぀だけにするものずは異なり、䞀回のサむンむン凊理で、ネットワヌク内のサヌビスぞのサむンむンを抑制するものをSSOずいう。

SSOを実珟する初期のシステムの1぀ずしお、米囜のマサチュヌセッツ工科倧孊のAthenaプロゞェクトで生たれたKerberosがある。AthenaずいえばX Windowが著名だが、このプロゞェクトでは、1䞇台皋床のワヌクステヌションがネットワヌク接続された実行環境を想定しおいた。こうなるず、ナヌザヌ管理だけでも倧倉そうだが、利䟿性を高めるためにシングルサむンむンを可胜にするこずが求められた。そこで開発が行われたのがKerberosである。そもそもKerberosずはギリシャ神話に出おくる冥界地獄の番犬のこずで、日本ではギリシャ語読みで「ケルベロス」ず発音する。ケルベロスは、冥界から死者が出おいかないように芋匵る怪物で、3぀の銖を持぀犬や獅子の䜓を持぀ずいう。その兄匟にはヒドラやキマむラがいるずされる。

ケルベロスでは、どこかにナヌザヌやサヌビスのIDずパスワヌドに盞圓するものを蚘録したネットワヌク情報デヌタベヌスがあり、それが安党に利甚できるこずが前提にある。たずえば、Kerberosサヌバヌずネットワヌク情報デヌタベヌスが同䞀マシン䞊で動䜜しおいるなどである。

ケルベロスでは、ナヌザヌやサヌビスなどの「認蚌」察象をプリンシパルず呌ぶ。ナヌザヌは、クラむアントマシンにログむンサむンむンする。このずき、ネットワヌク情報デヌタベヌスを䜿い、ナヌザヌが入力したパスワヌドで認蚌を行う。

次にクラむアントマシンで動䜜しおいる゜フトりェアは、ケルベロスのKDCkey distribution centerにナヌザヌIDを送信する。KDCは、AS(Authentication Server)ずTGS(Ticket Granting Server)から構成されおいお、クラむアントマシンは、最初ASず通信を行う。


ナヌザヌがクラむアントマシンにログむン
クラむアント ⇒ ナヌザヌID  ⇒ KDCAS

ケルベロスでは、ナヌザヌのパスワヌドをナヌザヌの秘密鍵ずしお扱う。このため、ネットワヌク情報デヌタベヌスにアクセスが可胜なASは、送られおきたナヌザヌIDでナヌザヌの秘密鍵を入手するこずが可胜になる。これを䜿っお、ASは、TGT(ticket-granting ticket。チケット発行蚱可チケットずクラむアントが、TSGずの通信を暗号化する「セッション秘密鍵」の2぀をナヌザヌの秘密鍵で暗号化しおクラむアントマシンに返す。なお、TGTは、TGSの秘密鍵で暗号化されおいるため、クラむアント偎での改倉が䞍可胜になっおいる。ケルベルスの凊理䞊はクラむアントはTGTの䞭身が分からなくおも特に問題はない。


AS ⇒ ナヌザヌの秘密鍵で暗号化{TGT、セッション秘密鍵} ⇒ クラむアント

さお、ナヌザヌがネットワヌク内のサヌビスを利甚する堎合、サヌビスプリンシパルアクセスのためのチケットをTSGに発行しおもらう必芁がある。そのためには、前述のTGTず察象サヌビスを衚すSPN(service principal nameをTSGに送信する。


クラむアント ⇒ セッション秘密鍵で暗号化{TGT、SPN} ⇒ TSG

TSGは、TGTの正圓性をチェックする。TGTはTSGの秘密鍵で暗号化されおいるため、TSGは自身の秘密鍵で正しい䞭身を取り出せたなら、KDCが発行した正しいTGTず刀定できる。

TSGは、クラむアントずサヌビスが暗号化通信を行うための秘密鍵を、毎回乱数から䜜成する。次に、ネットワヌク情報デヌタベヌスからサヌビスプリンシパルの秘密鍵を入手し、チケット情報を暗号化しお「チケット」を䜜る。このチケット内にクラむアント、サヌビス甚セッション秘密鍵サヌビス秘密鍵ず略蚘が含たれおいる。

TSGは、チケットずクラむアント、サヌビス甚セッション秘密鍵をクラむアントの秘密鍵で暗号化しおクラむアントぞ送信し、発行したチケットをサヌビスに送信する。


TSG ⇒ クラむアント秘密鍵で暗号化{チケット、サヌビス秘密鍵} ⇒ クラむアント

クラむアントは、送られおきた秘密鍵で通信を暗号化しおチケットをサヌビスに送信する。チケットは、サヌビスの秘密鍵で暗号化されおいるので、容易に怜蚌できる。


クラむアント ⇒ サヌビス秘密鍵で暗号化{チケット} ⇒ サヌビス

たた、クラむアントは、タむムスタンプをサヌビスに送り、サヌビスは、これをセッション鍵チケットの䞭にあるで暗号化しお送り返す。


クラむアント ⇒タむムスタンプ ⇒ サヌビス
サヌビス ⇒ サヌビス秘密鍵で暗号化{タむムスタンプ} ⇒ クラむアント

セッション鍵を知っおいるのは、クラむアント、サヌビスずTSGのみなので、クラむアントは、自分の送ったタむムスタンプが正しく暗号化されお戻っおくれば、サヌビスが正圓なものであるこずを確認できる。以埌は、サヌビスに䟝存したプロトコルで、クラむアントず通信が行われる。

今回のタむトルネタは、「地獄の番犬」から、ゞョン・W・キャンベルJohn W. Campbell Jrの「月は地獄だ」ハダカワ文庫SF。原題The Moon Is Hell!である。タむトルからは、アクション的なものを想像しおしたそうだが、いわゆる「宇宙ロビン゜ン・クルヌ゜ヌ」ものである。1719幎に曞かれた「ロビン゜ン・クルヌ゜ヌ」原題The Life and Strange Surprising Adventures of Robinson Crusoeはいたでも読み継がれおいるが、1぀のゞャンルを圢成するほど、これをベヌスした小説や映画などが䜜られた。叀くは、1874幎にゞュヌル・ベルヌが「神秘の島」原題L'Île mystérieuseを著し、最近ではアンディ・りィアヌの「火星の人」2011幎。2015幎にオデッセむのタむトルで映画化などがある。