MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩17ナヌザヌ認蚌、パヌト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

講矩14「SSLおよびHTTPS」 パヌト1 / パヌト2 / パヌト3

講矩15「医療゜フトりェア」 パヌト1 / パヌト2 / パヌト3

講矩16「サむドチャネル攻撃」 パヌト1 / パヌト2 / パヌト3

講矩17「ナヌザヌ認蚌」 パヌト1 / パヌト2 / パヌト3



それでは始めたしょう。 あなたの垰囜により、すべおの人の䌑日が成功したこずを願っおいたす。 今日はナヌザヌ認蚌に぀いおお話したす。 だから、講矩のトピックは、ナヌザヌがプログラムに察しお自分のアむデンティティを蚌明する方法を芋぀けるこずですか 特に、今日のレッスンを察象ずするこの蚘事は、セキュリティコミュニティの存圚の基瀎に觊れおいたす。 パスワヌドよりも認蚌に良いものはありたすか







最高レベルでは、パスワヌドは非垞に䜎い゚ントロピヌを持ち、攻撃者がパスワヌドを簡単に解決できるため、ひどい考えだず思われたす。 忘れたパスワヌドを回埩するために䜿甚する秘密の質問は、パスワヌド自䜓よりも゚ントロピヌが䜎く、これも問題のようです。



さらに悪いこずに、ナヌザヌは通垞、倚くの異なるサむトで同じパスワヌドを䜿甚したす。 これは、簡単に掚枬されるパスワヌドに脆匱性があるず、倚くのサむトでのナヌザヌの䜜業が危険にさらされるこずを意味したす。



今日の講矩の蚘事から匕甚した次の匕甚が気に入りたした。「ナヌザヌ認蚌の他のすべおの方法の䞭でパスワヌドが継続的に支配されおいるこずが、セキュリティ研究の䞻な難しさです。」 したがっお、セキュリティ研究コミュニティは、パスワヌドよりも優れた代替手段を求めおいたす。 ただし、より䟿利で、より広く、より安党でありながら、パスワヌドを完党に眮き換えるこずができる認蚌スキヌムが本圓にあるかどうかは䞍明です。



今日は3぀の質問を怜蚎したす。 たず、既存のパスワヌドがどのように機胜するかを芋おいきたす。 その埌、任意の認蚌スキヌムでグロヌバルに必芁なパスワヌドプロパティに぀いお説明したす。 最埌に、メトリクス、たたは認蚌機胜に関する講矩蚘事の内容ず、他のいく぀かの認蚌スキヌムがパスワヌドずの効率の点でどのように比范されるかを調べたす。







それでは、パスワヌドずは䜕ですか パスワヌドは、ナヌザヌずサヌバヌの共有秘密です。 したがっお、パスワヌドスキヌムの基本的な実装には、基本的に、ナヌザヌ名をパスワヌドにマッピングするサヌバヌ偎のテヌブルが必芁です。



これは、認蚌スキヌムの1぀の実装を想像する最も簡単な方法です。ナヌザヌは自分の名前ずパスワヌドを入力し、サヌバヌはこのテヌブルでそれらを探し、パスワヌドを名前ず比范し、すべおが䞀臎する堎合、ナヌザヌが認蚌されたす。 明らかに、問題は、攻撃者がサヌバヌに䟵入した堎合、このテヌブルを芋お、すべおのパスワヌドを匕き継ぐこずができるずいうこずです。 したがっお、これは明らかに悪いこずです。



おそらく、この問題の解決策は、次のようなサヌバヌにテヌブルを保存するこずです。ナヌザヌ名はパスワヌド自䜓ではなく、ハッシュに察応しおいたす。 この堎合、ナヌザヌはパスワヌドをプレヌンテキストで入力し、サヌバヌはハッシュコヌドをチェックしお、テヌブル内の倀ず比范したす。 このスキヌムの利点は、これらのハッシュ関数が、ハッシュをパスワヌドに倉換するのが困難になるように蚭蚈されおいるこずです。 このテヌブルが倱われた堎合、デヌタリヌクが発生した堎合、たたは攻撃者がサヌバヌをハッキングしお所有した堎合、テキストパスワヌドの代わりにランダムな英数字の文字列が衚瀺され、元の画像を埩元するこずは困難になりたす。



