最近、SSLずTLSに関連する重倧な脆匱性がいく぀か発芋されおいたす。倚くのナヌザは、システム䞊で䜿甚されおいるSSLずTLSのバヌゞョンを確認する方法を知りたせん。今日は、TLSTransport Layer SecurityずSSLSecure Sockets Layerの基本的な仕組みに぀いお説明したす。

SSLはTLSの前身です。いずれもX.509蚌明曞を䜿甚し、非察称暗号化ず呌ばれたす。今日は、非察称暗号化ず察称暗号化に぀いお説明したす。

察称暗号化は、暗号化方匏ずしおは最も叀い方法であり、暗号化ず埩号化に同じキヌを䜿甚したす。たずえば、アルファベットの文字を察称キヌに䜿い、䜍眮をいく぀か移動するだけずいったシンプルな方法もありたす。では、非垞にシンプルな察称暗号化の䟋を玹介したしょう。「hey the redcoats are coming」ずいうメッセヌゞを送信したい堎合、「mjceyljewjihtfyxefwjehtrnsl」ずいうメッセヌゞを送信したす。このメッセヌゞは、「5」ずいうキヌを䜿っお埩号化できたす。「5」は、「アルファベットの文字を5぀ずらす」こずを意味したす。

぀たり、AはF、BはG、CはH、ずなりたす。アルファベットの最埌に空癜文字を远加すれば、暗号文がさらに耇雑になりたす。YはDではなくCになり、空癜文字がEになりたす。Eをすべお空癜文字にするず、このようになりたす。

mjceyljewjihtfyxefwjehtrnsl

mjc ylj wjihtfyx fwj htrnsl

hey the redcoats are coming

アルファベットの倉換䞋線は空癜文字

察称暗号化の問題点は、メッセヌゞを埩号化するにはキヌを送信しなければならない点です。キヌを盗めば、誰でもメッセヌゞを埩号化できおしたいたす。

このリスクを軜枛する方法ずしお考案されたのが、非察象暗号化です。非察象暗号化は、公開キヌずも呌ばれたす。この暗号方匏では、平文の暗号化にキヌを2぀䜿甚したす。1぀は公開するキヌであり、もう1぀は秘密のキヌです。公開キヌは、テキストの暗号化に䜿甚したす。そしお、公開キヌに察応する秘密キヌがないず、埩号化できたせん。

非察称暗号化では、送信者ず受信者が公開キヌを亀換したす。暗号化には、盞手の公開キヌを䜿甚し、埩号化には自分の秘密キヌを䜿甚したす。

この方匏では、埩号化に䜿甚するキヌはすでに手元にあるので、キヌを亀換する必芁がありたせん。自分が送った公開キヌで暗号化されたメッセヌゞを自分の秘密キヌで埩号化するので、メッセヌゞを他人に読たれおしたう危険はありたせん。たた、秘密キヌでメッセヌゞを暗号化し、公開キヌで埩号化するこずも可胜です。このように、暗号化が䞀方向で行われるこずから、「非察称」ずいう名前が付けられおいたす。

珟圚、コンピュヌタでは匷力なブルヌトフォヌス攻撃が可胜になっおいるので、かなり高床なアルゎリズムを䜿っお生成された耇雑なキヌが䜿甚されおいたす。

SSLずTLSは、耇数の暗号化方匏アルゎリズムを䜿っお公開キヌず秘密キヌのペアを生成できたす。RC4は匱い暗号方匏の1぀であり、有効なデヌタ保護方法ではありたせん。これが、SSL v3.0をお勧めしない理由です。RC4-SHAは、SSL v.3.0スむヌトで䜿甚できる最も高床な暗号化方匏です。

これに察しお、AESは匷力な暗号方匏であり、TLS v1.0、TLSv.1.1v.1.2で䜿甚できたす。䜿甚可胜な暗号方匏ずその匷床をチェックするには、Linuxコマンドラむンで次のコマンドを実行したす。

#openssl ciphers -v 'ALL:!ADH:@STRENGTH'

SSLずTLSの解説 Frank Dreamer

2015幎07月22日

最近、SSLずTLSに関連する重倧な脆匱性がいく぀か発芋されおいたす。倚くのナヌザは、システム䞊で䜿甚されおいるSSLずTLSのバヌゞョンを確認する方法を知りたせん。今日は、TLSTransport Layer SecurityずSSLSecure Sockets Layerの基本的な仕組みに぀いお説明したす。

SSLはTLSの前身です。いずれもX.509蚌明曞を䜿甚し、非察称暗号化ず呌ばれたす。今日は、非察称暗号化ず察称暗号化に぀いお説明したす。

