自分のお店を開く時の心構えとは? >>

制限されたネットワーク内でプライベート認証局(CA)を作成して、SSLを導入しようと考えています。
そこで疑問に思っていることがあるのですが、「中間CA」がよく利用されていますが、「中間CA」の必要性とは一体何なのでしょうか。


階層を設けることで「なりすまし」の防止対策、セキュリティ向上を狙っているのでしょうか。
認証局が階層設定しているから必要とかではなく、なぜそのような階層構造を行っているのか理由を知りたいです。


ベリサインなどのパブリック認証局では3階層、4階層(クロス)となっており、中間CA証明書が必要になっています。それはCAの階層構造が3階層、4階層となっており、中間CAが存在するため中間CA証明書が必要なのは理解できます。中間CAを実装しなくても、「CA証明書⇔サーバ証明書」と2階層でもSSL接続は可能ですよね。


また、パブリック認証局、プライベート認証局ともに「中間CA」の利用概念は同じなのでしょうか。
パブリック認証局は外部の不特定多数の人向けなので、意図的にそうゆう構造を用いているとか
の理由などは存在するのでしょうか。


ご存じの方がおられましたら、教えていただきたいです。
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

確かにサーバ証明書を発行するだけでしたら二階層で十分です。


規模が小さければそれで問題ありません。
しかし、大規模に証明書を発行するにはイロイロと不都合があります。

中間CAで代表的なのはWindows PKIです。
基本的にルートCAはオフラインで構築されるので、ルートCAから発行される証明書は常に人手を介します。
しかしそれでは、Active Directoryのメリットが減ってしまいます。
なので、ルートCAは中間CAの証明書を作成するのみとし、中間CAがAD管理下のアカウントやサーバに対して証明書を発行する体系をとります。
この場合、ルートCAはオフラインのままですが、中間CAからはオンラインで自動的に証明書を発行することができ、かつ、ある程度の安全性を保ったままにする事ができます。

パブリック認証局の場合、組織が異なることが多いです。
親会社がルートCAを持ち、子会社が中間CAでサーバ証明書を発行することもありますし、まるっきり別会社がパブリック認証局から中間CA用の証明書を発行してもらって、中間CAを自社運営する例もあります。
一般的には知られていませんが、ベリサインやセコムなどでも中間CA用の証明書発行サービスをやっています。

いずれにしても、階層が深くなると認証の判断が複雑になります。
信頼チェーンの構築、ルートCAのCRLと中間CAのCRL、それぞれの有効期限、Pathや拡張領域の整合性などをすべて検証しなければならないからです。
例えば、ルートCA → 中間CA1 → 中間CA2 → サーバ証明書、となっているとします。
中間CA1のCRLが何らかの理由で取得できなければ、ルートCAや中間CA2のCRLに問題が無かったとしても、サーバ証明書は無効であると判断しなければなりません。
※ 中間CA1のCRLに中間CA2が載っていれば、中間CA2とそこから発行されたすべての証明書が無効になるからです。

検証の間違いが起きることを考慮して、それでも必要性がある場合に限って、中間CAを構築します。
認証局の運用規定により色々と理由はあるでしょうが、安易に中間CAにすることはありません。

以上、ご参考までに。
    • good
    • 1
この回答へのお礼

>kadusaya2さん

ご回答、ありがとうございます。
ご返事が遅くなり、申し訳ござません。

私の質問は間違ったニュアンスで表現をしていたのに、とても分かりやすいご説明をありがとうございます。
だいたいの仕組みを理解できた気がします。

理解すればするほど、問題が多々浮上してき構成や運用に悩みます。
引き続き調査していきます。

また理解に苦しんだ時は質問するかもしれませんが、今後ともよろしくお願いいたします。

お礼日時:2012/02/06 10:21

>と2階層でもSSL接続は可能ですよね



そもそも、その辺の発想が違っていると思いますよ。

>、「中間CA」の必要性とは一体何なのでしょうか。

これとか、

>中間CA証明書が必要になっています

これとか、PKIとか、認証局には、無効リストの取得しかアクセスに行きません。証明書にも全階層を含めるか、そうでないか選択できますし、もともと鍵で復号化するには、正当であるかどうかチェックするだけです。それが信頼できるかどうか、ルート証明が使われるだけです。

PKIの歴史や、おいたち、なりたちを学習すれば、なぜ階層があるかもわかるはずです。まあ実際の官庁や、役所の所在や部署をみれば、おのずとわかるはずなんだが・・・。車の免許とか国家(警察庁???)が発行するわけだが、警察庁とか国土交通省とかもらに行った方は存在しないはずです。
    • good
    • 1
この回答へのお礼