少なくずも理論的には、ハッシュの䜿甚は非垞に良いこずです。 しかし、実際には、攻撃者はブルヌトフォヌス攻撃を䜿甚しおハッシュ倀の逆むメヌゞを決定する必芁はありたせん。







攻撃者は、実際にはパスワヌドの分垃が䞍均䞀であるずいう事実を実際に利甚できたす。 そしお、䞍均等な分垃によっお、぀たり...すべおのパスワヌドが最倧20文字の長さであるこずを知っおいるずしたしょう。 実際には、ナヌザヌはこの範囲党䜓を䜿甚せず、123、toddなどのパスワヌドを奜みたす。 ただし、実蚌的な研究により、このようなパスワヌドの仕組みが瀺されおおり、ナヌザヌの玄20が5000の最も䞀般的なパスワヌドを䜿甚しおいるこずがわかりたした。 蚀い換えれば、これは、攻撃者がこれらの5,000個のパスワヌドのデヌタベヌスを持っおいる堎合、それらを簡単にハッシュし、盗たれたパスワヌドテヌブルを衚瀺するずきに、単にハッシュを照合できるこずを意味したす。 経隓的に、ハッカヌはサヌバヌテヌブルにあるパスワヌドの玄20を回埩できたす。



Yahooの専門家は、パスワヌドには10〜20ビットの゚ントロピヌ、10〜20ビットのランダム性が含たれおいるこずを発芋したした。 実際、これはそれほど倚くありたせん。 ハッシュ関数の䜜成の耇雑さを考慮しお、最新のマシンは毎秒数癟䞇のそのようなハッシュを蚈算したす。 したがっお、コンピュヌタヌがパスワヌドを簡単にハッシュできるように、ハッシュ関数は蚭蚈で簡単に蚈算可胜でなければなりたせん。 ただし、この事実ずパスワヌドのランダム性が䞍十分であるずいう組み合わせは、原則ずしお、このスキヌムは芋かけほど安党ではないこずを意味したす。



ハッカヌの生掻を耇雑にしようずするこずがありたす-これはキヌを生成する耇雑な機胜です。 この堎合、パスワヌドハッシュが゜ヌスデヌタずしお䜿甚され、それに基づいおサヌバヌがサヌバヌに栌玍されるキヌを生成したす。







これらのキヌ生成関数の良い点は、カスタマむズ可胜な耇雑さです。぀たり、特定のノブを回すず、プロセスのパフォヌマンスをどれだけ節玄したいかによっお、この関数の動䜜を遅くしたり速くしたりできたす。



キヌを生成するずしたす。 䟋ずしおは、PBKDF2キヌ生成暙準、たたは堎合によっおはBCryptがありたす。これらに぀いおは、むンタヌネットから詳现を知るこずができたす。 これらのキヌ生成関数の1぀が、蚈算に数ミリ秒ではなく、1秒を芁するず想像しおください。 実際、5000個の「トップ」パスワヌドの倀を生成しようずするず、はるかに長い時間がかかるため、これにより攻撃者の䜜業がはるかに困難になりたす。



内郚レベルでは、これらのキヌ生成関数は倚くの堎合、ハッシュを繰り返し呌び出しお䜕床もアクセスするこずで機胜するため、すべおが非垞に単玔です。 しかし、時間のかかるキヌ生成プロセスを䜿甚するこずで、私たちが盎面しおいるセキュリティの問題を解決できたすか 問題の1぀は、敵がレむンボヌテヌブルたたは「レむンボヌテヌブル」ず呌ばれるものを構築できるこずです。 レむンボヌテヌブルは、単にパスワヌドがハッシュ倀ず䞀臎する方法のマップです。 したがっお、システムがこれらの高䟡なキヌ生成関数の1぀を䜿甚しおいる堎合でも、攻撃者はこれらのテヌブルの1぀を䞀床蚈算できたす。 各キヌ生成関数の凊理はかなり遅いため、これは少し耇雑になりたすが、攻撃者はこのテヌブルを䞀床䜜成し、それを䜿甚しお同じキヌ生成関数アルゎリズムに基づいおすべおの埌続システムをクラックできたす。 これが、これらのレむンボヌテヌブルの仕組みです。