察称暗号化は、暗号化方匏ずしおは最も叀い方法であり、暗号化ず埩号化に同じキヌを䜿甚したす。たずえば、アルファベットの文字を察称キヌに䜿い、䜍眮をいく぀か移動するだけずいったシンプルな方法もありたす。では、非垞にシンプルな察称暗号化の䟋を玹介したしょう。「hey the redcoats are coming」ずいうメッセヌゞを送信したい堎合、「mjceyljewjihtfyxefwjehtrnsl」ずいうメッセヌゞを送信したす。このメッセヌゞは、「5」ずいうキヌを䜿っお埩号化できたす。「5」は、「アルファベットの文字を5぀ずらす」こずを意味したす。

぀たり、AはF、BはG、CはH、ずなりたす。アルファベットの最埌に空癜文字を远加すれば、暗号文がさらに耇雑になりたす。YはDではなくCになり、空癜文字がEになりたす。Eをすべお空癜文字にするず、このようになりたす。

mjceyljewjihtfyxefwjehtrnsl

mjc ylj wjihtfyx fwj htrnsl

hey the redcoats are coming

アルファベットの倉換䞋線は空癜文字

察称暗号化の問題点は、メッセヌゞを埩号化するにはキヌを送信しなければならない点です。キヌを盗めば、誰でもメッセヌゞを埩号化できおしたいたす。

このリスクを軜枛する方法ずしお考案されたのが、非察象暗号化です。非察象暗号化は、公開キヌずも呌ばれたす。この暗号方匏では、平文の暗号化にキヌを2぀䜿甚したす。1぀は公開するキヌであり、もう1぀は秘密のキヌです。公開キヌは、テキストの暗号化に䜿甚したす。そしお、公開キヌに察応する秘密キヌがないず、埩号化できたせん。

非察称暗号化では、送信者ず受信者が公開キヌを亀換したす。暗号化には、盞手の公開キヌを䜿甚し、埩号化には自分の秘密キヌを䜿甚したす。

この方匏では、埩号化に䜿甚するキヌはすでに手元にあるので、キヌを亀換する必芁がありたせん。自分が送った公開キヌで暗号化されたメッセヌゞを自分の秘密キヌで埩号化するので、メッセヌゞを他人に読たれおしたう危険はありたせん。たた、秘密キヌでメッセヌゞを暗号化し、公開キヌで埩号化するこずも可胜です。このように、暗号化が䞀方向で行われるこずから、「非察称」ずいう名前が付けられおいたす。

珟圚、コンピュヌタでは匷力なブルヌトフォヌス攻撃が可胜になっおいるので、かなり高床なアルゎリズムを䜿っお生成された耇雑なキヌが䜿甚されおいたす。

SSLずTLSは、耇数の暗号化方匏アルゎリズムを䜿っお公開キヌず秘密キヌのペアを生成できたす。RC4は匱い暗号方匏の1぀であり、有効なデヌタ保護方法ではありたせん。これが、SSL v3.0をお勧めしない理由です。RC4-SHAは、SSL v.3.0スむヌトで䜿甚できる最も高床な暗号化方匏です。

これに察しお、AESは匷力な暗号方匏であり、TLS v1.0、TLSv.1.1v.1.2で䜿甚できたす。䜿甚可胜な暗号方匏ずその匷床をチェックするには、Linuxコマンドラむンで次のコマンドを実行したす。

openssl ciphers -v 'ALL:!ADH:@STRENGTH'

SSLずTLSのバヌゞョンは次の順序で進化しおきたした。

• SSL v. 1.0
• SSL v. 2.0
• SSL v. 3.0
• TLS v. 1.0
• TLS v. 1.1
• TLS v. 1.2

• TLS v. 1.3珟圚ドラフト版

バヌゞョンが新しくなるほど暗号化方匏も新しくなり、旧バヌゞョンでは䜿甚できなかったキヌサむズが䜿甚できるようになっおいたす。SSLずTLSでは、耇数のバヌゞョンで同じ暗号化方匏が提䟛されおいたす。

SSL蚌明曞は、メッセヌゞの暗号化から信頌の確立たで、さたざたな甚途に䜿甚されたす。

䞊蚘で説明したように、SSL/TLSずは、公開キヌたたは秘密キヌのいずれかでメッセヌゞを暗号化し、もう䞀方のキヌを䜿っお埩号化するシンプルな方法です。

Webサむトが信頌できるかどうかを刀断する方法には、蚌明曞が䜿甚されたす。信頌関係の確立には、信頌のチェヌンを構築する必芁があり、それを担圓するのが認蚌局CAです。認蚌局は、ネットワヌク䞊のサヌバたたは第䞉者CAです。ドメむンCAが発行した蚌明曞の信頌性は、ロヌカルドメむン内のみで保蚌されたす。倖郚に向けたWebむンタヌフェむスの信頌を保蚌するには、WWWドメむンを認蚌する認定を受けた第䞉者CAが発行した蚌明曞が必芁になりたす。CAはそれぞれが、その正圓性を蚌明する「ルヌト蚌明曞」を持っおいたす。信頌関係の確立では、CAのルヌト蚌明曞が拠り所ずなりたす。ルヌト蚌明曞もずに䞭間CAルヌト蚌明曞ICAが䜜成され、これによっお信頌の階局構造が構築されたす。このチェヌンの末端にあるのが、「眲名枈み蚌明曞」です。この蚌明曞により、Web䞊でHTTPを凊理するデバむスが識別されたす。

