OpenSSLベヌスの蚌明機関

私がシステム管理者ずしお働いおいたずき、私はモスクワの数十の支店、むントラネット、およびメヌルにVPNを実装する必芁がありたした。 同時に、システム党䜓を考え出し、その展開を1人で敎理する必芁がありたした。 予算は1侇5千ドルで、4幎前でした。しばらくの間、私は正盎に手頃な䟡栌の゜フトりェアを芋぀けようずしたしたが、急流で䜕かを芋぀けようずしたした-それは空です。 結果はOpenSSLずOpenVPNです。 この入門テキストでは、OpenSSLに぀いおお話したいず思いたす。



最終的に展開されたした

どうやら、システムは今たでに死にたした...解雇埌、ルヌト蚌明曞の有効期限぀たり、発売日から2幎たでの期間はわかりたせん。



以䞋は、䞀般ナヌザヌよりも䌁業の技術者にずっお興味深いものです。 条件組織は囜営ではなく、お金を節玄するずいう目暙がありたす。研究開発で6぀のれロず金額を亀換せずに「モノ」を詊しおみたいずいう芁望がありたす。



読者は、VPNこの堎合は仮想プラむベヌトネットワヌクずSSLSecure Sockets Layerの抂念ず、 x.509圢匏の電子蚌明曞であるずいう事実に粟通しおいるこずを前提ずしおいたす。



CA


結果のシステムでは、蚌明曞を曎新、倱効、認蚌、コヌド、ファむル、メヌルの暗号化に䜿甚し、䟵害された堎合は、CA党䜓を殺すこずなくブランチを倱効させるこずができたす。 これを行うには、OpenSSL構成ファむルを慎重に怜蚎し、蚌明曞倱効リストCRLずCAの正しい階局を生成する手順を䜜成する必芁がありたした。 その堎合にのみ、遞択した実装で蚌明曞の䜿甚が蚱可されたした。 そしお、「 はい、私はただこの蚌明曞を信頌しおいたすが、期限切れで誀っお発行されおおり、これをたったく意図しおいたせん 」ずいうボタンをクリックする自動プロセスではありたせん 。



電子デゞタル眲名蚌明曞の問題ず䜿甚は、技術的なだけでなく組織的なプロセスでもあるこずを芚えおおくこずが重芁です。これがないず、この皮の保護を䜿甚するメリットはなくなりたす。 たずえば、すべおの蚌明曞のリリヌス埌、CAを備えたディスクは、 USBである堎合は取り倖したたは切断し、安党な堎所に眮くこずをお勧めしたす。 そしお雑誌を始めおください。



サむト


むントラネットサむト 最初の階局-Apache、その背埌にあるもの-重芁ではありたせん では、倚芁玠認蚌が実装されたした。 通垞、認蚌における最初の唯䞀の芁玠は、ナヌザヌ名ずパスワヌド、たたはナヌザヌ名ずPINコヌドの知識です。 クラむアントのみがサヌバヌに衚瀺され、サヌバヌはそれが圌であるこずを蚌明する必芁はありたせん。したがっお、ログむン/パスワヌドの盗甚および/たたはサヌバヌの眮換の可胜性がありたす。 私の堎合、これは受け入れられなかったため、蚌明曞を持぀必芁性がログむン/パスワヌドの知識に远加されたした。 CAからの蚌明曞は、パスワヌド付きのPKCS12PFX圢匏でアップロヌドされたした。



次のようなものがサヌバヌ構成に远加されたした



<Location /location1>

SSLOptions +FakeBasicAuth +StdEnvVars

SSLVerifyClient require

SSLVerifyDepth 2

SSLRequire %{SSL_CLIENT_I_DN_CN} in {"My LTD OpenSSL CA"}







぀たり My LTD OpenSSL CAによっお蚌明曞が発行されたすべおの人を蚱可したす 実際には、もちろん名前は異なりたす 



名前でアクセスを制限するこずもできたす。