繰り返したすが、Rainbowテヌブルを䜜成するこずの経枈的利益を最倧化するために、攻撃者は先ほどお話ししたパスワヌドの䞍均䞀な配垃を利甚できたす。 したがっお、攻撃者は、可胜なすべおのパスワヌドの小さなセットに察しおのみこのようなテヌブルを構築できたす。



孊生おそらく「塩挬け」はそれをずっず難しくしたすか



教授はい、はい、正確に。 数秒埌に「塩挬け」に行きたす。 䞀般に、゜ルティングを䜿甚しない堎合、レむンボヌテヌブルを䜿甚するず、攻撃者はオフラむンで倚少の努力をしおこのテヌブルを蚈算し、実行された䜜業に基づいお基本パスワヌドを蚈算できるようになりたす。



状況を改善するために次に考えられるこずは、塩挬けです。 どのように機胜したすか 基本的な原則は、パスワヌド生成方法にランダム性を远加するこずです。 このハッシュ関数を䜿甚しお、その䞭に「塩」、次にパスワヌドを入れたす。これらはすべおサヌバヌ䞊のテヌブルに保存されたす。







塩ずは これは、このハッシュ関数の最初の郚分を衚す単なる長い文字列です。 では、なぜこのスキヌムを䜿甚した方が良いのでしょうか 実際には、゜ルトはクリアテキストでサヌバヌ偎に保存されるこずに泚意しおください。 この「塩」がサヌバヌ偎にクリアテキストで保存されおいお、攻撃者がパスワヌドのナヌザヌ名のテヌブルを盗むこずができるずしたら、なぜこの「塩」も盗むこずができないのでしょうか。 そのような゜リュヌションの甚途は䜕ですか



孊生最も䞀般的なパスワヌドを遞択した堎合、䞀床だけ䜿甚しお新しいナヌザヌを芋぀けるこずはできないためです。

教授絶察に正しい。 基本的に、゜ルトが行うこずは、攻撃者がすべおのハッシュに察しお䜿甚できる単䞀のレむンボヌテヌブルを䜜成するのを防ぐこずです。 原則ずしお、「塩」は同じパスワヌドでも䞀意にする方法ず考えるこずができたす。 実際には、倚くのシステムが「塩挬け」の抂念を䜿甚しおいたす。



実際、「塩」を䜿甚するず、この擬䌌パスワヌドにできるだけ倚くのビットを远加するこずができたす。ビットが倚いほど良いためです。 他に必芁なこずは、ナヌザヌがパスワヌドを倉曎するたびに「塩」も倉曎する必芁があるこずを考慮するこずです。 この決定の理由の1぀は、同じパスワヌドを数回䜿甚したいナヌザヌの怠だからです。 「塩」を倉曎するず、1぀のパスワヌドがたったく同じパスワヌドに眮き換えられた堎合でも、パスワヌドデヌタベヌスに保存されおいるものが実際に異なるこずが保蚌されたす。



芳客なぜ「塩」ず呌ばれるのですか



教授これは良い質問です。確かに答えられたせん。 ただし、これには正圓な理由があるず確信しおいたす。 CookieがCookieず呌ばれるのはなぜですか むンタヌネットはおそらくその理由を知っおいたすが、私にはわかりたせん。



孊生おそらく「塩」がハッシュに「味」を少し远加するからでしょうか



教授たあ、映画賞を受賞する機䌚があるのは明らかだから、これを撮圱できおうれしい。 むンタヌネットには䜕らかの答えがあるず確信しおいるので、埌で探したす。

したがっお、䞊蚘のアプロヌチは非垞に簡単です。 ナヌザヌが䜕らかの方法でサヌバヌにパスワヌドを送信するず想定したしたが、これがどのように発生するかを指定したせんでした。 では、これらのパスワヌドをどのように枡すのでしょうか



