[go: up one dir, main page]

JP2014116641A - Communication device and communication system - Google Patents

Communication device and communication system Download PDF

Info

Publication number
JP2014116641A
JP2014116641A JP2011077627A JP2011077627A JP2014116641A JP 2014116641 A JP2014116641 A JP 2014116641A JP 2011077627 A JP2011077627 A JP 2011077627A JP 2011077627 A JP2011077627 A JP 2011077627A JP 2014116641 A JP2014116641 A JP 2014116641A
Authority
JP
Japan
Prior art keywords
server
client
cipher
hello
tls
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2011077627A
Other languages
Japanese (ja)
Inventor
Masakatsu Matsuo
正克 松尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2011077627A priority Critical patent/JP2014116641A/en
Priority to PCT/JP2012/002164 priority patent/WO2012132438A1/en
Publication of JP2014116641A publication Critical patent/JP2014116641A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)

Abstract

【課題】サーバの中には、SSL/TLS暗号通信の仕様に従わずに、サーバ側で暗号スイートの優先順位付けを行うものが存在する。
【解決手段】本発明の通信装置は、前記他の通信装置の使用可能な暗号方式の第1の情報を取得する暗号方式取得部と、前記第1の情報に基づいて、前記複数の暗号方式から前記他の通信装置との間の通信で使用する暗号方式を選択する暗号方式選択部と、前記暗号方式選択部が選択した暗号方式を前記他の通信装置に送信する送信部と、を備える。
【選択図】図1
There are servers that prioritize cipher suites on the server side without following the SSL / TLS encryption communication specifications.
A communication device according to the present invention includes an encryption method acquisition unit that acquires first information of an encryption method that can be used by the other communication device, and the plurality of encryption methods based on the first information. An encryption method selection unit that selects an encryption method to be used in communication with the other communication device, and a transmission unit that transmits the encryption method selected by the encryption method selection unit to the other communication device. .
[Selection] Figure 1

Description

本発明は、SSL(Secure Socket Layer)/TLS(Transport Layer Security)暗号通信に関するもので、特にSSL/TLS通信のハンドシェイクに関し、例えば、SSL/TLS通信で使用する暗号スイートを決定する方法などに適用される。   The present invention relates to SSL (Secure Socket Layer) / TLS (Transport Layer Security) encryption communication, and more particularly to a handshake of SSL / TLS communication, for example, a method for determining an encryption suite used in SSL / TLS communication. Applied.

従来、通信を安全に行う方法の1つとして、SSL/TLS暗号通信がある。SSL/TLS暗号通信は、強力な暗号通信であるにも関わらず、非常に簡単に設定できるという特徴を備えている。この利便性故、SSL/TLS暗号通信は、近年、急速に普及し、安価な組込み機器においても搭載が普通になりつつある。   Conventionally, there is SSL / TLS encryption communication as one method for performing communication safely. SSL / TLS encryption communication has a feature that it can be set very easily even though it is strong encryption communication. Because of this convenience, SSL / TLS encryption communication has been rapidly spreading in recent years, and it is becoming common for inexpensive embedded devices.

しかし、安価な組込み機器は一般的なパーソナルコンピュータに比べ、CPUが脆弱で、負荷の重い暗号処理の実行には適していない。それ故、安価な組込み機器では、SSL/TLS暗号通信を実行させる場合に、パフォーマンスのよい暗号スイートを選択するものが多い。あえて脆弱な組込み機器で重い暗号スイートを実行させれば、利便性を著しく損なうことになりかねない。   However, an inexpensive embedded device has a weaker CPU than a general personal computer and is not suitable for executing heavy-duty cryptographic processing. Therefore, many inexpensive embedded devices select a cipher suite with good performance when executing SSL / TLS cipher communication. If you run a heavy cipher suite on a vulnerable embedded device, you might seriously lose convenience.

なお、認証などセキュリティレベルが求められる通信では、パフォーマンスよりも安全性を重視した暗号スイートの選択が求められるが、このような場合であっても、負荷の重い暗号スイートは限定的に利用するのが望ましい。   In communications that require a security level such as authentication, it is necessary to select a cipher suite that emphasizes safety rather than performance, but even in such a case, cipher suites with heavy loads are limitedly used. Is desirable.

また、パフォーマンスの観点から、安価な組込み機器の多くは、SSL/TLS暗号通信のクライアント機能のみを実装するものが多い。   Further, from the viewpoint of performance, many inexpensive embedded devices often have only a client function for SSL / TLS encryption communication.

その理由の1つは、SSL/TLS暗号通信の公開鍵暗号方式にある。SSL/TLS暗号通信で利用される公開鍵暗号方式は、一般的にRSA(Rivest Shamir Adleman)暗号である。RSA暗号では、サーバに比べ、クライアント側の処理は非常に軽くて済む。   One of the reasons is the public key cryptosystem of SSL / TLS cipher communication. A public key encryption method used in SSL / TLS encryption communication is generally RSA (Rivest Shamir Adleman) encryption. With RSA encryption, the processing on the client side is very light compared to the server.

もう1つの理由は、SSL/TLS暗号通信の仕様(非特許文献1、2、3参照)にある。クライアント・サーバ間で利用する暗号スイートは、クライアントが提示した複数の暗号スイートの中から、サーバが暗号スイートを選択するが、クライアントが暗号スイートを提示するにあたっては、並べた暗号スイートの順番で、自らの優先順位を提示できるようになっており、サーバはその優先順位のなるだけ高い暗号スイートを選択する仕組みになっている。つまり、利用する暗号スイートの優先順位づけは、クライントで行われる。   Another reason is the specification of SSL / TLS encryption communication (see Non-Patent Documents 1, 2, and 3). The cipher suites used between the client and the server are selected by the server from the cipher suites presented by the client. It is possible to present its own priority, and the server selects a cipher suite that has the highest priority. In other words, prioritization of cipher suites to be used is performed at the client.

この仕様によって、クライアント、即ち、安価な組込み機器は、処理の軽い暗号スイートを利用することが可能となっている。   According to this specification, a client, that is, an inexpensive embedded device can use a cipher suite that is light in processing.

T.Dierks、C.Allen、”The TLS Protocol Version 1.0”、RFC 2246、[online]、1999年1月、[平成23年3月29日検索] 、インターネット<http://www.ietf.org/rfc/rfc2246.txt>T. T. et al. Dierks, C.I. Allen, “The TLS Protocol Version 1.0”, RFC 2246, [online], January 1999, [March 29, 2011 search], Internet <http://www.ietf.org/rfc/rfc2246 .txt> T.Dierks、E.Rescorla、”The Transport Layer Security (TLS) Protocol Version 1.1”、RFC 4346、[online]、2006年4月、[平成23年3月29日検索]、インターネット<http://www.ietf.org/rfc/rfc4346.txt>T. T. et al. Dierks, E.I. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.1”, RFC 4346, [online], April 2006, [March 29, 2011 Search], Internet <http: //www.ietf. org / rfc / rfc4346.txt> T.Dierks、E.Rescorla、”The Transport Layer Security (TLS) Protocol Version 1.2”、RFC 5246、[online]、2008年8月、[平成23年3月29日検索]、インターネット<http://www.ietf.org/rfc/rfc5246.txt>T. T. et al. Dierks, E.I. Rescorla, “The Transport Layer Security (TLS) Protocol Version 1.2”, RFC 5246, [online], August 2008, [March 29, 2011 Search], Internet <http: //www.ietf. org / rfc / rfc5246.txt>

しかしながら、サーバの中には、クライアントが提示する優先順位の高い暗号スイートをサポートしているにも関わらず、優先順位を無視して、提示された暗号スイートの中から、サーバが希望する暗号スイートを選択するものが存在する。つまり、サーバの中には、SSL/TLS暗号通信の仕様に従わずに、サーバ側で暗号スイートの優先順位付けを行うものが存在する。   However, some of the servers support the cipher suites with high priority presented by the client, but ignore the priorities, and the cipher suites desired by the server from the presented cipher suites. There is something to choose. In other words, there are servers that prioritize cipher suites on the server side without following the SSL / TLS encryption communication specifications.

本発明は、このような従来技術の問題点を解消するべく案出されたものであり、その主な目的は、SSL/TLS暗号通信のクライアントとして動作している安価な組込み機器に、本来のSSL/TLS暗号通信の仕様(非特許文献1、2、3参照)通りに、暗号スイートの優先順位付けの権利を与えることを目的としている。これにより、安価な組込み機器でも、パフォーマンス良くSSL暗号通信を利用できるようにするものである。   The present invention has been devised to solve such problems of the prior art. The main purpose of the present invention is to provide an inexpensive embedded device operating as a client for SSL / TLS encryption communication. The purpose is to give the right to prioritize cipher suites according to the specifications of SSL / TLS encryption communication (see Non-Patent Documents 1, 2, and 3). This makes it possible to use SSL encryption communication with good performance even with an inexpensive embedded device.

上述の課題を解決するために、本発明の通信装置は、複数の暗号方式から選択した暗号方式を使用して他の通信装置との間で暗号通信を行う通信装置であって、前記他の通信装置の使用可能な暗号方式の第1の情報を取得する暗号方式取得部と、前記第1の情報に基づいて、前記複数の暗号方式から前記他の通信装置との間の通信で使用する暗号方式を選択する暗号方式選択部と、前記暗号方式選択部が選択した暗号方式を前記他の通信装置に送信する送信部と、を備えるように構成とした。   In order to solve the above-described problem, a communication device of the present invention is a communication device that performs encryption communication with another communication device using an encryption method selected from a plurality of encryption methods. Used in communication between the plurality of encryption schemes and the other communication devices based on the first information, and an encryption scheme acquisition unit that acquires first information of encryption schemes that can be used by the communication apparatus. It is configured to include an encryption method selection unit that selects an encryption method, and a transmission unit that transmits the encryption method selected by the encryption method selection unit to the other communication device.

また、本発明の通信装置は、前記暗号方式取得部は、前記複数の暗号方式から選択した暗号方式を前記他の通信装置に送信し、前記他の通信装置の応答結果に基づいて前記第1の情報を取得するように構成した。   Further, in the communication device according to the present invention, the encryption method acquisition unit transmits the encryption method selected from the plurality of encryption methods to the other communication device, and based on a response result of the other communication device, the first method It was configured to acquire the information.

また、本発明の通信装置は、前記他の通信装置との通信における前記複数の暗号方式の優先順位情報をさらに有し、前記暗号方式取得部は、前記優先順位情報に基づいて前記複数の暗号方式から選択した暗号方式を前記他の通信装置に送信するように構成した。   The communication device of the present invention further includes priority information of the plurality of encryption methods in communication with the other communication device, and the encryption method acquisition unit is configured to use the plurality of encryption methods based on the priority information. The encryption method selected from the methods is configured to be transmitted to the other communication device.

また、本発明の通信装置は、前記優先順位情報は、他の通信装置に応じてそれぞれ異なるように構成した。   Also, the communication device of the present invention is configured such that the priority information is different depending on other communication devices.

また、本発明の通信装置は、前記暗号方式取得部は、前記応答結果に基づいて前記他の通信装置が使用できない暗号方式の第2の情報を取得するように構成した。   Further, the communication device of the present invention is configured such that the encryption method acquisition unit acquires second information of an encryption method that cannot be used by the other communication device based on the response result.

また、本発明の通信装置は、前記暗号方式取得部は、前記複数の暗号方式から選択した複数の暗号方式を前記他の通信装置に送信し、前記他の通信装置の応答結果に基づいて前記第1の情報を取得するように構成した。   In the communication device of the present invention, the encryption method acquisition unit transmits a plurality of encryption methods selected from the plurality of encryption methods to the other communication device, and based on a response result of the other communication device, It comprised so that 1st information might be acquired.

また、本発明の通信システムは、第1の通信装置と第2の通信装置とを備える通信システムであって、前記第1の通信装置は、複数の暗号方式を使用可能であり、使用可能な暗号方式を前記第2の通信装置に送信し、前記第2の通信装置は、前記第1の通信装置から送信された暗号方式の使用可否の情報を前記第1の通信装置に送信するように構成した。   The communication system of the present invention is a communication system including a first communication device and a second communication device, and the first communication device can use a plurality of encryption methods. An encryption method is transmitted to the second communication device, and the second communication device transmits information on the availability of the encryption method transmitted from the first communication device to the first communication device. Configured.

また、本発明の通信システムは、前記第1の通信装置は、前記第2の通信装置から送信された前記使用可否の情報に基づいて、前記複数の暗号方式から前記第2の通信装置との間の通信で使用する暗号方式を選択するように構成した。   Further, in the communication system of the present invention, the first communication device communicates with the second communication device from the plurality of encryption schemes based on the usability information transmitted from the second communication device. It was configured to select the encryption method used for communication between the two.

また、本発明の通信システムは、前記第1の通信装置は、前記第2の通信装置における前記複数の暗号方式の優先順位情報を有し、前記優先順位情報に基づいて前記複数の暗号方式から選択した暗号方式を前記第2の通信装置に送信するように構成した。   Further, in the communication system of the present invention, the first communication device has priority information of the plurality of encryption methods in the second communication device, and the plurality of encryption methods are based on the priority information. The selected encryption method is configured to be transmitted to the second communication device.

また、本発明の通信システムは、前記第1の通信装置と通信可能な第3の通信装置をさらに有し、前記第1の通信装置は、前記第3の通信装置における前記複数の暗号方式の優先順位情報を有するように構成した。   In addition, the communication system of the present invention further includes a third communication device capable of communicating with the first communication device, and the first communication device includes the plurality of encryption schemes in the third communication device. It was configured to have priority information.

また、本発明の通信システムは、前記第1の通信装置は、前記複数の暗号方式から選択した複数の暗号方式を前記第2の通信装置に送信し、前記第2の通信装置は、前記第1の通信装置から送信された各暗号方式の使用可否の情報を前記第1の通信装置に送信するように構成した。   In the communication system of the present invention, the first communication device transmits a plurality of encryption methods selected from the plurality of encryption methods to the second communication device, and the second communication device includes the first communication device. The information indicating whether or not each encryption method is transmitted, which is transmitted from one communication device, is transmitted to the first communication device.

また、本発明の通信装置は、クライアントにおける暗号スイートの優先順位情報に従って、利用する暗号スイートを選択するクライアントであって、前記クライアントはサーバの暗号スイートの搭載状況を調査する暗号スイート調査手段を備え、前記クライアントはこの前記暗号スイート調査手段を用いて、少なくとも1度は事前にサーバにおける暗号スイートの搭載情報を取得するものとし、SSL/TLS暗号通信で利用する暗号スイートの選択において、取得した暗号スイートの搭載情報を用いて、最適な暗号スイートを指定するように構成した。   The communication device of the present invention is a client that selects a cipher suite to be used in accordance with cipher suite priority information in the client, and the client includes cipher suite examining means for investigating the installation status of the server's cipher suite. The client uses the cipher suite checking means to acquire the cipher suite mounting information in the server at least once in advance, and the acquired cipher suite is selected in the cipher suite used in SSL / TLS cipher communication. It was configured to specify the optimal cipher suite using the on-board information of the suite.

ここで、暗号スイート調査手段というのは、例えば、別のコンピュータが調査した搭載情報を、そのコンピュータから取得するものであってもよいし、また自ら対象のサーバを調査し、搭載情報を取得するものであってもよい。   Here, the cipher suite investigation means may, for example, acquire the installation information investigated by another computer from the computer, or investigate the target server by itself to acquire the installation information. It may be a thing.

これによると、たとえ、相手が利用する暗号スイートの優先順位づけを行うサーバであっても、クライアントが主導的に利用する暗号スイートの優先順位付けを行うことが可能となり、安価な組込み機器のクライアントでも、パフォーマンス良くSSL暗号通信を利用できるようなる。   According to this, even if it is a server that prioritizes the cipher suites used by the other party, it becomes possible to prioritize the cipher suites that are used by the client, and the client of an inexpensive embedded device However, SSL encryption communication can be used with good performance.

また、本発明の通信装置は、クライアントにおける暗号スイートの優先順位情報に従って、利用する暗号スイートを選択するクライアントであって、前記クライアントはサーバの暗号スイートの搭載状況を調査する暗号スイート調査手段を備え、前記クライアントはこの前記暗号スイート調査手段を用いて、少なくとも1度は事前にサーバにおける暗号スイートの搭載情報を取得するものとし、SSL/TLS暗号通信で利用する暗号スイートの選択において、前記クライアントは、前記サーバにおける暗号スイートの搭載情報と前記クライアントにおける暗号スイートの優先順位情報とから、前記サーバで利用可能な、クライアントにとって最も優先順位の高い暗号スイートを選択し、SSL/TLSネゴシエーション(SSL/TLSハンドシェイク)で、前記クライアントが前記サーバに利用する暗号スイートを指定するにあたっては、前記クライアントが選択した前記暗号スイートを少なくとも含み、かつ、選択した前記暗号スイートよりも前記サーバで優先順位の高い暗号スイートを含まない暗号スイートを指定するように構成した。   The communication device of the present invention is a client that selects a cipher suite to be used in accordance with cipher suite priority information in the client, and the client includes cipher suite examining means for investigating the installation status of the server's cipher suite. The client uses the cipher suite checking means to acquire the cipher suite mounting information in the server at least once in advance, and in selecting a cipher suite to be used in SSL / TLS cipher communication, the client From the cipher suite installation information in the server and the cipher suite priority information in the client, the cipher suite having the highest priority for the client that can be used in the server is selected, and SSL / TLS negotiation (SSL / TLS) is selected. C In specifying a cipher suite to be used by the client for the server, the cipher suite having at least the cipher suite selected by the client and having a higher priority in the server than the selected cipher suite. It was configured to specify a cipher suite that does not contain.

これによると、たとえ、相手が利用する暗号スイートの優先順位づけを行うサーバであっても、クライアントが主導的に利用する暗号スイートの優先順位付けを行うことが可能となり、安価な組込み機器のクライアントでも、パフォーマンス良くSSL暗号通信を利用できるようなる。   According to this, even if it is a server that prioritizes the cipher suites used by the other party, it becomes possible to prioritize the cipher suites that are used by the client, and the client of an inexpensive embedded device However, SSL encryption communication can be used with good performance.

また、本発明の通信装置は、前記暗号スイート調査手段は、調査したい暗号スイートを指定してSSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行い、前記サーバの応答結果を得ることで、その指定した暗号スイートが、前記サーバで搭載されているか否かを判断するように構成した。   In the communication device of the present invention, the cipher suite investigating unit designates the cipher suite to be investigated, performs SSL / TLS negotiation (SSL / TLS handshake), and obtains the response result of the server, thereby specifying the cipher suite. It is configured to determine whether or not the encrypted cipher suite is installed in the server.

これによると、クライアントは、サーバにおける暗号スイートの搭載情報を簡単、かつ迅速に取得できるようになる。   According to this, the client can easily and quickly obtain the cipher suite installation information in the server.

また、本発明の通信装置は、前記暗号スイート調査手段は、前記クライアントが搭載していない暗号スイートも調査するように構成した。   Further, the communication device of the present invention is configured such that the cipher suite examining means investigates a cipher suite not mounted on the client.

これによると、暗号スイートの追加が図れるクライアントにおいては、あらかじめ追加される暗号スイートも含めてサーバにおける搭載状況を調査し、その搭載情報を保存しておけば、暗号スイート追加時に再調査の必要がなく、迅速な処理が可能となる。   According to this, for clients that can add cipher suites, check the installation status on the server, including the cipher suites added in advance, and save the installation information. And quick processing becomes possible.

また、本発明の通信装置は、前記暗号スイート調査手段は、前記クライアントが搭載している暗号スイートのみを調査するように構成した。   Further, the communication apparatus of the present invention is configured such that the cipher suite examining means investigates only the cipher suite installed in the client.

これによると、サーバにおける暗号スイートの搭載状況の調査を迅速に行うことができる。暗号スイートの追加がない、若しくは稀にしかないクライアントでは、暗号スイート追加時の再調査を考慮するより、最初の搭載状況の調査時間を短縮させる方が望ましい。   According to this, it is possible to quickly investigate the installation status of the cipher suite in the server. For clients that do not add or rarely add cipher suites, it is preferable to reduce the initial installation status investigation time rather than considering re-investigation when adding cipher suites.

また、本発明の通信装置は、前記暗号スイート調査手段は、前記クライアントにおける暗号スイートの優先順位順に、前記サーバにおける暗号スイートの搭載状況を調査し、かつ前記サーバがアラートを返信するか、若しくは調査する暗号スイートがなくなるまで、前記サーバにおける暗号スイートの搭載状況を調査するように構成した。   Further, in the communication device of the present invention, the cipher suite investigating means investigates the installation status of the cipher suites in the server in the order of priority of cipher suites in the client, and the server returns an alert or investigates Until there is no cipher suite to be used, the configuration of the cipher suite installed in the server is examined.

これによると、クライアントが搭載する暗号スイートに関して、サーバが搭載するか否かを調査することになるので、この搭載情報を保存すれば、クライアント側で暗号スイートの優先順位付けが変更になる際に、再調査の必要がなくなる。クライアントにおける暗号スイートの優先順位付けをユーザ設定にしていて、頻繁に暗号スイートの優先順位付けが変更される場合に効果が大きい。   According to this, since it is investigated whether or not the server is installed with respect to the cipher suites installed on the client, if this installation information is saved, when the cipher suite prioritization changes on the client side , Eliminating the need for re-investigation. The effect is large when the cipher suite prioritization in the client is set as a user setting and the cipher suite prioritization is frequently changed.

また、本発明の通信装置は、前記クライアントは、調査したい複数の暗号スイートを複数同時に指定してSSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行い、前記サーバの応答結果を得ることで、その指定した少なくとも1つ以上の暗号スイートが、前記サーバで搭載されているか否かを判断するものとし、前記応答結果が、前記サーバからの暗号スイートの指定であった場合には、先に指定した複数の暗号スイートから、この前記サーバが指定した暗号スイートを除去した1つ以上の暗号スイートを指定して、再度、SSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行い、前記サーバの応答結果から、この新たに指定した少なくとも1つ以上の暗号スイートが、前記サーバで搭載されているか否かの判断を行うように構成した。   In the communication apparatus of the present invention, the client performs SSL / TLS negotiation (SSL / TLS handshake) by simultaneously specifying a plurality of cipher suites to be investigated, and obtains a response result of the server. It is determined whether or not at least one specified cipher suite is installed in the server, and if the response result is a cipher suite designation from the server, the cipher suite is designated first. One or more cipher suites obtained by removing the cipher suite designated by the server from a plurality of cipher suites are designated, SSL / TLS negotiation (SSL / TLS handshake) is performed again, and the response result of the server is determined. Whether at least one of the newly specified cipher suites is installed on the server It was configured to perform the Kano judgment.

これによると、クライアントが搭載する暗号スイートに関して、サーバが搭載するか否かを調査する場合、その調査時間を短縮できる。   According to this, when investigating whether or not a server is installed with respect to a cipher suite installed on a client, the investigation time can be shortened.

クライアントが搭載する暗号スイートをサーバが搭載するか否かを1つ1つ調査する場合は、暗号スイートの数だけ調査しなければならず時間を要する。一方この方法では、クライアントが、サーバが搭載する暗号スイートを少なくとも1つでも含む暗号スイートを提示している間は、1つ1つ調査する場合と手間は変わらないが、最後に、サーバが搭載しない複数の暗号スイートを提示した場合に、一回の調査で済み、手間を省ける。   When investigating whether or not each server installs cipher suites installed on the client, it is necessary to investigate the number of cipher suites, which takes time. On the other hand, in this method, while the client is presenting at least one cipher suite that is installed in the server, there is no change in the time and effort when investigating one by one. If multiple cipher suites that are not to be presented are presented, only one survey is required, saving time.

なおこの方法では、サーバが暗号スイートの優先順位付けを行うサーバの場合、サーバが搭載する暗号スイートだけでなく、サーバが選択した暗号スイートの順番を見ることで、サーバにおける暗号スイートの優先順位付けをも知ることが可能である。   In this method, if the server is a server that prioritizes cipher suites, the cipher suites are prioritized by looking at the cipher suite order selected by the server as well as the cipher suites installed on the server. It is possible to know.

また、本発明の通信装置は、前記暗号スイート調査手段は、サーバにおける暗号スイートの優先順位も合わせて調査するように構成した。   Further, the communication device of the present invention is configured such that the cipher suite examining means also investigates the priority order of cipher suites in the server.

これによると、サーバにおける暗号スイートの優先順位付けと、クライアントにおける暗号スイートの優先順位付けが同じであれば、クライアントはSSL/TLSネゴシエーションを通常の方法で実行できる。クライアントで搭載情報を記憶できない装置の場合、毎回、サーバにおける暗号スイートの搭載状況を調査する必要がなくなる。つまり、SSL/TLSネゴシエーション処理の迅速化が図れてよい。   According to this, if the cipher suite prioritization in the server and the cipher suite prioritization in the client are the same, the client can execute the SSL / TLS negotiation in a normal manner. In the case of a device that cannot store installation information on the client, it is not necessary to investigate the installation status of the cipher suite in the server each time. That is, the SSL / TLS negotiation process may be speeded up.

また、本発明の通信装置は、前記暗号スイート調査手段は、複数のTCPポートを用意し、それぞれのポートで、各々に調査したい暗号スイートを指定して、SSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行うように構成した。   In the communication apparatus of the present invention, the cipher suite checking means prepares a plurality of TCP ports, specifies the cipher suite to be checked in each port, and performs SSL / TLS negotiation (SSL / TLS handshake). ).

これによると、クライアントはサーバにおける暗号スイートの搭載状況を迅速に調査することが可能となる。同じTCPポートを利用して調査する場合は、一回一回、サーバの応答を待たなくてはならないが、この方法を利用すれば、その必要がなくなる。   According to this, the client can quickly investigate the installation status of the cipher suite in the server. When investigating using the same TCP port, it is necessary to wait for the server's response once, but if this method is used, it is not necessary.

また、本発明の通信装置は、前記暗号スイート調査手段は、SSL/TLS暗号通信で利用するTCPポートとは別のTCPポートを利用して調査するように構成した。   Further, the communication device of the present invention is configured such that the cipher suite examining means investigates using a TCP port different from the TCP port used in SSL / TLS encrypted communication.

これによると、SSL/TLS暗号通信を行うのに、SSL/TLS暗号通信を行う主体であるアプリケーションと、SSL/TLS暗号通信を実現するSSL/TLS暗号モジュールが分離され実装されている場合に、SSL/TLS暗号モジュールは、アプリケーションがSSL/TLS暗号通信に利用するとしてSSL/TLS暗号モジュールに指定したTCPポートを利用せずに、別のTCPポートを利用してサーバにおける暗号スイートの搭載状況を調査できる。   According to this, when SSL / TLS encryption communication is performed, an application that is the main body that performs SSL / TLS encryption communication and an SSL / TLS encryption module that realizes SSL / TLS encryption communication are separated and implemented. The SSL / TLS cryptographic module does not use the TCP port specified for the SSL / TLS cryptographic module as an application to use for SSL / TLS cryptographic communication, but uses another TCP port to check the installation status of the cipher suite in the server. Can investigate.

調査に利用するTCPポートは閉じらる場合があるが、この方法であれば、アプリケーションがSSL/TLS暗号通信に利用するとしてSSL/TLS暗号モジュールに指定したTCPポートは調査には利用されないので、閉じられない。これにより、アプリケーションのつくりを非常に簡単にできる。   Although the TCP port used for the survey may be closed, if this method is used, the TCP port specified in the SSL / TLS cryptographic module by the application to be used for SSL / TLS cryptographic communication is not used for the survey. I can't close it. This makes it very easy to create an application.

また、本発明の通信装置は、前記クライアントは、前記サーバにおける暗号スイートの搭載情報の記憶、及び、読出しを行う搭載状況記憶手段を備え、前記クライアントはこの前記搭載状況記憶手段を用いて、前記サーバにおける暗号スイートの搭載情報を記憶し、SSL/TLS暗号通信において、この前記搭載状況記憶手段を用いて、記憶した前記サーバにおける暗号スイートの搭載情報を読出すように構成した。   Further, in the communication apparatus of the present invention, the client includes mounting status storage means for storing and reading cipher suite mounting information in the server, and the client uses the mounting status storage means to The cipher suite mounting information in the server is stored, and in SSL / TLS cipher communication, the stored cipher suite mounting information in the server is read using the mounting status storage means.

これによると、サーバにおける暗号スイートの搭載状況調査を再度実行する必要がないので、SSL/TLSネゴシエーションを迅速に行うことができる。   According to this, since it is not necessary to re-execute the cipher suite installation status check in the server, SSL / TLS negotiation can be performed quickly.

また、本発明の通信装置は、前記サーバにおける暗号スイートの搭載情報と前記クライアントにおける暗号スイートの優先順位情報とを別々に記憶するように構成した。   Also, the communication device of the present invention is configured to store the encryption sweet mounting information in the server and the encryption sweet priority information in the client separately.

これによると、接続するサーバや通信目的によってクライアントにおける暗号スイートの優先順位付けが異なる場合に、記憶容量を減らせると共に、記憶方法を簡略化することが可能となる。   This makes it possible to reduce the storage capacity and simplify the storage method when the cipher suite prioritization in the client differs depending on the server to be connected and the communication purpose.

また、本発明の通信装置は、前記サーバにおける暗号スイートの搭載情報と、前記クライアントにおける暗号スイートの優先順位情報とを、合わせて記憶するように構成した。   In addition, the communication device of the present invention is configured to store together the cipher suite mounting information in the server and the cipher suite priority information in the client.

これによると、接続するサーバが決まっている場合などに、記憶容量を減らすことができる。   According to this, the storage capacity can be reduced when the server to be connected is determined.

また、本発明の通信装置は、通信内容やクライントの負荷状況など、前記クライントの都合によって、利用する暗号スイートの優先順位付けが異なる前記クライアントであって、前記クライアントがSSL/TLS暗号通信中に通信内容を変更する場合に、SSL/TLSの再ネゴシエーションを行うように構成した。   Further, the communication device of the present invention is the client in which priorities of cipher suites to be used differ depending on the convenience of the client, such as communication contents and client load status, and the client is performing SSL / TLS encryption communication. When the communication content is changed, the SSL / TLS renegotiation is performed.

これによると、たとえ、相手が利用する暗号スイートの優先順位付けを行うサーバであっても、通信目的やクライントの負荷状況に応じて、クライアントが主導的に暗号スイートを選択できる。   According to this, even if it is a server that prioritizes the cipher suites used by the other party, the client can lead the cipher suite selection in accordance with the communication purpose and the client load status.

例えば、クライアントは、認証ではセキュリティの高い暗号スイートを選択し、負荷状況が高い多量のデータの受け渡しにおいては、パフォーマンスのよい暗号スイートを選択することが可能である。   For example, the client can select a ciphersuite with high security for authentication, and can select a ciphersuite with good performance when passing a large amount of data with a high load.

また、本発明の通信装置は、複数のサーバと通信する前記クライアントであって、通信するサーバに合わせて、利用する暗号スイートの優先順位情報を変更するように構成した。   The communication apparatus of the present invention is the client that communicates with a plurality of servers, and is configured to change the priority information of the cipher suites to be used in accordance with the server that communicates.

これによると、様々な種類のサーバに対してもクライアント主導で暗号スイートを選択して通信できるようになる。   According to this, it is possible to communicate with various types of servers by selecting a cipher suite led by a client.

また、本発明の通信装置は、前記クライアントにおける暗号スイートの優先順位情報をユーザが変更できる優先順位変更手段を備え、この前記優先順位変更手段を用いて、前記クライアントにおける暗号スイートの優先順位情報を変更するように構成した。   The communication device of the present invention further comprises priority changing means that allows a user to change the priority information of the cipher suite in the client, and the priority information of the cipher suite in the client is obtained using the priority change means. Configured to change.

これによると、ユーザのセキュリティポリシーや考え方を、SSL/TLS暗号通信に反映できる。   According to this, a user's security policy and view can be reflected in SSL / TLS encryption communication.

また、本発明の通信装置は、前記クライアントが、前記サーバにおける暗号スイートの搭載情報を調査するか否かを判断する調査判断手段を備え、前記クライアントが、前記調査判断手段を用いて、前記サーバにおける暗号スイートの搭載情報を調査するか否かの判断を行うように構成した。   In addition, the communication apparatus of the present invention includes a survey determination unit that determines whether the client investigates the cipher suite installation information in the server, and the client uses the survey determination unit to It is configured to determine whether or not to check the information on the cipher suites installed.

これによると、暗号スイート優先順位付けを行わないサーバや、暗号スイートの優先付けを行っていてもクライアントにとって影響の小さいサーバに対してまでも、クライアントがサーバにおける暗号スイートの搭載状況を調査する必要がなくなり、手間が省けてよい。   According to this, it is necessary for the client to investigate the installation status of the cipher suite on the server, even for servers that do not prioritize cipher suites or servers that have prioritized cipher suites but have little impact on the client. You can save time and effort.

また、本発明の通信装置は、前記調査判断手段は、サーバが搭載する少なくとも2つ以上の暗号スイートを同時に指定したSSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行い、前記サーバが、Client Helloで先頭に記述した暗号スイートを選択するか否かで、サーバが暗号スイートの優先付けを行っているか否かを判断するものであって、サーバがClient Helloで先頭に記述した暗号スイートを選択しない場合は、サーバが暗号スイートの優先付けを行わないと判断するように構成した。   In the communication apparatus according to the present invention, the investigation determination unit performs SSL / TLS negotiation (SSL / TLS handshake) in which at least two or more cipher suites installed in the server are simultaneously specified, and the server performs Client Hello. The server determines whether the cipher suite is prioritized based on whether the cipher suite described at the top is selected or not, and the server does not select the cipher suite described at the top in Client Hello. In such a case, the server is configured not to prioritize cipher suites.

これによると、簡単にサーバが暗号スイートの優先順位付けを行っているか否かを、自動的に調査可能となる。   According to this, it becomes possible to automatically investigate whether or not the server is prioritizing cipher suites.

また、本発明の通信装置は、前記調査判断手段は、サーバがサポートする少なくとも2つの暗号スイート内、1つの暗号スイートを選択し、これをClient Helloで先頭に記述暗号スイートとして、SSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行い、次に、別の暗号スイートを選択し、これをClient Helloで先頭に記述暗号スイートとして、SSL/TLSネゴシエーション(SSL/TLSハンドシェイク)を行うことで、サーバが暗号スイートの優先付けを行っているか否かを判断するように構成した。   In the communication apparatus according to the present invention, the investigation / determination means selects one cipher suite from at least two cipher suites supported by the server, and uses this as a description cipher suite at the top in Client Hello to perform SSL / TLS negotiation. (SSL / TLS handshake), then another cipher suite is selected, this is the description cipher suite at the top in Client Hello, and SSL / TLS negotiation (SSL / TLS handshake) is performed to Is configured to determine whether or not the cipher suite is prioritized.

これによると、クライアントは、確実、かつ、迅速に、暗号スイートの優先順位付けを行っているか否かを、自動的に調査可能となる。   According to this, the client can automatically investigate whether or not the cipher suites are prioritized reliably and quickly.

本発明によれば、通信装置の負荷を他の通信装置に分散することができる。すなわち、通信装置の負荷を低減することができる。   According to the present invention, the load of a communication device can be distributed to other communication devices. That is, the load on the communication device can be reduced.