<Location /location2>

SSLOptions +FakeBasicAuth +StdEnvVars

SSLVerifyClient require

SSLVerifyDepth 2

SSLRequire %{SSL_CLIENT_S_DN_CN} in {"Ivan A Ivanov", \

"Petr B Petrov"}







次の構成を䜿甚しお、サヌバヌログに曞き蟌たれたす。



CustomLog ../logs/ssl/ssl_request.log \

"\"%t\",\"%h\",\"%{SSL_CLIENT_S_DN_CN}x\",\"%r\",\"%s\"" env=!dontlogit








蚌明曞の配垃


キヌずずもに受信した蚌明曞は、非垞に䞀般的なケヌスであるナヌザヌのコンピュヌタヌにむンストヌルされたした レゞストリにあり、PINコヌドで暗号化されおいたす が、このコンピュヌタヌでのみ蚌明曞を䜿甚でき、オペレヌティングシステムを再むンストヌルする堎合は、もちろん、蚌明曞を再床受信する必芁がありたす秘密鍵はコンピュヌタヌ䞊で生成され、CAを蚪れたずきにディスケットで枡されるこずはありたせん。これは実際には秘密鍵の所有者になるためです 単玔な可胜性があるため CAにも「電子眲名」を提䟛したす。たた、特定のレベルのスロベネスで-CA内のすべおの管理者が互いに眮き換えたす。 ただし、CAには、蚌明曞の「埩元」のためのサヌビスを提䟛する機䌚がありたす。



なぜなら 私自身はCAでしたが、技術専門家による「メモリ」のための蚌明曞のコピヌやそのような「サヌビス」から免れたしたそうではありたせんでした。



蚌明曞は、ハヌドりェアストレヌゞデバむスAladdin USBキヌで珟堎の埓業員に発行されたした。 この目的のために提䟛されたおよび提䟛しおいる銀行およびCAは、フロッピヌディスクたたは最新のオプションであるフラッシュドラむブを䜿甚したす。 これはより䟿利ですが、別の危険に぀ながりたす-耇補を䜜成する機胜です。 理想的なケヌスでは、キヌず蚌明曞はスマヌトカヌドに保存する必芁がありたす。スマヌトカヌドは、ピンコヌドでさらに保護され、独自の暗号プロセッサを搭茉しおいたす。乱数発生噚は、キヌを取埗する堎合、朜圚的なクラッカヌの可胜性を倧幅に枛らすず考えられおいたす。 さらに、スマヌトカヌドは実質的にコピヌできたせん。

Aladdin eToken USBキヌは、そのようなカヌドであり、USBスティックの圢匏にすぎたせん。

認蚌の堎合、手順に必芁な少量のデヌタのみが暗号化されたすが、必芁に応じお、クラむアントずサヌバヌ間のすべおのトラフィックも暗号化できたす。 倚数のクラむアントを備えたサヌバヌで暗号化に蚌明曞を䜿甚する必芁がある堎合、サヌバヌにもっず深刻なもの、たずえば暗号カヌド、無料のIBM HTTP Server 実際には同じApache 、それらの䞀郚を眮く必芁がありたすサポヌトしたす。

もちろん、普通のプラスチックカヌドのように芋えるスマヌトカヌドの䜿甚を気にする人はいたせんが、そのようなカヌドを䜿甚する必芁があるすべおの職堎には、カヌドリヌダヌが必芁です。



CAから蚌明曞を受け取り、「トヌクン」に配眮し、PINコヌドでトヌクンを閉じた埌、2芁玠の双方向認蚌を実行する機䌚が埗られたす。 最初の芁玠-トヌクンがあり、2番目の芁玠-それからPINコヌドを知っおいたす。 蚌明曞を取埗するず、サヌバヌが実際に本人であるこずを確認できたす。この堎合、bobik.ruずbobik.ruを混同するこずはできたせん。2番目のバヌゞョンのロシア語「o」は名前の䞍䞀臎 -異なる文字 。



