JP7287079B2 - CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD - Google Patents

CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD Download PDF

Info

Publication number
JP7287079B2
JP7287079B2 JP2019075535A JP2019075535A JP7287079B2 JP 7287079 B2 JP7287079 B2 JP 7287079B2 JP 2019075535 A JP2019075535 A JP 2019075535A JP 2019075535 A JP2019075535 A JP 2019075535A JP 7287079 B2 JP7287079 B2 JP 7287079B2
Authority
JP
Japan
Prior art keywords
apdu
command
footer
header
application
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.)
Active
Application number
JP2019075535A
Other languages
Japanese (ja)
Other versions
JP2020173642A (en
Inventor
遼 若宮
哲夫 神力
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2019075535A priority Critical patent/JP7287079B2/en
Publication of JP2020173642A publication Critical patent/JP2020173642A/en
Application granted granted Critical
Publication of JP7287079B2 publication Critical patent/JP7287079B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

情報処理端末と通信モジュール間のデータ変換に関するプログラム等の技術分野に関する。 The present invention relates to technical fields such as programs related to data conversion between information processing terminals and communication modules.

集積回路(IC(integrated circuit))を備えるICカードは、アプリケーションプログラム(「アプリケーション」)を実行することにより、様々なサービスをユーザに提供する。 An IC card, which includes an integrated circuit (IC), provides various services to users by executing application programs (“applications”).

一方で、インターネットに接続されたパーソナルコンピュータのウェブブラウザを用いて、電子メールや動画配信など様々なサービスをユーザは享受することができるようになっている。つまり、ユーザはインターネットに接続され、且つ、ウェブブラウザがインストールされたコンピュータであれば、任意のコンピュータからこれらのサービスを利用することができる。 On the other hand, users can enjoy various services such as e-mail and video distribution using a web browser of a personal computer connected to the Internet. In other words, users can use these services from any computer that is connected to the Internet and has a web browser installed.

その一方でウェブブラウザは、プライベートアカウントが不正に使用されたり、個人情報やプライベートデータが盗まれたりするなどの可能性があり、セキュリティ対策を施されたコンピュータにおいて利用することが重要である。また、ユーザの証明書を安全に記憶することができ、ログインプロセスに不可欠なコンポーネントとして使用されて、二要素認証を行うことができるICカードを利用することにより、セキュリティを強化することができる。そうした中、特許文献1には、ウェブブラウザでサービスを享受する際に、ICカードによるユーザ認証等を行うための技術が開示されている。 On the other hand, it is important to use a web browser on a computer with security measures, as there is a possibility that private accounts may be used illegally or personal information and private data may be stolen. Security can also be enhanced through the use of IC cards that can securely store user credentials and can be used as an integral component of the login process to provide two-factor authentication. Under such circumstances, Patent Literature 1 discloses a technique for performing user authentication using an IC card when enjoying a service with a web browser.

特開2016-144111号公報JP 2016-144111 A

ところで、ICカードは一般的に情報処理端末に接続されたリーダ・ライタ(R/W(Reader/Writer))と通信することにより、サービスを提供する。このときの情報処理端末のアプリケーションとICカード間の通信方式について図1(A)を用いて説明する。情報処理端末にインストールされているアプリケーションは、ICカードとのコマンド・レスポンスのやりとり(「トランザクション」)を介してユーザにサービスを提供する。PC/SC(Personal Computer/Smart Card)は、Windows(登録商標)環境でICカードを利用するための標準API(Application Programming Interface)である。R/Wは、ICカードへのデータの読み出し及び書き込みを行う。なお、ICカード内にもアプリケーションがインストールされており、コマンドに応じた処理を実行し、コマンドの送信元にレスポンスを返信する。 By the way, an IC card generally provides services by communicating with a reader/writer (R/W (Reader/Writer)) connected to an information processing terminal. A communication method between the application of the information processing terminal and the IC card at this time will be described with reference to FIG. An application installed in the information processing terminal provides services to the user through command/response exchange (“transaction”) with the IC card. PC/SC (Personal Computer/Smart Card) is a standard API (Application Programming Interface) for using an IC card in a Windows (registered trademark) environment. R/W reads and writes data to the IC card. An application is also installed in the IC card, executes processing according to the command, and returns a response to the source of the command.

国際標準規格であるISO/IEC7816が適用されるICカードは、情報処理端末のアプリケーションからコマンドを含むAPDU(Application protocol data unit)であるC-APDU(Command-APDU)を受信し、コマンドに応じた処理をICカード内にインストールされたアプリケーションにより実行する。そして、ICカードは、当該処理の実行結果に応じた2バイトからなるSW(Status Word)を含むAPDUであるR-APDU(Response-APDU)を情報処理端末のアプリケーションへ送信(返信)する。このように情報処理端末のアプリケーションとICカードの間では、コマンドとレスポンスをやりとりするトランザクションによりユーザにサービスを提供する。具体的には、図2(A)に示すように、C-APDUは、情報処理端末のアプリケーションから送信されて、PC/SC及びR/Wを介してICカードに到達する。一方、R-APDUはICカードから送信されて、R/W及びPC/SCを介して情報処理端末のアプリケーションに到達する。 An IC card to which the international standard ISO/IEC7816 is applied receives a C-APDU (Command-APDU), which is an APDU (Application Protocol Data Unit) containing a command from an application of an information processing terminal, and responds to the command. Processing is executed by an application installed in the IC card. Then, the IC card transmits (responses) an R-APDU (Response-APDU), which is an APDU including a 2-byte SW (Status Word) corresponding to the execution result of the process, to the application of the information processing terminal. In this manner, services are provided to the user through transactions in which commands and responses are exchanged between the application of the information processing terminal and the IC card. Specifically, as shown in FIG. 2(A), the C-APDU is transmitted from the application of the information processing terminal and reaches the IC card via the PC/SC and R/W. On the other hand, the R-APDU is transmitted from the IC card and reaches the application of the information processing terminal via the R/W and PC/SC.

その一方で、ICカードは通信事業者が加入者を特定するためのSIM(Subscriber Identity Module)としても利用されている。そのSIMは、IoT機器がIoTサーバと通信する時に、通信事業者及びIoTサーバがIoT機器を認証するために利用されている。ここで、IoT機器のアプリケーションとSIM間の通信方式について図1(B)を用いて説明する。IoT機器にインストールされているアプリケーションは、SIMとのコマンド・レスポンスのやりとり(トランザクション)を実行する。LTE通信モジュール(LTEモデム)は、SIMと通信を行ったり、通信事業者(図示しない)との通信に関する処理を行ったりする。なお、SIMにもアプリケーションがインストールされており、アプリケーションによりコマンドに応じた処理を実行し、コマンドの送信元にレスポンスを返信する。 On the other hand, IC cards are also used as SIMs (Subscriber Identity Modules) for communication carriers to identify subscribers. The SIM is used by carriers and IoT servers to authenticate IoT devices when they communicate with IoT servers. Here, the communication method between the application of the IoT device and the SIM will be described with reference to FIG. 1(B). An application installed in the IoT device executes command/response exchanges (transactions) with the SIM. The LTE communication module (LTE modem) communicates with the SIM and performs processing related to communication with a telecommunications carrier (not shown). An application is also installed in the SIM, and the application executes processing according to the command and returns a response to the source of the command.

ICカードの一種であるSIMは、ISO/IEC7816が適用されるため、IoT機器(アプリケーション)からC-APDUを受信し、コマンドに応じた処理を実行し、R-APDUをIoT機器(アプリケーション)へ送信(返信)する。但し、IoT機器のアプリケーションがLTE通信モジュールとC-APDU及びR-APDUを送受信する際には、ATコマンドの形式に従う必要がある(LTE通信モジュールのように、ATコマンドに従って通信する必要がある機器を「ATコマンド機器」という場合がある)。具体的には、図2(B)に示すように、IoT機器にインストールされたアプリケーションはATコマンドのヘッダ及びフッタを付加したC-APDUをLTE通信モジュールに送信する。これを受信したLTE通信モジュールはATコマンドのヘッダ及びフッタを除いたC-APDUをSIMへ送信する。一方、SIMはコマンドに応じた処理を実行し、R-APDUをLTE通信モジュールに送信する。これを受信したLTE通信モジュールはATコマンドのヘッダ及びフッタを付加してR-APDUをアプリケーションへ送信する。つまり、アプリケーションとLTE通信モジュール間ではATコマンドのヘッダ及びフッタが付加されたデータが送受信される。 SIM, which is a type of IC card, is subject to ISO/IEC7816, so it receives C-APDU from the IoT device (application), executes processing according to the command, and sends R-APDU to the IoT device (application). Send (reply). However, when an IoT device application transmits/receives C-APDUs and R-APDUs to/from an LTE communication module, it is necessary to follow the format of AT commands (Devices that need to communicate according to AT commands, such as LTE communication is sometimes referred to as an "AT command device"). Specifically, as shown in FIG. 2B, the application installed in the IoT device transmits a C-APDU to which an AT command header and footer are added to the LTE communication module. The LTE communication module that has received this transmits the C-APDU, excluding the AT command header and footer, to the SIM. On the other hand, the SIM executes processing according to the command and transmits R-APDU to the LTE communication module. The LTE communication module that has received this adds an AT command header and footer and transmits the R-APDU to the application. That is, data to which the AT command header and footer are added is transmitted and received between the application and the LTE communication module.

すなわち、IoT機器のアプリケーションからみてC-APDUの送信先がPC/SCの場合にはATコマンドのヘッダ及びフッタを付加せずにそのまま送信することとなる(図2(A))一方、送信先がATコマンド機器の場合にはATコマンドのヘッダ及びフッタを付加して送信することとなる(図2(B))。同様に、IoT機器のアプリケーションからみてR-APDUを受信する際、送信元がPC/SCの場合にはATコマンドのヘッダ及びフッタを削除せずにすむ一方、送信元がATコマンド機器の場合にはATコマンドのヘッダ及びフッタを削除して処理することとなる。よって、アプリケーションの開発者は、APDUの授受を行う直接的な相手がPC/SCであるか、ATコマンド機器であるかに応じてアプリケーションを開発する必要があり、大きな負担となるという問題がある。 That is, when the destination of the C-APDU is the PC/SC from the viewpoint of the application of the IoT device, the AT command header and footer are not added and the C-APDU is transmitted as it is (Fig. 2(A)). If is an AT command device, the AT command header and footer are added and transmitted (FIG. 2(B)). Similarly, when receiving an R-APDU from the perspective of an IoT device application, if the sender is a PC/SC, the AT command header and footer need not be deleted, while if the sender is an AT command device, deletes the AT command header and footer. Therefore, an application developer must develop an application depending on whether the direct partner for sending and receiving APDUs is a PC/SC or an AT command device, which poses a problem of being a heavy burden. .

そこで、本発明は、アプリケーションがATコマンド機器に接続されたICカードとAPDUを通信する場合であっても、アプリケーションがAPDUの授受を行う直接的な相手をPC/SCとすることにより、アプリケーションの開発者がATコマンドを意識することなくアプリケーションを開発することができる変換プログラム等を提供することを目的とする。 Therefore, in the present invention, even when an application communicates APDU with an IC card connected to an AT command device, the direct partner with which the application exchanges APDU is the PC/SC. It is an object of the present invention to provide a conversion program or the like that enables a developer to develop an application without being conscious of AT commands.

上記課題を解決するために、請求項1に記載の発明は、コンピュータを、C-APDUの入力を受け付ける第1受付手段、前記第1受付手段が受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加する付加手段、前記ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する第1出力手段、として機能させることを特徴とする。 In order to solve the above-mentioned problems, the invention according to claim 1 provides a computer comprising: first receiving means for receiving an input of a C-APDU; and a first output means for outputting a C-APDU to which the AT command header and footer are added.

請求項2に記載の発明は、請求項1に記載の変換プログラムであって、前記コンピュータを、ATコマンドのヘッダ及びフッタが付加されたR-APDUの入力を受け付ける第2受付手段、前記第2受付手段が受け付けた前記ATコマンドのヘッダ及びフッタが付加されたR-APDUからATコマンドのヘッダ及びフッタを削除する削除手段、前記ATコマンドのヘッダ及びフッタを削除したR-APDUを出力する第2出力手段、として更に機能させることを特徴とする。 The invention according to claim 2 is the conversion program according to claim 1, wherein the computer is a second receiving means for receiving an input of R-APDU to which an AT command header and footer are added; Deleting means for deleting the AT command header and footer from the R-APDU to which the AT command header and footer are added and which is received by the receiving means; It is characterized by further functioning as output means.

請求項3に記載の発明は、請求項1に記載の変換プログラムであって、前記付加手段は、前記第1受付手段が受け付けたC-APDUの送信先が通信モジュールである場合に、当該C-APDUにATコマンドのヘッダ及びフッタを付加し、前記第1出力手段は、前記ATコマンドのヘッダ及びフッタを付加したC-APDUを前記通信モジュールに出力することを特徴とする。 The invention according to claim 3 is the conversion program according to claim 1, wherein when the destination of the C-APDU received by the first receiving means is a communication module, the C -adding an AT command header and footer to the APDU, wherein the first output means outputs the C-APDU to which the AT command header and footer are added to the communication module;

請求項4に記載の発明は、請求項2に記載の変換プログラムであって、前記削除手段は、前記第2受付手段が受け付けた前記ATコマンドのヘッダ及びフッタが付加されたR-APDUの送信元が通信モジュールである場合に、当該-APDUからATコマンドのヘッダ及びフッタを削除し、前記第2出力手段は、前記ATコマンドのヘッダ及びフッタを削除したR-APDUを、前記C-APDUの入力元に出力することを特徴とする。 The invention according to claim 4 is the conversion program according to claim 2, wherein the deletion means transmits the R-APDU to which the header and footer of the AT command received by the second reception means are added. When the original is a communication module, the AT command header and footer are deleted from the R -APDU, and the second output means outputs the R-APDU from which the AT command header and footer are deleted to the C-APDU. is output to the input source of

請求項5に記載の発明は、請求項4に記載の変換プログラムであって、前記コンピュータを、前記第2受付手段が受け付けたR-APDUに含まれるSWの1バイト目が「0x61」である場合に、当該SWとともに受け付けたデータを保持する保持手段、前記第2受付手段が受け付けたR-APDUに含まれるSWの1バイト目が「0x61」である場合に、[GET RESPONSE]コマンドを含むC-APDUにATコマンドのヘッダ及びフッタを付加して、前記通信モジュールに出力する第3出力手段、として更に機能させ、前記[GET RESPONSE]コマンドの応答として受け付けた前記ATコマンドのヘッダ及びフッタが付加されたR-APDUに含まれるSWが「0x9000」である場合に、前記削除手段は、当該ATコマンドのヘッダ及びフッタが付加されたR-APDUから当該ATコマンドのヘッダ及びフッタを削除し、前記第2出力手段は、当該ATコマンドのヘッダ及びフッタが削除されたR-APDUに前記保持手段が保持したデータを付加した上で、前記第1受付手段の受け付けたC-APDUの送信元に出力することを特徴とする。 The invention according to claim 5 is the conversion program according to claim 4, wherein the first byte of SW included in the R-APDU received by the second receiving means is "0x61". holding means for holding data received together with the SW, and the [GET RESPONSE] command when the first byte of SW included in the R-APDU received by the second receiving means is "0x61" adding an AT command header and footer to the C-APDU and further functioning as third output means for outputting to the communication module, wherein the AT command header and footer received as a response to the [GET RESPONSE] command are If the SW included in the added R-APDU is "0x9000", the deletion means deletes the AT command header and footer from the R-APDU to which the AT command header and footer are added, The second output means adds the data held by the holding means to the R-APDU from which the header and footer of the AT command have been deleted, and sends the data to the transmission source of the C-APDU accepted by the first accepting means. It is characterized by outputting.

請求項6に記載の発明は、C-APDUの入力を受け付ける第1受付手段と、前記第1受付手段が受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加する付加手段と、前記ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する第1出力手段と、を備えることを特徴とする。 According to a sixth aspect of the present invention, there is provided: first receiving means for receiving an input of a C-APDU; adding means for adding an AT command header and footer to the C-APDU received by the first receiving means; and a first output means for outputting a C-APDU to which the header and footer of the header and footer are added.

請求項7に記載の発明は、変換装置による変換方法であって、C-APDUの入力を受け付ける第1受付工程と、前記第1受付工程により受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加する付加工程と、前記ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する第1出力工程と、を含むことを特徴とする。 According to a seventh aspect of the present invention, there is provided a conversion method using a conversion device, comprising: a first receiving step of receiving an input of a C-APDU; and a first outputting step of outputting a C-APDU to which the AT command header and footer are added.

本発明によれば、C-APDUを入力することによりATコマンドのヘッダ及びフッタが付加されて出力されることから、PC/SCとATコマンド機器の間で動作させることにより、PC/SCが出力したC-APDUをATコマンド機器に受信させることができる。したがって、アプリケーションがATコマンド機器に接続されたICカードとAPDUを通信する場合であっても、アプリケーションがAPDUの授受を行う直接的な相手をPC/SCとすることができ、アプリケーションの開発者はATコマンドを意識することなくアプリケーションを開発することができる。 According to the present invention, by inputting a C-APDU, the AT command header and footer are added and output. The AT command device can receive the C-APDU received by the AT command device. Therefore, even when an application communicates APDU with an IC card connected to an AT command device, the direct partner with which the application exchanges APDU can be the PC/SC. Applications can be developed without being conscious of AT commands.

(A)は、情報処理端末のアプリケーションとICカード間の通信方式の一例を示す図であり、(B)は、情報処理端末のアプリケーションとSIM間の通信方式の一例を示す図である。(A) is a diagram showing an example of a communication method between an application of an information processing terminal and an IC card, and (B) is a diagram showing an example of a communication method between an application of an information processing terminal and a SIM. (A)は、情報処理端末のアプリケーションとICカード間におけるAPDUの送受信の一例を示す図であり、(B)は、情報処理端末のアプリケーションとSIM間におけるAPDUの送受信の一例を示す図である。(A) is a diagram showing an example of APDU transmission/reception between an application of an information processing terminal and an IC card, and (B) is a diagram showing an example of APDU transmission/reception between an application of an information processing terminal and a SIM. . 本実施形態に係るIoT通信システムSの概要構成例を示す図である。1 is a diagram showing a schematic configuration example of an IoT communication system S according to this embodiment; FIG. 本実施形態に係るマイコン11の概要構成例を示すブロック図である。1 is a block diagram showing a schematic configuration example of a microcomputer 11 according to this embodiment; FIG. は本実施形態に係るマイコン11のアプリケーションとSIM間の通信方式の一例を示す図である。1 is a diagram showing an example of a communication method between an application of a microcomputer 11 and a SIM according to this embodiment; FIG. 本実施形態に係るマイコン11のアプリケーションとSIM間におけるAPDUの送受信の一例を示す図である。4 is a diagram showing an example of APDU transmission/reception between an application of the microcomputer 11 and a SIM according to the present embodiment; FIG. 本実施形態に係る変換プログラムに基づくCPU111による変換処理の一例を示すフローチャートである。4 is a flowchart showing an example of conversion processing by the CPU 111 based on the conversion program according to the embodiment; 本実施形態に係るIoT通信システムSの動作例を示すシーケンス図である。4 is a sequence diagram showing an operation example of the IoT communication system S according to this embodiment; FIG. 本実施形態に係るIoT通信システムSの動作例を示すシーケンス図である。4 is a sequence diagram showing an operation example of the IoT communication system S according to this embodiment; FIG. 変形例に係るマイコン11のアプリケーションとSIM間におけるAPDUの送受信の一例を示す図である。FIG. 10 is a diagram showing an example of transmission and reception of APDUs between an application of the microcomputer 11 and a SIM according to a modification; 変形例に係る変換プログラムに基づくCPU111による変換処理の一例を示すフローチャートである。10 is a flowchart showing an example of conversion processing by a CPU 111 based on a conversion program according to a modification;

まず、本発明の実施形態について説明する。なお、本実施形態は、本願発明をIoT機器1におけるマイコン11における変換プログラムに適用した場合の実施例である。 First, an embodiment of the present invention will be described. The present embodiment is an example in which the present invention is applied to a conversion program in the microcomputer 11 of the IoT device 1. FIG.

[1.IoTシステムSの構成]
図3を用いて、IoT通信システムSの構成及び機能概要を説明する。図3は、本実施例に係るIoT通信システムSの概要構成例を示すブロック図である。IoT通信システムSは、IoT機器1とIoTサーバ2を含んで構成され、IoT機器1とIoTサーバ2は、ネットワークNWを介して相互にデータの送受信が可能になっている。なお、ネットワークNWは、例えば、LAN(Local Area Network)、インターネット、移動体通信網(基地局等を含む)、及びゲートウェイ等により構築されている。
[1. Configuration of IoT system S]
The configuration and functional overview of the IoT communication system S will be described with reference to FIG. FIG. 3 is a block diagram showing a schematic configuration example of the IoT communication system S according to this embodiment. The IoT communication system S includes an IoT device 1 and an IoT server 2, and the IoT device 1 and the IoT server 2 can mutually transmit and receive data via the network NW. Note that the network NW is constructed by, for example, a LAN (Local Area Network), the Internet, a mobile communication network (including base stations and the like), a gateway, and the like.

IoT機器1は、温度センサー(図示しない)を備えており、周囲の温度を測定して得た温度データを記録する。IoTサーバ2は、IoT機器1から送信された温度データを管理したり、IoT機器1に記憶されているプログラムや情報等の更新を行ったりする。なお、IoT機器1とIoTサーバ2間で送受信されるデータは、セキュリティ確保のため、それぞれが管理する鍵データにより暗号化された上で通信される。 The IoT device 1 includes a temperature sensor (not shown) and records temperature data obtained by measuring the ambient temperature. The IoT server 2 manages temperature data transmitted from the IoT device 1 and updates programs, information, etc. stored in the IoT device 1 . In order to ensure security, data transmitted and received between the IoT device 1 and the IoT server 2 is encrypted by key data managed by each before being communicated.

[2.IoT機器1の構成]
IoT機器1は、IoT機器1の通信に関する処理を行うLTE通信モジュール10(「通信モジュール」の一例)と、IoT機器1全体を制御するマイコン11と、LTE通信モジュール10に接続されたSIM12とを含んで構成される。
[2. Configuration of IoT device 1]
The IoT device 1 includes an LTE communication module 10 (an example of a “communication module”) that performs processing related to communication of the IoT device 1, a microcomputer 11 that controls the entire IoT device 1, and a SIM 12 connected to the LTE communication module 10. composed of

LTE通信モジュール10は、SIM12と通信を行ったり、通信事業者との通信に関する処理を行ったりする。LTE通信モジュール10は、ATコマンドに従ってデータの送受信を行う。つまり、LTE通信モジュール10にC-APDU等のデータを送信する場合にはATコマンドのヘッダ及びフッタを付加する必要がある。一方、LTE通信モジュール10から送信されるR-APDU等のデータを受信する場合にはATコマンドのヘッダ及びフッタを削除してデータを取り扱う必要がある。 The LTE communication module 10 communicates with the SIM 12 and performs processing related to communication with a telecommunications carrier. The LTE communication module 10 transmits and receives data according to AT commands. In other words, when transmitting data such as C-APDU to the LTE communication module 10, it is necessary to add the header and footer of the AT command. On the other hand, when receiving data such as R-APDU transmitted from the LTE communication module 10, it is necessary to delete the header and footer of the AT command and handle the data.

SIM12は、通信事業者がSIM12を認証するために使用する契約者情報(IMSI等)、IoTサーバ2とIoT機器1間で通信される通信データを暗号/復号するための鍵を記憶する。また、SIM12は、IoTサーバ2がIoT機器1を認証するために使用する情報やデータを暗号/復号するための鍵を記憶する。なお、通信事業者やIoTサーバ2が認証を行う場合におけるSIM12とのAPDUによるコマンド・レスポンスは、IoT機器1のマイコン11のアプリケーションが担う。 The SIM 12 stores subscriber information (such as IMSI) used by the carrier to authenticate the SIM 12 and a key for encrypting/decrypting communication data communicated between the IoT server 2 and the IoT device 1 . The SIM 12 also stores a key for encrypting/decrypting information and data used by the IoT server 2 to authenticate the IoT device 1 . Note that the application of the microcomputer 11 of the IoT device 1 is in charge of the command response by APDU with the SIM 12 when the telecommunications carrier or the IoT server 2 performs authentication.

[3.マイコン11の構成]
図4は、本実施例に係るマイコン11の概要構成例を示すブロック図である。図4に示すように、マイコン11は、CPU(Central Processing Unit)111、RAM(Random Access Memory)112、ROM(Read Only Memory)113、I/O部114及び不揮発性メモリ115を含んで構成され、IoT機器1全体を制御する。
[3. Configuration of microcomputer 11]
FIG. 4 is a block diagram showing a schematic configuration example of the microcomputer 11 according to this embodiment. As shown in FIG. 4, the microcomputer 11 includes a CPU (Central Processing Unit) 111, a RAM (Random Access Memory) 112, a ROM (Read Only Memory) 113, an I/O section 114 and a non-volatile memory 115. , controls the entire IoT device 1 .

RAM112には、例えばOS(Operating System)や各種アプリケーションが機能する上で一時的に必要となるデータが記憶される。不揮発性メモリ115には、例えばフラッシュメモリ又は「Electrically Erasable Programmable Read-Only Memory」などを適用することができる。ROM113及び不揮発性メモリ115には、OS、各種アプリケーション、後述する変換プログラム等が記憶される。I/O部114は、LTE通信モジュール10との通信インターフェースを担う。 The RAM 112 stores, for example, data temporarily required for the OS (Operating System) and various applications to function. A flash memory or an "electrically erasable programmable read-only memory" can be applied to the nonvolatile memory 115, for example. The ROM 113 and the nonvolatile memory 115 store an OS, various applications, conversion programs to be described later, and the like. The I/O unit 114 serves as a communication interface with the LTE communication module 10 .

[4.変換プログラム]
次に、図5-図7を用いて、マイコン11にインストールされているアプリケーションとSIM12間の通信方式と、変換プログラムについて説明する。図5に示すように、マイコン11にインストールされたアプリケーション301とSIM12間で、PC/SC302、変換プログラム303及びLTE通信モジュール10(「ATコマンド機器」の一例)を介してAPDUの受け渡しが行われる。なお、変換プログラム303は、マイコン11のCPU111により実行されることにより、OS300とLTE通信モジュール10間のデバイスドライバとして機能する。
[4. conversion program]
Next, the communication method between the application installed in the microcomputer 11 and the SIM 12 and the conversion program will be described with reference to FIGS. 5 to 7. FIG. As shown in FIG. 5, APDU is transferred between the application 301 installed in the microcomputer 11 and the SIM 12 via the PC/SC 302, the conversion program 303, and the LTE communication module 10 (an example of an "AT command device"). . Note that the conversion program 303 functions as a device driver between the OS 300 and the LTE communication module 10 by being executed by the CPU 111 of the microcomputer 11 .

以下、図6を用いて具体的に説明する。まず、アプリケーション301は、PC/SC302にC-APDUを受け渡す(ステップS1)。次いで、PC/SC302は変換プログラム303にC-APDUを入力する(ステップS2)。変換プログラム303は、C-APDUの入力を受け付けるとATコマンドのヘッダ及びフッタを付加するヘッダ・フッタ付加処理を行い(ステップS3)、ATコマンドのヘッダ及びフッタが付加されたC-APDUをLTE通信モジュール10に出力する(ステップS4)。LTE通信モジュール10は、これを受け取るとATコマンドのヘッダ及びフッタを解釈した上でC-APDUをSIM12に受け渡す(ステップS5)。 A specific description will be given below with reference to FIG. First, the application 301 delivers C-APDU to the PC/SC 302 (step S1). The PC/SC 302 then inputs the C-APDU to the conversion program 303 (step S2). When the conversion program 303 receives the input of the C-APDU, it performs header/footer addition processing for adding the header and footer of the AT command (step S3), and transmits the C-APDU to which the header and footer of the AT command are added through LTE communication. Output to the module 10 (step S4). Upon receiving this, the LTE communication module 10 interprets the header and footer of the AT command, and passes the C-APDU to the SIM 12 (step S5).

SIM12にインストールされたアプリケーションは、C-APDUに含まれるコマンドに応じて処理を実行し、レスポンスを含むR-APDUをLTE通信モジュール10に受け渡す(ステップS6)。LTE通信モジュール10は、これを受け取るとR-APDUにATコマンドのヘッダ及びフッタを付加して変換プログラム303に受け渡す(ステップS7)。変換プログラム303はLTE通信モジュール10によりATコマンドのヘッダ及びフッタが付加されたR-APDUの入力を受け付けると、当該ATコマンドのヘッダ及びフッタを削除するヘッダ・フッタ削除処理を行い(ステップS8)、R-APDUをPC/SC302に出力する(ステップS9)。PC/SC302は、変換プログラム303からR-APDUを受け付けるとアプリケーション301に受け渡す(ステップS10)。 The application installed in the SIM 12 executes processing according to the command included in the C-APDU, and transfers the R-APDU including the response to the LTE communication module 10 (step S6). Upon receiving this, the LTE communication module 10 adds the AT command header and footer to the R-APDU and transfers it to the conversion program 303 (step S7). When the conversion program 303 receives the input of the R-APDU to which the AT command header and footer are added by the LTE communication module 10, it performs header/footer deletion processing for deleting the header and footer of the AT command (step S8), The R-APDU is output to PC/SC 302 (step S9). When the PC/SC 302 receives the R-APDU from the conversion program 303, it transfers it to the application 301 (step S10).

つまり、変換プログラム303は、PC/SC302からC-APDUの入力を受け付けた場合に、C-APDUにATコマンドのヘッダ及びフッタを付加し、LTE通信モジュール10に出力する。また、変換プログラム303は、LTE通信モジュール10からATコマンドのヘッダ及びフッタが付加されたR-APDUの入力を受け付けた場合に、ATコマンドのヘッダ及びフッタを削除して、R-APDUをPC/SC302に出力する。 That is, when the conversion program 303 receives the C-APDU input from the PC/SC 302 , it adds the AT command header and footer to the C-APDU and outputs the C-APDU to the LTE communication module 10 . Further, when the conversion program 303 receives the input of the R-APDU to which the AT command header and footer are added from the LTE communication module 10, the conversion program 303 deletes the AT command header and footer and converts the R-APDU to the PC/ Output to SC302.

ここで、図7を用いて、変換プログラム303に基づくマイコン11のCPU111による変換処理について説明する。図7は、マイコン111による変換処理の一例を示すフローチャートである。 Here, conversion processing by the CPU 111 of the microcomputer 11 based on the conversion program 303 will be described with reference to FIG. FIG. 7 is a flowchart showing an example of conversion processing by the microcomputer 111. As shown in FIG.

まず、マイコン11のCPU111は、PC/SC302からデータ(例えば、C-APDU)の入力を受け付けたか否かを判定する(ステップS101)。CPU111は、PC/SC302からデータを受け付けたと判定した場合には(ステップS101:YES)、当該受け付けたデータにATコマンドのヘッダ及びフッタを付加して、送信データを生成する(ステップS102)。 First, the CPU 111 of the microcomputer 11 determines whether or not input of data (for example, C-APDU) has been received from the PC/SC 302 (step S101). When the CPU 111 determines that data has been received from the PC/SC 302 (step S101: YES), the CPU 111 adds an AT command header and footer to the received data to generate transmission data (step S102).

具体的には、CPU111は、送信データとしてATコマンド(Generic UICC logical channel access +CGLA)を生成する。例えば、ATコマンド(AT+CGLA)は、
<sessionid>,<length>,<command><CR>
により構成される。CPU111は、<sessionid>に、セッション開始時に送るATコマンド(Open logical channel +CCHO)のレスポンスとして得られる整数値を記述し、<length>に、C-APDUの長さを記述し、<command>に、C-APDUを記述する。<CR>は改行コードである。
Specifically, the CPU 111 generates an AT command (Generic UICC logical channel access +CGLA) as transmission data. For example, the AT command (AT+CGLA) is
<sessionid>,<length>,<command><CR>
Consists of The CPU 111 describes in <sessionid> an integer value obtained as a response to an AT command (Open logical channel +CCHO) sent at the start of a session, in <length> describes the length of the C-APDU, and in <command>. describes the C-APDU. <CR> is a line feed code.

なお、
<sessionid>,<length>,<command><CR>
において、
<command>より前にある
<sessionid>,<length>
がATコマンドのヘッダであり、
<command>より後ろにある
<CR>
がATコマンドのフッタである。
note that,
<sessionid>,<length>,<command><CR>
in
before <command>
<sessionid>,<length>
is the header of the AT command, and
after <command>
<CR>
is the footer of the AT command.

次いで、CPU111は、ステップS102の処理で生成した送信データをLTE通信モジュール10に出力し(ステップS103)、ステップS101の処理に移行する。 Next, the CPU 111 outputs the transmission data generated in the process of step S102 to the LTE communication module 10 (step S103), and proceeds to the process of step S101.

一方、CPU111は、PC/SC302からデータを受け付けていないと判定した場合には(ステップS101:NO)、次いで、LTE通信モジュール10からデータ(例えば、R-APDU)の入力を受け付けたか否かを判定する(ステップS104)。CPU111は、LTE通信モジュール10からデータを受け付けたと判定した場合には(ステップS104:YES)、当該受け付けたデータからATコマンドのヘッダ及びフッタを削除して、送信データを生成する(ステップS105)。 On the other hand, when the CPU 111 determines that data has not been received from the PC/SC 302 (step S101: NO), it then determines whether input of data (for example, R-APDU) has been received from the LTE communication module 10. Determine (step S104). When the CPU 111 determines that data has been received from the LTE communication module 10 (step S104: YES), the CPU 111 deletes the AT command header and footer from the received data to generate transmission data (step S105).

例えば、CPU111は、上記ATコマンド(AT+CGLA)に対応するレスポンスとして、
<CR><LF>+CGLA: <length>,<response><CR><LF>
<CR><LF>OK<CR><LF>
を受け付ける。
<length>には、<response>の長さが記述されている。<response>には、R-APDUが記述されている。<LF>は改行コードである。CPU111は、当該レスポンスを受信した場合にはATコマンドのヘッダ及びフッタを削除する。いいかえれば、CPU111は、<response>部分を残して他の部分を削除する。
For example, the CPU 111, as a response corresponding to the AT command (AT+CGLA),
<CR><LF>+CGLA: <length>,<response><CR><LF>
<CR><LF>OK<CR><LF>
accept.
<length> describes the length of <response>. <response> describes the R-APDU. <LF> is a line feed code. The CPU 111 deletes the header and footer of the AT command when receiving the response. In other words, the CPU 111 leaves the <response> portion and deletes the other portions.

なお、
<length>,<response><CR><LF>
<CR><LF>OK<CR><LF>
において、
<response>より前にある
<length>
がATコマンドのヘッダであり、
<response>より後ろにある
<CR><LF>
<CR><LF>OK<CR><LF>
がATコマンドのフッタである。
note that,
<length>,<response><CR><LF>
<CR><LF>OK<CR><LF>
in
before <response>
<length>
is the header of the AT command, and
after <response>
<CR><LF>
<CR><LF>OK<CR><LF>
is the footer of the AT command.

次いで、CPU111は、ステップS105の処理で生成した送信データをPC/SC302に出力し(ステップS106)、ステップS101の処理に移行する。他方、CPU111は、LTE通信モジュール10からデータを受け付けていないと判定した場合には(ステップS104:NO)、ステップS101の処理に移行する。 Next, the CPU 111 outputs the transmission data generated in the process of step S105 to the PC/SC 302 (step S106), and proceeds to the process of step S101. On the other hand, when the CPU 111 determines that data has not been received from the LTE communication module 10 (step S104: NO), the process proceeds to step S101.

なお、ステップS104を削除するとともに、ステップS101の処理において、「入力を受け付けたデータにATコマンドのヘッダ及びフッタが付加されているか否か」について判定することとし、「YES」である場合にステップS105の処理に移行し、「NO」である場合にステップS102の処理に移行することとしてもよい。また、変換プログラム303は、ATコマンドのヘッダ及びフッタについて付加処理と削除処理の双方を実行可能なプログラムとしたが、それぞれの処理を実行可能な付加プログラムと削除プログラムに分割することとし、ATコマンドのヘッダ及びフッタを付加すべき場合に付加プログラムを実行し、ATコマンドのヘッダ及びフッタを削除すべき場合に削除プログラムを実行することとしてもよい。 It should be noted that step S104 is deleted, and in the process of step S101, it is determined whether or not the AT command header and footer are added to the input data. It is also possible to move to the process of S105 and, if "NO", move to the process of step S102. The conversion program 303 is a program that can execute both addition processing and deletion processing for the header and footer of the AT command. The addition program may be executed when the header and footer of the AT command should be added, and the deletion program may be executed when the header and footer of the AT command should be deleted.

[5.IoTシステムSの通信]
次に、図8及び図9を用いて、IoTシステムSにおける通信の一例について説明する。
[5. Communication of IoT system S]
Next, an example of communication in the IoT system S will be described with reference to FIGS. 8 and 9. FIG.

まず、図8を用いて、マイコン11にインストールされているアプリケーション301が送信データをIoTサーバ2に送信する場合の通信の一例について説明する。 First, an example of communication when the application 301 installed in the microcomputer 11 transmits transmission data to the IoT server 2 will be described with reference to FIG.

図8に示すように、マイコン11のCPU111(アプリケーション301)は、IoTサーバ2に送信する送信データ(例えば、温度データ)をSIM12に受け渡す(ステップS201)。具体的には、CPU111(アプリケーション301)は、SIM12にインストールされている暗号・復号用のアプリケーションを選択した上で、送信データと、当該アプリケーションに送信データを暗号化させるコマンドを含むC-APDUを送信する。 As shown in FIG. 8, the CPU 111 (application 301) of the microcomputer 11 passes transmission data (for example, temperature data) to be transmitted to the IoT server 2 to the SIM 12 (step S201). Specifically, the CPU 111 (application 301) selects an encryption/decryption application installed in the SIM 12, and transmits C-APDU containing transmission data and a command to cause the application to encrypt the transmission data. Send.

SIM12は、送信データを受け取ると、選択されたアプリケーションに基づいて、送信データを暗号鍵により暗号化する(ステップS202)。次いで、SIM12は、暗号化した送信データをマイコン11(アプリケーション301)に受け渡す(ステップS203)。具体的には、SIM12は暗号化した送信データと暗号処理の処理結果を示すSWからなるレスポンスを含むR-APDUを送信する。 Upon receiving the transmission data, SIM 12 encrypts the transmission data with an encryption key based on the selected application (step S202). The SIM 12 then delivers the encrypted transmission data to the microcomputer 11 (application 301) (step S203). Specifically, the SIM 12 transmits an R-APDU containing encrypted transmission data and a response composed of SW indicating the processing result of encryption processing.

なお、CPU111(アプリケーション301)とSIM12間では、図6を用いて説明したように、PC/SC302、変換プログラム303及びLTE通信モジュール10を介して送信データ(APDU)が送受信される。 Between the CPU 111 (application 301) and the SIM 12, transmission data (APDU) is transmitted and received via the PC/SC 302, the conversion program 303 and the LTE communication module 10, as described with reference to FIG.

マイコン11のCPU111(アプリケーション301)は、暗号化された送信データを受け取ると、これをIoTサーバ2に送信する(ステップS204)。 When receiving the encrypted transmission data, the CPU 111 (application 301) of the microcomputer 11 transmits it to the IoT server 2 (step S204).

IoTサーバ2は、暗号化された送信データを受信すると、これを復号鍵により復号する(ステップS205)。 When the IoT server 2 receives the encrypted transmission data, it decrypts it using the decryption key (step S205).

次に、図9を用いて、IoTサーバ2が送信データをマイコン11にインストールされているアプリケーション301に送信する場合の通信の一例について説明する。 Next, an example of communication when the IoT server 2 transmits transmission data to the application 301 installed in the microcomputer 11 will be described with reference to FIG.

図9に示すように、IoTサーバ2は、IoT機器1へ送信するデータ(例えば、温度センサーの設定変更用のデータ)を暗号鍵により暗号化する(ステップS251)。次いで、IoTサーバ2は、暗号化した送信データをIoT機器1に送信する(ステップS252)。 As shown in FIG. 9, the IoT server 2 encrypts data to be transmitted to the IoT device 1 (for example, data for changing the setting of the temperature sensor) using an encryption key (step S251). The IoT server 2 then transmits the encrypted transmission data to the IoT device 1 (step S252).

マイコン11のCPU111(アプリケーション301)は、受け取った、暗号化された送信データをSIM12に受け渡す(ステップS253)。具体的には、CPU111(アプリケーション301)は、SIM12にインストールされている暗号・復号用のアプリケーションを選択した上で、暗号化された送信データと、当該アプリケーションに当該暗号化された送信データを復号させるコマンドを含むC-APDUを送信する。 The CPU 111 (application 301) of the microcomputer 11 delivers the received encrypted transmission data to the SIM 12 (step S253). Specifically, the CPU 111 (application 301) selects an encryption/decryption application installed in the SIM 12, and then decrypts the encrypted transmission data and the application decrypts the encrypted transmission data. send a C-APDU containing the command to

SIM12は、暗号化された送信データを受け取ると、選択されたアプリケーションに基づいて、復号鍵により復号する(ステップS254)。次いで、SIM12は、復号した送信データをマイコン11(アプリケーション301)に受け渡す(ステップS255)。具体的には、SIM12は復号した送信データと復号処理の処理結果を示すSWからなるレスポンスを含むR-APDUを送信する。 Upon receiving the encrypted transmission data, SIM 12 decrypts it with the decryption key based on the selected application (step S254). The SIM 12 then delivers the decoded transmission data to the microcomputer 11 (application 301) (step S255). Specifically, the SIM 12 transmits an R-APDU containing a response consisting of decoded transmission data and an SW indicating the processing result of the decoding process.

なお、CPU111(アプリケーション301)とSIM12間では、図6を用いて説明したように、PC/SC302、変換プログラム303及びLTE通信モジュール10を介して送信データ(APDU)が送受信される。 Between the CPU 111 (application 301) and the SIM 12, transmission data (APDU) is transmitted and received via the PC/SC 302, the conversion program 303 and the LTE communication module 10, as described with reference to FIG.

これにより、マイコン11のCPU111(アプリケーション301)は、復号された送信データを受け取る。 Thereby, the CPU 111 (application 301) of the microcomputer 11 receives the decoded transmission data.

以上説明したように、本実施形態のCPU111(「第1受付手段」、「付加手段」、「第1出力手段」の一例)は、変換プログラム303に基づいて、C-APDUの入力を受け付け、当該受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加し、当該ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する。 As described above, the CPU 111 (an example of the “first receiving means”, the “addition means”, and the “first output means”) of the present embodiment receives input of C-APDU based on the conversion program 303, The AT command header and footer are added to the received C-APDU, and the C-APDU with the AT command header and footer added is output.

したがって、本実施形態の変換プログラム303によれば、C-APDUを入力することによりATコマンドのヘッダ及びフッタが付加されて出力されることから、PC/SCとLTE通信モジュール10の間で動作させることにより、PC/SC302が出力したC-APDUをLTE通信モジュール10に受信させることができる。したがって、アプリケーション301がLTE通信モジュール10に接続されたSIM(「ICカード」の一例)とAPDUを通信する場合であっても、アプリケーション301がAPDUの授受を行う直接的な相手をPC/SC302とすることができ、アプリケーション301の開発者はATコマンドを意識することなくアプリケーション301を開発することができる。 Therefore, according to the conversion program 303 of this embodiment, since the AT command header and footer are added and output by inputting the C-APDU, it is operated between the PC / SC and the LTE communication module 10 This allows the LTE communication module 10 to receive the C-APDU output by the PC/SC 302 . Therefore, even when the application 301 communicates APDU with a SIM (an example of an “IC card”) connected to the LTE communication module 10, the direct partner with which the application 301 exchanges APDU is the PC/SC 302. A developer of the application 301 can develop the application 301 without being aware of AT commands.

また、本実施形態のCPU111(「第2受付手段」、「削除手段」、「第2出力手段」の一例)は、変換プログラム303に基づいて、ATコマンドのヘッダ及びフッタが付加されたR-APDUの入力を受け付け、当該受け付けたATコマンドのヘッダ及びフッタが付加されたR-APDUからATコマンドのヘッダ及びフッタを削除し、当該ATコマンドのヘッダ及びフッタを削除したR-APDUを出力する。 In addition, the CPU 111 of the present embodiment (an example of the “second receiving means”, the “deleting means”, and the “second outputting means”) uses the conversion program 303 to convert the R- An input of an APDU is accepted, the AT command header and footer are deleted from the received R-APDU to which the AT command header and footer are added, and the R-APDU with the AT command header and footer deleted is output.

したがって、本実施形態の変換プログラム303によれば、ATコマンドのヘッダ及びフッタが付加されたR-APDUを入力することによりATコマンドのヘッダ及びフッタが削除されて出力されることから、変換プログラム303をPC/SC302とLTE通信モジュール10の間で動作させることにより、LTE通信モジュール10が出力したATコマンドのヘッダ及びフッタが付加されたR-APDUを受信した場合にATコマンドのヘッダ及びフッタを削除したR-APDUをPC/SC302に受信させることができる。したがって、アプリケーション301がLTE通信モジュール10に接続されたSIM(「ICカード」の一例)とAPDUを通信する場合であっても、アプリケーション301がAPDUの授受を行う直接的な相手をPC/SC302とすることができ、アプリケーション301の開発者はATコマンドを意識することなくアプリケーション301を開発することができる。 Therefore, according to the conversion program 303 of this embodiment, by inputting the R-APDU to which the AT command header and footer are added, the AT command header and footer are deleted and output. is operated between the PC/SC 302 and the LTE communication module 10, and when the R-APDU to which the AT command header and footer output by the LTE communication module 10 is added, the AT command header and footer are deleted. PC/SC 302 can receive the received R-APDU. Therefore, even when the application 301 communicates APDU with a SIM (an example of an “IC card”) connected to the LTE communication module 10, the direct partner with which the application 301 exchanges APDU is the PC/SC 302. A developer of the application 301 can develop the application 301 without being aware of AT commands.

[6.変形例]
マイコン11のアプリケーション301がSIM12にデータの送信を命令するコマンドを送信して、これに対してSIM12がデータをレスポンスとしてアプリケーション301に送信する場合がある。このとき、一度のレスポンスで送信すべきデータを送信できない場合に、SIM12はレスポンスとして当該送信すべきデータの一部と、特定のSWをアプリケーション301に送信する。このとき、特定のSWにおけるSW1(SWの1バイト目)には「0x61」が設定され、SW2(SWの2バイト目)に残りのデータサイズを示す値が設定される。アプリケーション301は、SW1が「0x61」であるレスポンスを受信した場合に、残りのデータの送信を命令する[GET RESPONSE]コマンドをSIM12に送信し、SIM12は当該コマンドに対して、残りのデータ及びSWを含むレスポンスを送信する。このとき、一度の[GET RESPONSE]コマンドに対するレスポンスで送信すべきデータを送信しきれない場合には、これらの処理を繰り返すことにより、SIM12からアプリケーション301に送信すべきデータを分割して送信することができる。
[6. Modification]
In some cases, the application 301 of the microcomputer 11 sends a command to the SIM 12 to send data, and the SIM 12 sends data as a response to the command to the application 301 . At this time, if the data to be transmitted cannot be transmitted in one response, the SIM 12 transmits part of the data to be transmitted and a specific SW to the application 301 as a response. At this time, "0x61" is set to SW1 (first byte of SW) in a specific SW, and a value indicating the remaining data size is set to SW2 (second byte of SW). When the application 301 receives a response in which SW1 is "0x61", it transmits a [GET RESPONSE] command for instructing transmission of the remaining data to SIM12, and SIM12 responds to the command by transmitting the remaining data and SW Send a response containing At this time, if the data to be transmitted cannot be transmitted in one response to the [GET RESPONSE] command, the data to be transmitted from the SIM 12 to the application 301 can be divided and transmitted by repeating these processes. can be done.

そこで、本変形例における変換プログラム303は、SIM12からのレスポンスにSW1が「0x61」であるSWが含まれる場合に、当該レスポンスをPC/SC302(アプリケーション301)に送信せずに、自らが[GET RESPONSE]コマンドをSIM12に送信して、SIM12がアプリケーション301に送信すべきデータを全て受信して、一括して送信すべきデータをPC/SC302(アプリケーション301)に送信することとする。以下、図10及び図11を用いて、本変形例におけるマイコン11にインストールされているアプリケーション301とSIM12間の通信方式と、変換プログラム303に基づく変換処理について説明する。 Therefore, the conversion program 303 in this modified example does not send the response to the PC/SC 302 (application 301) when the response from the SIM 12 includes a SW whose SW1 is "0x61". RESPONSE] command to SIM 12, SIM 12 receives all data to be transmitted to application 301, and collectively transmits data to be transmitted to PC/SC 302 (application 301). 10 and 11, the communication method between the application 301 installed in the microcomputer 11 and the SIM 12 and the conversion processing based on the conversion program 303 in this modified example will be described below.