本発明の実施の形態におけるSSL/TLS暗号通信の第1例を示すシーケンス図The sequence diagram which shows the 1st example of SSL / TLS encryption communication in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第1例を示すシーケンス図The sequence figure which shows the 1st example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における機能ブロックの第1例を示す図The figure which shows the 1st example of the functional block in embodiment of this invention 本発明の実施の形態におけるクライアント側のフローチャートの第1例を示す図The figure which shows the 1st example of the flowchart by the side of the client in embodiment of this invention 本発明の実施の形態におけるサーバ側のフローチャートの第1例を示す図The figure which shows the 1st example of the flowchart by the side of the server in embodiment of this invention 本発明の実施の形態におけるハードウェア構成の第1例を示す図The figure which shows the 1st example of the hardware constitutions in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第2例を示すシーケンス図The sequence diagram which shows the 2nd example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第3例を示すシーケンス図The sequence diagram which shows the 3rd example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における機能ブロックの第2例を示す図The figure which shows the 2nd example of the functional block in embodiment of this invention 本発明の実施の形態におけるクライアント側のフローチャートの第2例を示す図The figure which shows the 2nd example of the flowchart by the side of the client in embodiment of this invention 本発明の実施の形態におけるサーバ側のフローチャートの第2例を示す図The figure which shows the 2nd example of the flowchart by the side of the server in embodiment of this invention 本発明の実施の形態におけるハードウェア構成の第2例を示す図The figure which shows the 2nd example of the hardware constitutions in embodiment of this invention 本発明の実施の形態におけるSSL/TLS暗号通信の第2例を示すシーケンス図The sequence diagram which shows the 2nd example of SSL / TLS encryption communication in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第4例を示すシーケンス図The sequence diagram which shows the 4th example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における機能ブロックの第3例を示す図The figure which shows the 3rd example of the functional block in embodiment of this invention 本発明の実施の形態におけるクライアント側のフローチャートの第3例を示す図The figure which shows the 3rd example of the flowchart by the side of the client in embodiment of this invention 本発明の実施の形態におけるSSL/TLS暗号通信の第3例を示すシーケンス図The sequence diagram which shows the 3rd example of SSL / TLS encryption communication in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第5例を示すシーケンス図The sequence diagram which shows the 5th example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における機能ブロックの第4例を示す図The figure which shows the 4th example of the functional block in embodiment of this invention 本発明の実施の形態におけるクライアント側のフローチャートの第4例を示す図The figure which shows the 4th example of the flowchart by the side of the client in embodiment of this invention 本発明の実施の形態におけるSSL/TLS暗号通信の第4例を示すシーケンス図The sequence diagram which shows the 4th example of SSL / TLS encryption communication in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第6例を示すシーケンス図The sequence diagram which shows the 6th example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における機能ブロックの第5例を示す図The figure which shows the 5th example of the functional block in embodiment of this invention 本発明の実施の形態におけるクライアント側のフローチャートの第5例を示す図The figure which shows the 5th example of the flowchart by the side of the client in embodiment of this invention. 本発明の実施の形態におけるハードウェア構成の第3例を示す図The figure which shows the 3rd example of the hardware constitutions in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第7例を示すシーケンス図The sequence diagram which shows the 7th example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第8例を示すシーケンス図The sequence diagram which shows the 8th example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第9例を示すシーケンス図The sequence diagram which shows the 9th example of the method "investigating the installation situation of the encryption sweet which a server supports" in embodiment of this invention 本発明の実施の形態におけるSSL/TLS暗号通信の第5例を示すシーケンス図The sequence diagram which shows the 5th example of SSL / TLS encryption communication in embodiment of this invention 本発明の実施の形態における機能ブロックの第6例を示す図The figure which shows the 6th example of the functional block in embodiment of this invention. 本発明の実施の形態におけるクライアント側のフローチャートの第6例の一方を示す図The figure which shows one side of the 6th example of the flowchart by the side of the client in embodiment of this invention 本発明の実施の形態におけるクライアント側のフローチャートの第6例の他方を示す図The figure which shows the other of the 6th example of the flowchart by the side of the client in embodiment of this invention 本発明の実施の形態におけるサーバ側のフローチャートの第3例を示す図The figure which shows the 3rd example of the flowchart by the side of the server in embodiment of this invention 本発明の実施の形態におけるハードウェア構成の第4例を示す図The figure which shows the 4th example of the hardware constitutions in embodiment of this invention 本発明の実施の形態における接続するサーバが複数ある場合の搭載情報の実装方法の第1例を示す図The figure which shows the 1st example of the mounting method of mounting information in case there exist multiple servers to connect in embodiment of this invention 本発明の実施の形態における接続するサーバが複数ある場合の搭載情報の実装方法の第2例を示す図The figure which shows the 2nd example of the mounting method of mounting information in case there exist multiple servers to connect in embodiment of this invention 本発明の実施の形態における接続するサーバが複数あり、サーバ別、目的別に優先順位が異なる場合の「クライアントがサポートする暗号スイートの優先順位情報」の実装方法のの第1例を示す図The figure which shows the 1st example of the mounting method of the "priority information of the cipher suite which a client supports" when there are a plurality of servers to connect in the embodiment of the present invention, and the priority differs for each server and for each purpose 本発明の実施の形態における接続するサーバが複数あり、サーバ別、目的別に優先順位が異なる場合の「クライアントがサポートする暗号スイートの優先順位情報」の実装方法の第2例を示す図The figure which shows the 2nd example of the mounting method of the "priority information of the cipher suite which a client supports" in the case where there are a plurality of servers to be connected in the embodiment of the present invention and the priorities are different for each server and each purpose 本発明の実施の形態における「クライアントがサポートする暗号スイートの優先順位情報」をユーザが変更する方法の第1例を示す図The figure which shows the 1st example of the method by which a user changes "priority information of the encryption sweet which a client supports" in embodiment of this invention 本発明の実施の形態におけるクライアントが、前記サーバにおける暗号スイートの搭載情報を調査するか否かを判断する方法の第1例を示す図The figure which shows the 1st example of the method in which the client in embodiment of this invention judges whether the mounting information of the encryption sweet in the said server is investigated. 本発明の実施の形態におけるクライアントが、前記サーバにおける暗号スイートの搭載情報を調査するか否かを判断する方法の第2例を示す図The figure which shows the 2nd example of the method in which the client in embodiment of this invention judges whether the mounting information of the encryption sweet in the said server is investigated. 本発明の実施の形態におけるSSL/TLS暗号通信の第6例を示すシーケンス図Sequence diagram showing a sixth example of SSL / TLS encryption communication in the embodiment of the present invention

以下、本発明の実施の形態を、図面を参照しながら説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

なお説明を簡単にするため、クライアント、サーバはそれぞれ下記の暗号スイートを保持するものと仮定して説明を行う。なお、暗号スイートとは、例えば、暗号化アルゴリズムと圧縮アルゴリズムであり、鍵交換方式や、暗号方式等を含む。実際の実装においては、搭載される(すなわち、使用可能な)暗号スイートはどのようなものであっても構わない。
クライアント:TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
サーバ: TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
また、特別に説明がない場合は、クライアントにおける暗号スイートの優先順位付けは下記の設定になっているものとして説明を行う。これも実際の実装においては、どのような優先順位づけを行ってもよい。なお、この優先順位の情報はサーバまたはクライアントに格納されてもよいし、外部の記憶装置等に格納されてもよい。外部の記憶装置に格納される場合、サーバまたはクライアントがネットワーク等を介して優先順位の情報を取得すればよい。また、CPU等の制御部で、優先順位を都度算出してもよい。
1:TLS_RSA_WITH_RC4_128_MD5
2:TLS_RSA_WITH_RC4_128_SHA
3:TLS_RSA_WITH_AES_128_CBC_SHA
4:TLS_RSA_WITH_AES_256_CBC_SHA
優先順位は1が最も高く、2、3、4という順番で優先順位が低くなるものとする。なお説明を簡単にするために、同じ優先順位の暗号スイートはないようにしているが、実際の実装においては同じ優先順位の暗号スイートが複数存在してもよい。
In order to simplify the description, it is assumed that the client and the server each hold the following cipher suite. The cipher suite is, for example, an encryption algorithm and a compression algorithm, and includes a key exchange method, an encryption method, and the like. In an actual implementation, any cipher suite may be installed (that is, usable).
Client: TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
Server: TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
If there is no special explanation, it is assumed that the cipher suite prioritization in the client has the following settings. Again, any prioritization may be performed in actual implementation. The priority information may be stored in the server or the client, or may be stored in an external storage device or the like. When stored in an external storage device, the server or client may acquire priority order information via a network or the like. Alternatively, the priority order may be calculated each time by a control unit such as a CPU.
1: TLS_RSA_WITH_RC4_128_MD5
2: TLS_RSA_WITH_RC4_128_SHA
3: TLS_RSA_WITH_AES_128_CBC_SHA
4: TLS_RSA_WITH_AES_256_CBC_SHA
It is assumed that the priority is the highest and the priority is lower in the order of 2, 3, and 4. In order to simplify the description, there is no cipher suite having the same priority, but there may be a plurality of cipher suites having the same priority in an actual implementation.

図1は、本発明によるSSL/TLS暗号通信の一例を示すシーケンス図である。   FIG. 1 is a sequence diagram showing an example of SSL / TLS encryption communication according to the present invention.

(図1−(S1))クライアントは、サーバがサポートする暗号スイートの搭載状況(使用可能な暗号スイートの情報)を調査することで、クライアントがサポートする暗号スイートの内、以下の暗号スイートをサーバがサポートしないことを知る。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(図1−(S2))クライアントは、暗号スイートの選択において、自らが保持する暗号スイートの内、優先順位の高い暗号スイートを選択しようとするが、その際、上記暗号スイートに該当すれば、次に優先順位の高い暗号スイートを選択する。
(FIG. 1- (S1)) The client investigates the installation status of cipher suites supported by the server (information on cipher suites that can be used), so that the following cipher suites supported by the client are stored in the server. Know that does not support.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(FIG. 1- (S2)) In selecting a cipher suite, the client tries to select a cipher suite having a higher priority among cipher suites held by the client. Next, the cipher suite with the highest priority is selected.

クライアントの優先順位1、2の暗号スイートは、上記暗号スイートに該当するので、クライアントは下記に記述する、優先順位3の暗号スイートを選択する。
TLS_RSA_WITH_AES_128_CBC_SHA
なお本図を含めてすべての図で、同じ優先順位の暗号スイートは1つしかないケースで説明を行っているが、本図を含めてすべての図で、同じ優先順位の暗号スイートはいくつあっても構わない。サーバがサポートする同じ優先順位の暗号スイートが複数あれば、好みで1つに絞ってもよいし、複数、またはすべての暗号スイートを選択してもよい。すなわち、本実施の形態において、ここでの選択とはすべて暗号スイート選択する場合も含む。複数の暗号スイートを選択する場合は、複数の暗号スイートを指定するClient Helloを送信することになる。説明を簡単にするために、ここでは、同じ優先順位の暗号スイートは1つしかないものとする。
Since the cipher suites of the client priorities 1 and 2 correspond to the cipher suites, the client selects the cipher suite of the priority 3 described below.
TLS_RSA_WITH_AES_128_CBC_SHA
In all figures including this figure, the explanation is given in the case where there is only one cipher suite with the same priority. However, there are several cipher suites with the same priority in all figures including this figure. It doesn't matter. If there are a plurality of cipher suites of the same priority supported by the server, the cipher suite may be narrowed down to one as desired, or a plurality or all cipher suites may be selected. That is, in this embodiment, the selection here includes the case where all cipher suites are selected. When selecting a plurality of cipher suites, Client Hello specifying a plurality of cipher suites is transmitted. For the sake of simplicity, it is assumed here that there is only one cipher suite with the same priority.

(図1−(S3))クライアントがこの選択した暗号スイートを指定して、サーバにClient Helloを送信する。(4)サーバはこの指定された暗号スイートを保持するので、この指定された暗号スイートでクライアントにServer Helloを送信する。図示していないが、この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 1- (S3)) The client designates the selected cipher suite and transmits Client Hello to the server. (4) Since the server holds the designated cipher suite, the server transmits Server Hello to the client using the designated cipher suite. Although not shown, SSL / TLS negotiation is correctly executed after this, and common key encryption communication in SSL / TLS encryption communication is started.

たとえ、相手が利用する暗号スイートの優先順位付けを行うサーバであっても、本発明に従えば、このように、クライアントが主導的に暗号スイートを選択できるメリットがある。パフォーマンスのよい暗号スイートをクライアント主導で選択できるため、特に、脆弱なCPUを搭載しているような組込み機器の場合にこの効果は大きい。   Even if it is a server that prioritizes the cipher suites used by the other party, according to the present invention, there is an advantage that the client can lead the cipher suite selection in this way. Since a cipher suite with good performance can be selected on the client's initiative, this effect is significant especially in the case of an embedded device having a vulnerable CPU.

なお、ここでは、クライアントが1つのサーバを相手にするケースで説明を行っているが、複数のサーバを相手にするケースでは、「クライントがサポートする暗号スイートの優先順位情報」はサーバ毎に異なっていてもよい。例えば、銀行や証券など金融系サーバに対しては、セキュリティを重視した暗号スイートの優先順位を高くし、大量にデータを受信するインターネットテレビなどコンテンツ系サーバに対しては、パフォーマンスを重視した暗号スイートの優先順位を高くするなどの設定を行うとよい。   In this example, the case where the client is one server is described. However, in the case where a plurality of servers are the partner, the “priority information of cipher suites supported by the client” differs for each server. It may be. For example, for financial servers such as banks and securities, higher priority is given to cipher suites that emphasize security, and for content servers such as Internet TV that receive large amounts of data, cipher suites that emphasize performance. It is recommended to make a setting such as increasing the priority of.

図2は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第1例を示すシーケンス図であり、図1の「サーバがサポートする暗号スイートの搭載状況を調査する」方法の一例を示すシーケンス図でもある。   FIG. 2 is a sequence diagram showing a first example of a method of “investigating the installation status of a cipher suite supported by a server” in the embodiment of the present invention, and the “installation status of a cipher suite supported by a server” in FIG. It is also a sequence diagram showing an example of a method of “investigating”.

ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、暗号スイートを1つ指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその暗号スイートを保持していないと判断する。   Here, the client transmits Client Hello specifying one cipher suite in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the cipher suite is not held.

(図2−(S1))クライアントは自らが保持する暗号スイートの優先順位情報を見て、優先順位1の暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」を指定してClient Helloを送信する。(図2−(S2))サーバは「TLS_RSA_WITH_RC4_128_MD5」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバがTLS_RSA_WITH_RC4_128_MD5」をサポートしていないことを知る。(図2−(S3))そして通信を切断する。通信の切断はサーバ側から行われるのが一般的であるが、サーバが切断しない場合は、クライアント側から通信を切断する。これ以降のすべての図の説明において、アラート(handshake_failure)後の通信の切断は同様であり、説明を割愛する。なお、通信の切断は例えば、ネットワーク制御部100で行われる。   (FIG. 2-(S1)) The client sees the priority order information of the cipher suite held by itself and designates “TLS_RSA_WITH_RC4_128_MD5”, which is the cipher suite of priority 1, and transmits Client Hello. (FIG. 2-(S2)) Since the server does not support "TLS_RSA_WITH_RC4_128_MD5", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support TLS_RSA_WITH_RC4_128_MD5. (FIG. 2-(S3)) And communication is cut | disconnected. In general, the communication is disconnected from the server side, but if the server does not disconnect, the communication is disconnected from the client side. In the description of all the subsequent drawings, the disconnection of communication after an alert (handshake_failure) is the same, and the description is omitted. The communication disconnection is performed by the network control unit 100, for example.

(図2−(S4))優先順位1の暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」をサーバがサポートしていないので、クライアントは次に優先順位2の暗号スイートである「TLS_RSA_WITH_RC4_128_SHA」を指定してClient Helloを送信する。(図2−(S5))サーバは「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。(図2−(S6)そして通信を切断する。なお、ここまでの処理が、結果として、クライアントがサーバの暗号スイートの搭載情報を調査するものになる。つまり、クライアントは、サーバが「TLS_RSA_WITH_RC4_128_MD5」、及び「TLS_RSA_WITH_RC4_128_SHA」をサポートしないという「サーバがサポートしない暗号スイートの情報」を取得したことになる。   (FIG. 2-(S4)) Since the server does not support "TLS_RSA_WITH_RC4_128_MD5" which is a cipher suite of priority 1, the client next designates Client Hello by specifying "TLS_RSA_WITH_RC4_128_SHA" which is a cipher suite of priority 2. Send. (FIG. 2-(S5)) Since the server does not support "TLS_RSA_WITH_RC4_128_SHA", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_SHA”. (FIG. 2-(S6) Then, the communication is disconnected. Note that the processing up to this point results in the client examining the installation information of the cipher suite of the server. , And “cipher suite information not supported by the server” that does not support “TLS_RSA_WITH_RC4_128_SHA”.

なお、これ以降の処理が連続して処理されるように図示しているが、ここで一端処理を止め、実際に暗号通信を行う場合に、これ以降の処理を行うとしてもよい。ここでは説明を簡単にするため、これ以降の処理も連続して行うものとする。   In addition, although it has shown in figure that the process after this is processed continuously, a process after this may be performed when the process is stopped here and actually performing encryption communication. Here, in order to simplify the explanation, it is assumed that the subsequent processing is continuously performed.

なお、クライアントは、「サーバがサポートしない暗号スイートの情報」を記憶しておけば、次回からはサーバの暗号スイートの搭載情報を調査せずとも、「サーバがサポートしない暗号スイートの情報」を利用して、直ちに、次の(7)の処理に進むことが可能となる。   Note that if the client stores “cipher suite information that the server does not support”, it will use “cipher suite information that the server does not support” from the next time without investigating the server's cipher suite information. As a result, it is possible to immediately proceed to the next process (7).

(図2−(S7))優先順位2の暗号スイートである「TLS_RSA_WITH_RC4_128_SHA」をサーバがサポートしていないので、クライアントは次に優先順位3の暗号スイートを選択する。結果として、これが利用する暗号スイートを選択したことになる。(図2−(S8))そして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してClient Helloを送信する。結果として、これが利用する暗号スイートを伝達したことになる。(図2−(S5))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_128_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 2-(S7)) Since the server does not support "TLS_RSA_WITH_RC4_128_SHA" which is the cipher suite of priority 2, the client next selects the cipher suite of priority 3. As a result, the cipher suite used by this is selected. (FIG. 2-(S8)) And "TLS_RSA_WITH_AES_128_CBC_SHA" is designated and Client Hello is transmitted. As a result, the cipher suite used by this is transmitted. (FIG. 2-(S5)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it specifies "TLS_RSA_WITH_AES_128_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_128_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started.

この方法は、優先順位の高い暗号スイートから順に、サーバがその暗号スイートをサポートするか否かを逐次確かめるものである。そして、サーバが指定した暗号スイートをサポートしていれば、通信を切断することなく、そのままSSL/TLS暗号通信を行うものである。   This method sequentially checks whether or not the server supports the cipher suite in order from the cipher suite having the highest priority. If the cipher suite designated by the server is supported, SSL / TLS cipher communication is performed without disconnecting the communication.

なお上記の説明では、説明を簡便にするため、暗号スイートの優先順位順に逐次調査すると説明したが、必ずしも暗号スイートの優先順位順に調査しなければならないものではない。複数のポート番号を利用可能な場合は、複数のチャネルで接続し、同時に複数のClient Helloを送信することが可能である。図2で言えば、サーバの暗号スイートの搭載状況を調べるClient Helloと利用する暗号スイートを伝達するClient Hello、つまり1、4、8(どれが先に送信されてもよい)を同時に送信し、その後、2、5、9を得て、その結果から、「TLS_RSA_WITH_AES_128_CBC_SHA」を選択することが可能である。そしてこの暗号スイートの通信でそのままSSL/TLS暗号通信を行う。   In the above description, in order to simplify the description, it has been described that the investigation is sequentially performed in the order of priority of the cipher suites. However, the investigation is not necessarily performed in the order of priority of the cipher suites. When a plurality of port numbers are available, it is possible to connect with a plurality of channels and transmit a plurality of Client Hellos at the same time. In FIG. 2, Client Hello that checks the installation status of the cipher suite of the server and Client Hello that transmits the cipher suite to be used, that is, 1, 4, and 8 (which may be transmitted first) are transmitted simultaneously. Then, 2, 5, and 9 are obtained, and “TLS_RSA_WITH_AES_128_CBC_SHA” can be selected from the result. And SSL / TLS encryption communication is performed as it is by communication of this cipher suite.

この後の図の説明でも、このような複数ポート番号を利用する方法はあるが、特に必要がなければ、説明を簡単にするため、この説明は割愛する。   There is a method of using such a plurality of port numbers also in the description of the subsequent drawings, but this description is omitted for the sake of simplification unless otherwise necessary.

図3は、本発明の実施の形態における機能ブロックの第1例を示す図であり、図2の機能ブロック図の一例でもある。また図4は、本発明の実施の形態におけるクライアント側のフローチャートの第1例を示す図であり、図3のクライアント1のフローチャートでもある。また、図5は、本発明の実施の形態におけるサーバ側のフローチャートの第1例を示す図であり、本発明の実施の形態におけるサーバ側のフローチャートの第1例を示す図でもある。次にこの図3、図4、図5を用いて説明を行う。   FIG. 3 is a diagram showing a first example of functional blocks in the embodiment of the present invention, and is also an example of the functional block diagram of FIG. FIG. 4 is a diagram showing a first example of a flowchart on the client side in the embodiment of the present invention, and is also a flowchart of the client 1 in FIG. FIG. 5 is a diagram showing a first example of a flowchart on the server side in the embodiment of the present invention, and is also a diagram showing a first example of a flowchart on the server side in the embodiment of the present invention. Next, description will be made with reference to FIGS. 3, 4, and 5.

クライアント1は、ネットワークを介してサーバ2とSSL/TLS暗号通信を開始する。クライアント1は「クライアントがサポートする暗号スイートの優先順位情報」で、利用したい暗号スイートの優先順位づけを行っており、現在、どの優先順位の暗号スイートが選択されているかを「現在の優先順位を示すカウンタ」700に番号として記憶する仕組みになっている。「現在の優先順位を示すカウンタ」700の初期値は1である。   The client 1 starts SSL / TLS encrypted communication with the server 2 via the network. The client 1 prioritizes the cipher suites that the client 1 wants to use with the “priority information of cipher suites supported by the client”. The client 1 indicates which cipher suite is currently selected as “current priority”. The counter is stored as a number in the "counter shown" 700. The initial value of the “counter indicating the current priority” 700 is 1.

(図4−(S1))はじめに、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在の優先順位を示すカウンタ」700から暗号スイートの情報を読み出す。はじめは、「現在の優先順位を示すカウンタ」700の値が1なので、「TLS_RSA_WITH_RC4_128_MD5」という情報が読み出される。   (FIG. 4-(S1)) First, the Client Hello generating unit 400 (part of the cipher suite investigation means) holds "priority information on cipher suites supported by the client" and "a counter indicating the current priority" "Read cipher suite information from 700. Initially, since the value of the “counter indicating the current priority” 700 is 1, information “TLS_RSA_WITH_RC4 — 128_MD5” is read.

(図4−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_RC4_128_MD5」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 4-(S2)) Client Hello production | generation part 400 (a part of encryption sweet investigation means) produces | generates the Client Hello message which designated "TLS_RSA_WITH_RC4_128_MD5" as an encryption sweet, and sends this to the data transmission part 110. FIG.

(図4−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 4-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図4−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 4-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図5−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 5-(S1)) The server 2 starts in a message reception waiting state from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図5−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 5-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図5−(S3))Client Helloメッセージには暗号スイートして「TLS_RSA_WITH_RC4_128_MD5」が指定されているが、これをサーバ2はサポートしていないので、Client Hello受信部410がhandshake_failureメッセージを生成し、これをデータ送信部210に送る。   (FIG. 5-(S3)) "TLS_RSA_WITH_RC4_128_MD5" is specified as the cipher suite in the Client Hello message, but since the server 2 does not support this, the Client Hello receiving unit 410 generates a handshake_failure message, This is sent to the data transmission unit 210.

(図5−(S4))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、handshake_failureメッセージを送信する。   (FIG. 5-(S <b> 4)) The data transmission unit 210 transmits a handshake_failure message to the client 1 via the network control device 200.

(図5−(S5))その後、Client Hello受信部410は、クライアント1との通信を切断し、サーバ2は再びクライアント1からのメッセージ受信待ち状態になる
(図4−(S4))クライアント1のデータ受信部120は、サーバ2が送信したhandshake_failureメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、handshake_failureメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。
(FIG. 5- (S5)) Thereafter, the client hello receiving unit 410 disconnects the communication with the client 1, and the server 2 again waits to receive a message from the client 1 (FIG. 4- (S4)). The data receiving unit 120 receives the handshake_failure message transmitted from the server 2 via the network control device 100. The data receiving unit 120 sends the handshake_failure message to the Server Hello receiving unit 500 (part of the cipher suite checking means) that processes (interprets) the handshake_failure message.

(図4−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 4-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図4−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、handshake_failureメッセージを受け取ったので、通信を切断する。なおサーバ側が通信を切断しない場合でも、通信の切断を行う。そしてServer Hello受信部500(暗号スイート調査手段の一部)は、「現在の優先順位を示すカウンタ」700に1を加算して、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。「現在の優先順位を示すカウンタ」700に1を加算したことで、サーバ2が「TLS_RSA_WITH_RC4_128_MD5」を搭載しないことの調査結果を得たことになる。   (FIG. 4-(S6)) Server Hello receiving part 500 (a part of encryption sweet investigation means) receives a handshake_failure message, Therefore It cuts communication. Even if the server does not disconnect the communication, the communication is disconnected. Then, the Server Hello receiving unit 500 (part of the cipher suite examining unit) adds 1 to the “counter indicating the current priority” 700 and calls the Client Hello generating unit 400 (part of the cipher suite examining unit). (That is, go to (A)). By adding 1 to the “counter indicating the current priority” 700, the investigation result that the server 2 does not have “TLS_RSA_WITH_RC4_128_MD5” is obtained.

(図4−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在の優先順位を示すカウンタ」700から暗号スイートの情報を読み出す。「現在の優先順位を示すカウンタ」700の値が2なので、「TLS_RSA_WITH_RC4_128_SHA」という情報が読み出される。   (FIG. 4- (S1)) Next, the client hello generation unit 400 (part of the cipher suite investigation means) indicates “priority information on cipher suites supported by the client” and “current priority” The cipher suite information is read from the counter 700. Since the value of the “counter indicating the current priority” 700 is 2, information “TLS_RSA_WITH_RC4_128_SHA” is read.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_RC4_128_MD5」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、(図4−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在の優先順位を示すカウンタ」700に1を加算して、再びClient Hello生成部400を呼び出す。「現在の優先順位を示すカウンタ」700に1を加算したことで、サーバ2が「TLS_RSA_WITH_RC4_128_SHA」を搭載しないことの調査結果を得たことになる。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_RC4_128_MD5” for both the client 1 and the server 2. Since the server 2 does not support “TLS_RSA_WITH_RC4_128_SHA” ((S6) in FIG. 4), the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects communication, and the “counter indicating the current priority order” “1 is added to 700, and the client hello generating unit 400 is called again. By adding “1” to the “counter indicating the current priority” 700, it is possible to obtain an investigation result that the server 2 does not include “TLS_RSA_WITH_RC4_128_SHA”.

(図4−(S1))次に、Client Hello生成部400は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在の優先順位を示すカウンタ」700から暗号スイートの情報を読み出す。「現在の優先順位を示すカウンタ」700の値が3なので、「TLS_RSA_WITH_AES_128_CBC_SHA」という情報が読み出される。なお、サーバ2は「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、ここでクライアント1は結果的に、利用する暗号スイートを選択したことになる。   (FIG. 4-(S1)) Next, the client hello generating unit 400 obtains cipher suite information from the "priority information of cipher suites supported by the client" and the "counter indicating the current priority" 700 held by itself. read out. Since the value of the “counter indicating the current priority” 700 is 3, information “TLS_RSA_WITH_AES_128_CBC_SHA” is read. Since the server 2 supports “TLS_RSA_WITH_AES_128_CBC_SHA”, the client 1 eventually selects the cipher suite to be used.

(図4−(S2))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。つまり、ここでクライアント1は結果的に、利用する暗号スイートを伝達したことになる。   (FIG. 4-(S2)) The Client Hello production | generation part 400 produces | generates the Client Hello message which designated "TLS_RSA_WITH_AES_128_CBC_SHA" as a cipher suite, and sends this to the data transmission part 110. FIG. In other words, the client 1 has transmitted the cipher suite to be used as a result.

(図4−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 4-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図4−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 4-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図5−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 5-(S1)) The data receiving part 220 of the server 2 receives the Client Hello message which the client 1 transmitted via the network control apparatus 200. FIG. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図5−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 5-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図5−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 5-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図5−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 5-(S7)) Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図5−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 5-(S <b> 8)) The data transmission unit 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図5−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 5-(S9)) Thereafter, the server 2 enters a state of waiting for receiving a message from the client 1.

(図4−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 4-(S <b> 4)) The data receiving unit 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図4−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 4-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図4−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、これをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 4-(S6)) Since the received message is not a handshake_failure message, the Server Hello receiving unit 500 (part of the cipher suite checking means) sends this to the SSL negotiation processing unit 600 (that is, proceeds to (B)). . Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図4−(S7))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 4-(S7)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図4−(S8))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 4-(S8)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message with respect to the server 2 via the network control apparatus 100. FIG.

(図4−(S9))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる
(図5−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。
(FIG. 4- (S9)) After that, the client 1 enters a state of waiting for receiving a message from the server 2. (FIG. 5- (S9)) The data receiving unit 220 of the server 2 transmits the client key exchange / change transmitted by the client 1. A Cipher Spec / Finished message is received via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図5−(S10))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 5-(S10)) The SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図5−(S11))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 5-(S <b> 11)) The data transmission unit 210 transmits a Change Cipher Spec / Finished message to the client 1 via the network control device 200.

機能ブロック図には図示していないが、この後は、サーバ2は作成した共通鍵を使ってクライアント1と暗号通信を行う。なお、暗号通信とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Although not shown in the functional block diagram, the server 2 thereafter performs cryptographic communication with the client 1 using the created common key. The encryption communication is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図4−(S9))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 4-(S9)) The data receiver 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted by the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図4−(S10))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 4-(S10)) SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

以上の説明により、暗号方式(暗号スイート)取得部は、Client Hello生成部400(暗号スイート調査手段の一部)とServer Hello受信部500(暗号スイート調査手段の一部)とに相当する。また、暗号方式取得部が取得した情報に基づいて、サーバ2に送信する暗号スイートを選択するClient Hello生成部400は暗号方式選択部でもある。なお、暗号方式取得部または暗号方式選択部が優先順位を算出してもよい。   As described above, the encryption method (cipher suite) acquisition unit corresponds to the client hello generation unit 400 (part of the cipher suite investigation unit) and the server hello reception unit 500 (part of the cipher suite investigation unit). Further, the client hello generating unit 400 that selects the cipher suite to be transmitted to the server 2 based on the information acquired by the encryption method acquisition unit is also an encryption method selection unit. Note that the priority order may be calculated by the encryption method acquisition unit or the encryption method selection unit.

機能ブロック図には図示していないが、この後は、クライアント1は作成した共通鍵を使ってサーバ2と暗号通信を行う。   Although not shown in the functional block diagram, after this, the client 1 performs cryptographic communication with the server 2 using the created common key.

図6は、本発明の実施の形態におけるハードウェア構成の第1例を示す図であり、図3のハードウェア構成図の一例でもある。クライアント1は、プログラム処理を実行するCPU10、一時的な記憶メモリであるRAM20、書き換え可能な不揮発性メモリであるHDD(ハードディスク)30、書き換え不可の不揮発性メモリであるROM40とネットワークのデータ送受信を実行するMAC/PHY50で構成されている。一方、サーバ2は、プログラム処理を実行するCPU11、一時的な記憶メモリであるRAM21、書き換え不可の不揮発性メモリであるROM41とネットワークのデータ送受信を実行するMAC/PHY51で構成されている。また、クライアント1とサーバ2はMAC/PHY50とMAC/PHY51を介してネットワークで接続されている。   FIG. 6 is a diagram showing a first example of the hardware configuration in the embodiment of the present invention, and is also an example of the hardware configuration diagram of FIG. The client 1 executes data transmission / reception of the network with the CPU 10 that executes program processing, the RAM 20 that is a temporary storage memory, the HDD (hard disk) 30 that is a rewritable nonvolatile memory, and the ROM 40 that is a non-rewritable nonvolatile memory. MAC / PHY50. On the other hand, the server 2 includes a CPU 11 that executes program processing, a RAM 21 that is a temporary storage memory, a ROM 41 that is a non-rewritable nonvolatile memory, and a MAC / PHY 51 that executes network data transmission / reception. The client 1 and the server 2 are connected to each other via a network via a MAC / PHY 50 and a MAC / PHY 51.

はじめにクライアント1のハード構成に関して説明を行う。図3に示したクライアント1の各処理部は、CPU10、及びRAM20で実行される。   First, the hardware configuration of the client 1 will be described. Each processing unit of the client 1 illustrated in FIG. 3 is executed by the CPU 10 and the RAM 20.

「現在の優先順位を示すカウンタ」700は、一時的な記憶メモリであるRAM20に配置しているが、書き換え可能なメモリであれば良く、HDD(ハードディスク)30やフラッシュROMなどに配置してもよい。   The “counter indicating the current priority” 700 is disposed in the RAM 20 which is a temporary storage memory, but may be any rewritable memory, and may be disposed in the HDD (hard disk) 30 or the flash ROM. Good.

次に「クライアントがサポートする暗号スイートの優先順位情報」であるが、これは書き換え可能な不揮発性メモリに配置するのが好ましい。本図では書き換え可能な不揮発性メモリとしてHDD(ハードディスク)30を利用しているが、フラッシュROMなど書き換え可能な不揮発性メモリであれば、種類は何であっても構わない。「クライアントがサポートする暗号スイートの優先順位情報」を一時的な記憶メモリであるRAM20に配置しても動作はするものの、毎回、優先順位を登録する手間を要するので好ましくない。   Next, “priority information of cipher suites supported by the client” is preferably arranged in a rewritable nonvolatile memory. In this figure, an HDD (hard disk) 30 is used as a rewritable nonvolatile memory, but any type of rewritable nonvolatile memory such as a flash ROM may be used. Although operation is possible even if “priority information on cipher suites supported by the client” is arranged in the RAM 20 which is a temporary storage memory, it is not preferable because it takes time to register the priority every time.

なお、「クライアントがサポートする暗号スイートの優先順位情報」が実装時に決定され、実装後は優先順位の変更をしない場合は、書き換え不可の不揮発性メモリであるROM40などに配置してもよい。   Note that “priority information on cipher suites supported by the client” is determined at the time of mounting, and if the priority is not changed after mounting, the cipher suites may be arranged in the ROM 40, which is a non-rewritable nonvolatile memory.

「クライアントがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。説明が紛らしなるのを避けるため、クライアント1の機能ブロック図には、「クライアントがサポートする暗号スイート」を示していないが、サーバ2の機能ブロック図には図示しているように、実際の暗号通信では必要となるものである。なおここでは、「クライアントがサポートする暗号スイート」をROM40に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回サーバからダウンロードして利用する場合は、RAM20のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the client” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. In order to avoid confusing the description, the functional block diagram of the client 1 does not show “cipher suites supported by the client”, but as shown in the functional block diagram of the server 2, This is necessary for cryptographic communication. Here, “encryption suite supported by the client” is arranged in the ROM 40, but the present invention is not limited to this. When the cipher suite program is downloaded from the server and used every time, it can be arranged in a volatile memory such as the RAM 20.

MAC/PHY50は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置100を実現するものである。   The MAC / PHY 50 is hardware that controls network communication, and implements the network control device 100.

