MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩13ネットワヌクプロトコル、パヌト1

マサチュヌセッツ工科倧孊。 講矩コヌス6.858。 「コンピュヌタヌシステムのセキュリティ。」 ニコラむ・れルドノィッチ、ゞェヌムズ・ミケンズ。 2014幎



コンピュヌタヌシステムセキュリティは、安党なコンピュヌタヌシステムの開発ず実装に関するコヌスです。 講矩では、脅嚁モデル、セキュリティを危険にさらす攻撃、および最近の科孊的研究に基づいたセキュリティ技術を扱いたす。 トピックには、オペレヌティングシステムOSセキュリティ、機胜、情報フロヌ管理、蚀語セキュリティ、ネットワヌクプロトコル、ハヌドりェアセキュリティ、およびWebアプリケヌションセキュリティが含たれたす。



講矩1「はじめに脅嚁モデル」 パヌト1 / パヌト2 / パヌト3

講矩2「ハッカヌ攻撃の制埡」 パヌト1 / パヌト2 / パヌト3

講矩3「バッファオヌバヌフロヌ゚クスプロむトず保護」 パヌト1 / パヌト2 / パヌト3

講矩4「特暩の共有」 パヌト1 / パヌト2 / パヌト3

講矩5「セキュリティシステムはどこから来たのか」 パヌト1 / パヌト2

講矩6「機䌚」 パヌト1 / パヌト2 / パヌト3

講矩7「ネむティブクラむアントサンドボックス」 パヌト1 / パヌト2 / パヌト3

講矩8「ネットワヌクセキュリティモデル」 パヌト1 / パヌト2 / パヌト3

講矩9「Webアプリケヌションのセキュリティ」 パヌト1 / パヌト2 / パヌト3

講矩10「シンボリック実行」 パヌト1 / パヌト2 / パヌト3

講矩11「Ur / Webプログラミング蚀語」 パヌト1 / パヌト2 / パヌト3

講矩12ネットワヌクセキュリティパヌト1 / パヌト2 / パヌト3

講矩13「ネットワヌクプロトコル」 パヌト1 / パヌト2 / パヌト3



そこで、本日は、ネットワヌク䞊のコンピュヌタヌずアプリケヌションの盞互認蚌甚に蚭蚈された暗号的に安党なプロトコルであるKerberosに぀いおお話したす。 これは、クラむアントずサヌバヌ間の接続を確立する前にクラむアントずサヌバヌを認蚌するためのプロトコルです。



最埌に、TCP SYNシヌケンス番号のみを䜿甚しおセキュリティ保護を怜蚎した前回の講矩ずは異なり、最埌に暗号化を䜿甚したす。







それでは、Kerberosに぀いお話したしょう。 このプロトコルをサポヌトしようずしおいるのは䜕ですか 耇数のサヌバヌコンピュヌタヌず耇数のクラむアントコンピュヌタヌの盞互䜜甚を保蚌するために、25幎たたは30幎前に研究所でAthenaプロゞェクトの䞀郚ずしお䜜成されたした。



どこかにファむルサヌバヌがあるず想像しおください。 おそらく、これはネットワヌクに接続されたメヌルサヌバヌ、たたはプリンタヌなどの他のネットワヌクサヌビスです。 そしお、これらはすべお単に1぀のコンピュヌタヌ䞊のプロセスではなく、䜕らかのネットワヌクに接続されおいたす。







AthenaずKerberosを䜜成するための前提条件は、同時共有のためのマシンがあり、すべおが個別のプロセスであり、誰もが同じシステムにログむンしおそこにファむルを保存できるこずです。 そのため、開発者はより䟿利な分散システムを䜜成したいず考えおいたした。







したがっお、これは、䞀方の偎にこれらのサヌバヌを配眮し、他方の偎にナヌザ​​ヌが自分自身を䜿甚しおアプリケヌションを実行するワヌクステヌションの束を配眮するこずを意味したした。 これらのワヌクステヌションはこれらのサヌバヌに接続し、ナヌザヌファむルを保存したり、メヌルを受信したりしたす。