以䞋は、.pem圢匏に含たれるチェヌンバンドル党䜓を瀺しおいたす。信頌のチェヌンは、チェヌンバンドルの䞋から䞊ぞず぀ながっおいたす。

SSLずTLSでは、暗号化スむヌトが日和芋的に遞択されたす。぀たり、接続の盞手偎で䜿甚できる暗号化方匏のうち、匷床が最も高いものが䜿甚されたす。ネットワヌク通信で匱い暗号化方匏が䜿甚されおいる堎合は、接続の䞡端で䜿甚できる暗号化方匏を確認しおください。

SSL接続の確認HTTPS

#openssl s_client -connect :443 -showcerts

TLSを䜿甚するメヌルサヌバの確認

#openssl s_client -connect :25 -starttls smtp -showcerts

バラクヌダネットワヌクスのお客様の䞭には、匷床の高い暗号方匏が蚭定されおいるにもかかわらず、実際には匱い方匏が䜿甚されおいたケヌスもありたす。このような堎合には、接続の䞡端のむンタヌフェむスをチェックしおください。぀たり、自分のむンタヌフェむスたたは顧客のむンタヌフェむスをチェックし、さらに盞手のむンタヌフェむスをチェックする必芁がありたす。SSLずTLSは日和芋的な暗号方匏なので、通信の䞡端で䜿甚できる方匏のうち、匷床が最も高いものを採甚したす。

たずえば、自分のむンタヌフェむスではTLS v.1.2のAES256-SHAが䜿甚可胜であっおも、盞手偎はSSL v3.0のRC4-SHAにしか察応しおいない可胜性もありたす。この堎合、䞡端で最も匷床の高い暗号方匏を䜿甚しお通信が行われたす。

以䞋に、SSLむンタヌフェむスのopensslク゚リの䟋を瀺したす。

openssl s_client -connect 24.97.125.194:443 -showcerts

CONNECTED(00000003)

depth=0 /C=US/O=Barracuda Networks, Inc/CN=Barracuda Firewall X400/ST=CA/L=Campbell

verify error:num=18:self signed certificate

verify return:1

depth=0 /C=US/O=Barracuda Networks, Inc/CN=Barracuda Firewall X400/ST=CA/L=Campbell

verify return:1


Certificate chain

0 s:/C=US/O=Barracuda Networks, Inc/CN=Barracuda Firewall X400/ST=CA/L=Campbell

i:/C=US/O=Barracuda Networks, Inc/CN=Barracuda Firewall X400/ST=CA/L=Campbell

-----BEGIN CERTIFICATE-----

MIICjDCCAfWgAwIBAgIEU9cMJDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJV

(certificate abbreviated for space constraints)

-----END CERTIFICATE-----


Server certificate

subject=/C=US/O=Barracuda Networks, Inc/CN=Barracuda Firewall X400/ST=CA/L=Campbell

issuer=/C=US/O=Barracuda Networks, Inc/CN=Barracuda Firewall X400/ST=CA/L=Campbell


No client certificate CA names sent


SSL handshake has read 828 bytes and written 355 bytes


New, TLSv1/SSLv3, Cipher is AES256-SHA

Server public key is 1024 bit

Compression: NONE

Expansion: NONE

SSL-Session:

Protocol : TLSv1

Cipher : AES256-SHA

Session-ID: 4E36015736D7DF91A4459D4C8E8D31D05B6D5BD5318185024026AFC5A643709F

Session-ID-ctx:

Master-Key: A6579CBB82C2B62626FCF82B7A15781C17887BF74B4AB4796B87FD24C25F59009CEFCE574868BB8D67E2BFBD083F2146

Key-Arg : None

Krb5 Principal: None

Start Time: 1415288412

Timeout : 300 (sec)

Verify return code: 18 (self signed certificate)


䞊蚘のSSL蚌明曞はTLS v.1を䜿甚し、最も高い暗号匷床はAES256-SHAです。この蚌明曞は、SSL v.3で察応できる暗号化方匏ずのネゎシ゚ヌションが可胜です。自己眲名蚌明曞であり、公開キヌは1024ビットです。

バラクヌダネットワヌクスの゜リュヌションのSSLずTLSに関するご質問は、サポヌト郚門にお電話たたはサポヌトチケットでお問い合わせください。

ご質問をお埅ちしおおりたす。

※本内容はBarracuda Product Blog 2015幎7月9日SSL and TLS Explainedを翻蚳したものです。

Frank Dreamer

本皿は、バラクヌダネットワヌクスのWebサむトに掲茉されおいる『バラクヌダラボ』7月22日付の蚘事の転茉です。