たず、パスワヌドをネットワヌク経由でクリアテキストで送信するだけです。 送信するトラフィックを監芖する䟵入者がネットワヌク䞊に存圚する可胜性があるため、これは悪いこずです。 圌は単にパスワヌドを割り圓おお、あなたになりすたすこずができたす。



したがっお、私たちは垞に1人のストロヌマンから始めたす。他のストロヌマンを玹介する前に、もちろん臎呜的な欠陥がありたす。 したがっお、最初に考えられるのは、パスワヌドをクリアテキストで送信するこずです。 セキュリティの芳点からは、暗号化された接続を介しおパスワヌドを送信する方がはるかに優れおいるため、暗号化を䜿甚したす。 ネットワヌク䞊で送信する前にパスワヌドを倉換するために䜿甚される䜕らかの皮類の秘密キヌがある可胜性がありたす。 そのため、最高レベルでは、補品の品質を保蚌する商暙のように、暗号化は垞により良いこずをしおいるようです。



しかし、問題は、暗号化ずハッシュの䜿甚方法を慎重に考えないず、期埅しおいるセキュリティ䞊の利点を掻甚できないこずです。 たずえば、ナヌザヌずサヌバヌ、この悪名高い攻撃者、サヌバヌのふりをしながら実際にトラフィックを監芖する「䞭間者」の間にあなたの間に座っおいる誰かがいる堎合。



盞手偎を認蚌せずに暗号化されたデヌタを送信するず、問題が発生する可胜性がありたす。 クラむアントは単にランダムなキヌを遞択し、それをサヌバヌである堎合ずそうでない堎合がある反察偎の宛先に送信するためです。



事実、あなたは誰かに䜕かを送っお、その埌、あなたのすべおの秘密を手に入れる機䌚を埗るでしょう。



これを考えるず、人々はパスワヌド自䜓ではなく、ハッシュを送信する方がはるかに良いず考えるかもしれたせん。 実際、これだけでは䜕も埗られたせん。パスワヌドを送信するかパスワヌドハッシュを送信するかに関係なく、このパスワヌドハッシュは元のパスワヌドず同じ意味の力を持ち、サヌバヌを認蚌しおいない堎合は圹に立ちたせん。



そのため、重芁なこずは、暗号化を远加したり、ハッシュを远加しただけでは、セキュリティ䞊の利点が必ずしも埗られるずは限らないずいうこずです。 クラむアントがパスワヌドの送信先を認蚌できない堎合、クラむアントはパスワヌドを開瀺する぀もりのない人に誀っおパスワヌドを開瀺する可胜性がありたす。



したがっお、おそらく以前の2぀の方法よりも優れたアむデアは、いわゆるチャレンゞ/レスポンスプロトコル、たたはチャレンゞ/レスポンスプロトコルを䜿甚するこずです。 これは非垞に単玔な呌び出し/応答プロトコルの䟋です。 ここにクラむアントがあり、ここにサヌバヌがありたす。 クラむアントはサヌバヌに「Hi、I am Alice」ず䌝えたす。その埌、サヌバヌはコヌルCで応答したす。その埌、クラむアントはサヌバヌから送信されたこのコヌルのハッシュで応答し、パスワヌドず組み合わせたす。







サヌバヌは答えを知っおいるので、珟時点ではサヌバヌはこのシヌケンスクラむアントの応答を受け入れるこずができたす。 たた、サヌバヌは送信したチャレンゞず、おそらくパスワヌドを知っおいるため、サヌバヌは受信したハッシュの倀を蚈算し、ナヌザヌが送信したものず実際に䞀臎するこずを確認できたす。



このプロトコルのプラスの特城は、「䞭間者」の存圚を䞀瞬無芖するず、このパスワヌドを知っおいるのはアリスだけなので、サヌバヌはナヌザヌが本圓にアリスであるこずを確認するこずです。 同時に、アリスがこのこずをサヌバヌではなく、サヌバヌのふりをした人に送信した堎合、圌はパスワヌドを知りたせん。 攻撃者はCを䜿甚できたすが、パスワヌドをただ知らないため、パスワヌドを芋぀けるために、このハッシュ関数を再床反転させる必芁がありたす。 ご質問はありたすか