次にサーバ2のハード構成に関して説明を行う。図3に示したサーバ2の各処理部は、CPU11、及びRAM21で実行される。   Next, the hardware configuration of the server 2 will be described. Each processing unit of the server 2 illustrated in FIG. 3 is executed by the CPU 11 and the RAM 21.

「サーバがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。なおここでは、「サーバがサポートする暗号スイート」をROM41に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回他のサーバからダウンロードして利用する場合は、RAM21のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the server” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. Here, “encryption suite supported by the server” is arranged in the ROM 41, but the present invention is not limited to this. When the cipher suite program is downloaded from another server and used every time, it can be arranged in a volatile memory such as the RAM 21.

MAC/PHY51は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置200を実現するものである。   The MAC / PHY 51 is hardware that controls network communication, and implements the network control device 200.

図7は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第2例を示すシーケンス図であり、図1の「サーバがサポートする暗号スイートの搭載状況を調査する」方法の別の一例を示すシーケンス図でもある。図2とほぼ同じシーケンスでもある。図2との違いは、(図7−(S7))、(図7−(S8))、(図7−(S9))に示すように、クライアントがサーバに対して、優先順位3の暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloを送信し、サーバがServer Helloを返信した際に、連続してSSL/TLSネゴシエーションを実行せず、一端通信を切断していることである。これにより、「サーバの暗号スイートの搭載情報を調査する」フェーズと「利用する暗号スイートを選択する」フェーズが明確に分離することが可能となる。   FIG. 7 is a sequence diagram showing a second example of the method “investigating the installation status of the cipher suites supported by the server” in the embodiment of the present invention, and FIG. 7 shows the installation status of the cipher suites supported by the server. It is also a sequence diagram showing another example of the “investigating” method. The sequence is almost the same as in FIG. The difference from FIG. 2 is that, as shown in FIG. 7- (S7), FIG. 7- (S8)), and FIG. When Client Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA”, which is a suite, is transmitted and the server returns Server Hello, SSL / TLS negotiation is not continuously executed and communication is temporarily cut off. This makes it possible to clearly separate the “investigation of server cipher suite installation information” phase and the “select cipher suite to use” phase.

「サーバの暗号スイートの搭載情報を調査する」フェーズと「利用する暗号スイートを選択する」フェーズを分離すれば、事前に、「サーバの暗号スイートの搭載情報を調査する」ことが可能となるので、SSL/TLSネゴシエーションを実行する際に、再度、調査する必要がなくなり、迅速なSSL/TLSネゴシエーションを実現できるようになる。   By separating the “Investigate server cipher suite installation information” phase and the “Select cipher suite to use” phase, it is possible to “inspect server cipher suite installation information” in advance. When performing SSL / TLS negotiation, there is no need to investigate again, and quick SSL / TLS negotiation can be realized.

例えば、クライアント装置でユーザが接続するサーバ装置を指定できる場合、その設定時に、サーバ装置の暗号スイートの搭載情報を調査して記憶するようなことが可能となる。   For example, when the server device to which the user connects can be specified by the client device, it is possible to check and store the cipher suite installation information of the server device at the time of setting.

なお、この図7の機能ブロック図、フローチャートは、ほぼ図3、図4、図5、図6とほぼ同様なので説明を割愛する。大きな違いは、(図4−(S5))でServer Helloを受信した場合に、(図4−(S7))に進まず、通信を切断するところである。詳細に関しては、次の図8以降で説明を行う。   Note that the functional block diagram and flowchart of FIG. 7 are substantially the same as those of FIGS. 3, 4, 5, and 6, and thus the description thereof is omitted. The major difference is that when Server Hello is received in (FIG. 4- (S5)), the communication is cut without proceeding to (FIG. 4- (S7)). Details will be described in FIG.

図8は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第3例を示すシーケンス図であり、図1の「サーバがサポートする暗号スイートの搭載状況を調査する」方法の別の一例を示すシーケンス図でもある。図7とほぼ同じシーケンスである。これも「サーバの暗号スイートの搭載情報を調査する」フェーズと「利用する暗号スイートを選択する」フェーズを明確に分離するものである。   FIG. 8 is a sequence diagram showing a third example of the method “investigating the installation status of the cipher suites supported by the server” in the embodiment of the present invention, and FIG. 8 shows the installation status of the cipher suites supported by the server. It is also a sequence diagram showing another example of the “investigating” method. The sequence is almost the same as in FIG. This also clearly separates the phase of “investigating on-board information of cipher suites on the server” and the phase of “selecting cipher suites to use”.

図7では、クライアントがサポートする優先順位の高い暗号スイートをサーバがサポートするか否かを調査しているが、図8では、クライアントがサポートするすべての暗号スイートをサーバがサポートするか否かを調査している。すべての暗号スイートを調査すると、時間を要する欠点はあるものの「クライアントがサポートする暗号スイートの優先順位情報」が変更になった場合に、再度調査する必要がなくなる。例えば、クライアント装置でユーザが「クライアントがサポートする暗号スイートの優先順位情報」を変更する場合に都合がよい。   In FIG. 7, it is investigated whether or not the server supports cipher suites with high priority supported by the client. In FIG. 8, it is determined whether or not the server supports all cipher suites supported by the client. is investigating. When all cipher suites are examined, although there is a time-consuming drawback, if the "priority information of cipher suites supported by the client" is changed, there is no need to investigate again. For example, it is convenient when the user changes “priority information on cipher suites supported by the client” on the client device.

また、今までの図の説明では、「クライアントがサポートする暗号スイートの優先順位情報」は1つしか存在しないケースで説明を行っているが、これが複数ある場合にも、図8の手法が適している。例えば、同じサーバに接続する場合であっても、認証にはより強力な処理の重い暗号スイートを優先し、通常の通信にはパフォーマンスのよい軽い暗号スイートを優先させたい場合がある。このような場合でも、クライアントがサポートするすべての暗号スイートをサーバがサポートするか否かを一度調査すれば、それぞれの場合で、選択すべき暗号スイートが分かるので手間が省けてよい。   In the description of the drawings so far, the description has been given on the case where there is only one “cipher suite priority information supported by the client”, but the method of FIG. ing. For example, even when connecting to the same server, there is a case where priority is given to a cipher suite having a stronger process for authentication and priority is given to a light cipher suite having good performance for normal communication. Even in such a case, once the server determines whether or not the server supports all the cipher suites supported by the client, the cipher suite to be selected can be found in each case, so that labor can be saved.

なお、ここではクライアントがサポートするすべての暗号スイートをサーバがサポートするか否かを調査するとしているが、一部の暗号スイートを調査するとしてもよい。クライアント装置で暗号スイートの優先順位付けをする場合に、どのような場合であっても利用されない暗号スイートがある場合は、これを除外するのは合理的である。またどのような場合であっても、優先順位が高い暗号スイートがあり、接続するサーバがこの暗号スイートを必ずサポートする場合は、この暗号スイートより優先順位が高い暗号スイートだけを調査すればよい。   Note that although it is assumed here that the server supports all cipher suites supported by the client, some cipher suites may be investigated. When prioritizing cipher suites on a client device, if there are cipher suites that are not used in any case, it is reasonable to exclude them. In any case, if there is a cipher suite having a high priority and the server to be connected always supports this cipher suite, only the cipher suite having a higher priority than the cipher suite need be examined.

次に図8の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、暗号スイートを1つ指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその暗号スイートを保持していないと判断する。   Next, detailed description of FIG. 8 will be given. Here, the client transmits Client Hello specifying one cipher suite in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the cipher suite is not held.

(図8−(S1))クライアントは自らが保持する暗号スイートの優先順位情報を見て、優先順位1の暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」を指定してClient Helloを送信する。(図8−(S2))サーバは「TLS_RSA_WITH_RC4_128_MD5」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバがTLS_RSA_WITH_RC4_128_MD5」をサポートしていないことを知る。なお、この暗号スイートはサポートされていないものとして記憶しておく。(図8−(S3))そして通信を切断する。   (FIG. 8-(S1)) The client sees the priority order information of the cipher suite held by itself and designates “TLS_RSA_WITH_RC4_128_MD5”, which is the cipher suite of priority 1, and transmits Client Hello. (FIG. 8-(S2)) Since the server does not support "TLS_RSA_WITH_RC4_128_MD5", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support TLS_RSA_WITH_RC4_128_MD5. Note that this cipher suite is stored as not supported. (FIG. 8-(S3)) And communication is cut | disconnected.

(図8−(S4))次にクライアントは、優先順位2の暗号スイートである「TLS_RSA_WITH_RC4_128_SHA」を指定してClient Helloを送信する。(図8−(S5))サーバは「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。なお、この暗号スイートはサポートされていないものとして記憶しておく。(図8−(S6))そして通信を切断する。   (FIG. 8-(S4)) Next, a client transmits Client Hello by designating "TLS_RSA_WITH_RC4_128_SHA" which is a cipher suite of the priority order 2. (FIG. 8-(S5)) Since the server does not support "TLS_RSA_WITH_RC4_128_SHA", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_SHA”. Note that this cipher suite is stored as not supported. (FIG. 8-(S6)) And communication is cut | disconnected.

(図8−(S7))次にクライアントは、優先順位3の暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してClient Helloを送信する。   (FIG. 8- (S7)) Next, the client designates “TLS_RSA_WITH_AES_128_CBC_SHA”, which is a cipher suite of priority 3, and transmits Client Hello.

(図8−(S8))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Server Helloを返信する。これによってクライアントは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。なお、この暗号スイートはサポートされているものとして記憶しておいてもよいが、ここの説明では記憶しないものとする。(図8−(S9))そして通信を切断する。   (FIG. 8-(S8)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it returns Server Hello. As a result, the client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA”. This cipher suite may be stored as supported, but is not stored in the description here. (FIG. 8-(S9)) And communication is cut | disconnected.

なお、ここでは(図8−(S9))で通信を切断しているが、Server Helloを返信されてきた場合は、SSL/TLSネゴシエーションを完了してから、通信の切断を行ってもよい。また、SSL/TLSネゴシエーションを完了した場合は、通信を切断せずに、次の(図8−(S10))のClient Helloで再ネゴシエーションを行ってもよい。これ以降の図の説明でも、Server Helloが返信されてきた場合には、同様の処理が可能である。以降の図ではこの説明は割愛する。   Here, the communication is disconnected in (FIG. 8-(S <b> 9)). However, when Server Hello is returned, the communication may be disconnected after the SSL / TLS negotiation is completed. Further, when the SSL / TLS negotiation is completed, the negotiation may be re-negotiated at the next Client Hello ((S10) in FIG. 8) without disconnecting the communication. In the description of the subsequent figures, the same processing can be performed when Server Hello is returned. This description is omitted in the following figures.

但し、SSL/TLSネゴシエーションを完了すると公開鍵暗号処理で時間を要するので、好ましくない。   However, when SSL / TLS negotiation is completed, time is required for public key encryption processing, which is not preferable.

(図8−(S10))次にクライアントは、優先順位4の暗号スイートである「TLS_RSA_WITH_AES_256_CBC_SHA」を指定してClient Helloを送信する。(図8−(S11))サーバは「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、Server Helloを返信する。これによってクライアントは、サーバが「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしていることを知る。なお、この暗号スイートはサポートされているものとして記憶しておいてもよいが、ここの説明では記憶しないものとする。(図8−(S12))そして通信を切断する。   (FIG. 8-(S10)) Next, the client designates “TLS_RSA_WITH_AES_256_CBC_SHA”, which is a cipher suite of priority 4, and transmits Client Hello. (FIG. 8-(S11)) Since the server supports "TLS_RSA_WITH_AES_256_CBC_SHA", it returns Server Hello. As a result, the client knows that the server supports “TLS_RSA_WITH_AES_256_CBC_SHA”. This cipher suite may be stored as supported, but is not stored in the description here. (FIG. 8-(S12)) And communication is cut | disconnected.

以上の手順によって、クライアントは、自らがサポートする暗号スイートの内、「TLS_RSA_WITH_RC4_128_MD5」と「TLS_RSA_WITH_RC4_128_SHA」をサーバがサポートしないという「サーバがサポートしない暗号スイートの情報」を少なくとも記憶する。   Through the above procedure, the client stores at least “cipher suite information not supported by the server” that the server does not support “TLS_RSA_WITH_RC4_128_MD5” and “TLS_RSA_WITH_RC4_128_SHA” among the cipher suites that the client supports.

なお、ここでは説明を簡単に行うため、優先順位の高い順に暗号スイートを調査するように説明しているが、実際はどのような順番で調査しても構わない。   Here, in order to simplify the description, the explanation is made such that the cipher suites are investigated in the order of priority, but in actuality, any order may be used.

なお、図2、図7と同様に、これ以降の処理が連続して処理されるように図示しているが、ここで一端処理を止め、実際に暗号通信を行う場合に、これ以降の処理を行うとしてもよい。ここでは説明を簡単にするため、これ以降の処理も連続して行うものとする。   2 and 7, the subsequent processing is illustrated as being continuously processed. However, when the processing is stopped once and actual encrypted communication is performed, the subsequent processing is performed. May be performed. Here, in order to simplify the explanation, it is assumed that the subsequent processing is continuously performed.

またクライアントは、「サーバがサポートしない暗号スイートの情報」を記憶しておけば、次回からはサーバの暗号スイートの搭載情報を調査せずとも、「サーバがサポートしない暗号スイートの情報」を利用して、直ちに、次の(図8−(S13))の処理に進むことが可能となる。   In addition, if the client stores “information on cipher suites not supported by the server”, it will use “information on cipher suites not supported by the server” from the next time without investigating the installed information on the server's cipher suites. As a result, it is possible to immediately proceed to the next process (FIG. 8- (S13)).

(図8−((S13))次に、クライアントはサーバと実際にSSL/TLS暗号通信を行うため、利用する暗号スイートの選択を行う。優先順位1と2の暗号スイートをサーバがサポートしていないので、クライアントは優先順位3の暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を利用する暗号スイートとして選択する。   (FIG. 8-((S13)) Next, the client selects the cipher suite to be used in order to actually perform SSL / TLS cipher communication with the server.The server supports the cipher suites of priority levels 1 and 2. Therefore, the client selects the cipher suite using “TLS_RSA_WITH_AES_128_CBC_SHA”, which is the cipher suite of priority 3.

(図8−(S14))そしてクライアントはサーバに対して利用する暗号スイートを伝達するため、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloを送信する。(図8−(S15))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_128_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 8-(S14)) Then, the client transmits Client Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA" to transmit the cipher suite to be used to the server. (FIG. 8-(S15)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it specifies "TLS_RSA_WITH_AES_128_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_128_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started.

なお、サーバの暗号スイートの搭載状況を十分調査し、サーバが、「TLS_RSA_WITH_AES_256_CBC_SHA」より「TLS_RSA_WITH_AES_128_CBC_SHA」を優先しているという情報を得るか、またはサーバはクライアントの優先順位に従う、つまり上位に記載された暗号スイートを選択するという情報を得ている場合には、クライアントは「TLS_RSA_WITH_AES_128_CBC_SHA」と「TLS_RSA_WITH_AES_256_CBC_SHA」を指定したClient Helloを送信してもよい。但しこのような方法は時間を要すので好ましくない。この後の図でもこれは同じなので、これ以降の図では、この説明は割愛する。   It should be noted that the installation status of the cipher suite of the server is thoroughly investigated, and the server obtains information that “TLS_RSA_WITH_AES_128_CBC_SHA” is prioritized over “TLS_RSA_WITH_AES_256_CBC_SHA”, or the server follows the priority of the client, that is, is listed higher When information indicating that a cipher suite is selected is obtained, the client may transmit Client Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA” and “TLS_RSA_WITH_AES_256_CBC_SHA”. However, this method is not preferable because it takes time. Since this is the same in subsequent figures, this explanation is omitted in the subsequent figures.

図9は、本発明の実施の形態における機能ブロックの第2例を示す図であり、図8の機能ブロック図の一例でもある。また図10は、本発明の実施の形態におけるクライアント側のフローチャートの第2例を示す図であり、図9のクライアント1のフローチャートでもある。また、図11は、本発明の実施の形態におけるサーバ側のフローチャートの第2例を示す図であり、図9のサーバ2のフローチャートでもある。次にこの図9、図10、図11を用いて説明を行う。なお、この図9、図10、図11は、一部、図7の詳細説明にもなっている。   FIG. 9 is a diagram showing a second example of functional blocks in the embodiment of the present invention, and is also an example of the functional block diagram of FIG. FIG. 10 is a diagram showing a second example of the flowchart on the client side in the embodiment of the present invention, and is also the flowchart of the client 1 in FIG. FIG. 11 is a diagram showing a second example of the flowchart on the server side in the embodiment of the present invention, and is also the flowchart of the server 2 in FIG. Next, description will be made with reference to FIGS. 9, 10, and 11. 9, 10, and 11 are also partly described in detail in FIG. 7.

クライアント1は、ネットワークを介してサーバ2とSSL/TLS暗号通信を開始する。クライアント1は「クライアントがサポートする暗号スイートの優先順位情報」で、利用したい暗号スイートの優先順位付けを行っており、搭載情報800(搭載状況記憶手段または暗号方式格納部)で、その各々の暗号スイートに対して、サーバ2でサポートされていない暗号スイートをチェックする仕組みになっている。なお、サポートされている暗号スイートは、サポートされるものとしてチェックしても構わないが、ここでは説明を簡単にするため、サポートされない暗号スイートのみをチェックするものとする。またここでは、搭載情報800(搭載状況記憶手段)は、各々の暗号スイート毎に記憶する仕組みとしているが、記憶手段はこれに限られるものではなく、サポートされない暗号スイートの番号を覚えるなど、その記憶手段には様々な方法がある。   The client 1 starts SSL / TLS encrypted communication with the server 2 via the network. The client 1 assigns priorities to the cipher suites that it wants to use with “priority information on cipher suites supported by the client”, and the cipher suite information 800 (installation status storage means or encryption method storage unit) It is a mechanism for checking a cipher suite not supported by the server 2 for the suite. Note that the supported cipher suites may be checked as supported, but here, in order to simplify the description, only the unsupported cipher suites are checked. Here, the mounting information 800 (loading status storage means) is stored for each cipher suite, but the storage means is not limited to this, and the number of unsupported cipher suites is remembered. There are various storage means.

なおここでは、搭載情報800(搭載状況記憶手段)で、サーバの暗号スイートの搭載情報を記憶するようにしているが、このような記憶領域を特別に設けずに、「クライアントがサポートする暗号スイートの優先順位情報」に、サーバの暗号スイートの搭載情報も記憶するとすることも可能である。しかし説明を簡単にするために、これ以降の図でも、搭載情報800(搭載状況記憶手段)で、サーバの暗号スイートの搭載情報を記憶するものとする。但し、図37、図38では、「クライアントがサポートする暗号スイートの優先順位情報」に、サーバの暗号スイートの搭載情報を記憶する方法を説明する。   Here, the installation information 800 (installation status storage means) stores the installation information of the encryption suite of the server. However, without providing such a storage area, the “encryption suite supported by the client” is used. It is also possible to store the installation information of the cipher suite of the server in the “priority information”. However, in order to simplify the explanation, it is assumed that the mounting information of the server's cipher suite is stored in the mounting information 800 (mounting status storage means) in the subsequent figures. However, in FIGS. 37 and 38, a method for storing the cipher suite installation information of the server in “priority information of cipher suites supported by the client” will be described.

また、クライアント1には、サーバの暗号スイートの搭載状況を調査するにあたって、どの暗号スイートを調査するかを示す「現在のカウンタ」710が設けてある。「現在のカウンタ」710には暗号スイートの優先順位の番号を入力するようになっており、クライアント1は、「現在のカウンタ」710に設定された番号を優先順位とする暗号スイートを調査する仕組みとなっている。   Further, the client 1 is provided with a “current counter” 710 indicating which cipher suite is to be investigated when investigating the installation status of the cipher suite of the server. The “current counter” 710 is inputted with the priority number of the cipher suite, and the client 1 investigates the cipher suite having the priority set with the number set in the “current counter” 710. It has become.

「現在のカウンタ」710に0が代入された場合には、クライアント1はサーバの暗号スイートの搭載状況を調査せず、通常のSSL/TLSネゴシエーションを行い、SSL/TLS暗号通信を行うようになっている。なおここでは、「現在のカウンタ」710の初期値は1とする。   When 0 is assigned to the “current counter” 710, the client 1 does not check the installation status of the cipher suite of the server, performs normal SSL / TLS negotiation, and performs SSL / TLS cipher communication. ing. Here, the initial value of the “current counter” 710 is 1.

(図10−(S1))はじめに、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。はじめは、「現在のカウンタ」710の値が1なので、「TLS_RSA_WITH_RC4_128_MD5」という情報が読み出される。   (FIG. 10-(S <b> 1)) First, the Client Hello generation unit 400 (part of the cipher suite investigation unit) encrypts the “priority information on cipher suites supported by the client” and the “current counter” 710 held by itself. Read suite information. Initially, since the value of “current counter” 710 is 1, information “TLS_RSA_WITH_RC4_128_MD5” is read.

(図10−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_RC4_128_MD5」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 10-(S <b> 2)) The client hello generating unit 400 (a part of the cipher suite examining means) generates a client hello message specifying “TLS_RSA_WITH_RC4_128_MD5” as the cipher suite, and sends this to the data transmitting unit 110.

(図10−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 10-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図10−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 10-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S3))Client Helloメッセージには暗号スイートして「TLS_RSA_WITH_RC4_128_MD5」が指定されているが、これをサーバ2はサポートしていないので、Client Hello受信部410がhandshake_failureメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S3)) “TLS_RSA_WITH_RC4_128_MD5” is specified as a cipher suite in the Client Hello message, but since the server 2 does not support this, the Client Hello receiving unit 410 generates a handshake_failure message, This is sent to the data transmission unit 210.

(図11−(S4))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、handshake_failureメッセージを送信する。   (FIG. 11-(S4)) The data transmission part 210 transmits a handshake_failure message with respect to the client 1 via the network control apparatus 200. FIG.

(図11−(S5))その後、Client Hello受信部410は、クライアント1との通信を切断し、サーバ2は再びクライアント1からのClient Helloメッセージの受信待ち状態になる。   (FIG. 11-(S5)) Thereafter, the client hello receiving unit 410 disconnects communication with the client 1, and the server 2 again enters a state of waiting for receiving a client hello message from the client 1.

(図10−(S4))クライアント1のデータ受信部120は、サーバ2が送信したhandshake_failureメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、handshake_failureメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 10-(S <b> 4)) The data receiving unit 120 of the client 1 receives the handshake_failure message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the handshake_failure message to the Server Hello receiving unit 500 (part of the cipher suite checking means) that processes (interprets) the handshake_failure message.

(図10−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 10- (S5)) Server Hello receiving section 500 (part of the cipher suite checking means) checks whether or not the received message is a handshake_failure message.