図10におけるステップS31からステップS35までは、図6におけるステップS1からステップS5までは同様であるので説明を省略する。但し、マイコン11(アプリケーション301)から送信されるコマンドは、SIM12に何らかのデータの送信を命令するコマンドであることとする。これに対してSIM12は、マイコン11(アプリケーション301)に送信すべきデータを一度に送信できない場合に、R-Data1とR-Data2に分割して送信する(ここでは、2つのデータに分割して送信する場合について説明するが、データをR-Data1~R-DataNのN個に分割した上で、N回に分けて送信することもできる)。具体的には、SIM12は、まず、R-Data1とSW1が「0x61」であるSWからなるレスポンスを含むR-APDUをLTE通信モジュール10に受け渡す(ステップS36)。LTE通信モジュール10は、これを受け取るとR-APDUにATコマンドのヘッダ及びフッタを付加して変換プログラム303に受け渡す(ステップS37)。 Since steps S31 to S35 in FIG. 10 are the same as steps S1 to S5 in FIG. 6, description thereof will be omitted. However, it is assumed that the command transmitted from the microcomputer 11 (application 301) is a command for instructing the SIM 12 to transmit some data. On the other hand, if the data to be transmitted to the microcomputer 11 (application 301) cannot be transmitted at once, the SIM 12 divides it into R-Data1 and R-Data2 and transmits it (here, it divides into two data Although the case of transmission will be described, it is also possible to divide the data into N pieces of R-Data1 to R-DataN and then divide the data into N pieces for transmission). Specifically, the SIM 12 first passes an R-APDU containing a response composed of SW with R-Data1 and SW1 of "0x61" to the LTE communication module 10 (step S36). Upon receiving this, the LTE communication module 10 adds the AT command header and footer to the R-APDU and transfers it to the conversion program 303 (step S37).