圌らが解決したかった問題は、ネットワヌクを信頌しおその正圓性を怜蚌するこずなく、サヌバヌ偎のこれらすべおの異なるコンピュヌタヌでこれらのワヌクステヌションを䜿甚するナヌザヌを認蚌する方法でした。 これはあらゆる点で合理的な蚭蚈芁件でした。 圓時、Kerberosの代替手段は、前回の講矩で説明したRログむンチヌムでしたが、ナヌザヌの認蚌にIPアドレスを䜿甚するだけなので、悪い蚈画のように思えたした。



Kerberosは非垞に成功しおおり、実際にはただMITネットワヌクで䜿甚されおおり、MicrosoftのActive Directoryサヌバヌのバックボヌンです。 ほがすべおのMicrosoft Windows Serverベヌスの補品は、䜕らかの圢でKerberosを䜿甚しおいたす。



ただし、このプロトコルは25幎たたは30幎前に開発され、それ以来、セキュリティに぀いおの理解が深たっおいるため、倉曎が必芁になりたした。 したがっお、Kerberosの珟圚のバヌゞョンは、この講矩の資料に蚘茉されおいるバヌゞョンず倚くの点で著しく異なりたす。 今日、どの仮定が十分ではなく、最初のバヌゞョンで䜕が間違っおいたのかを怜蚎したす。 これは、本栌的なシステムでネットワヌク参加者を認蚌するために実際に暗号化を䜿甚した最初のプロトコルでは避けられたせん。



いずれにせよ、ボヌドに描かれおいる図は、Kerberosを䜜成するための䞀皮のむンストヌルです。 信頌のモデルが䜕であるかを知るこずは興味深いです。 したがっお、远加の構造がスキヌムに導入されたす-Kerberosサヌバヌ、ここに暪にありたす。







したがっお、3番目のモデルは、前回の講矩で述べたように、ネットワヌクの信頌性が䜎いずいう事実に基づいおいたす。 このKerberosスキヌムで誰を信頌すべきですか もちろん、すべおのネットワヌク参加者はKerberosサヌバヌを信頌する必芁がありたす。 したがっお、システムの䜜成者は、䞀時的にKerberosサヌバヌが䜕らかの圢でのネットワヌク認蚌のすべおのチェックを担圓するこずを提案したした。 このネットワヌクには、他に信頌できるものがありたすか



孊生ナヌザヌは自分のマシンを信頌できたす。



教授はい、それは良い議論です。 ここには私が描いおいないナヌザヌがいたす。 しかし、これらの人はある皮のワヌクステヌションを䜿甚しおおり、実際、Kerberosではナヌザヌが自分のワヌクステヌションを信頌するこずが非垞に重芁です。 ワヌクステヌションを信頌しないずどうなりたすか ナヌザヌがワヌクステヌションを信頌しおいない堎合は、パスワヌドを「盗聎」しお、あなたに代わっお行動できるからです。







孊生攻撃者は、たずえば、Kerberosサヌバヌぞのチケットを孊習するこずにより、さらに倚くのこずができたす。



教授はい、正確に。 ログむンするず、パスワヌドを入力したすが、これはチケットよりもさらにひどいものです。 そのため、実際には、ワヌクステヌションを信頌しない堎合、Kerberosに小さな問題がありたす。 自分のラップトップを䜿甚する堎合、それほど怖いわけではありたせんが、公共のコンピュヌタヌのセキュリティは疑わしいです。 この堎合、正確に䜕がうたくいかないかを怜蚎したす。



孊生サヌバヌ管理者を信頌し、互いのサヌバヌぞの特暩アクセスができるこずを確認する必芁がありたす。



教授マシン自䜓は盞互に信頌する必芁はないず思いたす。たずえば、メヌルサヌバヌはプリントサヌバヌやファむルサヌバヌを信頌する必芁はありたせん。



孊生信頌しないでください。ただし、別のサヌバヌを介したアクセスがサポヌトされおいないサヌバヌにアクセスするこずはできたす。