(図10−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、handshake_failureメッセージを受け取ったので、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_RC4_128_MD5」をサポートしないことを記憶する。   (FIG. 10- (S6)) Server Hello receiving unit 500 (part of the cipher suite checking means) received the handshake_failure message, so server 2 supports “TLS_RSA_WITH_RC4_128_MD5” in mounting information 800 (mounting status storage means). Remember not to.

(図10−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 10-(S <b> 7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the “current counter” 710.

(図10−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4)+1
か否かをチェックする。ここで「現在のカウンタ」710の値は2なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(FIG. 10- (S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of “current counter” 710 = MAX (4 in this figure) +1
Check whether or not. Here, since the value of the “current counter” 710 is 2, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).

(図10−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が2なので、「TLS_RSA_WITH_RC4_128_SHA」という情報が読み出される。   (FIG. 10- (S1)) Next, the client hello generating unit 400 (part of the cipher suite investigation means) holds “priority information on cipher suites supported by the client” and “current counter” 710 held by itself. Read cipher suite information. Since the value of the “current counter” 710 is 2, information “TLS_RSA_WITH_RC4_128_SHA” is read.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_RC4_128_MD5」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、(図10−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_RC4_128_SHA」をサポートしないことを記憶する。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_RC4_128_MD5” for both the client 1 and the server 2. Since the server 2 does not support “TLS_RSA_WITH_RC4_128_SHA” (FIG. 10- (S6)), the Server Hello receiving unit 500 (part of the cipher suite investigation means) stores the server information in the installation information 800 (installation status storage means). 2 stores “TLS_RSA_WITH_RC4_128_SHA” is not supported.

(図10−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 10-(S <b> 7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the “current counter” 710.

(図10−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は3なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図10−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が3なので、「TLS_RSA_WITH_AES_128_CBC_SHA」という情報が読み出される。
(FIG. 10- (S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 3, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 10- (S1)) Next, the client hello generating unit 400 (part of the cipher suite investigation means) holds “priority information on cipher suites supported by the client” and “current counter” 710 held by itself. Read cipher suite information. Since the value of “current counter” 710 is 3, information “TLS_RSA_WITH_AES_128_CBC_SHA” is read.

(図10−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 10- (S2)) The client hello generating unit 400 (part of the cipher suite examining means) generates a client hello message specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite, and sends this to the data transmitting unit 110.

(図10−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 10-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図10−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 10-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図10−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 10-(S <b> 4)) The data reception unit 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted from the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図10−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、搭載情報800(搭載状況記憶手段)には何も処理しない。   (FIG. 10- (S5)) Server Hello receiving section 500 (part of the cipher suite checking means) checks whether or not the received message is a handshake_failure message. The Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the mounting information 800 (mounting status storage means) because the received message is not a handshake_failure message.

(図10−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 10-(S <b> 7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the “current counter” 710.

(図10−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は4なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図11−(S9))なお、サーバ2はクライアント1からのメッセージ受信待ち状態であったが、クライアント1から通信を切断されたので、このメッセージ受信待ち状態を抜け、Client Helloの受信待ち状態になる。また、図11のフローチャートでは分かりやすいのように(S9)と(S10)を分けて図示しているが、実際は、(S9)のメッセージ受信処理の中で、(S10)の通信の切断処理が実行される。
(FIG. 10- (S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 4, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 11-(S <b> 9)) Although the server 2 is in a state waiting for receiving a message from the client 1, communication has been cut off from the client 1. become. In addition, in the flowchart of FIG. 11, (S9) and (S10) are illustrated separately for easy understanding, but actually, the communication disconnection process of (S10) is performed in the message reception process of (S9). Executed.

(図10−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が4なので、「TLS_RSA_WITH_AES_256_CBC_SHA」という情報が読み出される。   (FIG. 10- (S1)) Next, the client hello generating unit 400 (part of the cipher suite investigation means) holds “priority information on cipher suites supported by the client” and “current counter” 710 held by itself. Read cipher suite information. Since the value of the “current counter” 710 is 4, the information “TLS_RSA_WITH_AES_256_CBC_SHA” is read.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_AES_128_CBC_SHA」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートするので、搭載情報800(搭載状況記憶手段)には何も処理しない。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_AES_128_CBC_SHA” for both the client 1 and the server 2. Since the server 2 supports “TLS_RSA_WITH_AES_256_CBC_SHA”, nothing is processed in the mounting information 800 (mounting status storage unit).

(図10−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 10-(S <b> 7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the “current counter” 710.

(図10−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。
(FIG. 10- (S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not.

(図10−(S9))ここで「現在のカウンタ」710の値は5なので、(つまり、上記等式が成り立つので)Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710に0を設定し、Client Hello生成部400を呼び出す(つまり(A)に進む)。
(図10−(S10))次に、Client Hello生成部400は、「現在のカウンタ」710が0の場合、搭載情報800(搭載状況記憶手段)より、利用する暗号スイートを選択する。具体的には以下のように選定する。(1)Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位1の「TLS_RSA_WITH_RC4_128_MD5」がサポートされていないことを知る。(2)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位2の「TLS_RSA_WITH_RC4_128_SHA」がサポートされていないことを知る。(3)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位3の「TLS_RSA_WITH_AES_128_CBC_SHA」がサポートされていることを知る。そこで、Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を選択する。
(FIG. 10-(S9)) Here, since the value of the "current counter" 710 is 5, (that is, the above equation holds), the Server Hello receiving unit 500 (part of the cipher suite checking means) No. "710 is set to 0, and the Client Hello generating unit 400 is called (that is, the process proceeds to (A)).
(FIG. 10-(S10)) Next, when the "current counter" 710 is 0, the Client Hello generating unit 400 selects a cipher suite to be used from the mounting information 800 (mounting status storage unit). Specifically, the selection is as follows. (1) The client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_MD5” of priority 1 is not supported. (2) Next, the client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_SHA” of priority 2 is not supported. (3) Next, the client hello generating unit 400 knows that “TLS_RSA_WITH_AES_128_CBC_SHA” with priority 3 is supported from the mounting information 800 (mounting status storage means). Therefore, the client hello generating unit 400 selects “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite.

なおここでは、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)の情報を優先順位の高い方から選択するとして説明したが、暗号スイートの選択方法はこれに限られるものではない。逆に優先順位の低い方から順番に見て、チェックされている1つ前の暗号スイートを選択するとしてもよい。このように、搭載情報800(搭載状況記憶手段)から暗号スイートの選択方法する方法は様々な手段が存在する。   Here, the client hello generating unit 400 has been described as selecting the information of the mounting information 800 (mounting status storage unit) from the one with the highest priority, but the method of selecting the cipher suite is not limited to this. Conversely, it may be possible to select the previous cipher suite that is checked in order from the lowest priority. As described above, there are various methods for selecting a cipher suite from the mounting information 800 (mounting status storage unit).

(図10−(S11))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 10- (S11)) The client hello generating unit 400 generates a client hello message specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as a cipher suite, and sends this to the data transmitting unit 110.

(図10−(S12))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 10-(S12)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図10−(S13))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 10-(S13)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図10−(S13))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 10- (S13)) The data receiving unit 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図10−(S14))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710が0の場合、受け取ったメッセージをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 10- (S14)) The Server Hello receiving unit 500 (part of the cipher suite checking means) sends the received message to the SSL negotiation processing unit 600 when the “current counter” 710 is 0 (that is, (B Go to)). Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図10−(S15))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 10-(S15)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図10−(S16))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 10-(S16)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message to the server 2 via the network control apparatus 100.

(図10−(S17))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる
(図11−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。
(FIG. 10- (S17)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2. (FIG. 11- (S9)) The data receiving unit 220 of the server 2 transmits the Client Key Exchange / Change transmitted by the client 1. A Cipher Spec / Finished message is received via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図11−(S11))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S11)) SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図11−(S12))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 11-(S12)) The data transmission part 210 transmits a Change Cipher Spec / Finished message to the client 1 via the network control apparatus 200.

機能ブロック図には図示していないが、この後は、サーバ2は作成した共通鍵を使ってクライアント1と暗号通信を行う。なお、暗号通信とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Although not shown in the functional block diagram, the server 2 thereafter performs cryptographic communication with the client 1 using the created common key. The encryption communication is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図10−(S17))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 10-(S17)) The data receiver 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted by the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図10−(S18))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 10-(S18)) The SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

機能ブロック図には図示していないが、この後は、クライアント1は作成した共通鍵を使ってサーバ2と暗号通信を行う。   Although not shown in the functional block diagram, after this, the client 1 performs cryptographic communication with the server 2 using the created common key.

図12は、本発明の実施の形態におけるハードウェア構成の第2例を示す図であり、図9のハードウェア構成図の一例でもある。クライアント1は、プログラム処理を実行するCPU10、一時的な記憶メモリであるRAM20、書き換え可能な不揮発性メモリであるHDD(ハードディスク)30、書き換え不可の不揮発性メモリであるROM40とネットワークのデータ送受信を実行するMAC/PHY50で構成されている。一方、サーバ2は、プログラム処理を実行するCPU11、一時的な記憶メモリであるRAM21、書き換え不可の不揮発性メモリであるROM41とネットワークのデータ送受信を実行するMAC/PHY51で構成されている。また、クライアント1とサーバ2はMAC/PHY50とMAC/PHY51を介してネットワークで接続されている。   FIG. 12 is a diagram illustrating a second example of the hardware configuration according to the embodiment of the present invention, and is also an example of the hardware configuration diagram of FIG. 9. The client 1 executes data transmission / reception of the network with the CPU 10 that executes program processing, the RAM 20 that is a temporary storage memory, the HDD (hard disk) 30 that is a rewritable nonvolatile memory, and the ROM 40 that is a non-rewritable nonvolatile memory. MAC / PHY50. On the other hand, the server 2 includes a CPU 11 that executes program processing, a RAM 21 that is a temporary storage memory, a ROM 41 that is a non-rewritable nonvolatile memory, and a MAC / PHY 51 that executes network data transmission / reception. The client 1 and the server 2 are connected to each other via a network via a MAC / PHY 50 and a MAC / PHY 51.

はじめにクライアント1のハード構成に関して説明を行う。図3に示したクライアント1の各処理部は、CPU10、及びRAM20で実行される。   First, the hardware configuration of the client 1 will be described. Each processing unit of the client 1 illustrated in FIG. 3 is executed by the CPU 10 and the RAM 20.

「現在のカウンタ」710、及び搭載情報800(搭載状況記憶手段)は、一時的な記憶メモリであるRAM20に配置しているが、書き換え可能なメモリであれば良く、HDD(ハードディスク)30やフラッシュROMなどに配置してもよい。   The “current counter” 710 and the mounting information 800 (mounting status storage means) are arranged in the RAM 20, which is a temporary storage memory, but may be any rewritable memory, such as the HDD (hard disk) 30 or the flash. You may arrange | position to ROM etc.

次に「クライアントがサポートする暗号スイートの優先順位情報」であるが、これは書き換え可能な不揮発性メモリに配置するのが好ましい。本図では書き換え可能な不揮発性メモリとしてHDD(ハードディスク)30を利用しているが、フラッシュROMなど書き換え可能な不揮発性メモリであれば、種類は何であっても構わない。「クライアントがサポートする暗号スイートの優先順位情報」を一時的な記憶メモリであるRAM20に配置しても動作はするものの、毎回、優先順位を登録する手間を要するので好ましくない。   Next, “priority information of cipher suites supported by the client” is preferably arranged in a rewritable nonvolatile memory. In this figure, an HDD (hard disk) 30 is used as a rewritable nonvolatile memory, but any type of rewritable nonvolatile memory such as a flash ROM may be used. Although operation is possible even if “priority information on cipher suites supported by the client” is arranged in the RAM 20 which is a temporary storage memory, it is not preferable because it takes time to register the priority every time.

なお、「クライアントがサポートする暗号スイートの優先順位情報」が実装時に決定され、実装後は優先順位の変更をしない場合は、書き換え不可の不揮発性メモリであるROM40などに配置してもよい。   Note that “priority information on cipher suites supported by the client” is determined at the time of mounting, and if the priority is not changed after mounting, the cipher suites may be arranged in the ROM 40, which is a non-rewritable nonvolatile memory.

「クライアントがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。説明が紛らしなるのを避けるため、クライアント1の機能ブロック図には、「クライアントがサポートする暗号スイート」を示していないが、サーバ2の機能ブロック図には図示しているように、実際の暗号通信では必要となるものである。なおここでは、「クライアントがサポートする暗号スイート」をROM40に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回サーバからダウンロードして利用する場合は、RAM20のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the client” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. In order to avoid confusing the description, the functional block diagram of the client 1 does not show “cipher suites supported by the client”, but as shown in the functional block diagram of the server 2, This is necessary for cryptographic communication. Here, “encryption suite supported by the client” is arranged in the ROM 40, but the present invention is not limited to this. When the cipher suite program is downloaded from the server and used every time, it can be arranged in a volatile memory such as the RAM 20.

MAC/PHY50は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置100を実現するものである。   The MAC / PHY 50 is hardware that controls network communication, and implements the network control device 100.

次にサーバ2のハード構成に関して説明を行う。図3に示したサーバ2の各処理部は、CPU11、及びRAM21で実行される。   Next, the hardware configuration of the server 2 will be described. Each processing unit of the server 2 illustrated in FIG. 3 is executed by the CPU 11 and the RAM 21.

「サーバがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。なおここでは、「サーバがサポートする暗号スイート」をROM41に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回他のサーバからダウンロードして利用する場合は、RAM21のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the server” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. Here, “encryption suite supported by the server” is arranged in the ROM 41, but the present invention is not limited to this. When the cipher suite program is downloaded from another server and used every time, it can be arranged in a volatile memory such as the RAM 21.

MAC/PHY51は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置200を実現するものである。   The MAC / PHY 51 is hardware that controls network communication, and implements the network control device 200.

図13は、本発明の実施の形態におけるSSL/TLS暗号通信の第2例を示すシーケンス図である。   FIG. 13 is a sequence diagram showing a second example of SSL / TLS encryption communication in the embodiment of the present invention.

(S13−(S1))クライアントは、サーバがサポートする暗号スイートの搭載状況を調査することで、クライアントがサポートする暗号スイートの内、以下の暗号スイートをサーバがサポートすることを知る。
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(S13−(S2))クライアントは、暗号スイートの選択において、自らが保持する暗号スイートの内、優先順位の高い暗号スイートを選択しようとするが、その際、上記暗号スイートに該当しないものは選択せず、該当するものが出現するまで優先順位を下げる。
(S13- (S1)) The client knows that the server supports the following cipher suites among the cipher suites supported by the client by examining the installation status of the cipher suites supported by the server.
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(S13- (S2)) In selecting a cipher suite, the client tries to select a cipher suite having a higher priority among cipher suites held by the client, but at this time, a client that does not correspond to the cipher suite is selected. Instead, lower the priority until the appropriate item appears.

クライアントの優先順位1、2の暗号スイートは、上記暗号スイートに該当しないので選択されない。クライアントは下記に記述する、優先順位3の暗号スイートを選択する。
TLS_RSA_WITH_AES_128_CBC_SHA
なお図1で説明したように、同じ優先順位の暗号スイートは1つしかないケースで説明を行っているが、本図を含めてすべての図で、同じ優先順位の暗号スイートはいくつあっても構わない。サーバがサポートする同じ優先順位の暗号スイートが複数あれば、好みで1つに絞ってもよいし、複数、またはすべての暗号スイートを選択してもよい。複数の暗号スイートを選択する場合は、複数の暗号スイートを指定するClient Helloを送信することになる。説明を簡単にするために、ここでは、同じ優先順位の暗号スイートは1つしかないものとする。
The cipher suites with the client priorities 1 and 2 are not selected because they do not correspond to the cipher suites. The client selects a cipher suite with priority 3 as described below.
TLS_RSA_WITH_AES_128_CBC_SHA
As described with reference to FIG. 1, the explanation is given in the case where there is only one cipher suite having the same priority. However, in all the figures including this figure, any number of cipher suites having the same priority may be used. I do not care. If there are a plurality of cipher suites of the same priority supported by the server, the cipher suite may be narrowed down to one as desired, or a plurality or all cipher suites may be selected. When selecting a plurality of cipher suites, Client Hello specifying a plurality of cipher suites is transmitted. For the sake of simplicity, it is assumed here that there is only one cipher suite with the same priority.

(S13−(S3))クライアントがこの選択した暗号スイートを指定して、サーバにClient Helloを送信する。(4)サーバはこの指定された暗号スイートを保持するので、この指定された暗号スイートでクライアントにServer Helloを送信する。図示していないが、この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (S13- (S3)) The client designates the selected cipher suite and transmits Client Hello to the server. (4) Since the server holds the designated cipher suite, the server transmits Server Hello to the client using the designated cipher suite. Although not shown, SSL / TLS negotiation is correctly executed after this, and common key encryption communication in SSL / TLS encryption communication is started.

図14は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第4例を示すシーケンス図であり、図13の「サーバがサポートする暗号スイートの搭載状況を調査する」方法の一例を示すシーケンス図でもある。図8とほぼ同じシーケンスである。これも「サーバの暗号スイートの搭載情報を調査する」フェーズと「利用する暗号スイートを選択する」フェーズを明確に分離するものである。   FIG. 14 is a sequence diagram showing a fourth example of the method “investigating the installation status of the cipher suites supported by the server” in the embodiment of the present invention, and FIG. 14 shows the installation status of the cipher suites supported by the server. It is also a sequence diagram showing an example of a method of “investigating”. The sequence is almost the same as in FIG. This also clearly separates the phase of “investigating on-board information of cipher suites on the server” and the phase of “selecting cipher suites to use”.

図8では、クライアントがサポートする暗号スイート内、サーバがサポートしない暗号スイートを調査しているが、図14では、クライアントがサポートする暗号スイート内、サーバがサポートする暗号スイートを調査している。すべての暗号スイートを調査すると、時間を要する欠点はあるものの「クライアントがサポートする暗号スイートの優先順位情報」が変更になった場合に、再度調査する必要がなくなる。例えば、クライアント装置でユーザが「クライアントがサポートする暗号スイートの優先順位情報」を変更する場合に都合がよい。   In FIG. 8, the cipher suites supported by the client and the cipher suites not supported by the server are investigated. In FIG. 14, the cipher suites supported by the client and the cipher suites supported by the server are investigated. When all cipher suites are examined, although there is a time-consuming drawback, if the "priority information of cipher suites supported by the client" is changed, there is no need to investigate again. For example, it is convenient when the user changes “priority information on cipher suites supported by the client” on the client device.

また、「クライアントがサポートする暗号スイートの優先順位情報」が複数ある場合にも、図14の手法が適している。例えば、同じサーバに接続する場合であっても、認証にはより強力な処理の重い暗号スイートを優先し、通常の通信にはパフォーマンスのよい軽い暗号スイートを優先させたい場合がある。このような場合でも、クライアントがサポートするすべての暗号スイートをサーバがサポートするか否かを一度調査すれば、それぞれの場合で、選択すべき暗号スイートが分かるので手間が省けてよい。   The method shown in FIG. 14 is also suitable when there are a plurality of “priority information on cipher suites supported by the client”. For example, even when connecting to the same server, there is a case where priority is given to a cipher suite having a stronger process for authentication and priority is given to a light cipher suite having good performance for normal communication. Even in such a case, once the server determines whether or not the server supports all the cipher suites supported by the client, the cipher suite to be selected can be found in each case, so that labor can be saved.

なお、ここではクライアントがサポートするすべての暗号スイートをサーバがサポートするか否かを調査するとしているが、一部の暗号スイートを調査するとしてもよい。クライアント装置で暗号スイートの優先順位付けをする場合に、どのような場合であっても利用されない暗号スイートがある場合は、これを除外するのは合理的である。またどのような場合であっても、優先順位が高い暗号スイートがあり、接続するサーバがこの暗号スイートを必ずサポートする場合は、この暗号スイートより優先順位が高い暗号スイートだけを調査すればよい。   Note that although it is assumed here that the server supports all cipher suites supported by the client, some cipher suites may be investigated. When prioritizing cipher suites on a client device, if there are cipher suites that are not used in any case, it is reasonable to exclude them. In any case, if there is a cipher suite having a high priority and the server to be connected always supports this cipher suite, only the cipher suite having a higher priority than the cipher suite need be examined.

次に図14の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、暗号スイートを1つ指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその暗号スイートを保持していないと判断する。   Next, a detailed description of FIG. 14 will be given. Here, the client transmits Client Hello specifying one cipher suite in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the cipher suite is not held.

(図14−(S1))クライアントは自らが保持する暗号スイートの優先順位情報を見て、優先順位1の暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」を指定してClient Helloを送信する。(図14−(S2))サーバは「TLS_RSA_WITH_RC4_128_MD5」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバがTLS_RSA_WITH_RC4_128_MD5」をサポートしていないことを知る。なお、この暗号スイートはサポートされていないものとして記憶しておいてもよいが、ここの説明では記憶しないものとする。(S13−(S3))そして通信を切断する。   (FIG. 14-(S1)) The client looks at the priority order information of the cipher suite held by itself and designates “TLS_RSA_WITH_RC4_128_MD5”, which is the cipher suite of priority 1, and transmits Client Hello. (FIG. 14-(S2)) Since the server does not support "TLS_RSA_WITH_RC4_128_MD5", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support TLS_RSA_WITH_RC4_128_MD5. Although this cipher suite may be stored as not supported, it is not stored in the description here. (S13- (S3)) And the communication is disconnected.

(図14−(S4))次にクライアントは、優先順位2の暗号スイートである「TLS_RSA_WITH_RC4_128_SHA」を指定してClient Helloを送信する。(図14−(S5))サーバは「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。なお、この暗号スイートはサポートされていないものとして記憶しておいてもよいが、ここの説明では記憶しないものとする。(S13−(S6))そして通信を切断する。   (FIG. 14-(S4)) Next, a client transmits Client Hello by designating "TLS_RSA_WITH_RC4_128_SHA" which is a cipher suite of priority 2. (FIG. 14-(S5)) Since the server does not support "TLS_RSA_WITH_RC4_128_SHA", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_SHA”. Although this cipher suite may be stored as not supported, it is not stored in the description here. (S13- (S6)) and the communication is disconnected.

(S13−(S7))次にクライアントは、優先順位3の暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してClient Helloを送信する。   (S13- (S7)) Next, the client designates “TLS_RSA_WITH_AES_128_CBC_SHA”, which is a cipher suite of priority 3, and transmits Client Hello.

(S13−(S8))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Server Helloを返信する。これによってクライアントは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。なお、この暗号スイートはサポートされているものとして記憶しておく。   (S13- (S8)) Since the server supports “TLS_RSA_WITH_AES_128_CBC_SHA”, it returns Server Hello. As a result, the client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA”. Note that this cipher suite is stored as being supported.

(S13−(S9))そして通信を切断する。   (S13- (S9)) And the communication is disconnected.

(S13−(S10))次にクライアントは、優先順位4の暗号スイートである「TLS_RSA_WITH_AES_256_CBC_SHA」を指定してClient Helloを送信する。   (S13- (S10)) Next, the client designates “TLS_RSA_WITH_AES_256_CBC_SHA”, which is a cipher suite of priority 4, and transmits Client Hello.

(S13−(S11))サーバは「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、Server Helloを返信する。これによってクライアントは、サーバが「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしていることを知る。なお、この暗号スイートはサポートされているものとして記憶しておく。   (S13- (S11)) Since the server supports “TLS_RSA_WITH_AES_256_CBC_SHA”, it returns Server Hello. As a result, the client knows that the server supports “TLS_RSA_WITH_AES_256_CBC_SHA”. Note that this cipher suite is stored as being supported.

(S13−(S12))そして通信を切断する。   (S13- (S12)) and the communication is disconnected.

以上の手順によって、クライアントは、自らがサポートする暗号スイートの内、「TLS_RSA_WITH_AES_128_CBC_SHA」と「TLS_RSA_WITH_AES_256_CBC_SHA」をサーバがサポートするという「サーバとクライアントが共にサポートする暗号スイートの情報」を少なくとも記憶する。   Through the above procedure, the client stores at least “TLS_RSA_WITH_AES_128_CBC_SHA” and “TLS_RSA_WITH_AES_256_CBC_SHA”, “cipher suite information supported by both server and client” among cipher suites supported by the client.

なお、ここでは説明を簡単に行うため、優先順位の高い順に暗号スイートを調査するように説明しているが、実際はどのような順番で調査しても構わない。   Here, in order to simplify the description, the explanation is made such that the cipher suites are investigated in the order of priority, but in actuality, any order may be used.

なお、図2、図7、図8と同様に、これ以降の処理が連続して処理されるように図示しているが、ここで一端処理を止め、実際に暗号通信を行う場合に、これ以降の処理を行うとしてもよい。ここでは説明を簡単にするため、これ以降の処理も連続して行うものとする。   2, 7, and 8, the subsequent processing is illustrated as being continuously processed. However, when the processing is stopped at this point and actual encrypted communication is performed, this processing is performed. Subsequent processing may be performed. Here, in order to simplify the explanation, it is assumed that the subsequent processing is continuously performed.

またクライアントは、「サーバとクライアントが共にサポートする暗号スイートの情報」を記憶しておけば、次回からはサーバの暗号スイートの搭載情報を調査せずとも、「サーバとクライアントが共にサポートする暗号スイートの情報」を利用して、直ちに、次の(S13−(S13))の処理に進むことが可能となる。   In addition, if the client stores “cipher suite information supported by both the server and the client”, the next time the client does not investigate the installation information of the server's cipher suite, the “cipher suite supported by both the server and the client” It is possible to immediately proceed to the next processing of (S13- (S13)) using the “information”.

(S13−(S13))次に、クライアントはサーバと実際にSSL/TLS暗号通信を行うため、利用する暗号スイートの選択を行う。サーバがサポートする暗号スイートの内、クライアントで最も優先順位の高い暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を利用する暗号スイートとして選択する。   (S13- (S13)) Next, since the client actually performs SSL / TLS encryption communication with the server, the client selects a cipher suite to be used. Among the cipher suites supported by the server, “TLS_RSA_WITH_AES_128_CBC_SHA”, which is the cipher suite with the highest priority in the client, is selected as the cipher suite.

(S13−(S14))そしてクライアントはサーバに対して利用する暗号スイートを伝達するため、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloを送信する。(S13−(S15))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_128_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (S13- (S14)) Then, the client transmits Client Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA" in order to transmit the cipher suite to be used to the server. (S13- (S15)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it designates "TLS_RSA_WITH_AES_128_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_128_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started.

図15は、本発明の実施の形態における機能ブロックの第3例を示す図であり、図14の機能ブロック図の一例でもある。また図16は、本発明の実施の形態におけるクライアント側のフローチャートの第3例を示す図であり、図15のクライアント1のフローチャートでもある。なお、図15のサーバ2のフローチャートは図11と同様である。次にこの図15、図16、図11を用いて説明を行う。   FIG. 15 is a diagram showing a third example of functional blocks in the embodiment of the present invention, and is also an example of the functional block diagram of FIG. FIG. 16 is a diagram showing a third example of the flowchart on the client side in the embodiment of the present invention, and is also the flowchart of the client 1 in FIG. The flowchart of the server 2 in FIG. 15 is the same as that in FIG. Next, description will be made with reference to FIGS. 15, 16, and 11.

クライアント1は、ネットワークを介してサーバ2とSSL/TLS暗号通信を開始する。クライアント1は「クライアントがサポートする暗号スイートの優先順位情報」で、利用したい暗号スイートの優先順位付けを行っており、搭載情報800(搭載状況記憶手段)で、その各々の暗号スイートに対して、サーバ2でサポートされている暗号スイートをチェックする仕組みになっている。なお、サポートされていない暗号スイートは、サポートされていないものとしてチェックしても構わないが、ここでは説明を簡単にするため、サポートされる暗号スイートのみをチェックするものとする。またここでは、搭載情報800(搭載状況記憶手段)は、各々の暗号スイート毎に記憶する仕組みとしているが、記憶手段はこれに限られるものではなく、サポートされない暗号スイートの番号を覚えるなど、その記憶手段には様々な方法がある。   The client 1 starts SSL / TLS encrypted communication with the server 2 via the network. The client 1 assigns the priorities of the cipher suites that the client 1 wants to use with the “priority information of cipher suites supported by the client”, and the installation information 800 (installation status storage means) The cipher suite supported by the server 2 is checked. Note that unsupported cipher suites may be checked as being unsupported, but here, in order to simplify the description, only supported cipher suites are checked. Here, the mounting information 800 (loading status storage means) is stored for each cipher suite, but the storage means is not limited to this, and the number of unsupported cipher suites is remembered. There are various storage means.

また、クライアント1には、サーバの暗号スイートの搭載状況を調査するにあたって、どの暗号スイートを調査するかを示す「現在のカウンタ」710が設けてある。「現在のカウンタ」710には暗号スイートの優先順位の番号を入力するようになっており、クライアント1は、「現在のカウンタ」710に設定された番号を優先順位とする暗号スイートを調査する仕組みとなっている。   Further, the client 1 is provided with a “current counter” 710 indicating which cipher suite is to be investigated when investigating the installation status of the cipher suite of the server. The “current counter” 710 is inputted with the priority number of the cipher suite, and the client 1 investigates the cipher suite having the priority set with the number set in the “current counter” 710. It has become.

「現在のカウンタ」710に0が代入された場合には、クライアント1はサーバの暗号スイートの搭載状況を調査せず、通常のSSL/TLSネゴシエーションを行い、SSL/TLS暗号通信を行うようになっている。なおここでは、「現在のカウンタ」710の初期値は1とする。   When 0 is assigned to the “current counter” 710, the client 1 does not check the installation status of the cipher suite of the server, performs normal SSL / TLS negotiation, and performs SSL / TLS cipher communication. ing. Here, the initial value of the “current counter” 710 is 1.

(図16−(S1))はじめに、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。はじめは、「現在のカウンタ」710の値が1なので、「TLS_RSA_WITH_RC4_128_MD5」という情報が読み出される。   (FIG. 16-(S <b> 1)) First, the client hello generating unit 400 (part of the cipher suite investigation means) encrypts the “cipher suite priority information supported by the client” and the “current counter” 710 held by itself. Read suite information. Initially, since the value of “current counter” 710 is 1, information “TLS_RSA_WITH_RC4_128_MD5” is read.

(図16−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_RC4_128_MD5」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 16-(S <b> 2)) The client hello generating unit 400 (part of the cipher suite examining unit) generates a client hello message specifying “TLS_RSA_WITH_RC4_128_MD5” as the cipher suite, and sends this to the data transmitting unit 110.

(図16−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 16-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図16−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 16-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S3))Client Helloメッセージには暗号スイートして「TLS_RSA_WITH_RC4_128_MD5」が指定されているが、これをサーバ2はサポートしていないので、Client Hello受信部410がhandshake_failureメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S3)) “TLS_RSA_WITH_RC4_128_MD5” is specified as a cipher suite in the Client Hello message, but since the server 2 does not support this, the Client Hello receiving unit 410 generates a handshake_failure message, This is sent to the data transmission unit 210.

(図11−(S4))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、handshake_failureメッセージを送信する。   (FIG. 11-(S4)) The data transmission part 210 transmits a handshake_failure message with respect to the client 1 via the network control apparatus 200. FIG.

(図11−(S5))その後、Client Hello受信部410は、クライアント1との通信を切断し、サーバ2は再びクライアント1からのClient Helloメッセージの受信待ち状態になる。   (FIG. 11-(S5)) Thereafter, the client hello receiving unit 410 disconnects communication with the client 1, and the server 2 again enters a state of waiting for receiving a client hello message from the client 1.

(図16−(S4))クライアント1のデータ受信部120は、サーバ2が送信したhandshake_failureメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、handshake_failureメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 16-(S <b> 4)) The data receiving unit 120 of the client 1 receives the handshake_failure message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the handshake_failure message to the Server Hello receiving unit 500 (part of the cipher suite checking means) that processes (interprets) the handshake_failure message.

(図16−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージなので、搭載情報800(搭載状況記憶手段)には何も処理しない。   (FIG. 16-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message. The Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the mounting information 800 (mounting status storage means) because the received message is a handshake_failure message.

(図16−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 16-(S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the "current counter" 710.

(図16−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は2なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図16−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が2なので、「TLS_RSA_WITH_RC4_128_SHA」という情報が読み出される。
(FIG. 16-(S8)) The Server Hello receiving unit 500 (part of the cipher suite investigation means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 2, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 16- (S1)) Next, the client hello generating unit 400 (part of the cipher suite checking means) holds the “priority information of cipher suites supported by the client” and the “current counter” 710 held by itself. Read cipher suite information. Since the value of the “current counter” 710 is 2, information “TLS_RSA_WITH_RC4_128_SHA” is read.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_RC4_128_MD5」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、搭載情報800(搭載状況記憶手段)には何も処理しない。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_RC4_128_MD5” for both the client 1 and the server 2. Since the server 2 does not support “TLS_RSA_WITH_RC4_128_SHA”, no processing is performed on the mounting information 800 (mounting status storage unit).

(図16−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 16-(S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the "current counter" 710.

(図16−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は3なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図16−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が3なので、「TLS_RSA_WITH_AES_128_CBC_SHA」という情報が読み出される。
(FIG. 16-(S8)) The Server Hello receiving unit 500 (part of the cipher suite investigation means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 3, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 16- (S1)) Next, the client hello generating unit 400 (part of the cipher suite checking means) holds the “priority information of cipher suites supported by the client” and the “current counter” 710 held by itself. Read cipher suite information. Since the value of “current counter” 710 is 3, information “TLS_RSA_WITH_AES_128_CBC_SHA” is read.

(図16−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 16-(S2)) The client hello generating unit 400 (part of the cipher suite examining means) generates a client hello message specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as a cipher suite, and sends this to the data transmitting unit 110.

(図16−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 16-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図16−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 16-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図16−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 16-(S <b> 4)) The data receiving unit 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図16−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 16-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図16−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートすることを記憶する。   (FIG. 16-(S6)) Since the received message is not a handshake_failure message, the server hello receiving unit 500 (part of the cipher suite checking means) stores the server 2 in the TLS_RSA_WITH_AES_128_CBC_SHA in the mounting information 800 (mounting status storage means). Remember to support.

(図16−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 16-(S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the "current counter" 710.

(図16−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は4なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図11−(S9))なお、サーバ2はクライアント1からのメッセージ受信待ち状態であったが、クライアント1から通信を切断されたので、このメッセージ受信待ち状態を抜け、Client Helloの受信待ち状態になる。また、図11のフローチャートでは分かりやすいのように(S9)と(S10)を分けて図示しているが、実際は、(S9)のメッセージ受信処理の中で、(S10)の通信の切断処理が実行される。
(FIG. 16-(S8)) The Server Hello receiving unit 500 (part of the cipher suite investigation means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 4, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 11-(S <b> 9)) Although the server 2 is in a state waiting for receiving a message from the client 1, communication has been cut off from the client 1. become. In addition, in the flowchart of FIG. 11, (S9) and (S10) are illustrated separately for easy understanding, but actually, the communication disconnection process of (S10) is performed in the message reception process of (S9). Executed.

(図16−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が4なので、「TLS_RSA_WITH_AES_256_CBC_SHA」という情報が読み出される。   (FIG. 16- (S1)) Next, the client hello generating unit 400 (part of the cipher suite checking means) holds the “priority information of cipher suites supported by the client” and the “current counter” 710 held by itself. Read cipher suite information. Since the value of the “current counter” 710 is 4, the information “TLS_RSA_WITH_AES_256_CBC_SHA” is read.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_AES_128_CBC_SHA」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートするので、(図10−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートすることを記憶する。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_AES_128_CBC_SHA” for both the client 1 and the server 2. Since the server 2 supports “TLS_RSA_WITH_AES_256_CBC_SHA” (FIG. 10- (S6)), the Server Hello receiving unit 500 (part of the cipher suite investigation unit) is included in the installation information 800 (installation status storage unit). Stores support for “TLS_RSA_WITH_AES_256_CBC_SHA”.

(図16−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 16-(S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the "current counter" 710.

(図16−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。
(FIG. 16-(S8)) The Server Hello receiving unit 500 (part of the cipher suite investigation means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not.

(図16−(S9))ここで「現在のカウンタ」710の値は5なので、(つまり、上記等式が成り立つので)Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710に0を設定し、Client Hello生成部400を呼び出す(つまり(A)に進む)。
(図16−(S10))次に、Client Hello生成部400は、「現在のカウンタ」710が0の場合、搭載情報800(搭載状況記憶手段)より、利用する暗号スイートを選択する。具体的には以下のように選定する。(1)Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位1の「TLS_RSA_WITH_RC4_128_MD5」がサポートされていないことを知る。(2)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位2の「TLS_RSA_WITH_RC4_128_SHA」がサポートされていないことを知る。(3)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位3の「TLS_RSA_WITH_AES_128_CBC_SHA」がサポートされていることを知る。そこで、Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を選択する。
(FIG. 16-(S9)) Here, since the value of the "current counter" 710 is 5, (that is, the above equation holds), the Server Hello receiving unit 500 (part of the cipher suite checking means) No. "710 is set to 0, and the Client Hello generating unit 400 is called (that is, the process proceeds to (A)).
(FIG. 16-(S10)) Next, the Client Hello production | generation part 400 selects the encryption sweet to utilize from the mounting information 800 (mounting condition memory | storage means), when the "current counter" 710 is 0. Specifically, the selection is as follows. (1) The client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_MD5” of priority 1 is not supported. (2) Next, the client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_SHA” of priority 2 is not supported. (3) Next, the client hello generating unit 400 knows that “TLS_RSA_WITH_AES_128_CBC_SHA” with priority 3 is supported from the mounting information 800 (mounting status storage means). Therefore, the client hello generating unit 400 selects “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite.

なおここでは、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)の情報を優先順位の高い方から選択するとして説明したが、暗号スイートの選択方法はこれに限られるものではない。逆に優先順位の低い方から順番に見て、最後にチェックされている暗号スイートを選択するとしてもよい。このように、搭載情報800(搭載状況記憶手段)から暗号スイートの選択方法する方法は様々な手段が存在する。   Here, the client hello generating unit 400 has been described as selecting the information of the mounting information 800 (mounting status storage unit) from the one with the highest priority, but the method of selecting the cipher suite is not limited to this. Conversely, the cipher suite that is checked last may be selected in order from the lowest priority. As described above, there are various methods for selecting a cipher suite from the mounting information 800 (mounting status storage unit).

(図16−(S11))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 16-(S <b> 11)) The client hello generating unit 400 generates a client hello message specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as a cipher suite, and sends this to the data transmitting unit 110.

(図16−(S12))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 16-(S12)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図16−(S13))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 16-(S13)) Thereafter, the client 1 enters a state of waiting to receive a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図16−(S13))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 16-(S13)) The data receiver 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted from the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図16−(S14))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710が0の場合、受け取ったメッセージをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 16-(S14)) Server Hello receiving part 500 (a part of encryption sweet investigation means), when "current counter" 710 is 0, sends the received message to SSL negotiation processing part 600 (that is, (B Go to)). Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図16−(S15))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 16-(S15)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図16−(S16))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 16-(S16)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message to the server 2 via the network control apparatus 100.

(図16−(S17))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる
(図11−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。
(FIG. 16- (S17)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2. (FIG. 11- (S9)) The data receiving unit 220 of the server 2 transmits the Client Key Exchange / Change transmitted by the client 1. A Cipher Spec / Finished message is received via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図11−(S11))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S11)) SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図11−(S12))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 11-(S12)) The data transmission part 210 transmits a Change Cipher Spec / Finished message to the client 1 via the network control apparatus 200.

機能ブロック図には図示していないが、この後は、サーバ2は作成した共通鍵を使ってクライアント1と暗号通信を行う。なお、暗号通信とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Although not shown in the functional block diagram, the server 2 thereafter performs cryptographic communication with the client 1 using the created common key. The encryption communication is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図16−(S17))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 16-(S <b> 17)) The data receiving unit 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted by the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図16−(S18))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 16-(S18)) The SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

機能ブロック図には図示していないが、この後は、クライアント1は作成した共通鍵を使ってサーバ2と暗号通信を行う。   Although not shown in the functional block diagram, after this, the client 1 performs cryptographic communication with the server 2 using the created common key.

なお、図12は、図9と同様、図15のハードウェア構成図の一例を示している。説明は同じなので割愛する。   12 shows an example of the hardware configuration diagram of FIG. 15 as in FIG. Since the explanation is the same, I will omit it.

図17は、本発明の実施の形態におけるSSL/TLS暗号通信の第3例を示すシーケンス図である。   FIG. 17 is a sequence diagram showing a third example of SSL / TLS encryption communication in the embodiment of the present invention.

(図17−(S1))クライアントは、サーバがサポートする暗号スイートの搭載状況を調査することで、サーバがサポートする暗号スイートの内、クライアントで最も優先順位の高い暗号スイートが以下であることを知る。
TLS_RSA_WITH_AES_128_CBC_SHA
(図17−(S2))クライアントは、暗号スイートの選択において、上記暗号スイートを選択する。
TLS_RSA_WITH_AES_128_CBC_SHA
なお図1で説明したように、同じ優先順位の暗号スイートは1つしかないケースで説明を行っているが、本図を含めてすべての図で、同じ優先順位の暗号スイートはいくつあっても構わない。サーバがサポートする同じ優先順位の暗号スイートが複数あれば、好みで1つに絞ってもよいし、複数、またはすべての暗号スイートを選択してもよい。複数の暗号スイートを選択する場合は、複数の暗号スイートを指定するClient Helloを送信することになる。説明を簡単にするために、ここでは、同じ優先順位の暗号スイートは1つしかないものとする。
(FIG. 17- (S1)) The client investigates the installation status of the cipher suites supported by the server, and the cipher suites with the highest priority among the cipher suites supported by the server are as follows. know.
TLS_RSA_WITH_AES_128_CBC_SHA
(FIG. 17-(S2)) A client selects the said encryption sweet in selection of an encryption sweet.
TLS_RSA_WITH_AES_128_CBC_SHA
As described with reference to FIG. 1, the explanation is given in the case where there is only one cipher suite having the same priority. However, in all the figures including this figure, any number of cipher suites having the same priority may be used. I do not care. If there are a plurality of cipher suites of the same priority supported by the server, the cipher suite may be narrowed down to one as desired, or a plurality or all cipher suites may be selected. When selecting a plurality of cipher suites, Client Hello specifying a plurality of cipher suites is transmitted. For the sake of simplicity, it is assumed here that there is only one cipher suite with the same priority.

(図17−(S3))クライアントがこの選択した暗号スイートを指定して、サーバにClient Helloを送信する。(図17−(S4))サーバはこの指定された暗号スイートを保持するので、この指定された暗号スイートでクライアントにServer Helloを送信する。図示していないが、この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 17-(S3)) A client designates this selected encryption sweet and transmits Client Hello to a server. (FIG. 17-(S4)) Since a server hold | maintains this designated encryption sweet, Server Hello is transmitted to a client by this designated encryption sweet. Although not shown, SSL / TLS negotiation is correctly executed after this, and common key encryption communication in SSL / TLS encryption communication is started.

図18は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第5例を示すシーケンス図であり、図17の「サーバがサポートする暗号スイートの搭載状況を調査する」方法の一例を示すシーケンス図である。図8や図14とほぼ同じシーケンスでもある。これも「サーバの暗号スイートの搭載情報を調査する」フェーズと「利用する暗号スイートを選択する」フェーズを明確に分離するものである。   FIG. 18 is a sequence diagram showing a fifth example of the method “investigating the installation status of the cipher suites supported by the server” in the embodiment of the present invention, and FIG. 17 shows the installation status of the cipher suites supported by the server. FIG. 11 is a sequence diagram illustrating an example of a “investigation” method. The sequence is almost the same as that shown in FIGS. This also clearly separates the phase of “investigating on-board information of cipher suites on the server” and the phase of “selecting cipher suites to use”.

図14では、クライアントがサポートする暗号スイート内、サーバがサポートする暗号スイートを調査しているが、図18では、サーバがサポートする暗号スイート内、クライアントで最も優先順位の高い暗号スイートを調査している。すべての暗号スイートを調査しないので、調査時間が短縮できる。   In FIG. 14, the cipher suites supported by the client and the cipher suites supported by the server are investigated. In FIG. 18, the cipher suite having the highest priority among the cipher suites supported by the server is investigated. Yes. Since all cipher suites are not examined, the investigation time can be shortened.

次に図18の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、暗号スイートを1つ指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその暗号スイートを保持していないと判断する。   Next, detailed description of FIG. 18 will be given. Here, the client transmits Client Hello specifying one cipher suite in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the cipher suite is not held.

(図18−(S1))クライアントは自らが保持する暗号スイートの優先順位情報を見て、優先順位1の暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」を指定してClient Helloを送信する。(図18−(S2))サーバは「TLS_RSA_WITH_RC4_128_MD5」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバがTLS_RSA_WITH_RC4_128_MD5」をサポートしていないことを知る。(図18−(S3))そして通信を切断する。   (FIG. 18-(S1)) The client looks at the priority order information of the cipher suite held by itself, and designates “TLS_RSA_WITH_RC4_128_MD5”, which is the cipher suite of priority 1, and transmits Client Hello. (FIG. 18-(S2)) Since the server does not support "TLS_RSA_WITH_RC4_128_MD5", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support TLS_RSA_WITH_RC4_128_MD5. (FIG. 18-(S3)) And communication is cut | disconnected.

(図18−(S4))次にクライアントは、優先順位2の暗号スイートである「TLS_RSA_WITH_RC4_128_SHA」を指定してClient Helloを送信する。(図18−(S5))サーバは「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。(図18−(S6))そして通信を切断する。   (FIG. 18-(S4)) Next, a client transmits Client Hello by designating "TLS_RSA_WITH_RC4_128_SHA" which is a cipher suite of priority 2. (FIG. 18-(S5)) Since the server does not support "TLS_RSA_WITH_RC4_128_SHA", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_SHA”. (FIG. 18-(S6)) And communication is cut | disconnected.

(図18−(S7))次にクライアントは、優先順位3の暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してClient Helloを送信する。   (FIG. 18-(S7)) Next, the client designates “TLS_RSA_WITH_AES_128_CBC_SHA”, which is a cipher suite of priority 3, and transmits Client Hello.

(図18−(S8))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Server Helloを返信する。これによってクライアントは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。そして、この暗号スイートを、「サーバがサポートする暗号スイートの中で、クライアントの優先順位が最も高い暗号スイートの情報」として記憶しておく。   (FIG. 18-(S8)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it returns Server Hello. As a result, the client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA”. Then, this cipher suite is stored as “information of cipher suite having the highest client priority among cipher suites supported by the server”.

(図18−(S9))そして通信を切断する。   (FIG. 18-(S9)) And communication is cut | disconnected.

なお、ここでは説明を簡単に行うため、優先順位の高い順に暗号スイートを調査するように説明しているが、実際はどのような順番で調査しても構わない。例えば、優先順位の低い方から調査する場合は、サーバがアラート(handshake_failure)が返送するまで調べ、直前のServer Helloを返した暗号スイートを記憶すればよい。   Here, in order to simplify the description, the explanation is made such that the cipher suites are investigated in the order of priority, but in actuality, any order may be used. For example, in the case of investigating from the lower priority, it is sufficient to check until the server returns an alert (handshake_failure) and store the cipher suite that returned the previous Server Hello.

なお、図2、図7、図8、図14と同様に、これ以降の処理が連続して処理されるように図示しているが、ここで一端処理を止め、実際に暗号通信を行う場合に、これ以降の処理を行うとしてもよい。ここでは説明を簡単にするため、これ以降の処理も連続して行うものとする。   In addition, like FIG.2, FIG.7, FIG.8, FIG.14, although it has shown in figure so that the process after this may be processed continuously, a case where processing is stopped here and actually performs encrypted communication In addition, the subsequent processing may be performed. Here, in order to simplify the explanation, it is assumed that the subsequent processing is continuously performed.

またクライアントは、「サーバがサポートする暗号スイートの中でクライアントの優先順位が最も高い暗号スイートの情報」を記憶しておけば、次回からはサーバの暗号スイートの搭載情報を調査せずとも、「サーバがサポートする暗号スイートの中でクライアントの優先順位が最も高い暗号スイートの情報」を利用して、直ちに、次の(図18−(S13))の処理に進むことが可能となる。   In addition, if the client stores “information on the cipher suite with the highest client priority among the cipher suites supported by the server”, the client can check the installed information of the cipher suite on the server from the next time. By using the information of the cipher suite having the highest client priority among the cipher suites supported by the server, it is possible to immediately proceed to the next process (FIG. 18- (S13)).

(図18−(S10))次に、クライアントはサーバと実際にSSL/TLS暗号通信を行うため、利用する暗号スイートの選択を行う。サーバがサポートする暗号スイートの内、クライアントで最も優先順位の高い暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を利用する暗号スイートとして選択する。   (FIG. 18-(S10)) Next, the client selects the cipher suite to be used in order to actually perform SSL / TLS cipher communication with the server. Among the cipher suites supported by the server, “TLS_RSA_WITH_AES_128_CBC_SHA”, which is the cipher suite with the highest priority in the client, is selected as the cipher suite.

(図18−(S11))そしてクライアントはサーバに対して利用する暗号スイートを伝達するため、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloを送信する。(図18−(S12))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_128_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 18-(S11)) Then, the client transmits Client Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA" in order to transmit the cipher suite to be used to the server. (FIG. 18-(S12)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it specifies "TLS_RSA_WITH_AES_128_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_128_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started.