これに対して変換プログラム303は、LTE通信モジュール10から受け付けたATコマンドのヘッダ及びフッタが付加されたR-APDUに含まれるSW1が「0x61」であると判定すると、R-Data1を一時保持するとともに、[GET RESPONSE]コマンドを生成し、これにATコマンドのヘッダ及びフッタを付加した上でLTE通信モジュール10に送信する自動送信処理を実行する(ステップ38、ステップS39)。LTE通信モジュール10は、これを受け取るとATコマンドのヘッダ及びフッタを削除してC-APDUをSIM12に受け渡す(ステップS40)。これに対してSIM12は、R-Data2とSW「0x9000」(正常終了を示す)からなるレスポンスを含むR-APDUをLTE通信モジュール10に受け渡す(ステップS41)。LTE通信モジュール10は、これを受け取るとR-APDUにATコマンドのヘッダ及びフッタを付加して変換プログラム303に受け渡す(ステップS42)。 On the other hand, when the conversion program 303 determines that the SW1 included in the R-APDU to which the header and footer of the AT command received from the LTE communication module 10 are added is "0x61", it temporarily holds the R-Data1. At the same time, it generates a [GET RESPONSE] command, adds an AT command header and footer to it, and executes an automatic transmission process to transmit it to the LTE communication module 10 (steps 38 and S39). Upon receiving this, the LTE communication module 10 deletes the AT command header and footer and passes the C-APDU to the SIM 12 (step S40). In response to this, the SIM 12 passes an R-APDU containing a response consisting of R-Data2 and SW "0x9000" (indicating normal termination) to the LTE communication module 10 (step S41). Upon receiving this, the LTE communication module 10 adds the AT command header and footer to the R-APDU and transfers it to the conversion program 303 (step S42).

