2011-01-05 12 views
1

接続時にSSL証明書のプロパティを確認してパフォーマンスを向上させることができるかどうか尋ねられました。SSLプロパティを確認するASIHTTPRequest

PayPalウェブサイトから添付画像を参照してください。

enter image description here

は、これらの値を読み込む方法はありますか?ブラウザでネットをブラウズして取得できる場合は、NSURLConnection、NSData、または(最も重要な)ASIHTTPRequestを使用してサーバーに接続して読み取ることができますか?

私が取り組んでいる証明書は有効ですが、自己署名/信頼できません。この種の検証はアプリケーションのセキュリティを向上させますか?

答えて

0

パフォーマンスを向上させることを目標にしている場合は、SSLハンドシェイクが完了する前に証明書を確認したいと考えています。接続のために対称鍵を交渉することは、接続を確立する計算上高価な部分です。

SSL接続が確立された後、証明書の内容を確認できます。パフォーマンスの観点からのトリックは、ハンドシェイクが完了する前に接続をバウンスできる状態になっています。

私は2つの考えを持っています: 1 - あなたのサーバーで使用できるSSLライブラリと、あなたがすることができる制約を見てください。通常、SSLライブラリはあなたをできるようになる:

  • 制限を信頼された証明書
  • 現在の妥当性チェック

への接続一部のハイエンドのライブラリはまた、あなたが現在を確認するために、OCSPチェックやCRLのチェックを行うようになります状態。

ほとんどのライブラリは、あなたがフックして、独自の検証を書くようになる - しかし、あなたは本当に細部に掘ると、あなたが前に、または接続が確立された後に検証を行うせるかどう把握する必要があります。

2 - SSLパフォーマンスの改善のもう1つの秘訣は、以前のセッションの共有キーを再利用できるようにサーバーを設定することです。これにより、同じ2つのポイントが接続を再確立するときにセットアップコストが削減されます。安全なストレージがない場合、システムが危険にさらされます。しかし、鍵ストアを正しく保護すれば、それは容認できる貿易となるかもしれません。

これは、ご使用の環境に大きく依存 - #2は、接続のLOTとenvironmnetで勝利ではない - あなたは情報を格納する正当化するのに十分な接続を再利用することはできません。

1

ASIHTTPRequestの場合、答えはnoです。 ASIHTTPRequest retrieve server certificate

この種の技術はSSLピンニングと呼ばれている:NSNURLConnectionについては

、それは

- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge 

はあなたがここに同様の質問に対する私の答えを見ることができます使用してこれらの値を読み出すことが可能です。 SSL接続を強化します。詳細はこちらをご覧ください:https://www.isecpartners.com/blog/2013/february/ssl-pinning-on-ios.aspx

関連する問題