図19は、本発明の実施の形態における機能ブロックの第4例を示す図の一例であり、図18の機能ブロック図の一例でもある。また図20は、本発明の実施の形態におけるクライアント側のフローチャートの第4例を示す図であり、図19のクライアント1のフローチャートでもある。なお、図19のサーバ2のフローチャートは図11と同様である。次にこの図19、図20、図11を用いて説明を行う。   FIG. 19 is an example of a diagram illustrating a fourth example of functional blocks in the embodiment of the present invention, and is also an example of the functional block diagram of FIG. 20 is a diagram showing a fourth example of the flowchart on the client side in the embodiment of the present invention, and is also the flowchart of the client 1 in FIG. The flowchart of the server 2 in FIG. 19 is the same as that in FIG. Next, description will be made with reference to FIGS.

クライアント1は、ネットワークを介してサーバ2とSSL/TLS暗号通信を開始する。クライアント1は「クライアントがサポートする暗号スイートの優先順位情報」で、利用したい暗号スイートの優先順位付けを行っており、サーバがサポートする暗号スイートの中で、クライアントの優先順位が最も高い暗号スイートを、搭載情報800(搭載状況記憶手段)で記憶する仕組みになっている。ここでは、搭載情報800(搭載状況記憶手段)はクライアントがサポートする各々の暗号スイートに対応する記憶領域であり、サーバがサポートする暗号スイートの中で、クライアントの優先順位が最も高い暗号スイートをチェックする仕組みとして説明しているが、この記憶手段はこれに限られるものではない。搭載情報800(搭載状況記憶手段)は、サーバがサポートする暗号スイートの中で、クライアントの優先順位が最も高い暗号スイートの番号を、単に記憶するものであっても良く、その記憶手段は様々である。   The client 1 starts SSL / TLS encrypted communication with the server 2 via the network. Client 1 uses “priority information on cipher suites supported by the client” to prioritize the cipher suites that it wants to use, and the cipher suite with the highest client priority among the cipher suites supported by the server. The information is stored in the mounting information 800 (mounting status storage means). Here, the mounting information 800 (mounting status storage means) is a storage area corresponding to each cipher suite supported by the client, and the cipher suite having the highest client priority among the cipher suites supported by the server is checked. However, the storage means is not limited to this. The mounting information 800 (mounting status storage means) may simply store the number of the cipher suite having the highest client priority among the cipher suites supported by the server, and there are various storage means. is there.

また、クライアント1には、サーバの暗号スイートの搭載状況を調査するにあたって、どの暗号スイートを調査するかを示す「現在のカウンタ」710が設けてある。「現在のカウンタ」710には暗号スイートの優先順位の番号を入力するようになっており、クライアント1は、「現在のカウンタ」710に設定された番号を優先順位とする暗号スイートを調査する仕組みとなっている。   Further, the client 1 is provided with a “current counter” 710 indicating which cipher suite is to be investigated when investigating the installation status of the cipher suite of the server. The “current counter” 710 is inputted with the priority number of the cipher suite, and the client 1 investigates the cipher suite having the priority set with the number set in the “current counter” 710. It has become.

「現在のカウンタ」710に0が代入された場合には、クライアント1はサーバの暗号スイートの搭載状況を調査せず、通常のSSL/TLSネゴシエーションを行い、SSL/TLS暗号通信を行うようになっている。なおここでは、「現在のカウンタ」710の初期値は1とする。   When 0 is assigned to the “current counter” 710, the client 1 does not check the installation status of the cipher suite of the server, performs normal SSL / TLS negotiation, and performs SSL / TLS cipher communication. ing. Here, the initial value of the “current counter” 710 is 1.

(図20−(S1))はじめに、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。はじめは、「現在のカウンタ」710の値が1なので、「TLS_RSA_WITH_RC4_128_MD5」という情報が読み出される。   (FIG. 20-(S <b> 1)) First, the client hello generation unit 400 (part of the cipher suite investigation means) encrypts the “priority information of cipher suites supported by the client” and the “current counter” 710 held by itself. Read suite information. Initially, since the value of “current counter” 710 is 1, information “TLS_RSA_WITH_RC4_128_MD5” is read.

(図20−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_RC4_128_MD5」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 20-(S <b> 2)) The client hello generating unit 400 (part of the cipher suite investigation unit) generates a client hello message specifying “TLS_RSA_WITH_RC4_128_MD5” as the cipher suite, and sends this to the data transmitting unit 110.

(図20−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 20-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図20−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 20-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S3))Client Helloメッセージには暗号スイートして「TLS_RSA_WITH_RC4_128_MD5」が指定されているが、これをサーバ2はサポートしていないので、Client Hello受信部410がhandshake_failureメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S3)) “TLS_RSA_WITH_RC4_128_MD5” is specified as a cipher suite in the Client Hello message, but since the server 2 does not support this, the Client Hello receiving unit 410 generates a handshake_failure message, This is sent to the data transmission unit 210.

(図11−(S4))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、handshake_failureメッセージを送信する。   (FIG. 11-(S4)) The data transmission part 210 transmits a handshake_failure message with respect to the client 1 via the network control apparatus 200. FIG.

(図11−(S5))その後、Client Hello受信部410は、クライアント1との通信を切断し、サーバ2は再びクライアント1からのClient Helloメッセージの受信待ち状態になる。   (FIG. 11-(S5)) Thereafter, the client hello receiving unit 410 disconnects communication with the client 1, and the server 2 again enters a state of waiting for receiving a client hello message from the client 1.

(図20−(S4))クライアント1のデータ受信部120は、サーバ2が送信したhandshake_failureメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、handshake_failureメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 20-(S4)) The data receiver 120 of the client 1 receives the handshake_failure message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the handshake_failure message to the Server Hello receiving unit 500 (part of the cipher suite checking means) that processes (interprets) the handshake_failure message.

(図20−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージなので、搭載情報800(搭載状況記憶手段)には何も処理しない。   (FIG. 20-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message. The Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the mounting information 800 (mounting status storage means) because the received message is a handshake_failure message.

(図20−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 20-(S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the "current counter" 710.

(図20−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は2なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図20−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が2なので、「TLS_RSA_WITH_RC4_128_SHA」という情報が読み出される。
(FIG. 20-(S8)) The Server Hello receiving unit 500 (part of the cipher suite investigation means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 2, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 20-(S <b> 1)) Next, the client hello generation unit 400 (part of the cipher suite investigation unit) holds the “priority information on cipher suites supported by the client” and the “current counter” 710. Read cipher suite information. Since the value of the “current counter” 710 is 2, information “TLS_RSA_WITH_RC4_128_SHA” is read.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_RC4_128_MD5」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、搭載情報800(搭載状況記憶手段)には何も処理しない。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_RC4_128_MD5” for both the client 1 and the server 2. Since the server 2 does not support “TLS_RSA_WITH_RC4_128_SHA”, no processing is performed on the mounting information 800 (mounting status storage unit).

(図20−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 20-(S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite checking means) disconnects the communication and adds 1 to the "current counter" 710.

(図20−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、暗号スイートの優先順位の数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX(この図では4) + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は3なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図20−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイートの優先順位情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値が3なので、「TLS_RSA_WITH_AES_128_CBC_SHA」という情報が読み出される。
(FIG. 20-(S8)) The Server Hello receiving unit 500 (part of the cipher suite investigation means) determines whether the value of the “current counter” 710 exceeds the number of cipher suite priorities = MAX value. ,
Value of "current counter" 710 = MAX (4 in this figure) + 1
Check whether or not. Here, since the value of the “current counter” 710 is 3, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 20-(S <b> 1)) Next, the client hello generation unit 400 (part of the cipher suite investigation unit) holds the “priority information on cipher suites supported by the client” and the “current counter” 710. Read cipher suite information. Since the value of “current counter” 710 is 3, information “TLS_RSA_WITH_AES_128_CBC_SHA” is read.

(図20−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 20-(S <b> 2)) The client hello generating unit 400 (part of the cipher suite investigation unit) generates a client hello message specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite, and sends this to the data transmitting unit 110.

(図20−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 20-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図20−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 20-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図20−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 20-(S4)) The data receiver 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted from the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図20−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 20-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図20−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートすることを記憶する。なおこれが、サーバがサポートする暗号スイートの内、クライアントで最も優先順位の高い暗号スイートということになる。そして、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断する。   (FIG. 20-(S6)) Since the received message is not a handshake_failure message, the server hello receiving unit 500 (part of the cipher suite checking means) indicates that the server 2 has “TLS_RSA_WITH_AES_128_CBC_SHA” in the mounting information 800 (mounting status storage means). Remember to support. This is the cipher suite with the highest priority among the cipher suites supported by the server. And Server Hello receiving part 500 (a part of encryption sweet investigation means) cuts off communication.

(図11−(S9))なお、サーバ2はクライアント1からのメッセージ受信待ち状態であったが、クライアント1から通信を切断されたので、このメッセージ受信待ち状態を抜け、Client Helloの受信待ち状態になる。また、図11のフローチャートでは分かりやすいのように(S9)と(S10)を分けて図示しているが、実際は、(S9)のメッセージ受信処理の中で、(S10)の通信の切断処理が実行される。   (FIG. 11-(S <b> 9)) Although the server 2 is in a state waiting for receiving a message from the client 1, communication has been cut off from the client 1. become. In addition, in the flowchart of FIG. 11, (S9) and (S10) are illustrated separately for easy understanding, but actually, the communication disconnection process of (S10) is performed in the message reception process of (S9). Executed.

(図20−(S9))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710に0を設定し、Client Hello生成部400を呼び出す(つまり(A)に進む)。
(図20−(S10))次に、Client Hello生成部400は、「現在のカウンタ」710が0の場合、搭載情報800(搭載状況記憶手段)より、利用する暗号スイートを選択する。搭載情報800(搭載状況記憶手段)にチェックされている暗号スイートは、「TLS_RSA_WITH_AES_128_CBC_SHA」なので、Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を選択する。
(FIG. 20-(S <b> 9)) The Server Hello receiving unit 500 (part of the cipher suite examining means) sets “current counter” 710 to 0 and calls the Client Hello generating unit 400 (that is, proceeds to (A)). ).
(FIG. 20-(S10)) Next, the Client Hello production | generation part 400 selects the encryption sweet to be used from the mounting information 800 (mounting condition memory | storage means), when the "current counter" 710 is 0. Since the cipher suite checked in the mounting information 800 (mounting status storage means) is “TLS_RSA_WITH_AES_128_CBC_SHA”, the Client Hello generating unit 400 selects “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite.

(図20−(S11))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 20-(S <b> 11)) The client hello generating unit 400 generates a client hello message specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as a cipher suite, and sends this to the data transmitting unit 110.

(図20−(S12))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 20-(S12)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図20−(S13))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 20-(S13)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S11))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S11)) The data receiving part 220 of the server 2 receives the Client Hello message which the client 1 transmitted via the network control apparatus 200. FIG. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図20−(S13))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 20-(S13)) The data receiver 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図20−(S14))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710が0の場合、受け取ったメッセージをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 20-(S14)) Server Hello receiving part 500 (a part of encryption sweet investigation means) sends the received message to SSL negotiation processing part 600 when "current counter" 710 is 0 (that is, (B Go to)). Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図20−(S15))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 20-(S15)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図20−(S16))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 20-(S16)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message to the server 2 via the network control apparatus 100.

(図20−(S17))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる
(図11−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。
(FIG. 20- (S17)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2. (FIG. 11- (S9)) The data receiving unit 220 of the server 2 transmits the Client Key Exchange / Change transmitted by the client 1. A Cipher Spec / Finished message is received via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図11−(S11))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S11)) SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図11−(S12))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 11-(S12)) The data transmission part 210 transmits a Change Cipher Spec / Finished message to the client 1 via the network control apparatus 200.

機能ブロック図には図示していないが、この後は、サーバ2は作成した共通鍵を使ってクライアント1と暗号通信を行う。なお、暗号通信とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Although not shown in the functional block diagram, the server 2 thereafter performs cryptographic communication with the client 1 using the created common key. The encryption communication is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図20−(S17))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 20-(S17)) The data receiver 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted by the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図20−(S18))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 20-(S18)) The SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

機能ブロック図には図示していないが、この後は、クライアント1は作成した共通鍵を使ってサーバ2と暗号通信を行う。   Although not shown in the functional block diagram, after this, the client 1 performs cryptographic communication with the server 2 using the created common key.

なお、図12は、図9、図15と同様、図19のハードウェア構成図の一例を示している。説明は同じなので割愛する。   Note that FIG. 12 shows an example of the hardware configuration diagram of FIG. 19, similarly to FIGS. 9 and 15. Since the explanation is the same, I will omit it.

図21は、本発明の実施の形態におけるSSL/TLS暗号通信の第4例を示すシーケンス図である。   FIG. 21 is a sequence diagram showing a fourth example of SSL / TLS encryption communication according to the embodiment of the present invention.

(図21−(S1))クライアントは、サーバがサポートする暗号スイートの搭載状況を調査することで、サーバが以下の暗号スイートをサーバがサポートすることを知る。
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図21−(S2))クライアントは、暗号スイートの選択において、自らが保持する暗号スイートの内、優先順位の高い暗号スイートを選択しようとするが、その際、上記暗号スイートに該当しないものは選択せず、該当するものが出現するまで優先順位を下げる。
(FIG. 21-(S1)) The client knows that the server supports the following cipher suites by examining the installation status of the cipher suites supported by the server.
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 21-(S <b> 2)) In selecting a cipher suite, the client tries to select a cipher suite having a higher priority among cipher suites held by the client. Don't select, lower priority until appropriate item appears.

クライアントの優先順位1、2の暗号スイートは、上記暗号スイートに該当しないので選択されない。クライアントは下記に記述する、優先順位3の暗号スイートを選択する。
TLS_RSA_WITH_AES_128_CBC_SHA
なお図1で説明したように、同じ優先順位の暗号スイートは1つしかないケースで説明を行っているが、本図を含めてすべての図で、同じ優先順位の暗号スイートはいくつあっても構わない。サーバがサポートする同じ優先順位の暗号スイートが複数あれば、好みで1つに絞ってもよいし、複数、またはすべての暗号スイートを選択してもよい。複数の暗号スイートを選択する場合は、複数の暗号スイートを指定するClient Helloを送信することになる。説明を簡単にするために、ここでは、同じ優先順位の暗号スイートは1つしかないものとする。
The cipher suites with the client priorities 1 and 2 are not selected because they do not correspond to the cipher suites. The client selects a cipher suite with priority 3 as described below.
TLS_RSA_WITH_AES_128_CBC_SHA
As described with reference to FIG. 1, the explanation is given in the case where there is only one cipher suite having the same priority. However, in all the figures including this figure, any number of cipher suites having the same priority may be used. I do not care. If there are a plurality of cipher suites of the same priority supported by the server, the cipher suite may be narrowed down to one as desired, or a plurality or all cipher suites may be selected. When selecting a plurality of cipher suites, Client Hello specifying a plurality of cipher suites is transmitted. For the sake of simplicity, it is assumed here that there is only one cipher suite with the same priority.

(図21−(S3))クライアントがこの選択した暗号スイートを指定して、サーバにClient Helloを送信する。(図21−(S4))サーバはこの指定された暗号スイートを保持するので、この指定された暗号スイートでクライアントにServer Helloを送信する。図示していないが、この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 21-(S3)) A client designates this selected encryption sweet and transmits Client Hello to a server. (FIG. 21-(S4)) Since a server hold | maintains this designated encryption sweet, Server Hello is transmitted to a client by this designated encryption sweet. Although not shown, SSL / TLS negotiation is correctly executed after this, and common key encryption communication in SSL / TLS encryption communication is started.

図22は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第6例を示すシーケンス図であり、図21の「サーバがサポートする暗号スイートの搭載状況を調査する」方法の一例を示すシーケンス図でもある。図8、図14、図18とほぼ同じシーケンスである。これも「サーバの暗号スイートの搭載情報を調査する」フェーズと「利用する暗号スイートを選択する」フェーズを明確に分離するものである。   FIG. 22 is a sequence diagram showing a sixth example of the method “investigating the installation status of the cipher suites supported by the server” in the embodiment of the present invention, and the “installation status of the cipher suites supported by the server” in FIG. It is also a sequence diagram showing an example of a method of “investigating”. The sequence is almost the same as that shown in FIGS. This also clearly separates the phase of “investigating on-board information of cipher suites on the server” and the phase of “selecting cipher suites to use”.

図14では、クライアントがサポートする暗号スイート内、サーバがサポートする暗号スイートを調査しているが、図22では、クライアントがサポートする暗号スイートに関係なく、サーバがサポートする暗号スイートを調査している。すべての暗号スイートを調査すると、時間を要する欠点はあるものの、クライアントがサポートする暗号スイートが追加された場合に、再度調査する必要がなくなる。例えば、クライアント装置がソフトウェアダウンロードなどで暗号スイートを追加できる仕組みがある場合に都合がよい。   In FIG. 14, the cipher suites supported by the server in the cipher suites supported by the client are investigated. In FIG. 22, the cipher suites supported by the server are investigated regardless of the cipher suites supported by the client. . Examining all cipher suites has the disadvantage of time-consuming, but eliminates the need to re-investigate when cipher suites supported by the client are added. For example, it is convenient when there is a mechanism in which a client device can add a cipher suite by software download or the like.

なお、ここではサーバがサポートするすべての暗号スイートを調査するとしているが、一部の暗号スイートを調査するとしてもよい。クライアント装置で将来に渡って絶対に利用しない暗号スイートが明らかである場合は、このような暗号スイートを除外するのは合理的である。例えば、現在、セキュリティ的に弱くて利用できない暗号スイートなどは除外した方が好ましい。   Although all cipher suites supported by the server are investigated here, some cipher suites may be investigated. It is reasonable to exclude such cipher suites when it is clear that the client device will never use them in the future. For example, it is preferable to exclude cipher suites that are currently weak in security and cannot be used.

なお、これまでの説明で分かるように、サーバがサポートする暗号スイートを調査するのを、逆にサーバがサポートしない暗号スイートを調査することに置き換えてもよい。これは同じことになるので、詳細の説明は割愛する。   As can be seen from the above description, the investigation of the cipher suites supported by the server may be replaced with the investigation of the cipher suites not supported by the server. Since this is the same, detailed description is omitted.

次に図22の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、暗号スイートを1つ指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその暗号スイートを保持していないと判断する。   Next, detailed description of FIG. 22 will be given. Here, the client transmits Client Hello specifying one cipher suite in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the cipher suite is not held.

また、クライアントは「SSL/TLS仕様で定義されている暗号スイートの情報」を保持している。この情報は、基本的にはSSL/TLS仕様で定義されているすべて暗号スイートの情報であるが、先に説明したように、将来に渡ってクライアントが使用しないと分かっている暗号スイートは除去してもよい。   In addition, the client holds “cipher suite information defined in the SSL / TLS specification”. This information is basically all cipher suite information defined in the SSL / TLS specification, but as explained above, cipher suites that the client knows not to use in the future are removed. May be.

(図22−(S1))クライアントは「SSL/TLS仕様で定義されている暗号スイートの情報」を見て、それに掲載されている暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」を指定してClient Helloを送信する。(図22−(S2))サーバは「TLS_RSA_WITH_RC4_128_MD5」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバがTLS_RSA_WITH_RC4_128_MD5」をサポートしていないことを知る。なお、この暗号スイートはサポートされていないものとして記憶しておいてもよいが、ここの説明では記憶しないものとする。(図22−(S3))そして通信を切断する。   (FIG. 22-(S1)) The client sees "cipher suite information defined in the SSL / TLS specification", designates "TLS_RSA_WITH_RC4_128_MD5" which is the cipher suite posted therein, and transmits Client Hello. . (FIG. 22-(S2)) Since the server does not support "TLS_RSA_WITH_RC4_128_MD5", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support TLS_RSA_WITH_RC4_128_MD5. Although this cipher suite may be stored as not supported, it is not stored in the description here. (FIG. 22-(S3)) And communication is cut | disconnected.

(図22−(S4))次にクライアントは、「SSL/TLS仕様で定義されている暗号スイートの情報」を見て、それに掲載されている暗号スイートである「TLS_RSA_WITH_RC4_128_SHA」を指定してClient Helloを送信する。(図22−(S5))サーバは「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。なお、この暗号スイートはサポートされていないものとして記憶しておいてもよいが、ここの説明では記憶しないものとする。(図22−(S6))そして通信を切断する。   (FIG. 22-(S4)) Next, the client looks at “cipher suite information defined in the SSL / TLS specification”, designates “TLS_RSA_WITH_RC4_128_SHA”, which is the cipher suite listed therein, and client Hello. Send. (FIG. 22-(S5)) Since the server does not support "TLS_RSA_WITH_RC4_128_SHA", an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_SHA”. Although this cipher suite may be stored as not supported, it is not stored in the description here. (FIG. 22-(S6)) And communication is cut | disconnected.

(図22−(S7))次にクライアントは、「SSL/TLS仕様で定義されている暗号スイートの情報」を見て、それに掲載されている暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してClient Helloを送信する。(図22−(S8))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Server Helloを返信する。これによってクライアントは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。なお、この暗号スイートはサポートされているものとして記憶しておく。(図22−(S9))そして通信を切断する。   (FIG. 22-(S7)) Next, the client looks at “cipher suite information defined in the SSL / TLS specification”, designates “TLS_RSA_WITH_AES_128_CBC_SHA”, which is the cipher suite listed therein, and client Hello. Send. (FIG. 22-(S8)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it returns Server Hello. As a result, the client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA”. Note that this cipher suite is stored as being supported. (FIG. 22-(S9)) And communication is cut | disconnected.

このようにして、クライアントは、「SSL/TLS仕様で定義されている暗号スイートの情報」を見て、それに掲載されている暗号スイートをサーバが搭載しているか否かを順々に、調査する。   In this way, the client looks at “cipher suite information defined in the SSL / TLS specification” and checks whether the server is equipped with the cipher suites listed therein. .

以上の手順によって、クライアントは、サーバが、「TLS_RSA_WITH_3DES_EDE_CBC_SHA」、「TLS_RSA_WITH_AES_128_CBC_SHA」、「TLS_RSA_WITH_AES_256_CBC_SHA」をサーバがサポートするという「サーバがサポートする暗号スイートの情報」を少なくとも記憶する。   Through the above-described procedure, the client supports at least the cipher that the server supports “TLS” which is the information that the server supports “TLS_RSA_WITH_3DES_EDE_CBC_SHA”, “TLS_RSA_WITH_AES_128_CBC_SHA”, and “TLS_RSA_WIES_256_CBC_SHA”.

なお、ここでは、「TLS_RSA_WITH_RC4_128_MD5」、「TLS_RSA_WITH_RC4_128_SHA」、「TLS_RSA_WITH_AES_128_CBC_SHA」、・・・という順番で調査しているが、実際はどのような順番で調査しても構わない。   In this example, the survey is performed in the order of “TLS_RSA_WITH_RC4_128_MD5”, “TLS_RSA_WITH_RC4_128_SHA”, “TLS_RSA_WITH_AES_128_CBC_SHA”,...

なお、図2、図7、図8、図14、図18と同様に、これ以降の処理が連続して処理されるように図示しているが、ここで一端処理を止め、実際に暗号通信を行う場合に、これ以降の処理を行うとしてもよい。ここでは説明を簡単にするため、これ以降の処理も連続して行うものとする。   In addition, like FIG.2, FIG.7, FIG.8, FIG.14, FIG.18, although it has shown in figure so that the process after this may be processed continuously, here, a process is stopped once and actually encryption communication is carried out. When performing the above, the subsequent processing may be performed. Here, in order to simplify the explanation, it is assumed that the subsequent processing is continuously performed.

またクライアントは、「サーバがサポートする暗号スイートの情報」を記憶しておけば、次回からはサーバの暗号スイートの搭載情報を調査せずとも、「サーバがサポートする暗号スイートの情報」を利用して、直ちに、次の(図22−(S10))の処理に進むことが可能となる。   In addition, if the client stores “information on the cipher suites supported by the server”, it will use the “information on cipher suites supported by the server” from the next time, without investigating the server's cipher suite information. As a result, it is possible to immediately proceed to the next process (FIG. 22- (S10)).

(図22−(S10))次に、クライアントはサーバと実際にSSL/TLS暗号通信を行うため、利用する暗号スイートの選択を行う。サーバがサポートする暗号スイートの内、クライアントで最も優先順位の高い暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を利用する暗号スイートとして選択する。   (FIG. 22-(S10)) Next, the client selects the cipher suite to be used in order to actually perform SSL / TLS cipher communication with the server. Among the cipher suites supported by the server, “TLS_RSA_WITH_AES_128_CBC_SHA”, which is the cipher suite with the highest priority in the client, is selected as the cipher suite.

(図22−(S11))そしてクライアントはサーバに対して利用する暗号スイートを伝達するため、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloを送信する。(図22−(S12))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_128_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。   (FIG. 22-(S11)) Then, the client transmits Client Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA" to transmit the cipher suite to be used to the server. (FIG. 22-(S12)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it designates "TLS_RSA_WITH_AES_128_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_128_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started.

図23は、本発明の実施の形態における機能ブロックの第5例を示す図であり、図22の機能ブロック図の一例でもある。また図24は、本発明の実施の形態におけるクライアント側のフローチャートの第5例を示す図であり、図23のクライアント1のフローチャートである。なお、図23のサーバ2のフローチャートは図11と同様である。次にこの図23、図24、図11を用いて説明を行う。   FIG. 23 is a diagram showing a fifth example of functional blocks in the embodiment of the present invention, and is also an example of the functional block diagram of FIG. FIG. 24 is a diagram showing a fifth example of the flowchart on the client side in the embodiment of the present invention, and is a flowchart of the client 1 in FIG. The flowchart of the server 2 in FIG. 23 is the same as that in FIG. Next, description will be made with reference to FIGS. 23, 24, and 11. FIG.

クライアント1は、ネットワークを介してサーバ2とSSL/TLS暗号通信を開始する。クライアント1は「クライアントがサポートする暗号スイートの優先順位情報」で、利用したい暗号スイートの優先順位付けを行っており、搭載情報800(搭載状況記憶手段)で、その各々の暗号スイートに対して、サーバ2でサポートされている暗号スイートをチェックする仕組みになっている。なお、サポートされていない暗号スイートは、サポートされていないものとしてチェックしても構わないが、ここでは説明を簡単にするため、サポートされる暗号スイートのみをチェックするものとする。   The client 1 starts SSL / TLS encrypted communication with the server 2 via the network. The client 1 assigns the priorities of the cipher suites that the client 1 wants to use with the “priority information of cipher suites supported by the client”, and the installation information 800 (installation status storage means) The cipher suite supported by the server 2 is checked. Note that unsupported cipher suites may be checked as being unsupported, but here, in order to simplify the description, only supported cipher suites are checked.

また、クライアントはサーバがサポートする暗号スイートを調査するのに、先に説明した「SSL/TLS仕様で定義されている暗号スイートの情報」を保持している。この情報は、基本的にはSSL/TLS仕様で定義されているすべて暗号スイートの情報であるが、先に説明したように、将来に渡ってクライアントが使用しないと分かっている暗号スイートは除去してもよい。ここでは、搭載情報800(搭載状況記憶手段)は、「SSL/TLS仕様で定義されている暗号スイートの情報」に掲載されている各々の暗号スイートが、サポートされているか否かを記憶する仕組みとしている。なお、記憶手段はこれに限られるものではなく、サポートされない暗号スイートの番号を覚えるなど、その記憶手段には様々な方法がある。   Further, in order to investigate the cipher suites supported by the server, the client holds the “cipher suite information defined in the SSL / TLS specifications” described above. This information is basically all cipher suite information defined in the SSL / TLS specification, but as explained above, cipher suites that the client knows not to use in the future are removed. May be. Here, the mounting information 800 (mounting status storage means) stores whether each cipher suite listed in “Information on cipher suites defined in the SSL / TLS specifications” is supported. It is said. Note that the storage means is not limited to this, and there are various methods for the storage means, such as memorizing the numbers of unsupported cipher suites.

また、クライアント1には、サーバの暗号スイートの搭載状況を調査するにあたって、どの暗号スイートを調査するかを示す「現在のカウンタ」710が設けてある。「SSL/TLS仕様で定義されている暗号スイートの情報」には、暗号スイートの情報だけでなく、その各々の暗号スイートを調査する順番も定義されており、「現在のカウンタ」710に、この順番を入力すれば、クライアント1は、その順番の暗号スイートを調査する仕組みとなっている。   Further, the client 1 is provided with a “current counter” 710 indicating which cipher suite is to be investigated when investigating the installation status of the cipher suite of the server. The “cipher suite information defined in the SSL / TLS specification” defines not only the cipher suite information but also the order in which each cipher suite is examined. If the order is input, the client 1 is configured to investigate the cipher suites in that order.

「現在のカウンタ」710に0が代入された場合には、クライアント1はサーバの暗号スイートの搭載状況を調査せず、通常のSSL/TLSネゴシエーションを行い、SSL/TLS暗号通信を行うようになっている。なおここでは、「現在のカウンタ」710の初期値は1とする。   When 0 is assigned to the “current counter” 710, the client 1 does not check the installation status of the cipher suite of the server, performs normal SSL / TLS negotiation, and performs SSL / TLS cipher communication. ing. Here, the initial value of the “current counter” 710 is 1.

(図24−(S1))はじめに、Client Hello生成部400(暗号スイート調査手段の一部)は「SSL/TLS仕様で定義されている暗号スイートの情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。はじめは、「現在のカウンタ」710の値が1であるが、これが「SSL/TLS仕様で定義されている暗号スイートの情報」では「TLS_RSA_WITH_RC4_128_MD5」に該当するものとして説明する。   (FIG. 24-(S <b> 1)) First, the Client Hello generation unit 400 (part of the cipher suite investigation unit) obtains the cipher suite from “cipher suite information defined in the SSL / TLS specification” and “current counter” 710. Read the information. Initially, the value of the “current counter” 710 is “1”, but this is described as “TLS_RSA_WITH_RC4_128_MD5” in “cipher suite information defined in the SSL / TLS specifications”.

(図24−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_RC4_128_MD5」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 24-(S2)) Client Hello production | generation part 400 (a part of encryption sweet investigation means) produces | generates the Client Hello message which designated "TLS_RSA_WITH_RC4_128_MD5" as an encryption sweet, and sends this to the data transmission part 110. FIG.

(図24−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 24-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図24−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 24-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S3))Client Helloメッセージには暗号スイートして「TLS_RSA_WITH_RC4_128_MD5」が指定されているが、これをサーバ2はサポートしていないので、Client Hello受信部410がhandshake_failureメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S3)) “TLS_RSA_WITH_RC4_128_MD5” is specified as a cipher suite in the Client Hello message, but since the server 2 does not support this, the Client Hello receiving unit 410 generates a handshake_failure message, This is sent to the data transmission unit 210.

(図11−(S4))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、handshake_failureメッセージを送信する。   (FIG. 11-(S4)) The data transmission part 210 transmits a handshake_failure message with respect to the client 1 via the network control apparatus 200. FIG.

(図11−(S5))その後、Client Hello受信部410は、クライアント1との通信を切断し、サーバ2は再びクライアント1からのClient Helloメッセージの受信待ち状態になる。   (FIG. 11-(S5)) Thereafter, the client hello receiving unit 410 disconnects communication with the client 1, and the server 2 again enters a state of waiting for receiving a client hello message from the client 1.

(図24−(S4))クライアント1のデータ受信部120は、サーバ2が送信したhandshake_failureメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、handshake_failureメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 24-(S <b> 4)) The data receiving unit 120 of the client 1 receives the handshake_failure message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the handshake_failure message to the Server Hello receiving unit 500 (part of the cipher suite checking means) that processes (interprets) the handshake_failure message.

