クライアント証明書の825日
無線LAN用にクライアント証明書を発行して、認証しようと思っているのですが、メーカよりiOSは今後825日までしか、利用できないと言われたのですが、本当でしょうか。クライアント証明書は、署名チェックしかしないと思うのですが、無線apに接続する際に、無線ap側でクライアント証明書要求しますが、そのやり取りは、無線apと端末間の通信に依存すると思うのですが
iPhone 6s Plus, iOS 12
無線LAN用にクライアント証明書を発行して、認証しようと思っているのですが、メーカよりiOSは今後825日までしか、利用できないと言われたのですが、本当でしょうか。クライアント証明書は、署名チェックしかしないと思うのですが、無線apに接続する際に、無線ap側でクライアント証明書要求しますが、そのやり取りは、無線apと端末間の通信に依存すると思うのですが
iPhone 6s Plus, iOS 12
はにさま、皆さま
ご返信ありがとうございます
まず、アップルで公開されている要件は、クライアント証明書の要件ではなく、tlsサーバのサーバ証明書の要件である点です
関連しそうな証明書は
・eap-tlsで認証サーバから受け取るサーバ証明書
(証明書を更新すればいいんじゃないのか)
・クライアント証明書(該当しないと思うけど)
・ルート/中間証明書(これも該当しないと思うけど、発行機関を27ヶ月ごとに切り替えるのか?)
なのかなと
有効期間の件は、クライアント証明書の利用用途(無線lan,vpn,webアプリ認証、デバイスの更新周期、利用者)に合わせて、有効期間を決めるのでしょうね
ま、いずれにしても、メーカーの人に真意を確認してみます
はにさま、ご返信ありがとうございます
そうですね、証明書更新大変ですね
さて、再度メーカーに確認したところ、クライアント証明書には影響はなく、発言は誤りであることを説明されました。
最後に、はにさまに、一点ご教授願いたいのですが、「サーバ証明書を更新した場合、クライアント証明書も全て変更する必要がある」の内容は、どちらを意図されていますでしょうか
A.ルート証明書もしくは中間証明書の失効
B.eap-tlsでのやり取りで、認証サーバから受け取るサーバ証明書
> 証明書発行機関各社のサイトを見ると、サーバ証明書の3年発行に関して、今後発行しない
3年以上有効のものは発行しないというだけでは?
証明書発行機関が発行する証明書って、通常でも1-2年とか短いものが多いのでは?
また3年以上の有効期間のものは発行しないといっても、例えば、2年間有効の証明書を2回以上発行するという契約は可能(交渉次第)なのでは?証明書はクラッキングなどの事故があれば即失効になり、次の証明書を発行します。証明機関はクラッキングなどの事故に未然に対応するという意味でも通常あまり長期間の証明書は発行しないと思います。証明書って、保険と違って、利用者(利用社?、利用組織?)側の管理がずさんならクラッキングのような事故は起こりやすいですから、証明書発行機関側はそのリスクを考えてると思います。証明書を再発行となればそれに対応する人員も必要になり、それなりに経費もかかります。
発行機関のルート証明書は自分たちで厳格に管理できるので長期間のものを利用してるようですけど。
門外漢の、的外れな疑問(感想)になるかもしれませんが。
はにさんが書かれているように、証明書を825日以内に再発行すれば良いだけの話ではないのですか?
再発行ができない理由が何かあるのですか?
そのメーカーというのは何のメーカーですか? 無線LANアクセスポイントのメーカー? それとも
証明書の発行機関?
クライアント証明書を使うとすれば、クライアント(iOS)側もサーバー(アクセスポイント)の証明書を
確認すると思うのですが、こちらも当然825日の制限がかかると思いますが、こちらの更新が825日以内
ではできないということがあるかもしれません。ファームウエアの変更が必要とか。
> サーバ証明書とクライアント証明書は同一caから発行されている必要がある
そんな必要はないですよ。サーバ証明書があれば、あとはネットワーク管理者がクライアント証明書を必要なだけ発行すれば良いのですが。
証明書って、要するに自分の情報と公開鍵を上位の証明書で署名したもの(上位の証明書発行機関の秘密鍵で暗号化したもの)ですから。クライアントは上位の証明書発行機関の公開鍵を使ってこの証明書からサーバ情報とサーバの公開鍵をゲットできます。クライアントは上位の証明書発行機関の公開鍵を使って得られた情報ですから、そのサーバ情報を正しいものと確認できます。
この証明書関係のことは、メッセージの暗号化、公開鍵、秘密鍵のアウトラインでも勉強して自分でオレオレ証明書でも作ってみればよく分かるようになります。オレオレ証明書そのものは本番では使えません(オレオレ証明書では信頼できる証明書とみなされない)が、大元のcaを証明書発行機関のものに置き換えるだけの話です。macosにもこれら証明書関係のものを作ったり署名したりするためのソフト、opensslに相当するliblesslが入ってます。アップルはライセンス条件が気に入らないとかの理由で、high sierraからopensslをmacosに同梱することをやめたようです。mojave(10.14.6)のターミナルでman opensslとすれば長い長い説明が出てきます。でもopenssl versionとするとLibereSSL 2.6.5と出てきます。キーチェーンはそれをもっと簡単に使えるようにしたものです。もっともキーチェーンでオレオレ証明書を作れるかどうかは知りません。でも、ターミナルでopensslを直接操作すれば問題なく作れます。linuxにも標準で用意されてます。windowsにはデフォールトでは入ってないそうですが、インストールキットは用意されてるようです。証明書関係のことは、現代のコンピュータ間の暗号化通信の核になってる手法ですから勉強しておく価値はあります。
みきみきの実さん、こんにちは
えーっと、件のページ情報を見ると証明書の期限が825日としていますが、これは825日経つとiOSデバイスが使えなくなるという意味ではではなく、825日の期限内に次の証明書を出せよ。ってことじゃないですか?一般的なクライアント証明書でも、期限が切られていることが少なくないので、別に問題になるほどではないと思います。
《書き込みにコメント付け隊》
いとうみきでした
はにさま
返信ありがとうございます
ちょっと、説明不足でした。
Apple社から以下の情報が公開されています
iOS 13 および macOS 10.15 における信頼済み証明書の要件
https://support.apple.com/ja-jp/HT210176
証明書発行機関各社のサイトを見ると、サーバ証明書の3年発行に関して、今後発行しないようなお知らせが出ています
クライアント証明書についてもiosが受け付けなくなるので、という説明でした
なので、3年とかで発行できるけど、ios13は825日を過ぎると、クライアント証明書は利用できなくなり、無線apに接続できない?そうです。tlsサーバのサーバ証明書に関する要件なので、クライアント証明書の交換の時の暗号化のことなのか、それとも、クライアント証明書をiosがピックアップする際に、証明書発行機関に対して、照合プロセスがあり、そのときに暗号化通信になるのか、どこのことを言っているのか、きいたのですが、無視でした。で、確認して見るかと
普通は証明書の期限が来る前に管理者が各クライアントに新しい証明書を発行するのでは?
メーカが825日までしか利用できないというのなら、そのメーカの製品を使うのはやめれば良いのでは?
どのメーカも同じとはとても思えません。
その真意と言われても。
もともとクライアント証明書は誰が用意したのですか?
もし、サーバ証明書発行機関が用意したのなら、クライアント証明書も変更することになると思います。もし、ネットワーク管理者(サーバ管理者)が管理してるサーバの秘密鍵を利用して自身で用意したのなら、変更せずに済ますことは可能かもしれません。
何か機器を導入したら最初に用意された証明書は機器を変えない限り変更できないというふうに思っておられるような書きぶりですが、証明書はいつでも変更できます。どんな機器でも証明書の変更はできるようになってます。証明書の期限が切れる前に新しい証明書に更新すれば良いだけです。このとき同じ証明書発行機関に更新してもらっても良いし、全く別の発行機関に変えようが条件などを考慮して決めれば良いだけの話です。
もちろんサーバの証明書を変更すればクライアントの証明書も全部変更する必要があります。これは面倒なので(ネットワーク管理者が新しいサーバ証明書の元で全てのクライアントの証明書を発行する必要がある。証明書発行機関が全てのクライアント証明書を発行してくれたとしても、それを各クライアントに配布・交換してもらうのは管理者の仕事)、eap-tlsではクライアント証明書がいらない方式(PEAPとかTTLS)がよく利用されてると思います。
> 「サーバ証明書を更新した場合
これは直接自分が関係しているネットワークのサーバ(無線LANの認証サーバ(ラジウスサーバ?)とかメールサーバとか)の(証明書発行機関の中間証明書で署名された)証明書を交換した場合のことを想定して書いてます。クライアントがアクセスした場合、クライアントは証明書発行機関の公開鍵を利用して自分がアクセスしてるサーバが本物であることを確認できますので、そのサーバの公開鍵を使ってメッセージを暗号化しサーバとやりとりします。クライアント側も証明書を利用する場合には、サーバ側がクライアントへのメッセージを送る場合には、クライアント側の公開鍵でメッセージを暗号化します。
サーバの証明書を交換すれば、そのクライアントの証明書も変える必要があります。 eap-tlsで、peapとかttlsとかだと、クライアント側用の証明書は不要ですので、サーバ側の証明書を変えるだけで済みます(クライアント側には、最初に接続した際に自動で公開鍵が渡され、前の公開鍵は失効する)。
はにさま
ご返信ありがとうございます
サーバ証明書とクライアント証明書は同一caから発行されている必要があるのですかね
radiusサーバを設定したことがないので、わからないのですが、ルート証明書や中間証明書のインポートして、その証明書発行機関のクライアント証明書に対して、許可するような設定するのかと想像するのですが、まっ、メーカさんに聞いてみます。
はにさま、ご返信ありがとうございます
何か論点がずれてきているので、ちょっと巻き戻しますね。はにさまの「もちろんサーバの証明書を変更すればクライアントの証明書も全部変更する必要があります。」に引っかかったので、その真意を聞いています。
署名や暗号化の件は、承知の上で聞いてますので、特に細かい説明は不要です。
はにさま、ご返信ありがとうございます
どちらもありですかね
ま、それぞれのメーカーに聞いてみます
クライアント証明書の825日