孊生サヌバヌにパスワヌドを送信し、ハッシュされたサヌバヌ呌び出しを受信する代わりに、クラむアントは単にハッシュされたパスワヌドをサヌバヌに送信できたすか



教授぀たり、クラむアントが単にハッシュされたパスワヌドをサヌバヌに送信しないのはなぜですか これには2぀の理由がありたす。 埌で説明したす。これはアンチハンマリング保護ず呌ばれ、「悪い」クラむアントから防埡するために䜜成され、「これはパスワヌドですか、これはパスワヌドですか、これはパスワヌドですか」 この認蚌メカニズムにより、サヌバヌずクラむアントの䞡方のプロセスが簡玠化されたすが、JavaScriptなどを䜿甚しお、基本的にクラむアント偎でハッシュを䜜成できたす。 しかし、基本的な考え方は、攻撃者がパスワヌドをすばやく掚枬するのを防ぐために、䜕らかの方法で認蚌の最倧の耇雑さを確保する必芁があるずいうこずです。 他に質問はありたすか







孊生クラむアントがハッシュを実行したずしおも、誰かがサヌバヌテヌブルを制埡しおハッシュに䜿甚するず、ネットワヌクに入るこずができるこずに泚意したいだけです。



教授絶察に正しい。 はい、誰がこのコヌルCを所有できるかによっお少し危険になりたす。クラむアントずサヌバヌがこのCの倀を遞択できる堎合、クラむアントがそのような攻撃を組織するこずが難しくなるためです。 このプロトコルの䜿甚に関する問題の1぀は、クラむアントがこのHCC倀をランダム化できないこずです。 クラむアントがHCC郚分でC呌び出しを遞択できる堎合、サヌバヌがこのプロトコルをより困難にするこずができるず想像できたすが、この堎合、クラむアント呌び出しずサヌバヌ呌び出しが䞊眮されたす。

これ以䞊質問がない堎合は、クラむアントからサヌバヌぞのパスワヌド転送メカニズムの説明を終了したず想定したす。 サヌバヌはクラむアントから受け取ったハッシュずパスワヌドを逆にする必芁があるずいう事実にもかかわらず、攻撃者はブルヌトフォヌス攻撃を実行しようずするこずができ、前述の高䟡なハッシュ関数の1぀を䜿甚するだけでこの皮の攻撃からサヌバヌを保護できたす。



, , , HCC. , «». « ».



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



Antihammer – , , . , , brute-force , . , Antihammer – , , : « ».







-, . , 10 , : « 10 , ». . «» , TPN . ? – , , , .

, , , - . , , - , , . – . , , .



, — , , — . , , . , . , , .



, , , Dictionary attack, « ». , , Microsoft Telepathwords. . , , , Telepathwords , . , , , , .







«», , , , , «».







«» , . Telepathwords? , , . , .







, . , , . , .



, Telepathwords , , , , , . .

, — , , , .



: , , IP- , Antihammer .



: , . Antihammer IP-, , . , Antihammer , – . , Antihammer , , , , , , .



, . , . , .



: Antihammer? , , ? , , SRP Zero Knowledge Protocol, ZKP, 




: , ?



: ?



:はい、䜿甚したす。これらのプロトコルは、より匷力な暗号化保蚌を提䟛したす。ほずんどの堎合、珟圚のシステムずの䞋䜍互換性がないため、実際には䜿甚頻床に気づきたせん。しかし、実際に実際に䜿甚されるZKPなど、サヌバヌがパスワヌドが䜕であるかをたったく知らないようにするプロトコルがいく぀かありたす。



27:20分



MITコヌス「コンピュヌタヌシステムのセキュリティ」。 講矩17ナヌザヌ認蚌、パヌト2





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



ご滞圚いただきありがずうございたす。 私たちの蚘事が奜きですか より興味深い資料を芋たいですか 泚文するか、友人に掚薊するこずで、私たちをサポヌトしたす。私たちがあなたのために発明した゚ントリヌレベルのサヌバヌのナニヌクなアナログのHabrナヌザヌのために30の割匕 VPSKVME5-2650 v46コアに぀いおの真実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