(図24−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージなので、搭載情報800(搭載状況記憶手段)には何も処理しない。   (FIG. 24-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message. The Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the mounting information 800 (mounting status storage means) because the received message is a handshake_failure message.

(図24−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 24-(S7)) Next, Server Hello receiving part 500 (a part of encryption sweet investigation means) cut | disconnects communication, and adds 1 to the "current counter" 710. FIG.

(図24−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、調査する暗号スイートの数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は2なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図24−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は「SSL/TLS仕様で定義されている暗号スイートの情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値は2であるが、これが「SSL/TLS仕様で定義されている暗号スイートの情報」では「TLS_RSA_WITH_RC4_128_SHA」に該当するものとして説明する。
(FIG. 24-(S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suites to check = MAX value.
Value of “current counter” 710 = MAX + 1
Check whether or not. Here, since the value of the “current counter” 710 is 2, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 24-(S1)) Next, the Client Hello generation part 400 (a part of encryption sweet investigation means) encrypts from "the encryption sweet information defined by the SSL / TLS specification" and the "current counter" 710. Read suite information. The value of the “current counter” 710 is 2, but it is assumed that this corresponds to “TLS_RSA_WITH_RC4_128_SHA” in “cipher suite information defined in the SSL / TLS specification”.

この後は、クライアント1、サーバ2共、「TLS_RSA_WITH_RC4_128_MD5」の場合と同様のフローとなる。サーバ2は、「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないので、搭載情報800(搭載状況記憶手段)には何も処理しない。   Thereafter, the flow is the same as that in the case of “TLS_RSA_WITH_RC4_128_MD5” for both the client 1 and the server 2. Since the server 2 does not support “TLS_RSA_WITH_RC4_128_SHA”, no processing is performed on the mounting information 800 (mounting status storage unit).

(図24−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 24-(S7)) Next, Server Hello receiving part 500 (a part of encryption sweet investigation means) cut | disconnects communication, and adds 1 to the "current counter" 710. FIG.

(図24−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、調査する暗号スイートの数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は3なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図24−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は「SSL/TLS仕様で定義されている暗号スイートの情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。「現在のカウンタ」710の値は3であるが、これが「SSL/TLS仕様で定義されている暗号スイートの情報」では「TLS_RSA_WITH_AES_128_CBC_SHA」に該当するものとして説明する。
(FIG. 24-(S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suites to check = MAX value.
Value of “current counter” 710 = MAX + 1
Check whether or not. Here, since the value of the “current counter” 710 is 3, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 24-(S1)) Next, the Client Hello generation part 400 (a part of encryption sweet investigation means) encrypts from "the encryption sweet information defined by the SSL / TLS specification" and the "current counter" 710. Read suite information. Although the value of the “current counter” 710 is 3, it is assumed that this corresponds to “TLS_RSA_WITH_AES_128_CBC_SHA” in “cipher suite information defined in the SSL / TLS specifications”.

(図24−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 24-(S2)) Client Hello production | generation part 400 (a part of encryption sweet investigation means) produces | generates the Client Hello message which designated "TLS_RSA_WITH_AES_128_CBC_SHA" as an encryption sweet, and sends this to the data transmission part 110. FIG.

(図24−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 24-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図24−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 24-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図24−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 24-(S <b> 4)) The data reception unit 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図16−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 16-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図24−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートすることを記憶する。   (FIG. 24-(S6)) Since the received message is not a handshake_failure message, the server hello receiving unit 500 (part of the cipher suite checking means) stores “TLS_RSA_WITH_AES_128_CBC_SHA” in the mounting information 800 (mounting status storage means). Remember to support.

(図24−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、「現在のカウンタ」710に1を加算する。   (FIG. 24-(S7)) Next, Server Hello receiving part 500 (a part of encryption sweet investigation means) cut | disconnects communication, and adds 1 to the "current counter" 710. FIG.

(図24−(S8))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710の値が、調査する暗号スイートの数=MAX値を超えているか、つまり、
「現在のカウンタ」710の値 = MAX + 1
か否かをチェックする。ここで「現在のカウンタ」710の値は4なので、Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710には何も処理せずに、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図11−(S9))なお、サーバ2はクライアント1からのメッセージ受信待ち状態であったが、クライアント1から通信を切断されたので、このメッセージ受信待ち状態を抜け、Client Helloの受信待ち状態になる。また、図11のフローチャートでは分かりやすいのように(S9)と(S10)を分けて図示しているが、実際は、(S9)のメッセージ受信処理の中で、(S10)の通信の切断処理が実行される。
(FIG. 24-(S8)) The Server Hello receiving unit 500 (part of the cipher suite checking means) determines whether the value of the “current counter” 710 exceeds the number of cipher suites to check = MAX value.
Value of “current counter” 710 = MAX + 1
Check whether or not. Here, since the value of the “current counter” 710 is 4, the Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the “current counter” 710 and does not process the Client Hello generating unit 400. (Part of the cipher suite investigation means) is called (that is, the process proceeds to (A)).
(FIG. 11-(S <b> 9)) Although the server 2 is in a state waiting for receiving a message from the client 1, communication has been cut off from the client 1. become. In addition, in the flowchart of FIG. 11, (S9) and (S10) are illustrated separately for easy understanding, but actually, the communication disconnection process of (S10) is performed in the message reception process of (S9). Executed.

(図24−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は「SSL/TLS仕様で定義されている暗号スイートの情報」と「現在のカウンタ」710から暗号スイートの情報を読み出す。
このような手順でクライアント1は「SSL/TLS仕様で定義されている暗号スイートの情報」に掲載されている暗号スイートを順々に調査していく。そして、すべての調査を終了した時点で、(図24−(S9))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710に0を設定し、Client Hello生成部400を呼び出す(つまり(A)に進む)。
調査を終了した時点で、クライント1は、サーバ2が以下の暗号スイートをサポートしていることを、搭載情報800(搭載状況記憶手段)にチェックしている。
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図24−(S10))次に、Client Hello生成部400は、「現在のカウンタ」710が0の場合、搭載情報800(搭載状況記憶手段)より、利用する暗号スイートを選択する。具体的には以下のように選定する。(1)Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位1の「TLS_RSA_WITH_RC4_128_MD5」がサポートされていないことを知る。(2)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位2の「TLS_RSA_WITH_RC4_128_SHA」がサポートされていないことを知る。(3)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位3の「TLS_RSA_WITH_AES_128_CBC_SHA」がサポートされていることを知る。そこで、Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を選択する。
(FIG. 24-(S1)) Next, the Client Hello generation part 400 (a part of encryption sweet investigation means) encrypts from "the encryption sweet information defined by the SSL / TLS specification" and the "current counter" 710. Read suite information.
With such a procedure, the client 1 sequentially examines the cipher suites listed in “cipher suite information defined in the SSL / TLS specifications”. When all the surveys are completed ((S9) in FIG. 24), the Server Hello receiving unit 500 (part of the cipher suite surveying unit) sets 0 to the “current counter” 710 to generate the Client Hello. Call the part 400 (that is, go to (A)).
When the survey is completed, the client 1 checks the mounting information 800 (mounting status storage means) that the server 2 supports the following cipher suites.
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 24-(S10)) Next, when the "current counter" 710 is 0, the Client Hello production | generation part 400 selects the encryption sweet to use from the mounting information 800 (mounting condition memory | storage means). Specifically, the selection is as follows. (1) The client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_MD5” of priority 1 is not supported. (2) Next, the client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_SHA” of priority 2 is not supported. (3) Next, the client hello generating unit 400 knows that “TLS_RSA_WITH_AES_128_CBC_SHA” with priority 3 is supported from the mounting information 800 (mounting status storage means). Therefore, the client hello generating unit 400 selects “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite.

なおここでは、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)の情報を優先順位の高い方から選択するとして説明したが、暗号スイートの選択方法はこれに限られるものではない。逆に優先順位の低い方から順番に見て、最後にチェックされている暗号スイートを選択するとしてもよい。このように、搭載情報800(搭載状況記憶手段)から暗号スイートの選択方法する方法は様々な手段が存在する。   Here, the client hello generating unit 400 has been described as selecting the information of the mounting information 800 (mounting status storage unit) from the one with the highest priority, but the method of selecting the cipher suite is not limited to this. Conversely, the cipher suite that is checked last may be selected in order from the lowest priority. As described above, there are various methods for selecting a cipher suite from the mounting information 800 (mounting status storage unit).

(図24−(S11))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 24-(S11)) The Client Hello production | generation part 400 produces | generates the Client Hello message which designated "TLS_RSA_WITH_AES_128_CBC_SHA" as a cipher suite, and sends this to the data transmission part 110. FIG.

(図24−(S12))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 24-(S12)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図24−(S13))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 24-(S13)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図11−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 11-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図11−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 11-(S2)) The Client Hello reception part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図11−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 11-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図11−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図11−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 11-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message to the client 1 via the network control device 200.

(図11−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 11-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図24−(S13))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 24-(S13)) The data reception part 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message which the server 2 transmitted via the network control apparatus 100. FIG. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図24−(S14))Server Hello受信部500(暗号スイート調査手段の一部)は、「現在のカウンタ」710が0の場合、受け取ったメッセージをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 24-(S14)) When the "current counter" 710 is 0, the Server Hello receiving part 500 (a part of encryption sweet investigation means) sends the received message to the SSL negotiation process part 600 (that is, (B Go to)). Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図24−(S15))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 24-(S15)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図24−(S16))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 24-(S16)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message with respect to the server 2 via the network control apparatus 100. FIG.

(図24−(S17))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる
(図11−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。
(FIG. 24-(S17)) Thereafter, the client 1 enters a state of waiting to receive a message from the server 2. (FIG. 11-(S9)) The data receiving unit 220 of the server 2 transmits the Client Key Exchange / Change transmitted by the client 1. A Cipher Spec / Finished message is received via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図11−(S11))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 11-(S11)) SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図11−(S12))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 11-(S12)) The data transmission part 210 transmits a Change Cipher Spec / Finished message to the client 1 via the network control apparatus 200.

機能ブロック図には図示していないが、この後は、サーバ2は作成した共通鍵を使ってクライアント1と暗号通信を行う。なお、暗号通信とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Although not shown in the functional block diagram, the server 2 thereafter performs cryptographic communication with the client 1 using the created common key. The encryption communication is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図24−(S17))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 24-(S17)) The data receiver 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted from the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図24−(S18))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 24-(S18)) The SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

機能ブロック図には図示していないが、この後は、クライアント1は作成した共通鍵を使ってサーバ2と暗号通信を行う。   Although not shown in the functional block diagram, after this, the client 1 performs cryptographic communication with the server 2 using the created common key.

図25は、本発明の実施の形態におけるハードウェア構成の第3例を示す図であり、図23のハードウェア構成図の一例でもある。クライアント1は、プログラム処理を実行するCPU10、一時的な記憶メモリであるRAM20、書き換え可能な不揮発性メモリであるHDD(ハードディスク)30、書き換え不可の不揮発性メモリであるROM40とネットワークのデータ送受信を実行するMAC/PHY50で構成されている。一方、サーバ2は、プログラム処理を実行するCPU11、一時的な記憶メモリであるRAM21、書き換え不可の不揮発性メモリであるROM41とネットワークのデータ送受信を実行するMAC/PHY51で構成されている。また、クライアント1とサーバ2はMAC/PHY50とMAC/PHY51を介してネットワークで接続されている。   25 is a diagram showing a third example of the hardware configuration in the embodiment of the present invention, and is also an example of the hardware configuration diagram of FIG. The client 1 executes data transmission / reception of the network with the CPU 10 that executes program processing, the RAM 20 that is a temporary storage memory, the HDD (hard disk) 30 that is a rewritable nonvolatile memory, and the ROM 40 that is a non-rewritable nonvolatile memory. MAC / PHY50. On the other hand, the server 2 includes a CPU 11 that executes program processing, a RAM 21 that is a temporary storage memory, a ROM 41 that is a non-rewritable nonvolatile memory, and a MAC / PHY 51 that executes network data transmission / reception. The client 1 and the server 2 are connected to each other via a network via a MAC / PHY 50 and a MAC / PHY 51.

はじめにクライアント1のハード構成に関して説明を行う。図23に示したクライアント1の各処理部は、CPU10、及びRAM20で実行される。   First, the hardware configuration of the client 1 will be described. Each processing unit of the client 1 illustrated in FIG. 23 is executed by the CPU 10 and the RAM 20.

「現在のカウンタ」710、及び搭載情報800(搭載状況記憶手段)は、一時的な記憶メモリであるRAM20に配置しているが、書き換え可能なメモリであれば良く、HDD(ハードディスク)30やフラッシュROMなどに配置してもよい。   The “current counter” 710 and the mounting information 800 (mounting status storage means) are arranged in the RAM 20, which is a temporary storage memory, but may be any rewritable memory, such as the HDD (hard disk) 30 or the flash. You may arrange | position to ROM etc.

次に「クライアントがサポートする暗号スイートの優先順位情報」であるが、これは書き換え可能な不揮発性メモリに配置するのが好ましい。本図では書き換え可能な不揮発性メモリとしてHDD(ハードディスク)30を利用しているが、フラッシュROMなど書き換え可能な不揮発性メモリであれば、種類は何であっても構わない。「クライアントがサポートする暗号スイートの優先順位情報」を一時的な記憶メモリであるRAM20に配置しても動作はするものの、毎回、優先順位を登録する手間を要するので好ましくない。   Next, “priority information of cipher suites supported by the client” is preferably arranged in a rewritable nonvolatile memory. In this figure, an HDD (hard disk) 30 is used as a rewritable nonvolatile memory, but any type of rewritable nonvolatile memory such as a flash ROM may be used. Although operation is possible even if “priority information on cipher suites supported by the client” is arranged in the RAM 20 which is a temporary storage memory, it is not preferable because it takes time to register the priority every time.

なお、「クライアントがサポートする暗号スイートの優先順位情報」が実装時に決定され、実装後は優先順位の変更をしない場合は、書き換え不可の不揮発性メモリであるROM40などに配置してもよい。   Note that “priority information on cipher suites supported by the client” is determined at the time of mounting, and if the priority is not changed after mounting, the cipher suites may be arranged in the ROM 40, which is a non-rewritable nonvolatile memory.

「クライアントがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。説明が紛らしなるのを避けるため、クライアント1の機能ブロック図には、「クライアントがサポートする暗号スイート」を示していないが、サーバ2の機能ブロック図には図示しているように、実際の暗号通信では必要となるものである。なおここでは、「クライアントがサポートする暗号スイート」をROM40に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回サーバからダウンロードして利用する場合は、RAM20のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the client” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. In order to avoid confusing the description, the functional block diagram of the client 1 does not show “cipher suites supported by the client”, but as shown in the functional block diagram of the server 2, This is necessary for cryptographic communication. Here, “encryption suite supported by the client” is arranged in the ROM 40, but the present invention is not limited to this. When the cipher suite program is downloaded from the server and used every time, it can be arranged in a volatile memory such as the RAM 20.

次に「SSL/TLS仕様で定義されている暗号スイートの情報」であるが、基本的には書き換えしないものなので、ROM40など不揮発性メモリに配置するのがよい。しかし、長期間に渡り利用される機器などでは、その間に、セキュリティレベルが下がった暗号スイートを除外したい場合も出てくるので、HDD30やRAM20など、書き換え可能なメモリに配置した方がよいケースもある。   Next, “cipher suite information defined in the SSL / TLS specification” is basically information that is not rewritten, so it is preferable to place it in a non-volatile memory such as the ROM 40. However, in devices that are used for a long period of time, there may be cases where it is desired to exclude a cipher suite whose security level has been lowered in the meantime. is there.

MAC/PHY50は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置100を実現するものである。   The MAC / PHY 50 is hardware that controls network communication, and implements the network control device 100.

次にサーバ2のハード構成に関して説明を行う。図23に示したサーバ2の各処理部は、CPU11、及びRAM21で実行される。   Next, the hardware configuration of the server 2 will be described. Each processing unit of the server 2 illustrated in FIG. 23 is executed by the CPU 11 and the RAM 21.

「サーバがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。なおここでは、「サーバがサポートする暗号スイート」をROM41に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回他のサーバからダウンロードして利用する場合は、RAM21のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the server” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. Here, “encryption suite supported by the server” is arranged in the ROM 41, but the present invention is not limited to this. When the cipher suite program is downloaded from another server and used every time, it can be arranged in a volatile memory such as the RAM 21.

MAC/PHY51は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置200を実現するものである。   The MAC / PHY 51 is hardware that controls network communication, and implements the network control device 200.

図26は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第7例を示すシーケンス図であり、図8で示した「サーバがサポートする暗号スイートの搭載状況を調査する」方法の別の一例を示すシーケンス図でもある。図26では図8と同様に、クライアントがサポートする暗号スイートの内、サーバがサポートしない暗号スイートを調査している。   FIG. 26 is a sequence diagram showing a seventh example of the method “investigating the installation status of the cipher suites supported by the server” in the embodiment of the present invention, and the “cipher suites supported by the server” shown in FIG. It is also a sequence diagram showing another example of the “investigation of mounting status” method. In FIG. 26, as in FIG. 8, among cipher suites supported by the client, cipher suites not supported by the server are investigated.

しかし図26では図8と異なり、サーバがサポートする暗号スイートの調査するのに、暗号スイートを1つ1つ調査することはせず、Client Helloで複数の暗号スイートを提示する手段を用いている。   However, unlike FIG. 8, in FIG. 26, the cipher suites supported by the server are not investigated one by one, but a means for presenting a plurality of cipher suites in Client Hello is used. .

次に図26の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、クライアントがサポートする複数の暗号スイート指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその複数の暗号スイートを保持していないと判断する。   Next, a detailed description of FIG. 26 will be given. Here, the client transmits Client Hello designated by a plurality of cipher suites supported by the client in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the plurality of cipher suites are not held.

(図26−(S1))クライアントは自らがサポートするすべての暗号スイートを指定してClient Helloを送信する。なおここではすべての暗号スイートを指定しているが、一部の暗号スイートであってもよい。ここでは下記の暗号スイートを指定したものとして説明を行う。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図26−(S2))暗号スイートの優先順位を決めないサーバの場合、自らがサポートする暗号スイートの内、Client Helloで指定された暗号スイートの中で最も上位に記述された暗号スイートを選択し、Server Helloを返信する。暗号スイートの優先順位を自ら決めるサーバの場合、Client Helloで指定された暗号スイートの中で、サーバにとって最も優先順位の高い暗号スイートを選択し、Server Helloを返信する。ここでは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」を選択したものとして説明を行う。サーバは、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定した、Server Helloを返信する。
(FIG. 26-(S1)) A client designates all the cipher suites which oneself supports, and transmits Client Hello. Although all cipher suites are specified here, some cipher suites may be used. Here, description will be made assuming that the following cipher suite is specified.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 26- (S2)) In the case of a server that does not determine the priority order of cipher suites, the cipher suite described at the top of the cipher suites specified by Client Hello is selected from the cipher suites supported by itself. And return Server Hello. In the case of a server that determines the priority order of cipher suites, the cipher suite having the highest priority order for the server is selected from the cipher suites specified by Client Hello, and Server Hello is returned. Here, a description will be given on the assumption that the server has selected “TLS_RSA_WITH_AES_128_CBC_SHA”. The server returns a Server Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA”.

クライアントは、このServer Helloにより、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。ここではこれを記憶するように図示していないが、これを記憶しておいてもよい。(図26−(S3))そして通信を切断する。   The client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA” by this Server Hello. Although this is not illustrated here as storing it, it may be stored. (FIG. 26-(S3)) And communication is cut | disconnected.

(図26−(S4))次にクライアントは、最初にサーバに指定した暗号スイートから、この「TLS_RSA_WITH_AES_128_CBC_SHA」を除外した、以下の暗号スイートを指定したClient Helloを送信する。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図26−(S5))サーバは、「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_256_CBC_SHA」を指定した、Server Helloを返信する。
(FIG. 26-(S4)) Next, a client transmits Client Hello which designated the following encryption sweets which excluded this "TLS_RSA_WITH_AES_128_CBC_SHA" from the encryption sweet first designated to the server.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 26-(S5)) Since the server supports "TLS_RSA_WITH_AES_256_CBC_SHA", it returns Server Hello specifying "TLS_RSA_WITH_AES_256_CBC_SHA".

クライアントは、このServer Helloにより、サーバが「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしていることを知る。ここではこれを記憶するように図示していないが、これを記憶しておいてもよい。(図26−(S6))そして通信を切断する。   The client knows from this Server Hello that the server supports “TLS_RSA_WITH_AES_256_CBC_SHA”. Although this is not illustrated here as storing it, it may be stored. (FIG. 26-(S6)) And communication is cut | disconnected.

(図26−(S7))次にクライアントは、2番目にサーバに指定した暗号スイートから、この「TLS_RSA_WITH_AES_256_CBC_SHA」を除外した、以下の暗号スイートを指定したClient Helloを送信する。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(図26−(S8))サーバは、上記暗号スイートをサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_MD5」、及び「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。クライアントは、この暗号スイートはサポートされていないものとして記憶する。(図26−(S9))そして通信を切断する。
(FIG. 26-(S7)) Next, the client transmits Client Hello specifying the following cipher suites, excluding this "TLS_RSA_WITH_AES_256_CBC_SHA" from the cipher suites specified for the server second.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(FIG. 26-(S8)) Since the server does not support the cipher suite, an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_MD5” and “TLS_RSA_WITH_RC4_128_SHA”. The client remembers that this cipher suite is not supported. (FIG. 26-(S9)) And communication is cut | disconnected.

後の手順は図8と同様である。この図26と図8を比較して分かるように、サーバの暗号スイートの搭載状況を調査するのに、図26の方が、工数が少ない。これにより迅速な調査が可能となる。   The subsequent procedure is the same as in FIG. As can be seen by comparing FIG. 26 and FIG. 8, the number of man-hours is smaller in FIG. 26 for investigating the installation status of the encryption suite of the server. This enables a quick investigation.

この方法によれば、暗号スイートの優先順位を自ら決めるサーバの場合に対して、そのサーバで決められている優先順位を知ることも可能となる。   According to this method, it is possible to know the priority order determined by the server for the server that determines the priority order of the cipher suites.

図27は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第8例を示すシーケンス図であり、図18で示した「サーバがサポートする暗号スイートの搭載状況を調査する」方法の別の一例を示すシーケンス図でもある。図27では図18と同様に、サーバがサポートする暗号スイートの中でクライアントの優先順位が最も高い暗号スイートを調査している。   FIG. 27 is a sequence diagram illustrating an eighth example of the method “investigating the installation status of the cipher suites supported by the server” according to the embodiment of the present invention, and the “cipher suites supported by the server” illustrated in FIG. It is also a sequence diagram showing another example of the “investigation of mounting status” method. In FIG. 27, as in FIG. 18, the cipher suite having the highest client priority among the cipher suites supported by the server is investigated.

しかし図27では図18と異なり、サーバがサポートする暗号スイートの調査するのに、暗号スイートを1つ1つ調査することはせず、Client Helloで複数の暗号スイートを提示する手段を用いている。   However, unlike FIG. 18, in FIG. 27, the cipher suites supported by the server are not investigated one by one, but a means for presenting a plurality of cipher suites in Client Hello is used. .

次に図27の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、クライアントがサポートする複数の暗号スイート指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその複数の暗号スイートを保持していないと判断する。   Next, detailed description of FIG. 27 will be given. Here, the client transmits Client Hello designated by a plurality of cipher suites supported by the client in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the plurality of cipher suites are not held.

(図27−(S1))クライアントは自らがサポートするすべての暗号スイートを指定してClient Helloを送信する。なおここではすべての暗号スイートを指定しているが、一部の暗号スイートであってもよい。ここでは下記の暗号スイートを指定したものとして説明を行う。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図27−(S2))暗号スイートの優先順位を決めないサーバの場合、自らがサポートする暗号スイートの内、Client Helloで指定された暗号スイートの中で最も上位に記述された暗号スイートを選択し、Server Helloを返信する。暗号スイートの優先順位を自ら決めるサーバの場合、Client Helloで指定された暗号スイートの中で、サーバにとって最も優先順位の高い暗号スイートを選択し、Server Helloを返信する。ここでは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」を選択したものとして説明を行う。サーバは、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定した、Server Helloを返信する。
(FIG. 27-(S1)) A client designates all the encryption sweets which oneself supports, and transmits Client Hello. Although all cipher suites are specified here, some cipher suites may be used. Here, description will be made assuming that the following cipher suite is specified.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 27-(S2)) In the case of the server which does not determine the priority of a cipher suite, it selects the cipher suite described in the highest rank from the cipher suites specified by Client Hello among cipher suites supported by itself. And return Server Hello. In the case of a server that determines the priority order of cipher suites, the cipher suite having the highest priority order for the server is selected from the cipher suites specified by Client Hello, and Server Hello is returned. Here, a description will be given on the assumption that the server has selected “TLS_RSA_WITH_AES_128_CBC_SHA”. The server returns a Server Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA”.

クライアントは、このServer Helloにより、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。クライアントは、これは記憶しておく。(図27−(S3))そして通信を切断する。   The client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA” by this Server Hello. The client remembers this. (FIG. 27-(S3)) And communication is cut | disconnected.

(図27−(S4))次にクライアントは、最初にサーバに指定した暗号スイートから、この「TLS_RSA_WITH_AES_128_CBC_SHA」と、これより優先順位の低いすべての暗号スイートを除外したClient Helloを送信する。   (FIG. 27- (S4)) Next, the client transmits this “TLS_RSA_WITH_AES_128_CBC_SHA” and Client Hello excluding all cipher suites with lower priorities from the cipher suite specified for the server.

「TLS_RSA_WITH_AES_128_CBC_SHA」より優先順位の低い暗号スイートは、この例では、「TLS_RSA_WITH_AES_256_CBC_SHA」の1つだけである。従って、この例では、以下の暗号スイートを指定したClient Helloを送信する。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(図27−(S5))サーバは、上記暗号スイートをサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_MD5」、及び「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。これによって、クライアントは、「TLS_RSA_WITH_AES_128_CBC_SHA」が、サーバがサポートする暗号スイートの中でクライアントの優先順位が最も高い暗号スイートであることを知る。(図27−(S9))そして通信を切断する。
In this example, there is only one cipher suite having a lower priority than “TLS_RSA_WITH_AES_128_CBC_SHA”, which is “TLS_RSA_WITH_AES_256_CBC_SHA”. Therefore, in this example, Client Hello specifying the following cipher suite is transmitted.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(FIG. 27-(S5)) Since the server does not support the cipher suite, an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_MD5” and “TLS_RSA_WITH_RC4_128_SHA”. Accordingly, the client knows that “TLS_RSA_WITH_AES_128_CBC_SHA” is the cipher suite having the highest client priority among cipher suites supported by the server. (FIG. 27-(S9)) And communication is cut | disconnected.

なお、この例では「TLS_RSA_WITH_AES_128_CBC_SHA」の後は、サーバはアラート(handshake_failure)を返す例になっているが、例えば、サーバがこの後に「TLS_RSA_WITH_RC4_128_SHA」でServer Helloを返信してくるケースでは、クライアントは、「TLS_RSA_WITH_AES_128_CBC_SHA」に代えて、この「TLS_RSA_WITH_RC4_128_SHA」を記憶することになる。   In this example, after “TLS_RSA_WITH_AES_128_CBC_SHA”, the server returns an alert (handshake_failure). For example, the server returns a server Hello in “TLS_RSA_WITH_RC4_128_SHA”. This “TLS_RSA_WITH_RC4_128_SHA” is stored instead of “TLS_RSA_WITH_AES_128_CBC_SHA”.

後の手順は図18と同様である。この図27と図18を比較して分かるように、サーバの暗号スイートの搭載状況を調査するのに、図26の方が、工数が少ない。これにより迅速な調査が可能となる。   The subsequent procedure is the same as in FIG. As can be seen by comparing FIG. 27 and FIG. 18, the number of man-hours is smaller in FIG. 26 for investigating the installation status of the cipher suite of the server. This enables a quick investigation.

なお、図26、図27の手順は、図8、図18の別の調査方法を例示したものであるが、この手順は、他の図でも応用可能である。   The procedures in FIGS. 26 and 27 exemplify another investigation method in FIGS. 8 and 18, but this procedure can be applied to other diagrams.

図28は、本発明の実施の形態における「サーバがサポートする暗号スイートの搭載状況を調査する」方法の第9例を示すシーケンス図であり、図8で示した「サーバがサポートする暗号スイートの搭載状況を調査する」方法の別の一例を示すシーケンス図でもある。図28では図8と同様に、クライアントがサポートする暗号スイートの内、サーバがサポートしない暗号スイートを調査している。   FIG. 28 is a sequence diagram showing a ninth example of the method “investigating the installation status of the cipher suites supported by the server” according to the embodiment of the present invention, and shows the “cipher suites supported by the server” shown in FIG. It is also a sequence diagram showing another example of the “investigation of mounting status” method. In FIG. 28, as in FIG. 8, among cipher suites supported by the client, cipher suites not supported by the server are investigated.

しかし図28では図8と異なり、サーバがサポートする暗号スイートの調査するのに利用するTCPポート番号と、実際にSSL/TLS暗号通信を行うTCPポート番号が異なる。   However, in FIG. 28, unlike FIG. 8, the TCP port number used to investigate the cipher suite supported by the server is different from the TCP port number actually performing SSL / TLS encryption communication.

図28では、クライアント側はアプリ(アプリケーション)とSSL(SSL/TLS)モジュール/SSL(SSL/TLS)タスクで構成されている。図28のように、利用するTCPポート番号と、実際にSSL/TLS暗号通信を行うTCPポート番号を分ければ、アプリ側がSSL/TLS暗号通信に指定したTCPポート番号を、サーバがサポートする暗号スイートの調査に利用しなくて済むようになる。   In FIG. 28, the client side includes an application (application) and an SSL (SSL / TLS) module / SSL (SSL / TLS) task. As shown in FIG. 28, if the TCP port number to be used is separated from the TCP port number that actually performs SSL / TLS encrypted communication, the cipher suite that the server supports the TCP port number designated by the application side for SSL / TLS encrypted communication. It becomes unnecessary to use it for the investigation.

アプリ側がSSL/TLS暗号通信に指定したTCPポート番号を、サーバがサポートする暗号スイートの調査に利用すれば、通信切断の度に、アプリ側で再度TCPポート番号を取得しなくてはならなくなり、プログラミングを難しくしてしまう。図28のように、サーバがサポートする暗号スイートの調査に利用するTCPポート番号を、SSL(SSL/TLS)モジュール/SSL(SSL/TLS)タスクが別に用意するようにすれば、アプリ側がSSL/TLS暗号通信に指定したTCPポート番号は切断されることがなくなり、アプリ側から見た場合に、プログラミングが非常に簡単になる。   If the TCP port number specified for SSL / TLS encryption communication on the application side is used for investigation of the cipher suite supported by the server, the application side must acquire the TCP port number again every time communication is disconnected. It makes programming difficult. As shown in FIG. 28, if the TCP (SSL / TLS) module / SSL (SSL / TLS) task separately prepares the TCP port number used for the investigation of the cipher suite supported by the server, the application side can set the SSL / The TCP port number designated for TLS encryption communication is not disconnected, and programming is very simple when viewed from the application side.

なお、サーバがサポートする暗号スイートの調査に利用するTCPポート番号と実際にSSL/TLS暗号通信を行うTCPポート番号が異なることを除けば、手順は図8と同じなので、詳細の説明は割愛する。   Note that the procedure is the same as in FIG. 8 except that the TCP port number used for investigating the cipher suite supported by the server is different from the TCP port number that actually performs SSL / TLS encrypted communication. .

なお、この手順は他の図でも応用可能である。   This procedure can also be applied to other figures.

図29は、本発明の実施の形態におけるSSL/TLS暗号通信の第5例を示すシーケンス図である。図29は図14と同様に、サーバとクライアントが共にサポートする暗号スイートを調査している。但し、その調査方法は図26、図27と同様の手法を利用している。図14と全く同じ手法を利用してもよいが、図26、図27の説明で、機能ブロック図やフローチャートの説明を省いたので、これらの説明を兼ねるため、本質的な問題ではないが、あえてここでは、この手法を利用する。   FIG. 29 is a sequence diagram showing a fifth example of SSL / TLS encryption communication in the embodiment of the present invention. FIG. 29 investigates the cipher suites supported by both the server and the client, as in FIG. However, the investigation method uses the same method as in FIGS. Although the same method as that of FIG. 14 may be used, the explanation of FIG. 26 and FIG. 27 omits the explanation of the functional block diagram and the flowchart. This method is used here.

また図29では、実際のSSL/TLS暗号通信で、暗号スイートの切り替えを行っている。この図の本質はここにある。はじめ、認証を行うために、クライアントは自らがサポートする暗号スイートの内、最もセキュリティレベルの高い暗号スイートである「TLS_RSA_WITH_AES_128_CBC_SHA」を選択し、利用している。   In FIG. 29, cipher suites are switched in actual SSL / TLS cipher communication. This is the essence of this figure. First, in order to perform authentication, the client selects and uses “TLS_RSA_WITH_AES_128_CBC_SHA”, which is the cipher suite with the highest security level among cipher suites supported by the client.

そして、通信用(普通の通信データの受け渡し)には、クライアントは自らがサポートする暗号スイートの内、最も高速処理可能な暗号スイートである「TLS_RSA_WITH_RC4_128_MD5」を選択し、利用している。   For communication (delivery of ordinary communication data), the client selects and uses “TLS_RSA_WITH_RC4_128_MD5”, which is the cipher suite that can be processed at the highest speed among cipher suites that the client supports.

たとえ、相手が利用する暗号スイートの優先順位付けを行うサーバであっても、本発明に従えば、このように目的に応じて、クライアントが主導的に暗号スイートを選択できるメリットがある。特に、脆弱なCPUを搭載しているような組込み機器がクライアントの場合にこの効果は大きい。このような組込み機器の場合でもセキュリティとパフォーマンスを両立することが可能である。   Even if it is a server that prioritizes the cipher suites used by the other party, according to the present invention, there is an advantage that the client can lead the cipher suite selection according to the purpose. In particular, this effect is significant when an embedded device having a vulnerable CPU is a client. Even in such an embedded device, it is possible to achieve both security and performance.

次に図29の詳細な説明を行う。ここでは、クライアントはサーバの暗号スイートの搭載状況を調査するのに、クライアントがサポートする複数の暗号スイート指定したClient Helloを送信している。アラート(handshake_failure)が返ってくれば、サーバはその複数の暗号スイートを保持していないと判断する。   Next, a detailed description of FIG. 29 will be given. Here, the client transmits Client Hello designated by a plurality of cipher suites supported by the client in order to investigate the installation status of the cipher suite of the server. If an alert (handshake_failure) is returned, the server determines that the plurality of cipher suites are not held.

(図29−(S1))クライアントは自らがサポートするすべての暗号スイートを指定してClient Helloを送信する。なおここではすべての暗号スイートを指定しているが、一部の暗号スイートであってもよい。ここでは下記の暗号スイートを指定したものとして説明を行う。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図29−(S2))暗号スイートの優先順位を決めないサーバの場合、自らがサポートする暗号スイートの内、Client Helloで指定された暗号スイートの中で最も上位に記述された暗号スイートを選択し、Server Helloを返信する。暗号スイートの優先順位を自ら決めるサーバの場合、Client Helloで指定された暗号スイートの中で、サーバにとって最も優先順位の高い暗号スイートを選択し、Server Helloを返信する。ここでは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」を選択したものとして説明を行う。サーバは、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定した、Server Helloを返信する。
(FIG. 29-(S1)) A client transmits all of the cipher suites which it supports, and transmits Client Hello. Although all cipher suites are specified here, some cipher suites may be used. Here, description will be made assuming that the following cipher suite is specified.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 29-(S2)) In the case of the server which does not determine the priority of a cipher suite, it selects the cipher suite described in the highest rank from the cipher suites specified by Client Hello among cipher suites supported by itself. And return Server Hello. In the case of a server that determines the priority order of cipher suites, the cipher suite having the highest priority order for the server is selected from the cipher suites specified by Client Hello, and Server Hello is returned. Here, a description will be given on the assumption that the server has selected “TLS_RSA_WITH_AES_128_CBC_SHA”. The server returns a Server Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA”.

クライアントは、このServer Helloにより、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしていることを知る。クライアントはこれを記憶する。(図29−(S3))そして通信を切断する。   The client knows that the server supports “TLS_RSA_WITH_AES_128_CBC_SHA” by this Server Hello. The client remembers this. (FIG. 29-(S3)) And communication is cut | disconnected.

(図29−(S4))次にクライアントは、最初にサーバに指定した暗号スイートから、この「TLS_RSA_WITH_AES_128_CBC_SHA」を除外した、以下の暗号スイートを指定したClient Helloを送信する。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図29−(S5))サーバは、「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_256_CBC_SHA」を指定した、Server Helloを返信する。
(FIG. 29-(S4)) Next, a client transmits Client Hello which designated the following encryption sweets which excluded this "TLS_RSA_WITH_AES_128_CBC_SHA" from the encryption sweet first designated to the server.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 29-(S5)) Since the server supports "TLS_RSA_WITH_AES_256_CBC_SHA", it returns Server Hello specifying "TLS_RSA_WITH_AES_256_CBC_SHA".

クライアントは、このServer Helloにより、サーバが「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしていることを知る。クライアントはこれを記憶する。(図29(S6))そして通信を切断する。   The client knows from this Server Hello that the server supports “TLS_RSA_WITH_AES_256_CBC_SHA”. The client remembers this. (FIG. 29 (S6)) Then, the communication is disconnected.

(図29−(S7))次にクライアントは、2番目にサーバに指定した暗号スイートから、この「TLS_RSA_WITH_AES_256_CBC_SHA」を除外した、以下の暗号スイートを指定したClient Helloを送信する。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(図29−(S8))サーバは、上記暗号スイートをサポートしていないので、アラート(handshake_failure)を返す。これによってクライアントは、サーバが「TLS_RSA_WITH_RC4_128_MD5」、及び「TLS_RSA_WITH_RC4_128_SHA」をサポートしていないことを知る。クライアントは、この暗号スイートはサポートされていないものとして記憶してもよい。ここまでの手順で、クライアントは、サーバとクライアントが共に、「TLS_RSA_WITH_AES_128_CBC_SHA」、及び「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしていることを知る。(図29−(S9))そして通信を切断する。
(FIG. 29-(S7)) Next, a client transmits Client Hello which designated the following encryption sweets which excluded this "TLS_RSA_WITH_AES_256_CBC_SHA" from the encryption sweet designated to the server 2nd.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(FIG. 29-(S8)) Since the server does not support the cipher suite, an alert (handshake_failure) is returned. As a result, the client knows that the server does not support “TLS_RSA_WITH_RC4_128_MD5” and “TLS_RSA_WITH_RC4_128_SHA”. The client may store this cipher suite as not supported. By the procedure so far, the client knows that both the server and the client support “TLS_RSA_WITH_AES_128_CBC_SHA” and “TLS_RSA_WITH_AES_256_CBC_SHA”. (FIG. 29-(S9)) And communication is cut | disconnected.

