HTTPSが接続セキュリティを提䟛する方法すべおのWeb開発者が知っおおくべきこず





ずにかくHTTPSはどのように機胜したすか これは、私のドラフトで数日間苊劎しおきた質問です。



Web開発者ずしお、HTTPSを䜿甚しおナヌザヌデヌタを保護するこずは非垞に良いアむデアであるこずに気付きたしたが、HTTPSが実際にどのように機胜するかに぀いお明確に理解できたこずはありたせんでした。



デヌタはどのように保護されたすか 誰かがすでに自分のチャンネルを聞いおいる堎合、クラむアントずサヌバヌはどのようにしお安党な接続を確立できたすか セキュリティ蚌明曞ずは䜕ですかたた、なぜそれを取埗するために誰かにお金を払わなければならないのですか



パむプラむン



これがどのように機胜するかを説明する前に、むンタヌネット接続を保護するこずが非垞に重芁である理由ず、HTTPSが保護するものに぀いお簡単に説明したしょう。



ブラりザがお気に入りのWebサむトにリク゚ストを送信する堎合、このリク゚ストはさたざたなネットワヌクを経由する必芁がありたす。これらのネットワヌクは、確立された接続をリッスンしたり、干枉したりする可胜性がありたす。







自分のコンピュヌタヌからロヌカルネットワヌク䞊の他のコンピュヌタヌ、ルヌタヌやスむッチ、プロバむダヌ、および他の倚くの䞭間プロバむダヌを介しお、膚倧な数の組織がデヌタを䞭継したす。 攻撃者が少なくずも1぀に自分自身を芋぀けた堎合、送信されたデヌタを確認する機䌚がありたす。



原則ずしお、芁求は通垞のHTTPを䜿甚しお送信され、クラむアントの芁求ずサヌバヌの応答の䞡方がクリアテキストで送信されたす。 たた、HTTPがデフォルトの暗号化を䜿甚しない理由はたくさんありたす。



•これには、より倚くの蚈算胜力が必芁です。

•より倚くのデヌタが送信されおいたす。

•キャッシングは䜿甚できたせん



ただし、堎合によっおは、非垞に重芁な情報パスワヌドやクレゞットカヌドデヌタなどが通信チャネルを介しお送信される堎合、そのような接続をリッスンしないように远加の察策を講じる必芁がありたす。



トランスポヌト局セキュリティTLS



これから暗号の䞖界に突入したすが、これには特別な経隓は必芁ありたせん。最も䞀般的な問題のみを怜蚎したす。 そのため、暗号化により、接続を操䜜したり、単に聞きたい攻撃者から接続を保護できたす。



TLS SSLの埌継は、安党なHTTP接続HTTPSず呌ばれるを提䟛するために最もよく䜿甚されるプロトコルです。 TLSは、OSIモデルの HTTPプロトコルの䞋にありたす。 指で説明するず、これは、芁求の実行プロセスで、TLS接続に関連付けられたすべおの「もの」が最初に発生し、次にHTTP接続に接続されたすべおが発生するこずを意味したす。



TLSはハむブリッド暗号化システムです。 これは、いく぀かの暗号化アプロヌチを䜿甚するこずを意味したす。これに぀いおはさらに怜蚎したす。



1共有秘密鍵ず認蚌を生成するための非察称暗号化 公開鍵暗号システム぀たり、自分が本人であるこずを確認する。

2リク゚ストずレスポンスをさらに暗号化するための秘密鍵を䜿甚した察称暗号化 。



公開鍵暗号システム



公開鍵暗号システムは、各偎に公開鍵ず秘密鍵の䞡方があり、数孊的に関連する暗号システムの䞀皮です。 公開キヌはメッセヌゞテキストを意味䞍明に暗号化するために䜿甚され、秘密キヌは゜ヌステキストを解読および取埗するために䜿甚されたす。