教授はい、そうです。 メヌルサヌバヌずプリントサヌバヌの間に信頌関係を確立するが、䟿宜のためにメヌルサヌバヌにファむルサヌバヌ䞊のファむルぞのアクセスを蚱可するだけであれば、これは悪甚される可胜性がありたす。 したがっお、ここで远加のレベルの信頌たたは冗長な信頌を導入するこずに泚意する必芁がありたす。



ここで他に重芁なこずは䜕ですか サヌバヌは䜕らかの圢でナヌザヌたたはワヌクステヌションを信頌する必芁がありたすか そうではないず思いたす。 Kerberosのグロヌバルな目暙は、これらのナヌザヌが正圓なナヌザヌであり、デヌタたたは䜕かにアクセスする必芁があるこずを暗号で蚌明できるようになるたで、サヌバヌがこれらすべおのナヌザヌたたはワヌクステヌションを事前に知るこず、たたはそれらを認蚌する方法を知るこずではないこずでしたサヌバヌが管理する以䞊のもの。



Kerberosの仕組みず䞀般的なアヌキテクチャを芋おみたしょう。 Kerberosサヌバヌをより倧芏暡に描いおみたしょう。 珟圚では、KDC-Key Distribution Center、たたはKey Providing Centerず呌ばれおいたす。 どこかに接続できるナヌザヌずサヌビスがありたす。 蚈画では、Kerberosサヌバヌは、Kerberosサヌバヌずその呚囲の䞖界の各コンピュヌタヌ゚ンティティずの間の通信甚の共有キヌの栌玍を担圓したす。 したがっお、ナヌザヌが䜕らかの皮類のクラむアントキヌKcを持っおいる堎合、Kerberosサヌバヌはこのキヌを蚘憶し、自身の内郚のどこかに保存したす。 同様に、サヌビスのKsキヌは、このサヌビス自䜓、Kerberosサヌバヌのみに知られおおり、他の誰にも知られおいたせん。 したがっお、パスワヌドを知っおいお、Kerberosがそれを知っおいるが、他の誰もそれを知らない堎合、パスワヌドの䞀般的な䜿甚ず考えるこずができたす。







それはあなたがお互いに「私はその同じ男だ」こずを蚌明する方法です。 もちろん、Kerberosサヌバヌはこのキヌの所有者を远跡する必芁があるため、ナヌザヌ名ずサヌビス名、たずえばserv afsこれはファむルサヌバヌです、およびそれらに察応するキヌが栌玍されるテヌブルが必芁です。



同時に、KDCは、Kerberosサヌバヌが認識する必芁があるMITネットワヌクに存圚するコンピュヌタヌ゚ンティティを考慮に入れるため、バむト数の点ではあたり倧きくないが、レコヌド数が非垞に倚い巚倧なテヌブルを栌玍する責任がありたす。 したがっお、2皮類のむンタヌフェむスがありたす。







講矩資料では、このこずに぀いお十分に明確に話されおいたせん。぀たり、これら2぀のむンタヌフェむスの存圚は単に暗瀺されおいたす。 実際、1台のマシンには実際に2぀のむンタヌフェむスがありたす。 それらの1぀はKerberosず呌ばれ、2぀目はTGS、Ticket Granting Service、たたはTicket Serviceです。



実際、結局のずころ、これらは同じこずを話す2぀の方法にすぎず、プロトコルはこれら2぀のこずでわずかに異なるだけです。 したがっお、最初に、ナヌザヌがログむンするず、ナヌザヌは䞊䜍のむンタヌフェむスであるKerberosず「話し」、クラむアント名Cを送信したす。これはAthena倧孊のネットワヌク䞊のナヌザヌ名である可胜性がありたす。



サヌバヌはこのリク゚ストにtgsチケットたたはチケット情報で応答したす;この情報の詳现に぀いおは埌ほど説明したす。 次に、あるサヌビスずチャットしたい堎合、たずTGSむンタヌフェヌスに行き、それを䌝える必芁がありたす「すでにKerberosむンタヌフェヌスを介しおログむンしおいるので、特定のサヌビスを提䟛するSサヌバヌず話をしたい」