変換プログラム303は、ステップS39で送信した[GET RESPONSE]コマンドのレスポンスとして、LTE通信モジュール10からATコマンドのヘッダ及びフッタが付加されたR-APDUの入力を受け付けると、これに含まれるSWが「0x9000」であることを確認して、ヘッダ・フッタ削除処理を行う(ステップS43)。ヘッダ・フッタ削除処理では、R-APDUに付加されているATコマンドのヘッダ及びフッタを削除するとともに、当該R-APDUに対してそれまでに一時保持したR-Data1を加えたR-APDU(すなわち、R-Data1とR-Data12とSW「0x9000」を含むR-APDU)を生成する。次いで、変換プログラム303は、当該R-APDUをPC/SC302に出力する(ステップS44)。PC/SC302は、変換プログラム303からR-APDUを受け付けるとアプリケーション301に受け渡す(ステップS45)。 When the conversion program 303 receives the input of the R-APDU to which the header and footer of the AT command are added from the LTE communication module 10 as a response to the [GET RESPONSE] command transmitted in step S39, the SW included therein is " 0x9000", and deletes the header/footer (step S43). In the header/footer deletion process, the header and footer of the AT command added to the R-APDU are deleted, and the R-APDU (that is, , R-Data1, R-Data12 and SW “0x9000”). The conversion program 303 then outputs the R-APDU to the PC/SC 302 (step S44). When the PC/SC 302 receives the R-APDU from the conversion program 303, it transfers it to the application 301 (step S45).