なお、これ以降の処理が連続して処理されるように図示しているが、ここで一端処理を止め、実際に暗号通信を行う場合に、これ以降の処理を行うとしてもよい。ここでは説明を簡単にするため、これ以降の処理も連続して行うものとする。   In addition, although it has shown in figure that the process after this is processed continuously, a process after this may be performed when the process is stopped here and actually performing encryption communication. Here, in order to simplify the explanation, it is assumed that the subsequent processing is continuously performed.

(図29−(S13))次に、クライアントはサーバと実際にSSL/TLS暗号通信を行うため、利用する暗号スイートの選択を行う。   (FIG. 29-(S13)) Next, the client selects the cipher suite to be used in order to actually perform SSL / TLS cipher communication with the server.

図29には図示していないが、図30に図示しているように、クライアントには、認証用(認証データの受け渡し)と通信用(通信データの受け渡し)で、それぞれ「暗号スイートの優先順位情報」が存在する。ここでははじめに、クライアントがサーバに対して認証を行うものとして説明を行う。   Although not shown in FIG. 29, as shown in FIG. 30, the “cipher suite priority order” is given to the client for authentication (passing authentication data) and for communication (passing communication data), respectively. Information "exists. Here, a description will be given first assuming that the client authenticates to the server.

クライアントは「暗号スイートの優先順位情報(認証用)」と、「サーバとクライアントが共にサポートする暗号スイートの情報」から「TLS_RSA_WITH_AES_256_CBC_SHA」を利用する暗号スイートとして選択する。   The client selects a cipher suite using “TLS_RSA_WITH_AES_256_CBC_SHA” from “cipher suite priority order information (for authentication)” and “cipher suite information supported by both the server and the client”.

(図29−(S14))そしてクライアントはサーバに対して利用する暗号スイートを伝達するため、「TLS_RSA_WITH_AES_256_CBC_SHA」を指定したClient Helloを送信する。(図29−(S15))サーバは「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_256_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_256_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。そして、クライアントとサーバ間で認証データの受け渡しが行われる。   (FIG. 29- (S14)) Then, the client transmits Client Hello specifying "TLS_RSA_WITH_AES_256_CBC_SHA" in order to transmit the cipher suite to be used to the server. (FIG. 29-(S15)) Since the server supports "TLS_RSA_WITH_AES_256_CBC_SHA", it specifies "TLS_RSA_WITH_AES_256_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_256_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started. Then, authentication data is exchanged between the client and the server.

(図29−(S16))次にクライアントはサーバに対して通信を行うものとする。クライアントは「暗号スイートの優先順位情報(通信用)」と、「サーバとクライアントが共にサポートする暗号スイートの情報」から「TLS_RSA_WITH_AES_128_CBC_SHA」を利用する暗号スイートとして選択する。   (FIG. 29-(S16)) Next, a client shall communicate with a server. The client selects a cipher suite using “TLS_RSA_WITH_AES_128_CBC_SHA” from “cipher suite priority information (for communication)” and “cipher suite information supported by both the server and the client”.

(図29−(S17))そしてクライアントはサーバに対して利用する暗号スイートを伝達するため、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloを送信する。(図29−(S18))サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、「TLS_RSA_WITH_AES_128_CBC_SHA」を指定してServer Helloを返す。これによってクライアントは、サーバと「TLS_RSA_WITH_AES_128_CBC_SHA」でSSL/TLSネゴシエーションを行う。この後はSSL/TLSネゴシエーションが正しく実行され、SSL/TLS暗号通信における共通鍵暗号の通信が開始される。そして、クライアントとサーバ間で通信データの受け渡しが行われる。   (FIG. 29- (S17)) Then, the client transmits Client Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA" to transmit the cipher suite to be used to the server. (FIG. 29-(S18)) Since the server supports "TLS_RSA_WITH_AES_128_CBC_SHA", it designates "TLS_RSA_WITH_AES_128_CBC_SHA" and returns Server Hello. As a result, the client performs SSL / TLS negotiation with the server using “TLS_RSA_WITH_AES_128_CBC_SHA”. Thereafter, SSL / TLS negotiation is correctly executed, and communication of common key encryption in SSL / TLS encryption communication is started. Communication data is exchanged between the client and the server.

なお、このSSL/TLSネゴシエーションは再ネゴシエーションなので、通常、このSSL/TLSネゴシエーションは先の暗号通信の中で実行される。このケースでは、このSSL/TLSネゴシエーションは、「TLS_RSA_WITH_AES_256_CBC_SHA」で暗号化されて行われる。このSSL/TLSネゴシエーションが完了した時点から、「TLS_RSA_WITH_AES_128_CBC_SHA」で暗号化が始まる。   Since this SSL / TLS negotiation is a renegotiation, this SSL / TLS negotiation is normally executed in the previous encrypted communication. In this case, the SSL / TLS negotiation is performed by encrypting with “TLS_RSA_WITH_AES_256_CBC_SHA”. Encryption is started with “TLS_RSA_WITH_AES_128_CBC_SHA” from the time when the SSL / TLS negotiation is completed.

図30は、本発明の実施の形態における機能ブロックの第6例を示す図であり、図29の機能ブロック図の一例でもある。また、図31、及び図32は、本発明の実施の形態におけるクライアント側のフローチャートの第6例を示す図であり、図30のクライアント1のフローチャートでもある。図33は、本発明の実施の形態におけるサーバ側のフローチャートの第3例を示す図であり、図30のサーバのフローチャートでもある。次にこの図30、図31、図32、図33を用いて説明を行う。   FIG. 30 is a diagram showing a sixth example of functional blocks in the embodiment of the present invention, and is also an example of the functional block diagram of FIG. 31 and 32 are diagrams showing a sixth example of the flowchart on the client side in the embodiment of the present invention, and are also the flowchart of the client 1 in FIG. FIG. 33 is a diagram showing a third example of the flowchart on the server side in the embodiment of the present invention, and is also the flowchart of the server in FIG. 30. Next, description will be made with reference to FIGS. 30, 31, 32, and 33. FIG.

クライアント1は、ネットワークを介してサーバ2とSSL/TLS暗号通信を開始する。クライアント1では、サポートする暗号スイートを、「クライアントがサポートする暗号スイート情報」で把握できるようになっている。また、搭載情報800(搭載状況記憶手段)で、その各々の暗号スイートに対して、サーバ2でサポートされている暗号スイートをチェックする仕組みになっている。なお、サポートされていない暗号スイートは、サポートされていないものとしてチェックしても構わないが、ここでは説明を簡単にするため、サポートされる暗号スイートのみをチェックするものとする。またここでは、搭載情報800(搭載状況記憶手段)は、各々の暗号スイート毎に記憶する仕組みとしているが、記憶手段はこれに限られるものではなく、サポートされない暗号スイートの番号を覚えるなど、その記憶手段には様々な方法がある。   The client 1 starts SSL / TLS encrypted communication with the server 2 via the network. The client 1 can grasp the cipher suites to be supported by “cipher suite information supported by the client”. In addition, the installation information 800 (installation status storage means) checks the cipher suites supported by the server 2 for each cipher suite. Note that unsupported cipher suites may be checked as being unsupported, but here, in order to simplify the description, only supported cipher suites are checked. Here, the mounting information 800 (loading status storage means) is stored for each cipher suite, but the storage means is not limited to this, and the number of unsupported cipher suites is remembered. There are various storage means.

またクライアント1には、認証用(認証データの受け渡し)と通信用(通信データの受け渡し)で、それぞれ「暗号スイートの優先順位情報」が存在する。このように目的によって利用する暗号スイートの優先順位付けを行っている。   The client 1 has “cipher suite priority information” for authentication (passing authentication data) and for communication (passing communication data). In this way, prioritization of cipher suites to be used is performed according to the purpose.

また、クライアント1には、サーバ2の暗号スイートの搭載状況を調査するか否かを示すフラグ720が設けてある。このフラグがTRUEの場合のみ、クライアント1はサーバ2の暗号スイートの搭載状況を調査する仕組みとなっている。このフラグ720には最初、TRUEが設定されているものとする。   Further, the client 1 is provided with a flag 720 that indicates whether or not the installation status of the cipher suite of the server 2 is to be investigated. Only when this flag is TRUE, the client 1 is configured to investigate the installation status of the cipher suite of the server 2. It is assumed that TRUE is initially set in this flag 720.

(図31−(S1))はじめに、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイート情報」と搭載情報800(搭載状況記憶手段)から暗号スイートの情報を読み出す。はじめは搭載情報800(搭載状況記憶手段)にチェックされている暗号スイートはないので、「クライアントがサポートする暗号スイート情報」に掲載されているすべての暗号スイートが読み出す。このケースでは以下の暗号スイートが読み出される。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図31−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、上記暗号スイートを指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。
(FIG. 31- (S1)) First, the client hello generating unit 400 (part of the cipher suite investigation unit) encrypts the “cipher suite information supported by the client” and the mounting information 800 (mounting state storage unit) held by itself. Read suite information. Initially, since there is no cipher suite checked in the mounting information 800 (mounting status storage means), all cipher suites listed in “cipher suite information supported by the client” are read. In this case, the following cipher suites are read.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 31-(S2)) Client Hello production | generation part 400 (a part of encryption sweet investigation means) produces | generates the Client Hello message which designated the said encryption sweet, and sends this to the data transmission part 110. FIG.

(図31−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 31-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 33-(S1)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図33−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 33-(S2)) Client Hello receiving part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

暗号スイートの優先順位を決めないサーバの場合、自らがサポートする暗号スイートの内、Client Helloで指定された暗号スイートの中で最も上位に記述された暗号スイートを選択し、Server Helloを返信する。暗号スイートの優先順位を自ら決めるサーバの場合、Client Helloで指定された暗号スイートの中で、サーバにとって最も優先順位の高い暗号スイートを選択し、Server Helloを返信する。ここでは、サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」を選択したものとして説明を行う。   In the case of a server that does not determine the priority order of cipher suites, the cipher suite described at the highest level is selected from among cipher suites supported by the client, and the server hello is returned. In the case of a server that determines the priority order of cipher suites, the cipher suite having the highest priority order for the server is selected from the cipher suites specified by Client Hello, and Server Hello is returned. Here, a description will be given on the assumption that the server has selected “TLS_RSA_WITH_AES_128_CBC_SHA”.

(図33−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 33-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図33−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図33−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 33-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 33-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図31−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 31-(S4)) The data reception part 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message which the server 2 transmitted via the network control apparatus 100. FIG. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図31−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 31-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図31−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートすることを記憶する。   (FIG. 31-(S6)) Since the received message is not a handshake_failure message, the server hello receiving unit 500 (part of the cipher suite checking means) indicates that the server 2 has “TLS_RSA_WITH_AES_128_CBC_SHA” in the mounting information 800 (mounting status storage means). Remember to support.

(図31−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図33−(S9))なお、サーバ2はクライアント1からのメッセージ受信待ち状態であったが、クライアント1から通信を切断されたので、このメッセージ受信待ち状態を抜け、Client Helloの受信待ち状態になる。また、図11のフローチャートでは分かりやすいのように(S9)と(S10)を分けて図示しているが、実際は、(S9)のメッセージ受信処理の中で、(S10)の通信の切断処理が実行される。
(FIG. 31- (S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite investigation unit) disconnects communication and calls the Client Hello generation unit 400 (part of the cipher suite investigation unit) (that is, ( Go to A)).
(FIG. 33-(S <b> 9)) Although the server 2 is in a message reception waiting state from the client 1, the communication is disconnected from the client 1, so the server 2 exits this message reception waiting state and waits to receive the client hello. become. In addition, in the flowchart of FIG. 11, (S9) and (S10) are illustrated separately for easy understanding, but actually, the communication disconnection process of (S10) is performed in the message reception process of (S9). Executed.

(図31−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイート情報」と搭載情報800(搭載状況記憶手段)から暗号スイートの情報を読み出す。この時点で搭載情報800(搭載状況記憶手段)には、「TLS_RSA_WITH_AES_128_CBC_SHA」がチェックされているいるので、「クライアントがサポートする暗号スイート情報」に掲載されているすべての暗号スイートの中から、「TLS_RSA_WITH_AES_128_CBC_SHA」を除外した暗号スイートを読み出す。このケースでは以下の暗号スイートが読み出される。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(図31−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、上記暗号スイートを指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。
(FIG. 31- (S1)) Next, the client hello generating unit 400 (part of the cipher suite investigation means) uses the “cipher suite information supported by the client” and the mounting information 800 (mounting status storage means) held by itself. Read cipher suite information. At this time, since “TLS_RSA_WITH_AES_128_CBC_SHA” is checked in the mounting information 800 (mounting status storage means), “TLS_RSA_WITH_AES_128_CBC_SHA” is selected from all cipher suites listed in “cipher suite information supported by the client”. ”Is read out. In this case, the following cipher suites are read.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
(FIG. 31-(S2)) Client Hello production | generation part 400 (a part of encryption sweet investigation means) produces | generates the Client Hello message which designated the said encryption sweet, and sends this to the data transmission part 110. FIG.

(図31−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 31-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S5))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 33-(S5)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図33−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 33-(S2)) Client Hello receiving part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図33−(S6))サーバ2は、「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 33-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_256_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図33−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図33−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 33-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 33-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図31−(S4))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 31-(S4)) The data reception part 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message which the server 2 transmitted via the network control apparatus 100. FIG. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図31−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。   (FIG. 31-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message.

(図31−(S6))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージでないので、搭載情報800(搭載状況記憶手段)に、サーバ2が「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートすることを記憶する。   (FIG. 31-(S6)) Since the received message is not a handshake_failure message, the server hello receiving unit 500 (part of the cipher suite checking means) indicates that the server 2 has "TLS_RSA_WITH_AES_256_CBC_SHA" in the mounting information 800 (mounting status storage means). Remember to support.

(図31−(S7))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、Client Hello生成部400(暗号スイート調査手段の一部)を呼び出す(つまり(A)に進む)。
(図33−(S9))なお、サーバ2はクライアント1からのメッセージ受信待ち状態であったが、クライアント1から通信を切断されたので、このメッセージ受信待ち状態を抜け、Client Helloの受信待ち状態になる。また、図11のフローチャートでは分かりやすいのように(S9)と(S10)を分けて図示しているが、実際は、(S9)のメッセージ受信処理の中で、(S10)の通信の切断処理が実行される。
(FIG. 31- (S7)) Next, the Server Hello receiving unit 500 (part of the cipher suite investigation unit) disconnects communication and calls the Client Hello generation unit 400 (part of the cipher suite investigation unit) (that is, ( Go to A)).
(FIG. 33-(S <b> 9)) Although the server 2 is in a message reception waiting state from the client 1, the communication is disconnected from the client 1, so the server 2 exits this message reception waiting state and waits to receive the client hello. become. In addition, in the flowchart of FIG. 11, (S9) and (S10) are illustrated separately for easy understanding, but actually, the communication disconnection process of (S10) is performed in the message reception process of (S9). Executed.

(図31−(S1))次に、Client Hello生成部400(暗号スイート調査手段の一部)は自らが保持する「クライアントがサポートする暗号スイート情報」と搭載情報800(搭載状況記憶手段)から暗号スイートの情報を読み出す。この時点で搭載情報800(搭載状況記憶手段)には、「TLS_RSA_WITH_AES_128_CBC_SHA」と「TLS_RSA_WITH_AES_256_CBC_SHA」がチェックされているいるので、「クライアントがサポートする暗号スイート情報」に掲載されているすべての暗号スイートの中から、「TLS_RSA_WITH_AES_128_CBC_SHA」と「TLS_RSA_WITH_AES_128_CBC_SHA」を除外した暗号スイートを読み出す。このケースでは以下の暗号スイートが読み出される。
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(図31−(S2))Client Hello生成部400(暗号スイート調査手段の一部)は、上記暗号スイートを指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。
(FIG. 31- (S1)) Next, the client hello generating unit 400 (part of the cipher suite investigation means) uses the “cipher suite information supported by the client” and the mounting information 800 (mounting status storage means) held by itself. Read cipher suite information. At this time, since “TLS_RSA_WITH_AES_128_CBC_SHA” and “TLS_RSA_WITH_AES_256_CBC_SHA” are checked in the mounting information 800 (mounting status storage means), among the cipher suites listed in “cipher suite information supported by the client” Then, a cipher suite excluding “TLS_RSA_WITH_AES_128_CBC_SHA” and “TLS_RSA_WITH_AES_128_CBC_SHA” is read out. In this case, the following cipher suites are read.
TLS_RSA_WITH_RC4_128_MD5
TLS_RSA_WITH_RC4_128_SHA
(FIG. 31-(S2)) Client Hello production | generation part 400 (a part of encryption sweet investigation means) produces | generates the Client Hello message which designated the said encryption sweet, and sends this to the data transmission part 110. FIG.

(図31−(S3))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 31-(S3)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S4))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S4)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S1))サーバ2は、クライアント1からのメッセージ受信待ち状態で始まる。データ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 33-(S1)) The server 2 starts in a state waiting for receiving a message from the client 1. The data receiving unit 220 receives the Client Hello message transmitted from the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図33−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 33-(S2)) Client Hello receiving part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図33−(S3))Client Helloメッセージには暗号スイートして「TLS_RSA_WITH_RC4_128_MD5」、及び「TLS_RSA_WITH_RC4_128_SHA」が指定されているが、これをサーバ2はサポートしていないので、Client Hello受信部410がhandshake_failureメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33- (S3)) In the Client Hello message, “TLS_RSA_WITH_RC4_128_MD5” and “TLS_RSA_WITH_RC4_128_SHA” are specified as cipher suites, but since the server 2 does not support this, the Client Hello receiving unit 410 has a handshaking_handshaking_ A message is generated and sent to the data transmission unit 210.

(図33−(S4))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、handshake_failureメッセージを送信する。   (FIG. 33-(S4)) The data transmission part 210 transmits a handshake_failure message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S5))その後、Client Hello受信部410は、クライアント1との通信を切断し、サーバ2は再びクライアント1からのClient Helloメッセージの受信待ち状態になる。   (FIG. 33-(S <b> 5)) Thereafter, the client hello receiving unit 410 disconnects communication with the client 1, and the server 2 again waits to receive a client hello message from the client 1.

(図31−(S4))クライアント1のデータ受信部120は、サーバ2が送信したhandshake_failureメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、handshake_failureメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 31-(S4)) The data receiver 120 of the client 1 receives the handshake_failure message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the handshake_failure message to the Server Hello receiving unit 500 (part of the cipher suite checking means) that processes (interprets) the handshake_failure message.

(図31−(S5))Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージか否かをチェックする。Server Hello受信部500(暗号スイート調査手段の一部)は、受け取ったメッセージがhandshake_failureメッセージなので、搭載情報800(搭載状況記憶手段)には何も処理しない。   (FIG. 31-(S5)) Server Hello receiving part 500 (a part of encryption sweet investigation means) checks whether the received message is a handshake_failure message. The Server Hello receiving unit 500 (part of the cipher suite checking means) does not process the mounting information 800 (mounting status storage means) because the received message is a handshake_failure message.

(図31−(S8))次に、Server Hello受信部500(暗号スイート調査手段の一部)は通信を切断し、フラグ720をFALSEに設定する。そしてClient Hello生成部400を呼び出す(つまり(A)に進む)。
(図31−(S9))次に、Client Hello生成部400は、フラグ720がFALSEの場合、「暗号スイートの優先順位」と情報搭載情報800(搭載状況記憶手段)より、利用する暗号スイートを選択する。はじめクライアント1はサーバ2に対して、認証を行うので、「暗号スイートの優先順位」は認証用を利用する。具体的には以下のように選定する。(1)Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位1の「TLS_RSA_WITH_AES_256_CBC_SHA」がサポートされていることを知る。そこで、Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_256_CBC_SHA」を選択する。
(FIG. 31-(S8)) Next, the Server Hello receiving part 500 (a part of encryption sweet investigation means) cut | disconnects communication, and sets the flag 720 to FALSE. Then, the client hello generating unit 400 is called (that is, the process proceeds to (A)).
(FIG. 31- (S9)) Next, when the flag 720 is FALSE, the client hello generating unit 400 determines the cipher suite to be used from the “cipher suite priority” and the information mounting information 800 (mounting status storage means). select. First, the client 1 authenticates to the server 2, and therefore, “cipher suite priority” uses authentication. Specifically, the selection is as follows. (1) The client hello generating unit 400 knows that “TLS_RSA_WITH_AES_256_CBC_SHA” with priority 1 is supported from the mounting information 800 (mounting status storage means). Therefore, the client hello generating unit 400 selects “TLS_RSA_WITH_AES_256_CBC_SHA” as the cipher suite.

(図31−(S10))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_256_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 31-(S10)) The Client Hello production | generation part 400 produces | generates the Client Hello message which designated "TLS_RSA_WITH_AES_256_CBC_SHA" as a cipher suite, and sends this to the data transmission part 110.

(図31−(S11))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 31-(S11)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S12))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S12)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 33-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted by the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図33−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 33-(S2)) Client Hello receiving part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図33−(S6))サーバ2は、「TLS_RSA_WITH_AES_256_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 33-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_256_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図33−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図33−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 33-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 33-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図31−(S12))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 31-(S12)) The data receiver 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted from the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図31−(S13))Server Hello受信部500(暗号スイート調査手段の一部)は、フラグ720がFALSEの場合、受け取ったメッセージをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 31-(S13)) When the flag 720 is FALSE, the Server Hello receiving unit 500 (part of the cipher suite examining unit) sends the received message to the SSL negotiation processing unit 600 (that is, proceeds to (B)). . Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図31−(S14))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 31-(S14)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図31−(S15))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 31-(S15)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S16))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S16)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 33-(S <b> 9)) The data receiving unit 220 of the server 2 receives the Client Key Exchange / Change Cipher Spec / Finished message transmitted from the client 1 via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図33−(S11))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33-(S11)) SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図33−(S12))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 33-(S12)) The data transmission part 210 transmits a Change Cipher Spec / Finished message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S13))その後、サーバ2はクライアント1からのデータ(認証データ)受信待ち状態になる。   (FIG. 33-(S13)) Thereafter, the server 2 enters a state of waiting for data (authentication data) from the client 1.

(図31−(S16))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 31-(S16)) The data receiver 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted from the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図31−(S17))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 31-(S17)) The SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

(図31−(S18))この後通信部900が、作成した共通鍵を使って、認証データの暗号化を行い、この暗号化された認証データをデータ送信部110に送る。データ送信部110は、この暗号化された認証データを、ネットワーク制御装置100を介して、サーバ2に対して送信する。   (FIG. 31-(S18)) Thereafter, the communication unit 900 encrypts the authentication data using the created common key, and sends the encrypted authentication data to the data transmission unit 110. The data transmission unit 110 transmits the encrypted authentication data to the server 2 via the network control device 100.

なお、暗号化とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Note that the encryption is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図33−(S13))サーバ2のデータ受信部220は、クライアント1が送信した暗号化された認証データを、ネットワーク制御装置200を介して受信する。データ受信部220は、この暗号化された認証データを、通信部910に送る。   (FIG. 33-(S13)) The data reception part 220 of the server 2 receives the encrypted authentication data which the client 1 transmitted via the network control apparatus 200. FIG. The data receiving unit 220 sends the encrypted authentication data to the communication unit 910.

(図33−(S14))通信部910は、暗号化された認証データを復号化する。データが認証データなので、通信部910は、この認証データを認証部920に送る。なお、認証部920が通信部910に認証結果がOKであったことを通知しない間は、通信部910は、データが通信データであれば、これを破棄し処理しない仕組みになっている。   (FIG. 33-(S14)) The communication part 910 decrypts the encrypted authentication data. Since the data is authentication data, the communication unit 910 sends this authentication data to the authentication unit 920. Note that while the authentication unit 920 does not notify the communication unit 910 that the authentication result is OK, the communication unit 910 discards and does not process the data if the data is communication data.

(図33−(S15))認証部920は、認証データを検査する。ここでは認証データが正しい場合で以下説明を行う。認証部920は通信部910に認証結果がOKであることを通知する。   (FIG. 33-(S15)) The authentication part 920 test | inspects authentication data. Here, the description will be given in the case where the authentication data is correct. The authentication unit 920 notifies the communication unit 910 that the authentication result is OK.

なお図33のフローチャートでは、(図33−(S15))の後、スタートに戻っているが、これは実際にはデータ受信待ち状態である。この後、クライアント1からのClient Helloを受信することになるが、そこで実際にはスタートに戻る。   In the flowchart of FIG. 33, the process returns to the start after (FIG. 33- (S15)), but this is actually a data reception waiting state. Thereafter, Client Hello from the client 1 is received, but actually, the process returns to the start.

(図31−(S13))次に、Client Hello生成部400は、フラグ720がFALSEで、かつ認証データ送信後の場合、「暗号スイートの優先順位」と情報搭載情報800(搭載状況記憶手段)より、利用する暗号スイートを選択する。クライアント1はサーバ2に対して、通信データの送信を行うので、「暗号スイートの優先順位」は通信用を利用する。具体的には以下のように選定する。(1)Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位1の「TLS_RSA_WITH_RC4_128_MD5」がサポートされていないことを知る。(2)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位2の「TLS_RSA_WITH_RC4_128_SHA」がサポートされていないことを知る。(3)次に、Client Hello生成部400は、搭載情報800(搭載状況記憶手段)より、優先順位3の「TLS_RSA_WITH_AES_128_CBC_SHA」がサポートされていることを知る。そこで、Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を選択する。   (FIG. 31-(S13)) Next, when the flag 720 is FALSE and the authentication data is transmitted, the client hello generating unit 400 and the “cipher suite priority” and the information mounting information 800 (mounting status storage unit) Select the cipher suite to be used. Since the client 1 transmits communication data to the server 2, “cipher suite priority” is used for communication. Specifically, the selection is as follows. (1) The client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_MD5” of priority 1 is not supported. (2) Next, the client hello generating unit 400 knows from the mounting information 800 (mounting status storage means) that “TLS_RSA_WITH_RC4_128_SHA” of priority 2 is not supported. (3) Next, the client hello generating unit 400 knows that “TLS_RSA_WITH_AES_128_CBC_SHA” with priority 3 is supported from the mounting information 800 (mounting status storage means). Therefore, the client hello generating unit 400 selects “TLS_RSA_WITH_AES_128_CBC_SHA” as the cipher suite.

(図31−(S20))Client Hello生成部400は、暗号スイートとして「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したClient Helloメッセージを生成し、これをデータ送信部110に送る。   (FIG. 31-(S20)) The Client Hello production | generation part 400 produces | generates the Client Hello message which designated "TLS_RSA_WITH_AES_128_CBC_SHA" as a cipher suite, and sends this to the data transmission part 110.

なお、このClient Helloメッセージに始まるSSL/TLSネゴシエーションは再ネゴシエーションなので、通常、このSSL/TLSネゴシエーションは先の暗号通信の中で実行される。このケースでは、このSSL/TLSネゴシエーションは、「TLS_RSA_WITH_AES_256_CBC_SHA」で暗号化されて行われる。従って実際は、通信部900と通信部910の暗号、復号処理が介在する。説明が煩雑になるので、この処理は省略して以下説明を行う。   Since the SSL / TLS negotiation starting with this Client Hello message is a renegotiation, this SSL / TLS negotiation is normally executed in the previous encrypted communication. In this case, the SSL / TLS negotiation is performed by encrypting with “TLS_RSA_WITH_AES_256_CBC_SHA”. Therefore, actually, encryption and decryption processing of the communication unit 900 and the communication unit 910 are involved. Since the description is complicated, this process is omitted and will be described below.

(図31−(S21))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、このClient Helloメッセージを送信する。   (FIG. 31-(S21)) The data transmission part 110 transmits this Client Hello message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S22))この後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S22)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S1))サーバ2のデータ受信部220は、クライアント1が送信したClient Helloメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Helloメッセージを、Client Helloメッセージを処理(解釈)するClient Hello受信部410に送る。   (FIG. 33-(S1)) The data receiver 220 of the server 2 receives the Client Hello message transmitted by the client 1 via the network control device 200. The data receiving unit 220 sends this Client Hello message to the Client Hello receiving unit 410 that processes (interprets) the Client Hello message.

(図33−(S2))Client Hello受信部410は、Client Helloメッセージで指定された暗号スイートが、自らがサポートする暗号スイートに存在するか否かをチェックする。   (FIG. 33-(S2)) Client Hello receiving part 410 checks whether the encryption sweet designated by the Client Hello message exists in the encryption sweet which self supports.

(図33−(S6))サーバ2は、「TLS_RSA_WITH_AES_128_CBC_SHA」をサポートしているので、Client Hello受信部410は、このClient Helloメッセージを処理し、Server Hello生成部510を呼び出す。   (FIG. 33-(S6)) Since the server 2 supports "TLS_RSA_WITH_AES_128_CBC_SHA", the Client Hello reception part 410 processes this Client Hello message, and calls the Server Hello production | generation part 510. FIG.

(図33−(S7))Server Hello生成部510は、Server Hello / Server Certificate / Server Hello Doneメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33-(S7)) The Server Hello production | generation part 510 produces | generates a Server Hello / Server Certificate / Server Hello Done message, and sends this to the data transmission part 210. FIG.

(図33−(S8))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Server Hello / Server Certificate / Server Hello Doneメッセージを送信する。   (FIG. 33-(S8)) The data transmission part 210 transmits a Server Hello / Server Certificate / Server Hello Done message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S9))その後、サーバ2はクライアント1からのメッセージ受信待ち状態になる。   (FIG. 33-(S9)) Thereafter, the server 2 enters a state of waiting for a message from the client 1.

(図31−(S22))クライアント1のデータ受信部120は、サーバ2が送信したServer Hello / Server Certificate / Server Hello Doneメッセージを、ネットワーク制御装置100を介して受信する。データ受信部120は、Server Hello / Server Certificate / Server Hello Doneメッセージを、handshake_failureメッセージを処理(解釈)するServer Hello受信部500(暗号スイート調査手段の一部)に送る。   (FIG. 31-(S22)) The data receiver 120 of the client 1 receives the Server Hello / Server Certificate / Server Hello Done message transmitted by the server 2 via the network control device 100. The data receiving unit 120 sends the Server Hello / Server Certificate / Server Hello Done message to the Server Hello receiving unit 500 (part of the cipher suite investigation means) that processes (interprets) the handshake_failure message.

(図31−(S23))Server Hello受信部500(暗号スイート調査手段の一部)は、フラグ720がFALSEの場合、受け取ったメッセージをSSLネゴシエーション処理部600に送る(つまり(B)に進む)。なお、SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 31-(S23)) Server Hello receiving part 500 (a part of encryption sweet investigation means) sends the received message to SSL negotiation process part 600 (that is, it progresses to (B)), when flag 720 is FALSE. . Note that the SSL negotiation processing unit 600 performs negotiation processing in SSL / TLS encryption communication after the Server Hello / Server Certificate / Server Hello Done message processing.

(図31−(S24))SSLネゴシエーション処理部600は、Server Hello / Server Certificate / Server Hello Doneメッセージを処理し、共通鍵を生成する。そして次に、Client Key Exchange / Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部110に送る。   (FIG. 31-(S24)) The SSL negotiation process part 600 processes a Server Hello / Server Certificate / Server Hello Done message, and produces | generates a common key. Next, a Client Key Exchange / Change Cipher Spec / Finished message is generated and sent to the data transmission unit 110.

(図31−(S25))データ送信部110は、ネットワーク制御装置100を介して、サーバ2に対して、Client Key Exchange / Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 31-(S25)) The data transmission part 110 transmits a Client Key Exchange / Change Cipher Spec / Finished message with respect to the server 2 via the network control apparatus 100. FIG.

(図31−(S26))その後、クライアント1はサーバ2からのメッセージ受信待ち状態になる。   (FIG. 31-(S26)) Thereafter, the client 1 enters a state of waiting for receiving a message from the server 2.

(図33−(S9))サーバ2のデータ受信部220は、クライアント1が送信したClient Key Exchange / Change Cipher Spec / Finishedメッセージを、ネットワーク制御装置200を介して受信する。データ受信部220は、このClient Key Exchange / Change Cipher Spec / Finishedメッセージを、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部610に送る。なお、SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージ処理以降のSSL/TLS暗号通信におけるネゴシエーション処理を行う。   (FIG. 33-(S <b> 9)) The data receiving unit 220 of the server 2 receives the Client Key Exchange / Change Cipher Spec / Finished message transmitted from the client 1 via the network control device 200. The data receiving unit 220 processes (interprets) this Client Key Exchange / Change Cipher Spec / Finished message to the Client Key Exchange / Change Cipher Spec / Finished message. Note that the SSL negotiation processing unit 610 performs negotiation processing in SSL / TLS encryption communication after the client key exchange / change cipher spec / finished message processing.

(図33−(S11))SSLネゴシエーション処理部610は、Client Key Exchange / Change Cipher Spec / Finishedメッセージを処理し、共通鍵を生成する。そして次に、Change Cipher Spec / Finishedメッセージを生成し、これをデータ送信部210に送る。   (FIG. 33-(S11)) SSL negotiation process part 610 processes a Client Key Exchange / Change Cipher Spec / Finished message, and produces | generates a common key. Next, a Change Cipher Spec / Finished message is generated and sent to the data transmission unit 210.

(図33−(S12))データ送信部210は、ネットワーク制御装置200を介して、クライアント1に対して、Change Cipher Spec / Finishedメッセージを送信する。   (FIG. 33-(S12)) The data transmission part 210 transmits a Change Cipher Spec / Finished message with respect to the client 1 via the network control apparatus 200. FIG.

(図33−(S13))その後、サーバ2はクライアント1からのデータ(認証データ)受信待ち状態になる。   (FIG. 33-(S13)) Thereafter, the server 2 enters a state of waiting for data (authentication data) from the client 1.

(図31−(S26))クライアント1のデータ受信部120は、サーバ2が送信したChange Cipher Spec / Finishedメッセージを、ネットワーク制御装置100を介して受信する。データ受信部220は、このChange Cipher Spec / Finishedメッセージを、Change Cipher Spec / Finishedメッセージを処理(解釈)するSSLネゴシエーション処理部600に送る。   (FIG. 31-(S26)) The data receiver 120 of the client 1 receives the Change Cipher Spec / Finished message transmitted by the server 2 via the network control device 100. The data receiving unit 220 sends this Change Cipher Spec / Finished message to the SSL negotiation processing unit 600 that processes (interprets) the Change Cipher Spec / Finished message.

(図31−(S27))SSLネゴシエーション処理部600は、Change Cipher Spec / Finishedメッセージを処理する。   (FIG. 31-(S27)) The SSL negotiation process part 600 processes a Change Cipher Spec / Finished message.

(図31−(S18))この後通信部900が、作成した共通鍵を使って、通信データの暗号化を行い、この暗号化された通信データをデータ送信部110に送る。データ送信部110は、この暗号化された認証データを、ネットワーク制御装置100を介して、サーバ2に対して送信する。   (FIG. 31-(S18)) Thereafter, the communication unit 900 encrypts the communication data using the created common key, and sends the encrypted communication data to the data transmission unit 110. The data transmission unit 110 transmits the encrypted authentication data to the server 2 via the network control device 100.

なお、暗号化とはSSL/TLS暗号通信で規定されている共通鍵暗号処理のことであり、暗号処理と同時にハッシュ処理も行う。従ってここで共通鍵とは、暗号処理とハッシュ処理それぞれで利用される鍵を意味する。   Note that the encryption is a common key encryption process defined by SSL / TLS encryption communication, and a hash process is performed simultaneously with the encryption process. Therefore, the common key here means a key used in each of the cryptographic processing and the hash processing.