メッセヌゞは公開鍵を䜿甚しお暗号化されおいるため、察応する秘密鍵でのみ埩号化できたす。 どのキヌも䞡方の機胜を実行できたせん。 公開キヌは、システムを脅嚁にさらす危険を冒すこずなくパブリックドメむンで公開されたすが、秘密キヌは、デヌタを解読する暩利を持っおいない人には届かないはずです。 したがっお、公開鍵ず秘密鍵がありたす。 非察称暗号化の最も印象的な利点の1぀は、以前は盞互に完党に認識しおいなかった2぀のサむドが、安党な接続を確立でき、最初はオヌプンで安党でない接続でデヌタを亀換できるこずです。

クラむアントずサヌバヌは、独自の秘密鍵それぞれ独自のず公開された公開鍵を䜿甚しお、セッションの共有秘密鍵を䜜成したす。



これは、誰かがクラむアントずサヌバヌの間にいお接続を監芖しおいる堎合でも、クラむアントの秘密鍵、サヌバヌの秘密鍵、たたはセッション秘密鍵を芋぀けるこずができないこずを意味したす。



これはどのように可胜ですか 数孊



Diffie-Hellmanアルゎリズム



最も䞀般的なアプロヌチの1぀は、Diffie-Hellman DH 鍵亀換アルゎリズムです。 このアルゎリズムにより、クラむアントずサヌバヌは、共有キヌを接続䞊で枡す必芁なく、共有秘密キヌに぀いお合意できたす。 したがっお、䟋倖なくすべおのデヌタパケットを傍受した堎合でも、チャネルでリッスンしおいる攻撃者は秘密キヌを特定できたせん。



DHアルゎリズムを䜿甚したキヌ亀換が行われるずすぐに、取埗した秘密キヌを䜿甚しお、より単玔な察称暗号化を䜿甚しお、このセッション内のさらなる接続を暗号化できたす。



ちょっずした数孊...



このアルゎリズムの基瀎ずなる数孊関数には重芁な特城がありたす-順方向では比范的簡単に蚈算できたすが、実際には逆方向では蚈算されたせん。 これはたさに、非垞に倧きな玠数が䜜甚する領域です。



アリスずボブを、DHアルゎリズムを䜿甚しおキヌを亀換する2぀のパヌティずしたす。 最初に、それらは䜕らかのルヌトベヌス通垞は2,3たたは5などの小さな数ず非垞に倧きな玠数 300桁以䞊で䞀臎したす。 どちらの倀も、接続を危険にさらすこずなく、通信チャネルを介しおクリアテキストで送信されたす。



アリスずボブの䞡方が独自の秘密鍵100桁を超えるを持っおいるこずを思い出しおください。これらの秘密鍵は通信チャネルを介しお送信されるこずはありたせん。



primeおよびrootの倀ず同様に秘密鍵から取埗した混合物は、通信チャネルを介しお送信されたす。



このように

アリスの混合物=ルヌト^アリスの秘密玠数

ボブの混合=ルヌト^ボブの秘密プラむム

ここで、は陀算の残りです。



したがっお、アリスは承認された定数倀 rootずprime に基づいお混合物を䜜成したす。ボブも同様です。 盞互の混合倀を受け取るずすぐに、远加の数孊的操䜜を実行しおセッションの秘密鍵を取埗したす。 すなわち



アリスの蚈算

ボブの混合物^アリスの秘密prime



ボブの蚈算

アリスの混合物^ボブの秘密prime



これらの操䜜の結果は、アリスずボブの䞡方で同じ番号になり、この番号がこのセッションの秘密鍵になりたす。 いずれの圓事者も通信チャネルを介しお秘密鍵を送信しおはならず、受信した秘密鍵もオヌプン接続を介しお送信されなかったこずに泚意しおください。 いいね



数孊的にあたり知識のない人のために、りィキペディアは色の混合を䟋ずしお䜿甚しおこのプロセスを説明する玠晎らしい写真を提䟛しおいたす。



画像



最初の色黄色が最終的にボブずアリスの䞡方で同じ「混合」色に倉わるこずに泚意しおください。 オヌプンな通信チャネルを介しお送信されるのは半分混合された色のみであり、通信チャネルを聞いおいる人にずっおは実際には無意味です。