つまり、変換プログラム303は、LTE通信モジュール10を介してSIM12からSW1が「0x61」であるSWを含むR-APDUの入力を受け付けた場合には、SWが「0x9000」であるSWを含むR-APDUの入力を受け付けるまで、[GET RESPONSE]コマンドを含むC-APDUの送信と、これに対する応答であるR-APDUに含まれる分割データの一時保持を繰り返す。そして、SWが「0x9000」であるSWを含むR-APDU(R-DataN)の入力を受け付けた場合には、これに一時保持した全ての分割データ(R-Data1~R-DataN-1)を加えたR-APDUをPC/SC302に出力する。 That is, when the conversion program 303 receives the input of the R-APDU including the SW whose SW1 is "0x61" from the SIM 12 via the LTE communication module 10, the R-APDU including the SW whose SW is "0x9000" is received. Until the input of APDU is accepted, transmission of C-APDU including [GET RESPONSE] command and temporary holding of divided data contained in R-APDU which is a response to this are repeated. Then, when the input of R-APDU (R-DataN) including SW whose SW is "0x9000" is received, all divided data (R-Data1 to R-DataN-1) temporarily held in this are received. It outputs the added R-APDU to PC/SC 302 .

次に、図11を用いて、変形例における変換プログラム303に基づくマイコン11のCPU111による変換処理について説明する。図11は、変形例におけるマイコン111による変換処理の一例を示すフローチャートである。なお、図11では、図7のステップS104の処理とステップS105の処理の間に、ステップS151の処理からステップ158の処理を追加しており、ここでは、当該追加した部分を中心に説明する。 Next, conversion processing by the CPU 111 of the microcomputer 11 based on the conversion program 303 in the modified example will be described with reference to FIG. FIG. 11 is a flow chart showing an example of conversion processing by the microcomputer 111 in the modified example. In FIG. 11, processing from step S151 to step S158 is added between the processing of step S104 and the processing of step S105 in FIG. 7, and the added portion will be mainly described here.