>lupin-333333さん

ご回答、ありがとうございます。

>証明書にも全階層を含めるか、そうでないか選択できますし、

これは知りませんでした。


以下のサイトではルート認証局を外部からの攻撃から防ぐために中間認証局が設けられているを記載されていました。その点に関してはセキュリティ面もやはり含まれているんですよね。
http://www.jcert.co.jp/support/faq_detail06.html

色々まだ理解しきれていない面はありますが、もう少し調べてみます。

お礼日時:2012/02/03 14:47

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

QNTP の TCPポートは?

NTPは123/UDPでようは足りると思うのですが、
WELL KNOWN PORTとかいろいろな資料に「123/TCP」ポートが割当たってます。
ntpd,ntpdate等でNTPを使う場合、実際には123/TCPは使われているのでしょうか?

Aベストアンサー

RFC1305では「ntpには123/udpを割り当てる」となっていますが、RFC1700では「123 ntp」となっており、「123/udp」と明示されているわけではありません。
よって、「123/tcp ntp」が間違っている(または使えない)という明確な根拠にはなりません。

「現状では『123/tcp ntp』を実装するための定義が存在しない」程度に考えた方が良いと思います。

ただ、将来的にRFC2030のSNTPが(IPv6対応などの点で)主流になる可能性があるので、「123/tcp ntp」は定義されない可能性もあります。

QIP-VPNとインターネットVPNの違い

就職活動をしている大学生です。
セキュリティとネットワークに興味があり、そこから自分が何をやりたいのか突き詰めて行った結果VPNを提供している企業が浮かび上がって来ました、業界研究をしている際に疑問が出てきました。

IP-VPNとインターネットVPNの違いの違いがいまいちわかりません。

インターネットVPNはインターネット上を介したVPN、IPは事業者のネットワーク内のVPNって解釈でよいのですかね??

そうなるとプライベート回線を引くのとIP-VPNの違いは???

提供している事業者の違い、VPNに関すること、VPNの今後&求められるもの等、教えてください。

よろしくお願いします。

Aベストアンサー

こんちは。hirasakuです。

簡単に言うと
インターネットVPNはその名の通り、インターネット網を利用した拠点間をあたかもLANのように使うためのWAN構築です。
基本的にVPN接続するためのルータの設定(トンネリングや暗号化・認証など)はユーザーが設定し、運用管理もユーザーが行います。
インターネット網なので通信に対する保障がありませんので、VPNに通すデータを検討しなければならない場合もあります。
一番安価に構築できランニングコストが抑えられます。

IP-VPNは通信事業者の閉域IPネットワーク網を通信経路として用い、自社専用ネットワークであるかのようなWANを構築できるサービスのことです。
通信事業者側で用意している網は品質を保証してあり、ユーザー側はIP-VPN網に接続するだけで、セキュアな通信ができ、インターネットVPN同様LANのように使えます。

プライベート回線とは専用線やフレームリレー網などのことを言っているのですかね?
専用線は料金が距離に比例し、拠点間の距離が離れるほどコストが大きくなり、セルリレー/フレームリレーは、フルメッシュ型接続ですけど、柔軟なネットワーク構築が難しいという問題があります。専用線・フレームリレーなどは回線帯域の割にはコストが高いので、インターネットVPNやIP-VPNでコストを安くしてネットワークを構築するようになってきてます。

インターネットVPNやIP-VPNはプロトコルにIPを使わなくてはならないので、データはIPに乗せる必要があります。
そこで、広域イーサネットというサービスを各通信事業者が行っています。広域イーサネットはプロトコルをIP以外(IPXやSNAなど)を通すことができ、またイーサなので、WAN側に接続するのに極端な話、スイッチでつなげられますので、今までのようにルータの設定などいらなくなります。(VLAN構成にするならスイッチの設定が必要ですけけど)また、QoSなどデータの優先制御や帯域制御などもできますので、VoIPなどにも使えますね。
ということで、簡単に拠点間のLAN構築が可能になります。

提供しているサービスの違いは、どこも似たり寄ったりかなって思いますけど。
サービス提供エリアや、構築にあったオプションサービスなどで選べばいいのでは。

こんちは。hirasakuです。

簡単に言うと
インターネットVPNはその名の通り、インターネット網を利用した拠点間をあたかもLANのように使うためのWAN構築です。
基本的にVPN接続するためのルータの設定(トンネリングや暗号化・認証など)はユーザーが設定し、運用管理もユーザーが行います。
インターネット網なので通信に対する保障がありませんので、VPNに通すデータを検討しなければならない場合もあります。
一番安価に構築できランニングコストが抑えられます。

IP-VPNは通信事業者の閉域IPネットワ...続きを読む