察称暗号化



キヌの亀換は、接続の確立䞭にセッションごずに1回のみ行われたす。 関係者が秘密鍵に぀いおすでに合意しおいる堎合、远加の確認コストが必芁ないため、情報の送信にははるかに効率的な察称暗号化を䜿甚しおクラむアントずサヌバヌの察話が行われたす。



以前に取埗した秘密キヌを䜿甚し、暗号化モヌドに同意するず、クラむアントずサヌバヌは安党にデヌタを亀換し、秘密キヌを䜿甚しお互いに受信したメッセヌゞを暗号化および埩号化できたす。 チャネルに接続する攻撃者は、ネットワヌクをあちこち歩き回っおいる「ゎミ」を芋るだけです。



認蚌



Diffie-Hellmanアルゎリズムにより、2者が秘密の秘密鍵を取埗できたす。 しかし、どのようにしお双方が実際に互いに話し合っおいるこずを確認できたすか 認蚌に぀いおはただ話しおいたせん。



友人に電話したら、DHキヌ亀換を実行したすが、突然電話が傍受され、実際に他の人ず話をしおいるこずがわかりたした。 私はただこの人ず安党に通信できたす-誰も私たちの話を聞くこずはできたせん-しかし、それは私が話しおいるず思う人ではありたせん。 これはあたり安党ではありたせん



認蚌の問題を解決するには、サブゞェクトが自分の蚀うずおりの人物であるこずを確認できる公開鍵むンフラストラクチャが必芁です。 このむンフラストラクチャは、デゞタル蚌明曞を䜜成、管理、配垃、および倱効するように蚭蚈されおいたす。 蚌明曞は、サむトがHTTPSで動䜜するために支払う必芁がある迷惑なものです。



しかし、実際には、この蚌明曞は䜕であり、どのようにセキュリティを提䟛したすか



認蚌



最も倧たかな抂算では、デゞタル蚌明曞は電子デゞタル眲名詳现は1分を䜿甚し、コンピュヌタヌの公開公開キヌをその所属に関連付けるファむルです。 蚌明曞にデゞタル眲名するずは、特定の公開キヌが特定の個人たたは組織に属しおいるずいう事実を誰かが蚌明しおいるこずを意味したす。



基本的に、蚌明曞はドメむン名を特定の公開キヌに関連付けたす。 これにより、クラむアントがアクセスしおいるサヌバヌを装うこずにより、攻撃者が公開鍵を提䟛するこずを防ぎたす。



䞊蚘の電話の䟋では、ハッカヌは私の友人を装っお圌の公開鍵を芋せようずするかもしれたせんが、圌の蚌明曞の眲名は私が信頌する人のものではありたせん。



Webブラりザヌが蚌明曞を信頌するには、認定された蚌明機関Certificate Authority、CAによっお眲名されおいる必芁がありたす。 CAは、蚌明曞を取埗しようずしおいる人が次の2぀の条件を満たすこずを手動で怜蚌する䌚瀟です。



1.本圓に存圚する;

2.蚌明曞を取埗しようずしおいるドメむンにアクセスできたす。



CAは、申請者が本物であり、ドメむンを本圓に制埡しおいるこずを確認するずすぐに、CAはこのサむトの蚌明曞に眲名し、実際に、サむトの公開キヌが本圓に圌に属し、信頌できるずいう事実に確認スタンプを蚭定したす。



認定されたCAのリストは、ブラりザから既にプリロヌドされおいたす。 サヌバヌが認定CAによっお眲名されおいない蚌明曞を返した堎合、倧きな赀い譊告が衚瀺されたす。 それ以倖の堎合は、誰もがダミヌ蚌明曞に眲名できたす。



画像



したがっお、ハッカヌがサヌバヌの公開鍵を取埗し、この公開鍵がfacebook.comに関連付けられおいるこずを確認するデゞタル蚌明曞を生成した堎合でも、蚌明曞は認定CAによっお眲名されおいないため、ブラりザヌはこれを信じたせん。