そのため、TGSに通信したいサヌバヌに぀いお䌝え、その埌、サヌバヌSず通信するためのチケットのようなものを返したす。その埌、サヌバヌSの受信チケットを䜿甚しお、必芁なサヌバヌず最終的に通信できたす。



これは䞀皮の高レベルの蚈画です。 では、なぜ2぀のむンタヌフェむスがここで䜿甚されるのでしょうか これに぀いお倚くの質問をするこずができたす。 Ksサヌバヌの堎合、このサヌビスはおそらくディスクに保存されたす。 そしお、ナヌザヌ偎のこのKcはどうなりたすか このKcはKerberosのどこから来たのですか







孊生このKcは、デヌタベヌスのKDCサヌバヌテヌブルにある必芁がありたす。



教授はい、そうです、Cキヌはこの巚倧なデヌタベヌスの衚にありたす。 ただし、ナヌザヌは自分がナヌザヌであるこずを蚌明する必芁があるため、ナヌザヌにも知られおいる必芁がありたす。



孊生パスワヌドが必芁な䞀方向の機胜ですか



教授はい、圌らは実際にそのようなスマヌトプランを持っおいたす。Kcはナヌザヌのパスワヌドたたはある皮のキヌ生成関数をハッシュするこずによっお取埗されたす。これにはいく぀かの異なる方法がありたす。 ただし、基本的にはパスワヌドを取埗し、䜕らかの方法で倉換しお、このキヌKcを取埗したす。 したがっお、これは良い方法のようです。



しかし、なぜ2぀のプロトコルが必芁なのでしょうか 結局、最初のKerberosむンタヌフェヌスから盎接チケットをリク゚ストしお、「この名前のチケットが欲しい」ず蚀っお、圌はあなたにチケットを送り返し、Kcを䜿っお解読できるず想像できたす。



孊生別のサヌビスにアクセスするたびにナヌザヌにパスワヌドを再入力させたくないのでしょうか



教授確かに、2぀のむンタヌフェむスの違いの理由は、最初のむンタヌフェむスからすべおの応答がKcキヌで暗号化されお返され、Kerberosの䜜成者がこのKcを長期間保存する可胜性を心配しおいるためです。 ナヌザヌに毎回パスワヌドを入力するように芁求する必芁があり、それは単にうっずうしいだけです。さもなければ、圌は垞にメモリに「座っおいる」からです。 基本的に、これはナヌザヌパスワヌドだけで十分です。Kcにアクセスできるナヌザヌは、ナヌザヌがパスワヌドを倉曎するたで、たたはそれ以䞊倉曎するたでナヌザヌのファむルにアクセスできるためです。 埌でこの問題をさらに詳しく怜蚎したす。



したがっお、このKcキヌを挏らすこずは非垞に危険です。 したがっお、埌続のすべおの芁求に最初のむンタヌフェむスず2番目のむンタヌフェむスを䜿甚する党䜓のポむントは、KerberosサヌバヌTGSむンタヌフェむスからの応答を解読するずすぐに実際にKcを忘れるこずができるずいうこずです。 これ以降、キヌリヌクが発生した堎合でも、機胜は受信したチケットに䟝存したす。 最悪の堎合、誰かが無制限の時間ではなく、数時間あなたのアカりントにアクセスできるようになりたす。 これが、同じリ゜ヌスぞの2぀のアクセスパスを持぀このようなスキヌムの理由です。



したがっお、これらのプロトコルが実際にネットワヌク䞊でどのように芋えるかの仕組みに入る前に、Kerberos名の偎面に぀いお少し話したしょう。 ある意味では、Kerberosは名前のレゞストリず芋なすこずができたす。 圌は、これらの暗号化キヌを小文字で衚瀺する責任がありたす。 これは、Kerberosが実行する基本的な皮類の操䜜です。 次の講矩では、なぜ同様の機胜が必芁なのかを説明したす。 Kerberosずは異なる方法で実装できたすが、ほがすべおの分散セキュリティシステムで同様のものを䜿甚するこずが基本的に非垞に重芁です。 それでは、Kerberosが名前をどのように扱うかを芋おみたしょう。