QNTPで同期が始まらない

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntpq -pの結果は下記となります。

remote refid st t when poll reach delay offset jitter
==============================================================================
133.100.9.2 .INIT. 16 u - 64 0 0.000 0.000 4000.00
130.69.251.23 .GPS. 1 u 27 64 377 8.015 -99970. 17262.6

同期ができれば「remote」列に「*」が表示されると思っています。
何か設定が足りないでしょうか?。
尚、「/vat/log/message」をtailしてますが特にエラーは無さそうです。

よろしくお願いします。

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntp...続きを読む

Aベストアンサー

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハードウエアclockを合わせます。
http://www.linux.or.jp/JM/html/util-linux/man8/hwclock.8.html

○ntpdの動作
ntpによる時刻調整は、調整幅が通常128mSと小さいので、1時間は様子をましょう。
2時間程度経過しても、時刻修正の兆候が見られない場合ハードウェアの不良も考えられます。

時刻調整の兆候としては、
・logファイルに 一時間毎に調整したメッセージが書かれる。
Jan 7 21:57:40 ntpd[91145]: offset 0.000994 sec freq -190.802 ppm error 0.000076 poll 8
・ntpq -p の出力の最初の桁に"*,+"が付く。また、reach が377になる。
% ntpq -np
remote refid st t when poll reach delay offset jitter
+192.168.0.102 GPS_NMEA(0) 2 u 3 32 377 0.926 -0.330 0.023
*192.168.0.192 GPS_NMEA(1) 2 u 10 32 377 0.747 -0.336 0.023
192.168.0.9 PPS(1) 2 u 3 32 377 0.757 6.559 0.161


○その他
・PC起動時には、システムクロックを計測してその後の動作の基準にしていますが、
CMOSバッテリ不足やハードウェアに何らかの異常があるととんでもない時刻を示すことがあります。(要修理です)
・BIOSの時計も起動時の初期時刻として使われてしまうので、ある程度合わせておいた方がいいです。

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハ...続きを読む

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。

QopenSSLで秘密鍵ファイルエラー

はじめまして。

Solaris10で、OpenSSLとApacheを導入し、認証ファイル作成で
エラーになりました。
認証局ファイル作成(CA)
cd /usr/local/ssl/misc/CA.sh -newca

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
unknown option -selfsign
usage: ca args

-verbose - Talk alot while doing things
-config file - A config file
-name arg - The particular CA definition to use
-gencrl - Generate a new CRL
-crldays days - Days is when the next CRL is due
-crlhours hours - Hours is when the next CRL is due
-startdate YYMMDDHHMMSSZ - certificate validity notBefore
-enddate YYMMDDHHMMSSZ - certificate validity notAfter (overrides -days)
-days arg - number of days to certify the certificate for
-md arg - md to use, one of md2, md5, sha or sha1
-policy arg - The CA 'policy' to support
-keyfile arg - private key file
-keyform arg - private key file format (PEM or ENGINE)
-key arg - key to decode the private key if it is encrypted
-cert file - The CA certificate
-in file - The input PEM encoded certificate request(s)
-out file - Where to put the output file(s)
-outdir dir - Where to put output certificates
-infiles .... - The last argument, requests to process
-spkac file - File contains DN and signed public key and challenge
-ss_cert file - File contains a self signed cert to sign
-preserveDN - Don't re-order the DN
-noemailDN - Don't add the EMAIL field into certificate' subject
-batch - Don't ask questions
-msie_hack - msie modifications to handle all those universal strings
-revoke file - Revoke a certificate (given in file)
-subj arg - Use arg instead of request's subject
-extensions .. - Extension section (override value in config file)
-extfile file - Configuration file with X509v3 extentions to add
-crlexts .. - CRL extension section (override value in config file)
-engine e - use engine e, possibly a hardware device.
-status serial - Shows certificate status given the serial number
-updatedb - Updates db for expired certificates

もしかして、上記でエラーですか?

次に、証明書署名要求ファイル作成(CSR)
cd /usr/local/ssl/misc/CA.sh -newreq

openssl req -in newreq.pem -text
→確認したらOKでした。

openssl rsa -in newreq.pem -text
確認した所、エラーになります。
unable to load Private Key
18943:error:0906D06C:PEM routines:PEM_read_bio:no start line:/on10/build-nd/F10U8B6/usr/src/common/openssl/crypto/pem/pem_lib.c:637:Expecting: ANY PRIVATE KEY

Googleで、調べているんですが、よくわかりません。
ご存知の方がいたら、教えてください。
よろしくお願いします。

はじめまして。