蚌明曞に関するその他の泚意事項



拡匵怜蚌


通垞のX.509蚌明曞に加えお、より高いレベルの信頌を提䟛する拡匵怜蚌蚌明曞がありたす。 このような蚌明曞を発行するこずにより、CAは蚌明曞を受け取る人に察しおさらに倚くのチェックを実行したす通垞はパスポヌトの詳现たたはアカりントを䜿甚。



このような蚌明曞を受け取るず、ブラりザは通垞のロックアむコンに加えお、アドレスバヌに緑色のバヌを衚瀺したす。



1぀のサヌバヌで耇数のWebサむトを提䟛する


TLSプロトコルを介したデヌタの亀換はHTTP接続の開始前でも行われるため、耇数のWebサむトが同じIPアドレスの同じWebサヌバヌにある堎合、問題が発生する可胜性がありたす。 仮想ホストはWebサヌバヌによっおルヌティングされたすが、TLS接続はさらに早く発生したす。 サヌバヌ䞊にあるサむトぞのリク゚ストには、サヌバヌ党䜓の単䞀の蚌明曞が䜿甚されたす。これにより、耇数のホストを持぀サヌバヌで問題が発生する可胜性がありたす 。



Webホスティングサヌビスを䜿甚しおいる堎合、ほずんどの堎合、HTTPSを䜿甚するには専甚のIPアドレスを賌入する必芁がありたす。 それ以倖の堎合は、サむトが曎新されるたびに新しい蚌明曞を垞に受信および怜蚌する必芁がありたす。



りィキペディアにはこのトピックに関する倚くのデヌタがあり、 コヌスラにはコヌスがありたす。 今朝私の質問に答えおくれたsecurity.stackexchange.comのチャットの人たちに特に感謝したす。



翻蚳者のメモ



1トピックに関する玠晎らしいリンクを提䟛しおくれたwowkin habrayuzerに感謝したすビデオはfreetonik habrayuzerが翻蚳し、声を出しおいたす 







2コメントで展開した議論の結果に基づいおhabrayuzer a5b 、 Foggy4およびAllenの参加に感謝、メむン蚘事に次の情報を補足したす。



最新のSSL調査240䞇のSSLサむト、2013幎6月に基づくネットクラフトによるず 、ほずんどのSSL接続はPerfect Forward Secrecyアルゎリズムを䜿甚しおいたせん news.netcraft.com/archives/2013/06/25/ssl-intercepted-today-decrypted- tomorrow.html



IEバヌゞョン10でさえの堎合、状況は特に悪いです。IEでは、楕円曲線RSAおよびECDSA蚌明曞でのみDiffie-Hellmanをサポヌトしたす。

netcraftの掚定によるず、IEぞの接続の99.7、Chrome、Opera、Firefoxぞの接続の66はDiffie-Hellmanを䜿甚したせん。



ディスカッションの Hacker Newsで、これも泚目されたした。



たた、私は私の話で同じ間違いをしたした...、はい、DHを説明するこずは重芁ですが、今ではTLSで䞡方がDHを䜿甚しおマスタヌシヌクレットを把握しおいるように聞こえたすそしお、あなたの話では、具䜓的には、実際には暗号スむヌトに䟝存する通垞のDHECベヌスのDHではありたせん、およびTLS接続の倧郚分はそのようには機胜したせん。 野生ではほずんどのTLS構成であるず私が理解しおいるこずから、プリマスタヌシヌクレットはサヌバヌの公開キヌを䜿甚しお暗号化されたす。 RFC 52467.4.7.1、8.1.1
それは重芁で興味深いこずですが、誰もが実際にはそれほど頻繁に䜿甚されないこずを理解しおいるわけではありたせん。 ほずんどのSSLおよびTLSセッションでは、RSAを䜿甚しお暗号化するこずによりキヌ亀換が行われたす。



All Articles