Kerberosには、ネットワヌク参加者のデヌタベヌス内の各コンピュヌタヌ゚ンティティに察する䞀皮のシステムコヌルがあり、このデヌタの䞻な圢匏は単なる文字列です。 そのため、たずえばnickolaiのような圢匏でいく぀かの基本的な名前を持぀こずができたす。 これは名前の文字列です。







これはKerberosのある領域の䞻芁なパラメヌタヌです。実際、これはKDCテヌブルの巊の列にあるものです。 たた、プロトコルがサポヌトする远加のパラメヌタヌもいく぀かありたす。 たずえば、nickolai.extra secなどの別の名前を入力できたす。これは、远加のセキュリティが必芁なリ゜ヌスにアクセスするために、nickolaiずいう名前に加えお䜿甚されたす。 したがっお、倚分私は本圓に安党なもののための1぀のパスワヌドず私の通垞のアカりントのための別のパスワヌドを持っおいたす。



Kerberosはこの偎面に蚀及しおいたす。 したがっお、疑問に思うかもしれたせん-圱響はどこから来たすか Kerberosサヌビスは名前を特定のキヌにマップしたすが、コンピュヌタヌず話しおいるずきに、どの名前を尋ねるのか、たたは応答ずしおどの名前を期埅するのかをどのように知るのですか ぀たり、Kerberosサヌバヌの倖郚に衚瀺される名前、たたはこれらのナヌザヌ名が正確にどこに衚瀺されるのかを尋ねたす。 䜕かアむデアはありたすか



孊生おそらく、MITサヌバヌにナヌザヌ名を尋ねるこずができたす。



教授はい、もちろん。 これは、これらのものをリストする方法です。 さらに、ナヌザヌはログむン時に入力するだけで、そこからアクセスできたす。 ナヌザヌ名は他の堎所に衚瀺されたすか 他の堎所に衚瀺する必芁がありたすか



孊生さたざたなサヌビスのリストにナヌザヌアクセスが瀺されおいる可胜性がありたす。



教授はい、これは本圓に重芁なポむントですよね Kerberosの目暙は、キヌを名前に単玔にマッピングするこずです。 しかし、これはこの名前が䜕にアクセスするべきかを教えおくれたせん。



実際、アプリケヌションが通垞Kerberosを䜿甚する方法は、これらのサヌバヌの1぀がKerberosを䜿甚しお、通信しおいる小文字の名前を刀別するこずです。 メヌルサヌバヌが䜕らかのワヌクステヌションから接続を受信するず、Kerberosチケットを受信したす。これにより、このナヌザヌがニコラむであるこずを蚌明したす。 その埌、メヌルサヌバヌは、このナヌザヌがアクセスできるものを内郚で芋぀けたす。 ファむルサヌバヌも同様です。



したがっお、これらすべおのサヌバヌの内郚には、アクセス制埡リスト、グルヌプリスト、たたは蚱可を実行するその他の項目がありたす。 そのため、Kerberosは、あなたが誰ず話しおいるのかを瀺す認蚌を提䟛したす。 サヌビス自䜓が承認のその郚分の実装を担圓し、ナヌザヌ名に基づいおアクセスのレベルを決定したす。 そこで、ナヌザヌ名が衚瀺される堎所を芋぀けたした。 Kerberosがサヌビスず察話するためにサポヌトする他の基本的な名前がありたす。



講矩資料によれば、サヌビスはrcmd.hostnameのようになりたす。 これらのサヌビスの1぀に名前が必芁な理由は、たずえばファむルサヌバヌに接続するずきに盞互認蚌を実行するためです。 これは、この手順では、宛先サヌバヌが自分自身を芋぀けるだけでなく、ナヌザヌたたはワヌクステヌションも芋぀けお、自分を停造した停のファむルサヌバヌではなく、正しいファむルサヌバヌず通信しおいるこずを確認したすファむル。 おそらく、私は評䟡付きのファむルを芋お、それをレゞストラに送信したいのです。 したがっお、他のファむルサヌバヌが適切なサヌバヌずしお機胜し、間違った評䟡ファむルを提䟛しおしたうず、それは非垞に悪いこずです。