Solaris10で、OpenSSLとApacheを導入し、認証ファイル作成で
エラーになりました。
認証局ファイル作成(CA)
cd /usr/local/ssl/misc/CA.sh -newca

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
unknown option -selfsign
usage: ca args

-verbose - Talk alot while doing things
-config file - A config file
-name arg - The particular CA defin...続きを読む

Aベストアンサー

> 少し混乱してきまして、確認させてください。
> 私は、以下の方法で、認証ファイル作成しています。

確認させてもらいたいのですが、質問当初の問題「openSSLで秘密鍵ファイルエラー」は解決したということでよいのでしょうか?

また、何をどう混乱しているのか簡潔に書いて下さい。
だらだらと質問者が行った方法を書くだけでは、回答者の負担が増してしまい、有効な回答が得られにくくなってしまいますよ。

ざっと質問者が行った方法を確認したが、CSR について認識違いがあるように思います。

openssl req -in newreq.pem -text

上記コマンドを実行した出力をみても分かるとおり、CSR に含まれるのは公開鍵です。

newreq.pem(CSR) : 公開鍵
newcert.pem(CRT) : 公開鍵 + CA の署名
newkey.pem: key pair(公開鍵 + 秘密鍵)

CSR は、CSR に対して CA に署名してもらい CRT を発行してもらうためだけにあるので、CRT を発行してもらった後は不要になります。
必要なのは公開鍵が含まれている CA が発行した CRT(newcert.pem)と対応する秘密鍵が含まれている newkey.pem です。

以上のことを踏まえると、以下の CRL に対する処理は明らかに不要ですよね。

> cp /usr/local/ssl/misc/newreq.pem /usr/local/apache2/conf/ssl

> SSLCertificateKeyFile /usr/local/apache2/conf/ss/newreq.pem

一方、newkey.pem については何も処理していませんが...

落ち着いてよく考えてみましょう。

> 少し混乱してきまして、確認させてください。
> 私は、以下の方法で、認証ファイル作成しています。

確認させてもらいたいのですが、質問当初の問題「openSSLで秘密鍵ファイルエラー」は解決したということでよいのでしょうか?

また、何をどう混乱しているのか簡潔に書いて下さい。
だらだらと質問者が行った方法を書くだけでは、回答者の負担が増してしまい、有効な回答が得られにくくなってしまいますよ。

ざっと質問者が行った方法を確認したが、CSR について認識違いがあるように思います。

o...続きを読む

Qレッドハットのバージョン確認方法

自分のサーバで使用しているREDHATのバージョン確認はどうすればいいのでしょうか?

more /etc/issue
とやっても英文しか出てきませんでした。

uname -all
でもカーネルのバージョンは出るのですが、REDHATのバージョンは出ませんでした。

Aベストアンサー

> more /etc/issue
> とやっても英文しか出てきませんでした。

その英文にはRedHatのバージョンは書いてなかったのですか?
書いていなかったとしたら、管理者により編集されている可能性
がありますね。

cat /etc/redhat-release

ではいかがでしょう?
やっぱり英文ですけど。

rpm -q redhat-release

でもいいかも

Qエクセルで重複しているデータの抽出のしかたを教えてください。

エクセルで重複しているデータを抽出したいのですが・・。なにぶん初心者なもので簡単な方法があればよいのですが・・。
A列に日付 B列に企業名このデータが300件ほどあります。

 Å列      B列
1月 1日    AAAA社
1月 4日   BBBB社
1月 8日   CCCC社
2月 1日   BBBB社
2月20日    DDDD社
3月 2日   AAAA社

と、あるとしてB列の企業名が重複しているものを抽出したいのですが・・・。この場合 AAAA社とBBBB社ですが。
これを簡単に抽出する方法はないでしょうか?
教えてください お願いいたします。

Aベストアンサー

企業名がセルB2からセルB300まで入力されていると仮定します。
セルC2に IF(COUNTIF($B$2:B2,B2)>1,"*","") を入力し、セルC300までコピーして下さい。すると重複したデータの二番目以降に "*" のマークが付きます。
(注) 数式を下のセルまでコピーするため、COUNTIF($B$2 は絶対参照にして下さい。

Qバッチ処理でファイルの中身を変数に入れるやり方

あるファイルの中には1行の文字列があります。
このファイルをバッチで読み取り、変数に設定したいです。

例:
test.txt
abcacbacbacbacbacbacbacbacb

test,bat
set DATA=[test.txtを読み込んだ値]

よろしくお願い致します。

Aベストアンサー

これですね。

参考URL:http://www.upken.jp/kb/dqvgHNRUxwFDkmtoqEwfXHUjDrevNv.html


人気Q&Aランキング

おすすめ情報