(図33−(S13))サーバ2のデータ受信部220は、クライアント1が送信した暗号化された通信データを、ネットワーク制御装置200を介して受信する。データ受信部220は、この暗号化された通信データを、通信部910に送る。   (FIG. 33-(S13)) The data reception part 220 of the server 2 receives the encrypted communication data which the client 1 transmitted via the network control apparatus 200. FIG. The data receiving unit 220 sends the encrypted communication data to the communication unit 910.

(図33−(S16))通信部910は、暗号化された通信データを復号化する。通信部910は先に認証部920より認証結果がOKである通知を受けているので、この通信データを処理する。   (FIG. 33-(S16)) The communication part 910 decodes the encrypted communication data. Since the communication unit 910 has previously received a notification that the authentication result is OK from the authentication unit 920, the communication unit 910 processes this communication data.

なお、図31のフローチャートの(図31−(S28))、図33のフローチャートの(図33−(S16))の後は、クライアント1とサーバ2の間で、SSL/TLS暗号通信が続く。   Note that SSL / TLS encryption communication continues between the client 1 and the server 2 after (FIG. 31- (S28)) in the flowchart in FIG. 31 and (FIG. 33- (S16)) in the flowchart in FIG.

図34は、本発明の実施の形態におけるハードウェア構成の第4例を示す図であり、図30のハードウェア構成図の一例でもある。クライアント1は、プログラム処理を実行するCPU10、一時的な記憶メモリであるRAM20、書き換え可能な不揮発性メモリであるHDD(ハードディスク)30、書き換え不可の不揮発性メモリであるROM40とネットワークのデータ送受信を実行するMAC/PHY50で構成されている。一方、サーバ2は、プログラム処理を実行するCPU11、一時的な記憶メモリであるRAM21、書き換え不可の不揮発性メモリであるROM41とネットワークのデータ送受信を実行するMAC/PHY51で構成されている。また、クライアント1とサーバ2はMAC/PHY50とMAC/PHY51を介してネットワークで接続されている。   34 is a diagram showing a fourth example of the hardware configuration in the embodiment of the present invention, and is also an example of the hardware configuration diagram of FIG. The client 1 executes data transmission / reception of the network with the CPU 10 that executes program processing, the RAM 20 that is a temporary storage memory, the HDD (hard disk) 30 that is a rewritable nonvolatile memory, and the ROM 40 that is a non-rewritable nonvolatile memory. MAC / PHY50. On the other hand, the server 2 includes a CPU 11 that executes program processing, a RAM 21 that is a temporary storage memory, a ROM 41 that is a non-rewritable nonvolatile memory, and a MAC / PHY 51 that executes network data transmission / reception. The client 1 and the server 2 are connected to each other via a network via a MAC / PHY 50 and a MAC / PHY 51.

はじめにクライアント1のハード構成に関して説明を行う。図34に示したクライアント1の各処理部は、CPU10、及びRAM20で実行される。   First, the hardware configuration of the client 1 will be described. Each processing unit of the client 1 illustrated in FIG. 34 is executed by the CPU 10 and the RAM 20.

フラグ720、及び搭載情報800(搭載状況記憶手段)は、一時的な記憶メモリであるRAM20に配置しているが、書き換え可能なメモリであれば良く、HDD(ハードディスク)30やフラッシュROMなどに配置してもよい。   The flag 720 and the mounting information 800 (mounting status storage means) are disposed in the RAM 20 which is a temporary storage memory. However, any rewritable memory may be used, such as the HDD (hard disk) 30 or a flash ROM. May be.

次に「クライアントがサポートする暗号スイートの優先順位情報(認証用)」と「クライアントがサポートする暗号スイートの優先順位情報(通信用)」とであるが、これは書き換え可能な不揮発性メモリに配置するのが好ましい。本図では書き換え可能な不揮発性メモリとしてHDD(ハードディスク)30を利用しているが、フラッシュROMなど書き換え可能な不揮発性メモリであれば、種類は何であっても構わない。「クライアントがサポートする暗号スイートの優先順位情報(認証用)」と「クライアントがサポートする暗号スイートの優先順位情報(通信用)」を一時的な記憶メモリであるRAM20に配置しても動作はするものの、毎回、優先順位を登録する手間を要するので好ましくない。   Next, “Cryptographic Suite Priority Information Supported by Client (for Authentication)” and “Cryptographic Suite Priority Cited Suite Information (for Communication)” are placed in rewritable non-volatile memory. It is preferable to do this. In this figure, an HDD (hard disk) 30 is used as a rewritable nonvolatile memory, but any type of rewritable nonvolatile memory such as a flash ROM may be used. The operation is performed even if "priority information on cipher suites supported by the client (for authentication)" and "priority information on cipher suites supported by the client (for communication)" are arranged in the RAM 20, which is a temporary storage memory. However, it is not preferable because it takes time to register the priority order every time.

なお、「クライアントがサポートする暗号スイートの優先順位情報(認証用)」と「クライアントがサポートする暗号スイートの優先順位情報(通信用)」が実装時に決定され、実装後は優先順位の変更をしない場合は、書き換え不可の不揮発性メモリであるROM40などに配置してもよい。   Note that “priority information on cipher suites supported by the client (for authentication)” and “priority information on cipher suites supported by the client (for communication)” are determined at the time of implementation, and the priorities are not changed after implementation. In this case, it may be arranged in the ROM 40, which is a non-rewritable nonvolatile memory.

「クライアントがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。説明が紛らしなるのを避けるため、クライアント1の機能ブロック図には、「クライアントがサポートする暗号スイート」を示していないが、サーバ2の機能ブロック図には図示しているように、実際の暗号通信では必要となるものである。なおここでは、「クライアントがサポートする暗号スイート」をROM40に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回サーバからダウンロードして利用する場合は、RAM20のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the client” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. In order to avoid confusing the description, the functional block diagram of the client 1 does not show “cipher suites supported by the client”, but as shown in the functional block diagram of the server 2, This is necessary for cryptographic communication. Here, “encryption suite supported by the client” is arranged in the ROM 40, but the present invention is not limited to this. When the cipher suite program is downloaded from the server and used every time, it can be arranged in a volatile memory such as the RAM 20.

MAC/PHY50は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置100を実現するものである。   The MAC / PHY 50 is hardware that controls network communication, and implements the network control device 100.

次にサーバ2のハード構成に関して説明を行う。図3に示したサーバ2の各処理部は、CPU11、及びRAM21で実行される。   Next, the hardware configuration of the server 2 will be described. Each processing unit of the server 2 illustrated in FIG. 3 is executed by the CPU 11 and the RAM 21.

「サーバがサポートする暗号スイート」とは実際の暗号スイートのプログラムであり、通常は不揮発性メモリに配置するものである。なおここでは、「サーバがサポートする暗号スイート」をROM41に配置しているがこれに限られるものではない。暗号スイートのプログラムを毎回他のサーバからダウンロードして利用する場合は、RAM21のような揮発性メモリに配置することも可能である。   The “cipher suite supported by the server” is a program of an actual cipher suite, and is usually placed in a non-volatile memory. Here, “encryption suite supported by the server” is arranged in the ROM 41, but the present invention is not limited to this. When the cipher suite program is downloaded from another server and used every time, it can be arranged in a volatile memory such as the RAM 21.

MAC/PHY51は、ネットワーク通信を制御するハードウェアであり、ネットワーク制御装置200を実現するものである。   The MAC / PHY 51 is hardware that controls network communication, and implements the network control device 200.

図35は、本発明の実施の形態における接続するサーバが複数ある場合の搭載情報の実装方法の第1例を示す図である。ここでは、サーバはサーバA、サーバB、サーバCと3種類あるものとして説明を行う。   FIG. 35 is a diagram showing a first example of a mounting information mounting method when there are a plurality of servers to be connected in the embodiment of the present invention. Here, description will be made assuming that there are three types of servers, server A, server B, and server C.

クライアントの搭載情報は、暗号スイート毎に、サーバがその暗号スイートをサポートしているか否かを記憶した情報となっている。サーバA、サーバB、サーバCと複数のサーバがある場合は、搭載情報は、暗号スイート毎に、それぞれのサーバがその暗号スイートをサポートしているか否かを記憶する仕組みとなっている。   The client mounting information is information that stores, for each cipher suite, whether the server supports the cipher suite. When there are a plurality of servers, such as server A, server B, and server C, the on-board information has a mechanism for storing for each cipher suite whether each server supports the cipher suite.

図36は、本発明の実施の形態における接続するサーバが複数ある場合の搭載情報の実装方法の第2例を示す図である。   FIG. 36 is a diagram showing a second example of the mounting information mounting method when there are a plurality of servers to be connected according to the embodiment of the present invention.

クライアントの搭載情報は、サーバ毎に、サーバがどの暗号スイートをサポートしているか否かを記憶した情報となっている。   The client mounting information is information that stores, for each server, which cipher suites the server supports.

図37は、本発明の実施の形態における接続するサーバが複数あり、サーバ別、目的別に優先順位が異なる場合の「クライアントがサポートする暗号スイートの優先順位情報」の実装方法のの第1例を示す図である。   FIG. 37 shows a first example of a method of implementing “priority information on cipher suites supported by the client” when there are a plurality of servers to be connected and the priorities are different for each server and for each purpose in the embodiment of the present invention. FIG.

ここでは、サーバはサーバAとサーバBと2種類あり、サーバAとサーバBとで、クライアントおける暗号スイートの優先順位付けが異なるものとして説明を行う。また、サーバAと通信する場合は、認証と通信で、クライアントおける暗号スイートの優先順位付けが異なるものとする。   Here, there are two types of servers, server A and server B, and the server A and server B will be described as having different cipher suite priorities in the client. Further, when communicating with the server A, it is assumed that the prioritization of cipher suites in the client differs between authentication and communication.

「クライアントがサポートする暗号スイートの優先順位情報」は、暗号スイート毎に、優先順位づけが行われる仕組みとなっている。   The “priority information on cipher suites supported by the client” has a mechanism in which prioritization is performed for each cipher suite.

このケースでは、暗号スイート毎に、サーバAの認証、サーバAの通信、サーバBが相手の場合の優先順位を記憶する仕組みとなっている。   In this case, for each cipher suite, the server A authentication, the communication of the server A, and the priority order when the server B is the other party are stored.

図では(1)が、優先順位が一番高く、以下、(2)、(3)と優先順位が下がる。   In the figure, (1) has the highest priority, and the following (2) and (3) lower the priority.

なお、図では優先順位が記述されていない空欄が存在するが、これはそのサーバがその暗号スイートをサポートしていないことを示している。暗号スイートの搭載状況は搭載情報で記憶するが、このように「クライアントがサポートする暗号スイートの優先順位情報」に、搭載情報を合体させて記憶させてもよい。   In the figure, there is a blank where no priority order is described. This indicates that the server does not support the cipher suite. The installation status of the cipher suite is stored as installation information, but the installation information may be combined and stored in the “priority information of the cipher suites supported by the client” as described above.

図38は、本発明の実施の形態における接続するサーバが複数あり、サーバ別、目的別に優先順位が異なる場合の「クライアントがサポートする暗号スイートの優先順位情報」の実装方法の第2例を示す図である。   FIG. 38 shows a second example of a method for implementing “priority information on cipher suites supported by the client” in the case where there are a plurality of servers to be connected and the priorities are different for each server and for each purpose in the embodiment of the present invention. FIG.

ここでも、サーバはサーバAとサーバBと2種類あり、サーバAとサーバBとで、クライアントおける暗号スイートの優先順位付けが異なるものとして説明を行う。また、サーバAと通信する場合は、認証と通信で、クライアントおける暗号スイートの優先順位付けが異なるものとする。   Here, too, there are two types of servers, server A and server B, and the server A and server B will be described as having different cipher suite priorities in the client. Further, when communicating with the server A, it is assumed that the prioritization of cipher suites in the client differs between authentication and communication.

「クライアントがサポートする暗号スイートの優先順位情報」は、サーバ、目的別毎に、優先順位づけが行われる仕組みとなっている。   The “priority information on cipher suites supported by the client” has a mechanism in which priorities are assigned for each server and purpose.

このケースでは、サーバAの認証、サーバAの通信、サーバB毎に、暗号スイートの優先順位を記憶する仕組みとなっている。   In this case, the priority order of cipher suites is stored for each authentication of server A, communication of server A, and server B.

図では(1)が、優先順位が一番高く、以下、(2)、(3)と優先順位が下がる。   In the figure, (1) has the highest priority, and the following (2) and (3) lower the priority.

なお、図では優先順位が記述されていない空欄が存在するが、これはそのサーバがその暗号スイートをサポートしていないことを示している。暗号スイートの搭載状況は搭載情報で記憶するが、このように「クライアントがサポートする暗号スイートの優先順位情報」に、搭載情報を合体させて記憶させてもよい。   In the figure, there is a blank where no priority order is described. This indicates that the server does not support the cipher suite. The installation status of the cipher suite is stored as installation information, but the installation information may be combined and stored in the “priority information of the cipher suites supported by the client” as described above.

図39は、本発明の実施の形態における「クライアントがサポートする暗号スイートの優先順位情報」をユーザが変更する方法の第1例を示す図である。ここでは、ユーザはクライアント1の優先順位入力部950(優先順位変更手段)を使用して暗号スイートの優先順位を変更する仕組みになっている。優先順位入力部950(優先順位変更手段)は、例えば、モニタ、及びキーボードで構成される装置とすることができる。図39に記載した入力画面(例)をモニタに表示し、サーバのアドレス(IPアドレスなど)や各暗号スイートの優先順位の数字(ここでは1が一番高い優先順位で、2、3と低くなるものとする)を、ユーザにキーボードで入力させることなどで、暗号スイートの優先順位を変更させることが可能である。   FIG. 39 is a diagram illustrating a first example of a method in which a user changes “cipher suite priority information supported by a client” according to an embodiment of the present invention. Here, the user uses the priority input unit 950 (priority changing means) of the client 1 to change the cipher suite priority. The priority order input unit 950 (priority order changing means) can be a device including a monitor and a keyboard, for example. The input screen (example) shown in FIG. 39 is displayed on the monitor, and the server address (IP address, etc.) and the priority number of each cipher suite (here, 1 is the highest priority, and is as low as 2, 3). It is possible to change the priority order of the cipher suites by allowing the user to input with the keyboard.

図40は、本発明の実施の形態におけるクライアントが、前記サーバにおける暗号スイートの搭載情報を調査するか否かを判断する方法の第1例を示す図である。   FIG. 40 is a diagram illustrating a first example of a method in which the client according to the embodiment of the present invention determines whether or not to check the cipher suite installation information in the server.

この図は、ほぼ図9と同じである。違いは図40に調査フラグ730(調査判断手段の一部)が存在するところである。ここではClient Hello生成部400(調査判断手段の一部)が、サーバにおける暗号スイートの搭載情報を調査する前に、調査フラグ730を見て、これがTRUEになっていたら、サーバにおける暗号スイートの搭載情報を調査する仕組みになっている。この調査フラグ730の値をFALSEにすれば、Client Hello生成部400(調査判断手段の一部)は、通常のSSL/TLS暗号通信を行う。   This figure is almost the same as FIG. The difference is that a survey flag 730 (part of the survey judgment means) exists in FIG. Here, before the client hello generation unit 400 (part of the investigation determination unit) examines the information on the installation of the cipher suite in the server, the client hello generation unit 400 looks at the investigation flag 730. It is a mechanism for investigating information. If the value of the investigation flag 730 is set to FALSE, the Client Hello generation unit 400 (part of the investigation determination unit) performs normal SSL / TLS encryption communication.

これにより、クライアント1は必要な場合だけ、サーバ2における暗号スイートの搭載情報を調査するようになるため、無駄な手間を削減できる。多くのサーバ2は暗号スイートの優先順位付けを行っていないので、この機能は重要である。   As a result, the client 1 investigates the cipher suite installation information in the server 2 only when necessary, so that useless labor can be reduced. This function is important because many servers 2 do not prioritize cipher suites.

この調査フラグ730(調査判断手段の一部)は、ユーザ設定としてもよい。その場合、ユーザが接続するサーバ毎に設定できるのが望ましい。あるサーバとSSL/TLS暗号通信を利用してみてパフォーマンスが悪ければ、この調査フラグ730(調査判断手段の一部)をTRUEに設定することで、パフォーマンスの改善を試みることが可能となる。   This survey flag 730 (part of the survey determination means) may be set by the user. In that case, it is desirable that it can be set for each server to which the user connects. If the performance is poor by using SSL / TLS encryption communication with a certain server, it is possible to try to improve the performance by setting this investigation flag 730 (part of the investigation judgment means) to TRUE.

なおここでは図示していないが、調査フラグ730(調査判断手段の一部)は、接続するサーバが複数ある場合には、サーバ毎に記憶するとよい。また調査フラグ730(調査判断手段の一部)は、搭載情報800や、暗号スイートの優先順位情報と共に記憶するものであってもよい。   Although not shown here, the survey flag 730 (part of the survey determination unit) may be stored for each server when there are a plurality of servers to be connected. Further, the survey flag 730 (part of the survey determination unit) may be stored together with the mounting information 800 and the priority information of the cipher suite.

図41は、本発明の実施の形態におけるクライアントが、前記サーバにおける暗号スイートの搭載情報を調査するか否かを判断する方法の第2例を示す図である。   FIG. 41 is a diagram illustrating a second example of a method in which the client according to the embodiment of the present invention determines whether or not to check the cipher suite installation information in the server.

はじめにクライアントは、手順(図41−(S1))〜(図41−(S12))に記載しているように、サーバが搭載している少なくとも2つ以上の暗号スイートを探す。   First, as described in the procedure (FIG. 41- (S1)) to (FIG. 41- (S12)), the client searches for at least two or more cipher suites installed in the server.

そして、(図41−(S13))次にサーバが搭載していると分かった少なくとも2つ以上の暗号スイートを同時に指定したClient Helloをサーバに送信する。   Then (FIG. 41- (S13)) Next, Client Hello that specifies at least two or more cipher suites that are found to be installed in the server is transmitted to the server.

この例では、「TLS_RSA_WITH_AES_128_CBC_SHA」と「TLS_RSA_WITH_AES_256_CBC_SHA」を同時に指定したClient Helloをサーバに送信している。なお、ここでは「TLS_RSA_WITH_AES_128_CBC_SHA」を「TLS_RSA_WITH_AES_256_CBC_SHA」より先に記載しているが、その順番は逆でも構わない。   In this example, Client Hello in which “TLS_RSA_WITH_AES_128_CBC_SHA” and “TLS_RSA_WITH_AES_256_CBC_SHA” are simultaneously specified is transmitted to the server. Here, “TLS_RSA_WITH_AES_128_CBC_SHA” is described before “TLS_RSA_WITH_AES_256_CBC_SHA”, but the order may be reversed.

(図41−(S14))ここでは、サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したServer Helloを返信したとする。もしここで、サーバが「TLS_RSA_WITH_AES_256_CBC_SHA」を指定したServer Helloを返信すれば、この時点で、サーバが暗号スイートの優先順位付けを行っていることが分かる。サーバが「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したServer Helloを返信した場合は、この時点では、サーバがクライアントの優先順位を尊重しているのか、または暗号スイートの優先順位付けを行っているのかは判別できない。   (FIG. 41-(S14)) Here, it is assumed that the server returns a Server Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA". If the server returns a Server Hello specifying “TLS_RSA_WITH_AES_256_CBC_SHA”, it can be understood that the server is prioritizing the cipher suites at this point. When the server returns a Server Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA”, it cannot be determined at this point whether the server respects the priority of the client or prioritizes the cipher suites.

(図41−(S15))通信を切断する。なおここでは一回一回調査するように記載しているが、(図41−(S16))以下の調査は、違うTCPポート利用するなどして(図41−(S13))と同時に行っても構わない。   (FIG. 41-(S15)) Communication is cut | disconnected. Although it is described here that the investigation is performed once each time (FIG. 41- (S16)), the following investigation is performed simultaneously with using a different TCP port (FIG. 41- (S13)). It doesn't matter.

(図41−(S16))次にまた、サーバが搭載していると分かった少なくとも2つ以上の暗号スイートを同時に指定したClient Helloをサーバに送信する。   (FIG. 41-(S16)) Next, Client Hello which designated simultaneously the at least 2 or more encryption sweet which it turned out that the server is mounted is transmitted to a server.

但し、先ほどとは逆の「TLS_RSA_WITH_AES_256_CBC_SHA」、「TLS_RSA_WITH_AES_128_CBC_SHA」の順で記載した暗号スイートのClient Helloをサーバに送信している。   However, Client Hello of the cipher suite described in the order of “TLS_RSA_WITH_AES_256_CBC_SHA” and “TLS_RSA_WITH_AES_128_CBC_SHA” opposite to the above is transmitted to the server.

なお、先に「TLS_RSA_WITH_AES_256_CBC_SHA」、「TLS_RSA_WITH_AES_128_CBC_SHA」の順で指定したのであれば、ここでは逆の「TLS_RSA_WITH_AES_128_CBC_SHA」、「TLS_RSA_WITH_AES_256_CBC_SHA」の順で指定する。   It should be noted that if “TLS_RSA_WITH_AES_256_CBC_SHA” and “TLS_RSA_WITH_AES_128_CBC_SHA” are specified in this order first, the reverse “TLS_RSA_WITH_AES_128_CBC_SH_A_S_SH_A_A_S_SH_A_A_S_SH_A_S_SH_A_S_SH_A_

(図41−(S14))ここでは、サーバは「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したServer Helloを返信したとする。もしここで、サーバが「TLS_RSA_WITH_AES_256_CBC_SHA」を指定したServer Helloを返信すれば、サーバがクライアントの優先順位を尊重していることが分かる。   (FIG. 41-(S14)) Here, it is assumed that the server returns a Server Hello specifying "TLS_RSA_WITH_AES_128_CBC_SHA". Here, if the server returns a Server Hello specifying “TLS_RSA_WITH_AES_256_CBC_SHA”, it can be seen that the server respects the priority of the client.

サーバがこの図のように「TLS_RSA_WITH_AES_128_CBC_SHA」を指定したServer Helloを返信すれば、サーバが暗号スイートの優先順位付けを行っているのが分かる。   If the server returns a Server Hello specifying “TLS_RSA_WITH_AES_128_CBC_SHA” as shown in this figure, it can be seen that the server is prioritizing cipher suites.

このブロック図はほぼ図40と同じになる。Client Hello生成部(調査判断手段の一部)とServer Hello受信部500(調査判断手段の一部)との間で、サーバが優先順位付けを行っているか否かを判断できる。なお、判断結果は調査フラグ730(調査判断手段の一部)に反映してもしなくてもどちらでもよい。調査フラグ730(調査判断手段の一部)に反映すれば、再度調査する必要がなくなるので手間は省ける。   This block diagram is almost the same as FIG. It is possible to determine whether or not the server is prioritizing between the Client Hello generation unit (part of the investigation determination unit) and the Server Hello reception unit 500 (part of the investigation determination unit). Note that the determination result may or may not be reflected in the survey flag 730 (part of the survey determination means). If it is reflected in the survey flag 730 (part of the survey judgment means), it is not necessary to conduct a survey again, so that labor is saved.

図42は、本発明の実施の形態におけるSSL/TLS暗号通信の第6例を示すシーケンス図である。図2とほぼ同じシーケンスであるが、大きな違いは、利用する暗号スイートを選択する際、複数の暗号スイートを選択しているところにある。   FIG. 42 is a sequence diagram showing a sixth example of SSL / TLS encryption communication in the embodiment of the present invention. Although the sequence is almost the same as that in FIG. 2, the major difference is that a plurality of cipher suites are selected when a cipher suite to be used is selected.

これは、サーバの暗号スイートの搭載状況調査で、サーバからhandshake failureが連続で返信され、クライントが、クライント・サーバが共にサポートする暗号スイートを見つけられないままに時間が経過した場合の処理方法を示している。   This is a processing method in the case where the handshake failure is continuously returned from the server and the client is unable to find the cipher suite supported by both of the client and the server, and the time has passed in the investigation of the installation status of the server's cipher suite. Show.

このような場合、図42に示したように、クライアントは許容できる時間が経過した段階で、サーバの暗号スイートの搭載状況調査を終え、それまでの情報によって、暗号スイートを選択すればよい。   In such a case, as shown in FIG. 42, when the allowable time has elapsed, the client finishes the installation of the encryption suite of the server, and selects the encryption sweet according to the information so far.

本発明にかかる通信装置は、主導的に暗号スイートの選択が行えるので、脆弱な組込み機器のクライアントでも、セキュリティバランスに配慮した上で、パフォーマンス良く通信を行え、有用である。   Since the communication apparatus according to the present invention can lead the cipher suite selection, it is useful even for vulnerable embedded device clients, which can perform communication with good performance in consideration of security balance.

1 クライアント
2 サーバ
10 CPU(クライアント側)
11 CPU(サーバ側)
20 RAM(クライアント側)
21 RAM(サーバ側)
30 HDD(ハードディスク)
40 ROM(クライアント側)
41 ROM(サーバ側)
50 MAC/PHY(クライアント側)
51 MAC/PHY(サーバ側)
100 ネットワーク制御装置(クライアント側)
110 データ送信部(クライアント側)
120 データ受信部(クライアント側)
200 ネットワーク制御装置(サーバ側)
210 データ送信部(サーバ側)
220 データ受信部(サーバ側)
400 Client Hello生成部
410 Client Hello受信部
500 Server Hello受信部
510 Server Hello生成部
600 SSLネゴシエーション処理部(クライアント側)
610 SSLネゴシエーション処理部(サーバ側)
700 現在の優先順位を示すカウンタ
710 現在のカウンタ
720 フラグ
730 調査フラグ
800 搭載情報
900 通信部(クライアント側)
910 通信部(サーバ側)
920 認証部
950 優先順位入力部
1 client 2 server 10 CPU (client side)
11 CPU (server side)
20 RAM (client side)
21 RAM (server side)
30 HDD (hard disk)
40 ROM (client side)
41 ROM (server side)
50 MAC / PHY (client side)
51 MAC / PHY (server side)
100 Network controller (client side)
110 Data transmission unit (client side)
120 Data receiver (client side)
200 Network controller (server side)
210 Data transmitter (server side)
220 Data receiver (server side)
400 Client Hello generating unit 410 Client Hello receiving unit 500 Server Hello receiving unit 510 Server Hello generating unit 600 SSL negotiation processing unit (client side)
610 SSL negotiation processing unit (server side)
700 Counter indicating current priority 710 Current counter 720 Flag 730 Investigation flag 800 Mounting information 900 Communication unit (client side)
910 Communication unit (server side)
920 Authentication part 950 Priority input part

Claims (11)

複数の暗号方式から選択した暗号方式を使用して他の通信装置との間で暗号通信を行う通信装置であって、
前記他の通信装置の使用可能な暗号方式の第1の情報を取得する暗号方式取得部と、
前記第1の情報に基づいて、前記複数の暗号方式から前記他の通信装置との間の通信で使用する暗号方式を選択する暗号方式選択部と、
前記暗号方式選択部が選択した暗号方式を前記他の通信装置に送信する送信部と、を備える通信装置。
A communication device that performs encryption communication with another communication device using an encryption method selected from a plurality of encryption methods,
An encryption method acquisition unit for acquiring first information of an encryption method usable by the other communication device;
An encryption method selection unit that selects an encryption method to be used for communication with the other communication device from the plurality of encryption methods based on the first information;
A communication device comprising: a transmission unit that transmits the encryption method selected by the encryption method selection unit to the other communication device.
請求項1記載の通信装置であって、
前記暗号方式取得部は、前記複数の暗号方式から選択した暗号方式を前記他の通信装置に送信し、前記他の通信装置の応答結果に基づいて前記第1の情報を取得する通信装置。
The communication device according to claim 1,
The communication device that transmits the encryption method selected from the plurality of encryption methods to the other communication device, and acquires the first information based on a response result of the other communication device.
請求項2記載の通信装置であって、
前記他の通信装置との通信における前記複数の暗号方式の優先順位情報をさらに有し、
前記暗号方式取得部は、前記優先順位情報に基づいて前記複数の暗号方式から選択した暗号方式を前記他の通信装置に送信する通信装置。
The communication device according to claim 2,
Further comprising priority information of the plurality of encryption schemes in communication with the other communication device;
The encryption method acquisition unit is a communication device that transmits an encryption method selected from the plurality of encryption methods based on the priority information to the other communication device.
請求項3記載の通信装置であって、
前記優先順位情報は、他の通信装置に応じてそれぞれ異なる通信装置。
The communication device according to claim 3,
The priority information is a different communication device depending on another communication device.
請求項2記載の通信装置であって、
前記暗号方式取得部は、前記応答結果に基づいて前記他の通信装置が使用できない暗号方式の第2の情報を取得する通信装置。
The communication device according to claim 2,
The encryption method acquisition unit is a communication device that acquires second information of an encryption method that cannot be used by the other communication device based on the response result.
請求項1記載の通信装置であって、
前記暗号方式取得部は、前記複数の暗号方式から選択した複数の暗号方式を前記他の通信装置に送信し、前記他の通信装置の応答結果に基づいて前記第1の情報を取得する通信装置。
The communication device according to claim 1,
The encryption method acquisition unit transmits a plurality of encryption methods selected from the plurality of encryption methods to the other communication device, and acquires the first information based on a response result of the other communication device. .
第1の通信装置と第2の通信装置とを備える通信システムであって、
前記第1の通信装置は、複数の暗号方式を使用可能であり、使用可能な暗号方式を前記第2の通信装置に送信し、
前記第2の通信装置は、前記第1の通信装置から送信された暗号方式の使用可否の情報を前記第1の通信装置に送信する通信システム。
A communication system comprising a first communication device and a second communication device,
The first communication device can use a plurality of encryption methods, and transmits usable encryption methods to the second communication device.
The second communication device is a communication system that transmits to the first communication device information on whether or not to use the encryption method transmitted from the first communication device.
請求項6記載の通信システムであって、
前記第1の通信装置は、前記第2の通信装置から送信された前記使用可否の情報に基づいて、前記複数の暗号方式から前記第2の通信装置との間の通信で使用する暗号方式を選択する通信システム。
The communication system according to claim 6, wherein
The first communication device uses an encryption method to be used in communication with the second communication device from the plurality of encryption methods based on the availability information transmitted from the second communication device. The communication system to select.
請求項6記載の通信システムであって、
前記第1の通信装置は、前記第2の通信装置における前記複数の暗号方式の優先順位情報を有し、
前記優先順位情報に基づいて前記複数の暗号方式から選択した暗号方式を前記第2の通信装置に送信する通信装置。
The communication system according to claim 6, wherein
The first communication device has priority information of the plurality of encryption methods in the second communication device,
A communication device that transmits an encryption method selected from the plurality of encryption methods based on the priority information to the second communication device.
請求項8記載の通信システムであって、
前記第1の通信装置と通信可能な第3の通信装置をさらに有し、
前記第1の通信装置は、前記第3の通信装置における前記複数の暗号方式の優先順位情報を有する通信システム。
The communication system according to claim 8, wherein
A third communication device capable of communicating with the first communication device;
The first communication device is a communication system having priority information of the plurality of encryption schemes in the third communication device.
請求項6記載の通信システムであって、
前記第1の通信装置は、前記複数の暗号方式から選択した複数の暗号方式を前記第2の通信装置に送信し、
前記第2の通信装置は、前記第1の通信装置から送信された各暗号方式の使用可否の情報を前記第1の通信装置に送信する通信システム。
The communication system according to claim 6, wherein
The first communication device transmits a plurality of encryption methods selected from the plurality of encryption methods to the second communication device,
The second communication device is a communication system that transmits, to the first communication device, information on availability of each encryption method transmitted from the first communication device.
JP2011077627A 2011-03-31 2011-03-31 Communication device and communication system Withdrawn JP2014116641A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011077627A JP2014116641A (en) 2011-03-31 2011-03-31 Communication device and communication system
PCT/JP2012/002164 WO2012132438A1 (en) 2011-03-31 2012-03-28 Communication apparatus and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011077627A JP2014116641A (en) 2011-03-31 2011-03-31 Communication device and communication system

Publications (1)

Publication Number Publication Date
JP2014116641A true JP2014116641A (en) 2014-06-26

Family

ID=46930210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011077627A Withdrawn JP2014116641A (en) 2011-03-31 2011-03-31 Communication device and communication system

Country Status (2)

Country Link
JP (1) JP2014116641A (en)
WO (1) WO2012132438A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016100616A (en) * 2014-11-18 2016-05-30 日本電信電話株式会社 Setting information confirmation device, setting information confirmation method, and program
JP2016163251A (en) * 2015-03-04 2016-09-05 日本電信電話株式会社 Setting information collection device, method therefor and program
JP2017069755A (en) * 2015-09-30 2017-04-06 ブラザー工業株式会社 Computer program and relay device

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6353861B2 (en) * 2016-03-30 2018-07-04 ビートレンド株式会社 Information distribution method, information distribution system, and information distribution program
JP6486863B2 (en) * 2016-05-16 2019-03-20 日本電信電話株式会社 Information processing apparatus and information processing method

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07336328A (en) * 1994-06-07 1995-12-22 Nec Corp Cipher device
JP4983165B2 (en) * 2006-09-05 2012-07-25 ソニー株式会社 COMMUNICATION SYSTEM AND COMMUNICATION METHOD, INFORMATION PROCESSING DEVICE AND METHOD, DEVICE, PROGRAM, AND RECORDING MEDIUM

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016100616A (en) * 2014-11-18 2016-05-30 日本電信電話株式会社 Setting information confirmation device, setting information confirmation method, and program
JP2016163251A (en) * 2015-03-04 2016-09-05 日本電信電話株式会社 Setting information collection device, method therefor and program
JP2017069755A (en) * 2015-09-30 2017-04-06 ブラザー工業株式会社 Computer program and relay device

Also Published As

Publication number Publication date
WO2012132438A1 (en) 2012-10-04

Similar Documents

Publication Publication Date Title
KR102152314B1 (en) System and method for transmitting data based on data flow control
CN107330337B (en) Data storage method and device of hybrid cloud, related equipment and cloud system
US10893031B2 (en) Dynamically serving digital certificates based on secure session properties
US12267310B2 (en) Self-encrypting key management system
US10129224B2 (en) Secure session capability using public-key cryptography without access to the private key
US11140162B2 (en) Response method and system in virtual network computing authentication, and proxy server
US8799638B2 (en) Communication system, communication device, and communication method with a security policy for communication between devices
US8011004B2 (en) Apparatus and method for VPN communication in socket-level
WO2012132438A1 (en) Communication apparatus and communication system
EP3029970A1 (en) Electronic apparatus and control method thereof using authentication information transfer.
US20220038508A1 (en) Methods and devices for establishing secure communication channels
US11728990B2 (en) Control apparatus
EP3951592B1 (en) Database access method and apparatus, computing device and computer program product
CN106789008B (en) Method, device and system for decrypting sharable encrypted data
JP2012137975A (en) Relay processor, control method for the same and program
JP5384874B2 (en) Wireless communication system
JP2009071481A (en) Communication control system, terminal, and program
CN104023008A (en) Method and device for downloading and starting tool kit
JP5912159B2 (en) Access management method and access management apparatus
JP5704267B2 (en) Communication device
JP6724606B2 (en) Connection destination determination program, connection destination determination method, and information processing apparatus
JP2016057789A (en) Network system, communication method and application program
HK40067200A (en) Database access method and apparatus, computing device and computer program product
HK40067200B (en) Database access method and apparatus, computing device and computer program product

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140701