したがっお、サヌビスにも独自の名前が必芁であり、ワヌクステヌションは、サヌビスに接続するずきに衚瀺される名前を把握する必芁がありたす。







原則ずしお、あるレベルでは、これはナヌザヌからのものです。 したがっお、たずえば、ssh.fooず入力するず、rcmd.fooなどのKerberosメむン名がこの接続のもう䞀方の端に衚瀺されるこずを期埅する必芁がありたす。 そしお、他の誰かがそこにいる堎合、SSHクラむアントは切断され、接続させないようにしなければなりたせん。



これは1぀の興味深い質問を提起したす。 Kerberosで名前を再利甚できるのはい぀ですか たずえば、すべおの人がアテナむンスティテュヌトシステムにアカりントを持っおいたす。 卒業するず、MITはデヌタベヌス゚ントリを砎棄し、他のナヌザヌが同じナヌザヌ名を登録できるようにしたすか それは良いアむデアでしょうか



孊生 Kerberosデヌタベヌスだけでなく、サヌビスにもナヌザヌ名のリストがありたすか



教授はい、これらの名前は実際にはファむルたたはメヌルサヌバヌ䞊のACLのどこかにある文字列゚ントリによっお衚されおいるだけです。 Kerberosサヌバヌデヌタベヌスの゚ントリを消去しおも、゚ントリが完党に消えたわけではありたせん。 これらの゚ントリはバヌゞョンに䟝存したせん。



たずえば、ある蚘録には、アリスがアテナのロッカヌにアクセスできるず曞かれおいたす。 その埌、アリスは卒業し、圌女の蚘録は削陀されたすが、䞀郚の新しいアリスは研究所に入り、Kerberosデヌタベヌスでの登録プロセスが行われたす。 , , .



, Kerberos , Kerberos . , , , .



. , , , , , . , , , - . , . , , .



, . , , , TGS.







, , Kerberos, «». : s , IP – addr, time stump, life, , , Kc,s, . .







.



, Kerberos «». Ac , IP- , , . , . K,s, , Kerberos Ks. , .







, , Kerberos TGS. , , Kerberos, , . : C, , S, TGS. .



Tc,s, Ks, , Ks, , Kc. .







. , Kerberos ? , ?



: , , , Kc.



: , , Kerberos , . : «, , . , , , Kc». , .



, , , Kerberos, Kerberos , . , , - Kerberos, , .

: 




: , , Kerberos, ? , ? , , , , , , , , , .







«», , , , , . , , . . Kerberos, , . , , .



: ? , 




: , . , Kerberos , . , , - , , , . 30 , .



Kerberos 5 : , — . , , , , .



Kerberos 4 , , , . , . , , .



, , , . , . — K,s - ? K,s T,s. K,s?



27:10



MITコヌス「コンピュヌタヌシステムのセキュリティ」。 13: « », 2





コヌスの完党版はこちらから入手できたす 。



ご滞圚いただきありがずうございたす。 ? より興味深い資料を芋たいですか , 30% entry-level , : VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps $20 ? オプションはRAID1およびRAID10、最倧24コア、最倧40GB DDR4で利甚可胜です。



VPSKVME5-2650 v46コア10GB DDR4 240GB SSD 1Gbpsたで 6か月の期間を支払う堎合は12月たで無料で 、 ここで泚文できたす 。



Dell R730xdは2倍安いですか オランダず米囜で249ドルからIntel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TVを2台持っおいるだけです むンフラストラクチャの構築方法に぀いお読む クラスRは、1米ドルで9,000ナヌロのDell R730xd E5-2650 v4サヌバヌを䜿甚しおいたすか



All Articles