蚌明曞倱効リスト


取り消された蚌明曞CRLのリストがサヌバヌの蚭定に登録および定期的に曎新されたずいう事実により、次のようなナヌザヌのサむトぞのアクセスをすぐに䞀時停止できたした。 USBキヌを玛倱したたたは玛倱した疑いがある堎合、たたは埓業員を解雇した堎合。



倚くの囜内CAはCRLの堎所を瀺したすが、リスト自䜓をアップロヌドたたは曎新するこずを「忘れ」たす。たずえば、同じOutlookが倱効したリストに察しお蚌明曞を怜蚌できず、譊告を発行した堎合、電話コンサルタントはこの譊告を無芖するよう提案する堎合がありたす。 クラむアントが別のサヌバヌである堎合、蚌明曞を怜蚌できない堎合は、単に切断されたす。



必芁に応じお、同じ秘密キヌで蚌明曞が再発行されたため、以前に暗号化されたデヌタにアクセスできなくなりたした。



OpenSSLのデバッグ


䞀般的に、誰もが蚌明曞は良いこずだず理解しおおり、蚌明曞を正しく発行する必芁がありたす。 かなり長い間䟵入し、数癟ペヌゞの「ドキュメント」を調べた埌 実際、IntuitのPKIず暗号化に関するチュヌトリアルでした 、圓時のむンタヌネットで利甚可胜なopenSSL構成の䟋は、「 遊び回る 」目的にのみ適しおいたした。しばらくの間、私が発行した蚌明曞がOutlook、Thunderbird、Firefoxで機胜しないずいう事実に盎面しおいたした。 IEは最も雑食性であるこずが刀明したした。



物事をもう少し真剣にするには、少したっすぐにする必芁がありたす。

い぀ものように- 準備ができた蚭定 。



蚌明曞発行の自動化


自動化の次のステップは、蚌明曞のリストを衚瀺するむンタヌフェヌスを䜜成するこずです。 リストには明確な圢匏のindex.txtずいう名前があり、HTAでむンタヌフェむスを䜜成したした。 デバッグを簡玠化するために、HTAは個々のプロシヌゞャのバッチファむルを呌び出したした。 必芁なセットは次のずおりです。

  1. 環境倉数を蚭定するための別のファむル
  2. 任意の蚌明曞の発行-最小限の蚭定、䞀連の質問、質問、たずえばパヌトナヌ向けの蚌明曞の発行、CAぞのサむンむン
  3. CAルヌト蚌明曞の発行-ハンドルを䜿甚しおツリヌが構築される堎合、1回たたは数回呌び出されたす
  4. サヌバヌ蚌明曞の発行は理解でき、opensslは-extensions server_certパラメヌタヌで呌び出され、[server_cert]セクションの蚭定には必芁なパラメヌタヌが含たれおいる必芁がありたす。別の違いは、PFXにパッケヌゞ化されず、キヌのアンパックバヌゞョンが䜜成されるこずです。
  5. ナヌザヌ蚌明曞の問題
  6. 蚌明曞の倱効は興味深いプロセスです。発行された蚌明曞のアヌカむブ自分で行う必芁がありたすから、必芁な蚌明曞を名前で、シリアル番号で抜出し、それからすでに倱効しおいたす
  7. ナヌザヌ蚌明曞の曎新-最初に、叀い蚌明曞が取り消されバッチファむルNo. 6、次に叀いキヌの新しい蚌明曞が䜜成されたすバッチファむルNo. 5
  8. 倱効した蚌明曞のリストを曎新するのは簡単なコマンドですが、私の堎合はPerlでスクリプトを実行し、リストを䜜成しおLotus Dominoディレクトリ アドレス垳ず呌ばれるこずもある に配眮したした。 CRLを配垃するほが暙準的な方法です
おそらくすべおのツヌルです。 いい玹介がありたす。



All Articles