まず、図11のステップS104において、マイコン11のCPU111は、LTE通信モジュール10からデータを受け付けていないと判定した場合には(ステップS104:NO)、ステップS101の処理に移行する。一方、CPU111は、LTE通信モジュール10からデータを受け付けたと判定した場合には(ステップS104:YES)、当該受け付けたデータであるR-APDUに含まれるSWが「0x61XX」(すなわち、SW1が「0x61」)であるか否かを判定する(ステップS151)。 First, in step S104 of FIG. 11, when the CPU 111 of the microcomputer 11 determines that data has not been received from the LTE communication module 10 (step S104: NO), the process proceeds to step S101. On the other hand, when the CPU 111 determines that data has been received from the LTE communication module 10 (step S104: YES), the SW included in the received data R-APDU is "0x61XX" (that is, SW1 is "0x61XX"). ”) (step S151).

CPU111は、SWが「0x61XX」であると判定した場合には(ステップS151:YES)、R-APDUに含まれる分割されたR―Datan(nは1からN-1の自然数)を不揮発性メモリ115又はRAM112に一時保持する(ステップS152)。次いで、CPU111は、[GET RESPONSE]コマンドを含むC-APDUを用意し、これにATコマンドのヘッダ及びフッタを付加して送信データを生成する(ステップS153)。次いで、CPU111は、ステップS153の処理で生成した送信データをLTE通信モジュール10に出力し(ステップS154)、一時保持フラグをオンに設定し(ステップS155)、ステップS101の処理に移行する。なお、一時保持フラグは、SW「0x61XX」を含むR-APDUに含まれるR-Dataを変換プログラム303が一時保持している場合にオンに設定される。 When the CPU 111 determines that the SW is "0x61XX" (step S151: YES), the divided R-Data (n is a natural number from 1 to N−1) included in the R-APDU is stored in the nonvolatile memory. 115 or RAM 112 (step S152). Next, the CPU 111 prepares a C-APDU containing the [GET RESPONSE] command, adds an AT command header and footer thereto, and generates transmission data (step S153). Next, the CPU 111 outputs the transmission data generated in the process of step S153 to the LTE communication module 10 (step S154), sets the temporary holding flag to ON (step S155), and proceeds to the process of step S101. The temporary hold flag is set to ON when the conversion program 303 temporarily holds the R-Data contained in the R-APDU including the SW "0x61XX".

一方、CPU111は、SWが「0x61XX」ではない(例えば、「0x9000」である)と判定した場合には(ステップS151:NO)、次いで、一時保持フラグがオンであるか否かを判定する(ステップS156)。CPU111は、一時保持フラグがオンではないと判定した場合には(ステップS156:NO)、ステップS105の処理に移行する。 On the other hand, when the CPU 111 determines that the SW is not "0x61XX" (for example, it is "0x9000") (step S151: NO), it then determines whether the temporary holding flag is on ( step S156). When the CPU 111 determines that the temporary hold flag is not ON (step S156: NO), the process proceeds to step S105.

他方、CPU111は、一時保持フラグがオンであると判定した場合には(ステップS156:YES)、受信したデータ(R-DataN及びSW「0x9000」を含むR-APDU)からATコマンドのヘッダ及びフッタを削除した上で、当該R-APDU(R-DataN及びSW「0x9000」を含むR-APDU)に対して、ステップS152の処理で一時保持した全てのデータ(R-Data1~R-Data(N-1))を加えたR-APDU((R-Data1~R-DataN及びSW「0x9000」を含むR-APDU)を送信データとして生成する(ステップS157)。次いで、CPU111は、一時保持フラグをオフに設定し(ステップS158)、ステップS106の処理に移行する。 On the other hand, when the CPU 111 determines that the temporary holding flag is ON (step S156: YES), the CPU 111 extracts the AT command header and footer from the received data (R-APDU including R-DataN and SW "0x9000"). is deleted, all the data (R-Data1 to R-Data (N −1)) is added ((R-APDU including R-Data1 to R-DataN and SW “0x9000”) as transmission data (step S157). It is set to OFF (step S158), and the process proceeds to step S106.

以上説明したように、本変形例のCPU111(「保持手段」、「第3出力手段」の一例)は、変換プログラム303に基づいて、受け付けたR-APDUに含まれるSWの1バイト目が「0x61」である場合に、当該SWとともに受け付けたR-Dataを保持するとともに、[GET RESPONSE]コマンドを含むC-APDUにATコマンドを付加した送信データをLTE通信モジュール10に出力し、[GET RESPONSE]コマンドの応答として受け付けたATコマンドのヘッダ及びフッタが付加されたR-APDUに含まれるSWが「0x9000」である場合に、当該ATコマンドのヘッダ及びフッタが付加されたR-APDUから当該ATコマンドのヘッダ及びフッタを削除し、当該ATコマンドのヘッダ及びフッタが削除されたR-APDUに先に保持したR-Dataを付加した上で、C-APDUの送信元に出力する。 As described above, the CPU 111 (an example of the “holding means” and the “third output means”) of this modification, based on the conversion program 303, the first byte of SW included in the received R-APDU is “ 0x61”, the R-Data received together with the SW is retained, and the transmission data in which the AT command is added to the C-APDU including the [GET RESPONSE] command is output to the LTE communication module 10, and the [GET RESPONSE ] When the SW included in the R-APDU to which the header and footer of the AT command received as a command response is "0x9000", the R-APDU to which the header and footer of the AT command is added is sent to the AT The header and footer of the command are deleted, and the previously held R-Data is added to the R-APDU from which the header and footer of the AT command have been deleted, and then output to the transmission source of the C-APDU.

すなわち、SIM12からSW「0x61XX」を含むレスポンスを含むR-APDUが送信された場合において、変換プログラム303は、マイコン11(アプリケーション301)に当該R-APDUを戻すことなく、SIM12がマイコン11(アプリケーション301)に送信すべき全てのデータを取得した上で、一括してマイコン11(アプリケーション301)に送信する。これにより、マイコン11(アプリケーション301)と変換プログラム303間での通信回数を削減することができ、延いてはトランザクションに係る処理時間を短縮することができる。 That is, when an R-APDU containing a response including SW "0x61XX" is transmitted from SIM 12, conversion program 303 does not return the R-APDU to microcomputer 11 (application 301), and SIM 12 does not return the R-APDU to microcomputer 11 (application 301), and then collectively transmit it to the microcomputer 11 (application 301). As a result, the number of communications between the microcomputer 11 (application 301) and the conversion program 303 can be reduced, and the processing time for transactions can be shortened.

1 IoT機器
10 LTE通信モジュール
11 マイコン
111 CPU
112 RAM
113 ROM
114 I/O部
115 不揮発性メモリ
12 SIM
2 IoTサーバ
300 OS
301 アプリケーション
302 PC/SC
303 変換プログラム
1 IoT device 10 LTE communication module 11 microcomputer 111 CPU
112 RAMs
113 ROMs
114 I/O unit 115 nonvolatile memory 12 SIM
2 IoT server 300 OS
301 Application 302 PC/SC
303 conversion program

Claims (7)

コンピュータを、
C-APDUの入力を受け付ける第1受付手段、
前記第1受付手段が受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加する付加手段、
前記ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する第1出力手段、
として機能させることを特徴とする変換プログラム。
the computer,
first receiving means for receiving input of C-APDU;
adding means for adding an AT command header and footer to the C-APDU received by the first receiving means;
a first output means for outputting a C-APDU to which the AT command header and footer are added;
A conversion program characterized by functioning as
請求項1に記載の変換プログラムであって、
前記コンピュータを、
ATコマンドのヘッダ及びフッタが付加されたR-APDUの入力を受け付ける第2受付手段、
前記第2受付手段が受け付けた前記ATコマンドのヘッダ及びフッタが付加されたR-APDUからATコマンドのヘッダ及びフッタを削除する削除手段、
前記ATコマンドのヘッダ及びフッタを削除したR-APDUを出力する第2出力手段、
として更に機能させることを特徴とする変換プログラム。
The conversion program according to claim 1,
said computer,
a second receiving means for receiving an input of an R-APDU to which an AT command header and footer are added;
Deletion means for deleting the AT command header and footer from the R-APDU to which the AT command header and footer are added and which is received by the second receiving means;
a second output means for outputting an R-APDU from which the header and footer of the AT command are deleted;
A conversion program characterized by further functioning as
請求項1に記載の変換プログラムであって、
前記付加手段は、前記第1受付手段が受け付けたC-APDUの送信先が通信モジュールである場合に、当該C-APDUにATコマンドのヘッダ及びフッタを付加し、
前記第1出力手段は、前記ATコマンドのヘッダ及びフッタを付加したC-APDUを前記通信モジュールに出力することを特徴とする変換プログラム。
The conversion program according to claim 1,
When the destination of the C-APDU received by the first receiving means is a communication module, the adding means adds an AT command header and footer to the C-APDU;
The conversion program, wherein the first output means outputs a C-APDU to which the header and footer of the AT command are added to the communication module.
請求項2に記載の変換プログラムであって、
前記削除手段は、前記第2受付手段が受け付けた前記ATコマンドのヘッダ及びフッタが付加されたR-APDUの送信元が通信モジュールである場合に、当該-APDUからATコマンドのヘッダ及びフッタを削除し、
前記第2出力手段は、前記ATコマンドのヘッダ及びフッタを削除したR-APDUを、前記C-APDUの入力元に出力することを特徴とする変換プログラム。
The conversion program according to claim 2,
The deleting means deletes the AT command header and footer from the R-APDU when the transmission source of the R -APDU to which the AT command header and footer are added and received by the second receiving means is a communication module. delete and
The conversion program, wherein the second output means outputs the R-APDU from which the header and footer of the AT command are deleted to the input source of the C-APDU.
請求項4に記載の変換プログラムであって、
前記コンピュータを、
前記第2受付手段が受け付けたR-APDUに含まれるSWの1バイト目が「0x61」である場合に、当該SWとともに受け付けたデータを保持する保持手段、
前記第2受付手段が受け付けたR-APDUに含まれるSWの1バイト目が「0x61」である場合に、[GET RESPONSE]コマンドを含むC-APDUにATコマンドのヘッダ及びフッタを付加して、前記通信モジュールに出力する第3出力手段、
として更に機能させ、
前記[GET RESPONSE]コマンドの応答として受け付けた前記ATコマンドのヘッダ及びフッタが付加されたR-APDUに含まれるSWが「0x9000」である場合に、
前記削除手段は、当該ATコマンドのヘッダ及びフッタが付加されたR-APDUから当該ATコマンドのヘッダ及びフッタを削除し、
前記第2出力手段は、当該ATコマンドのヘッダ及びフッタが削除されたR-APDUに前記保持手段が保持したデータを付加した上で、前記第1受付手段の受け付けたC-APDUの送信元に出力することを特徴とする変換プログラム。
The conversion program according to claim 4,
said computer,
holding means for holding data received together with the SW when the first byte of the SW included in the R-APDU received by the second receiving means is "0x61";
When the first byte of SW included in the R-APDU received by the second receiving means is "0x61", adding the AT command header and footer to the C-APDU containing the [GET RESPONSE] command, third output means for outputting to the communication module;
further function as
When the SW included in the R-APDU to which the header and footer of the AT command received as a response to the [GET RESPONSE] command is added is "0x9000",
The deletion means deletes the header and footer of the AT command from the R-APDU to which the header and footer of the AT command are added,
The second output means adds the data held by the holding means to the R-APDU from which the header and footer of the AT command have been deleted, and sends the data to the transmission source of the C-APDU accepted by the first accepting means. A conversion program characterized by outputting.
C-APDUの入力を受け付ける第1受付手段と、
前記第1受付手段が受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加する付加手段と、
前記ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する第1出力手段と、
を備えることを特徴とする変換装置。
a first receiving means for receiving an input of C-APDU;
adding means for adding an AT command header and footer to the C-APDU received by the first receiving means;
a first output means for outputting a C-APDU to which the AT command header and footer are added;
A conversion device comprising:
変換装置による変換方法であって、
C-APDUの入力を受け付ける第1受付工程と、
前記第1受付工程により受け付けたC-APDUにATコマンドのヘッダ及びフッタを付加する付加工程と、
前記ATコマンドのヘッダ及びフッタを付加したC-APDUを出力する第1出力工程と、
を含むことを特徴とする変換方法。
A conversion method using a conversion device,
a first receiving step of receiving input of C-APDU;
an adding step of adding an AT command header and footer to the C-APDU received by the first receiving step;
a first output step of outputting a C-APDU to which the AT command header and footer are added;
A conversion method comprising:
JP2019075535A 2019-04-11 2019-04-11 CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD Active JP7287079B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019075535A JP7287079B2 (en) 2019-04-11 2019-04-11 CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019075535A JP7287079B2 (en) 2019-04-11 2019-04-11 CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD

Publications (2)

Publication Number Publication Date
JP2020173642A JP2020173642A (en) 2020-10-22
JP7287079B2 true JP7287079B2 (en) 2023-06-06

Family

ID=72831490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019075535A Active JP7287079B2 (en) 2019-04-11 2019-04-11 CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD

Country Status (1)

Country Link
JP (1) JP7287079B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304602A (en) 2001-04-06 2002-10-18 Dainippon Printing Co Ltd Card information update system
JP2007206902A (en) 2006-01-31 2007-08-16 Dainippon Printing Co Ltd Program correcting system for ic card, program, and ic card

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002304602A (en) 2001-04-06 2002-10-18 Dainippon Printing Co Ltd Card information update system
JP2007206902A (en) 2006-01-31 2007-08-16 Dainippon Printing Co Ltd Program correcting system for ic card, program, and ic card

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吉田 愼介,ICカードの最新技術と利用動向 第9回,BUSINESS COMMUNICATION,日本,株式会社ビジネスコミュニケーション社,2001年12月01日,第38巻 第12号 ,pp.90-93

Also Published As

Publication number Publication date
JP2020173642A (en) 2020-10-22

Similar Documents

Publication Publication Date Title
US10986487B2 (en) Apparatus and method for profile installation in communication system
US9817993B2 (en) UICCs embedded in terminals or removable therefrom
ES2708696T3 (en) Method for changing the mobile network operator in an integrated SIM based on a special privilege
JP5154401B2 (en) Transaction facilitation and authentication
CN102752375B (en) Realize the remote-operated method and system of smart card
US10057759B2 (en) Method for personalising a secure element
US9723549B2 (en) Communication control apparatus, authentication device, central control apparatus and communication system
JP2010259074A (en) Secure session set up based on wireless application protocol
US20150119017A1 (en) Method and system for implementing smart card remote operation based on smart card web server
US9055605B2 (en) Method for establishing a secure logical connection between an integrated circuit card and a memory card through a terminal equipment
CN108141744A (en) The instantiation of multiple electronics subscriber identity module (eSIM) examples
US10097553B2 (en) Installation of a secure-element-related service application in a secure element in a communication device, system and telecommunications
CN106412887B (en) A kind of fast authentication method, system, server and the terminal of virtual SIM card
Urien Cloud of secure elements: An infrastructure for the trust of mobile NFC services
Klee et al. {NFCGate}: Opening the Door for {NFC} Security Research with a {Smartphone-Based} Toolkit
JP7287079B2 (en) CONVERSION PROGRAM, CONVERSION APPARATUS AND CONVERSION METHOD
JP7440963B2 (en) Quantum resistant SIM card
Urien et al. A new cooperative architecture for sharing services managed by secure elements controlled by android phones with IP objects
CN106055989B (en) A kind of data transferring method and terminal
Urien et al. Introducing Smartcard in Wireless LAN Security
Loutrel et al. A smartcard for authentication in WLANs
KR100867002B1 (en) Smart card for providing convergence authentication in heterogeneous wireless networks and wireless device having the same
Sabt et al. Over-the-internet: efficient remote content management for secure elements in mobile devices
EP2731370A1 (en) Secured authentication between a communication device and a server
JP2024054260A (en) Quantum-resistant SIM card

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230508

R150 Certificate of patent or registration of utility model

Ref document number: 7287079

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150