JP7236011B2 - アクセラレータ制御システムおよびアクセラレータ制御方法 - Google Patents

アクセラレータ制御システムおよびアクセラレータ制御方法 Download PDF

Info

Publication number
JP7236011B2
JP7236011B2 JP2021540602A JP2021540602A JP7236011B2 JP 7236011 B2 JP7236011 B2 JP 7236011B2 JP 2021540602 A JP2021540602 A JP 2021540602A JP 2021540602 A JP2021540602 A JP 2021540602A JP 7236011 B2 JP7236011 B2 JP 7236011B2
Authority
JP
Japan
Prior art keywords
accelerator
digest information
unit
function
server
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
JP2021540602A
Other languages
English (en)
Other versions
JPWO2021033306A1 (ja
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Publication of JPWO2021033306A1 publication Critical patent/JPWO2021033306A1/ja
Application granted granted Critical
Publication of JP7236011B2 publication Critical patent/JP7236011B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、アクセラレータ制御システムおよびアクセラレータ制御方法に関する。
GPU(Graphics Processing Unit)やFPGA(Field Programmable Gate Array)等のアクセラレータにソフトウェアアプリケーション(以下、APLという)の処理の一部をオフロードし、ソフトウェア(CPU処理)のみでは到達できない性能や電力効率を実現する例が増えてきている。
NFV(Network Functions Virtualization)やSDN(Software Defined Network)を構成するデータセンタなど、大規模なサーバクラスタにおいて、上記のようなアクセラレータを適用するケースが想定される(非特許文献1参照)。
従来のサーバ負荷要因のオフロードについて説明する。
図11は、汎用的なコンピュータに特定の処理に特化した演算装置を追加した演算システムの概略構成図である。
図11の左図は、プログラマブルでない(機能追加できない)演算システム10Aの構成図である。
図11の左図に示す演算システム10Aは、CPU11と、通信ネットワークに接続するためのNIC(Network Interface Card)12と、を備える。CPU11は、複数のCore11aを搭載するCoreプロセッサである。図11の左図では、APLおよびパケット処理がCore11aを使用する状況をイメージ表現している。図11の左図の細矢印に示すように、演算システム10AにおけるCPU11は、APLの実行に先立ってパケット処理(あるいはパケット処理とAPLの並列処理)を行わなければならず、処理速度が遅い。
図11の右図に示す演算システム10Bは、NIC12に代えて、アクセラレータ付きのNICであるSmartNIC13を備える。SmartNIC13は、処理能力が落ちる原因となるIPパケット処理など、負荷のかかる処理をオフロードしてCPU11の負荷を軽減することができるNICである。SmartNIC13は、パケット処理用の演算回路にプログラムでき、パケット処理用プログラムをオフロード可能である(図11の符号a参照)。図11の右図の太矢印に示すように、SmartNIC13を利用することで、例えば仮想サーバ環境のアクセラレーションによる処理能力を向上させることができる。
図12および図13は、汎用サーバ上で動作するソフトウェアの機能を、アクセラレータボードにオフロードする機能を説明する図である。
図12および図13に示すように、汎用サーバ30は、汎用サーバ30上で動作するソフトウェアの機能を、アクセラレータボード40のFPGA機能部41にオフロードすることで、さらなる高速化やCPUリソースの削減を図る。また、仮想化により複数のユーザ端末22が同一の汎用サーバ30上に併存することが増えており、アクセラレータボード40を搭載した汎用サーバ30においてもシステム運用者21がアクセラレータボード40を使用し、複数のユーザ端末22に複数の機能を提供するケースが増えてきている。
谷所 他, "P4/Cを用いたSmartNICファームウェア開発の取り組み," ,[online],OkinawaOpenDays2017. [令和1年8月1日検索] ,インターネット〈URL:https://www.okinawaopenlabs.com/ood/2017/wp-content/uploads/sites/4/2017/12/fujitsu_3.pdf〉
しかしながら、従来の技術では、サーバを操作することができる人(システム運用者や不正アクセス者等)が意図せずまたは悪意を持ってアクセラレータの中身を書き換えてしまう可能性があり、アクセラレータの適切な管理ができなくなる懸念がある。システム運用者の運用ミス、あるいは、悪意あるユーザによってアクセラレータの機能が書き換えられてしまうと、意図しない動作をしてしまう場合があるという課題がある。
例えば、図12の符号bに示すように、システム運用者21が、汎用サーバ30上で動作するソフトウェアの機能(<機能1>)を、アクセラレータボード40のFPGA機能部41にオフロードする。ところが、頻繁に機能更新が行われ、機能開発とアクセラレータへの書き換えタイミングが異なる場合等、システム運用者21が運用ミスによって、本来あるべき機能でないもので書き換えてしまう場合がある(FPGA機能部41の<機能1>参照)。このような場合、図12の符号cに示すように、アクセラレータボード40のFPGA機能部41には、想定した<機能1>と異なる<機能1>がオフロードされているので、想定動作と異なってしまう。
また、図13の符号dに示すように、悪意あるユーザ22が、勝手にアクセラレータボード40のFPGA機能部41を書き換えてしまうことがある。このような場合、図13の符号eに示すように、システム運用者21は、悪意のないユーザ、つまり本来その機能を使うはずのユーザが使用しようとする必要機能が使えなくなる不具合がある。
このような背景に鑑みて本発明がなされたのであり、本発明は、アクセラレータ機能の書き換えを防ぎ、意図しない動作を防ぐことを課題とする。
前記した課題を解決するため、本発明は、汎用サーバのアプリケーションの特定処理を、アクセラレータボード上のアクセラレータ機能部にオフロードするアクセラレータ制御システムであって、前記汎用サーバは、前記アクセラレータ機能部のアクセラレータ機能を書き換えるアクセラレータ書き換え部と、前記アクセラレータ機能をバイナリ化して、ダイジェスト情報生成のためのアルゴリズムに従って、当該アクセラレータ機能のダイジェスト情報を生成するサーバ側ダイジェスト情報生成部と、前記アクセラレータ機能の前記アクセラレータ機能部への実装前に作成した前記ダイジェスト情報と、前記アクセラレータボードから通知された前記ダイジェスト情報とを比較し、前記アクセラレータ機能の書き換えの有無を判断するサーバ管理制御部と、を備え、前記アクセラレータボードは、前記アクセラレータ機能部と、前記アクセラレータ機能部に書き込まれた前記アクセラレータ機能をバイナリ化して、前記ダイジェスト情報生成のためのアルゴリズムと同じアルゴリズムに従って、当該アクセラレータ機能のダイジェスト情報を生成するアクセラレータ側ダイジェスト情報生成部と、生成した前記ダイジェスト情報を書き換え元の前記汎用サーバ宛に通知するアクセラレータ管理制御部と、を備えることを特徴とするアクセラレータ制御システムとした。
本発明によれば、アクセラレータ機能の書き換えを防ぎ、意図しない動作を防ぐことができる。
本発明の原理説明のアクセラレータ制御システムの構成例を示す図である。 本発明の原理説明のアクセラレータ制御システムの構成例を示す図である。 本発明の実施形態に係るアクセラレータ制御システムの構成例を示す図である。 本発明の実施形態に係るアクセラレータ制御システムの構成例を示す図である。 本発明の実施形態に係るアクセラレータ制御システムの詳細な構成例を示す図である。 本発明の実施形態に係るアクセラレータ制御システムのダイジェスト情報の生成例を説明する図である。 本発明の実施形態に係るアクセラレータ制御システムのダイジェスト情報の比較時の一致/不一致の判断ロジック例を説明する図である。 本発明の実施形態に係るアクセラレータ制御システムのアクセラレータ制御処理を示すフローチャートである。 本発明の実施形態に係るアクセラレータ制御システムのアクセラレータ制御処理の制御シーケンス図である。 本発明の実施形態に係るアクセラレータ制御システムの機能を実現するコンピュータの一例を示すハードウェア構成図である。 汎用的なコンピュータに特定の処理に特化した演算装置を追加した演算システムの概略構成図である。 汎用サーバ上で動作するソフトウェアの機能を、アクセラレータボードにオフロードする機能を説明する図である。 汎用サーバ上で動作するソフトウェアの機能を、アクセラレータボードにオフロードする機能を説明する図である。
以下、図面を参照して本発明を実施するための形態(以下、「本実施形態」という)におけるネットワークシステム等について説明する。
(原理説明)
図1は、本発明の原理説明のアクセラレータ制御システム100の構成例を示す図である。
図1に示すように、アクセラレータ制御システム100は、汎用サーバ110と、アクセラレータボード120と、を備える。汎用サーバ110とアクセラレータボード120とは、図示しないSWやネットワークにより接続される。なお、汎用サーバ110とアクセラレータボード120は、汎用サーバ内に閉じて接続する形態(例えば、マザーボード上のバスでの接続等)も含まれる。
アクセラレータ制御システム100は、汎用サーバ110のアプリケーションの特定処理を、アクセラレータボード120上のFPGA機能部122(アクセラレータ機能部)にオフロードする。
<汎用サーバ110>
汎用サーバ110は、クライアント(システム運用者20)からの要求に対して情報や処理結果を提供する機能を果たす側のコンピュータ機器(ハードウェア)やソフトウェアである。
汎用サーバ110は、アクセラレータボード120のFPGA管理部121(アクセラレータ管理部)と1セットで設けられたサーバ管理部111を備える。
サーバ管理部111は、アクセラレータボード120へのアクセラレータ機能の実装を行う前に、アクセラレータ機能のダイジェスト情報130(図6で後記する)を作成して保持する。サーバ管理部111は、予め作成したダイジェスト情報130とアクセラレータボード120のFPGA管理部121から通知されたダイジェスト情報130を比較し、一致していればアクセラレータ機能の書き換えが発生していないと判断する。サーバ管理部111は、ダイジェスト情報130が一致しない、またはダイジェスト情報130の通知が停止した場合にアクセラレータ機能の書き換えが発生していると判断し、アクセラレータの再実装を要求する。
<アクセラレータボード120>
アクセラレータボード120は、負荷のかかる処理をオフロードして汎用サーバ110の負荷を軽減するFPGA等のアクセラレータを搭載する。
アクセラレータボード120は、FPGA管理部121と、FPGA機能部122(アクセラレータ機能部)と、を備える。
FPGA管理部121は、汎用サーバ110のサーバ管理部111と1セットで設けられる。FPGA管理部121は、FPGA機能部122のダイジェスト情報130を作成し、汎用サーバ110のサーバ管理部111に定期的に通知する。
FPGA機能部122は、アクセラレータボード120に設けられたアクセラレータであり、どのようなアクセラレータであってもよい。
<システム運用者20>
システム運用者20は、汎用サーバ110上で動作するソフトウェアの機能を記述したアクセラレータ用ファイル50(図1の<機能1>参照)を、アクセラレータボード120のFPGA機能部122にオフロードする。
以上の構成において、汎用サーバ110のサーバ管理部111は、システム運用者20のアクセラレータ用ファイル50をもとに(図1の符号f参照)、アクセラレータボード120へのアクセラレータ機能の実装を行う前に、アクセラレータ機能のダイジェスト情報130を作成して保持する(ステップS1参照)。
システム運用者20は、アクセラレータボード120のFPGA機能部122へアクセラレータ機能を実装する(ステップS2参照)。ここでは、システム運用者20は、汎用サーバ110上で動作するソフトウェアの機能を記述したアクセラレータ用ファイル50(図1の<機能1>参照)を、アクセラレータボード120のFPGA機能部122にオフロードする。
アクセラレータボード120のFPGA管理部121は、FPGA機能部122にオフロードされたアクセラレータ用ファイル50をもとに(図1の符号g参照)、アクセラレータ機能のダイジェスト情報130を作成して保持する(ステップS3参照)。また、FPGA管理部121は、作成したダイジェスト情報130を、汎用サーバ110のサーバ管理部111に定期的に通知する(ステップS4参照)。
汎用サーバ110のサーバ管理部111は、予め作成して保持するダイジェスト情報130とアクセラレータボード120のFPGA管理部121から通知されたダイジェスト情報130とを比較してアクセラレータ機能の書き換えを判断する(ステップS5参照)。サーバ管理部111は、ダイジェスト情報130が一致していればアクセラレータ機能の書き換えが発生していないと判断する。
上記ステップS1の「ダイジェスト情報作成」を経ないで、上記ステップS2の「アクセラレータ実装」を行うと、上記ステップS5の「アクセラレータ機能の書き換え判断」で、ダイジェスト情報130が一致しないことになる。
汎用サーバ110のサーバ管理部111は、ダイジェスト情報130が一致しない、またはダイジェスト情報130の通知が停止した場合にアクセラレータ機能の書き換えが発生していると判断し、アクセラレータボード120のFPGA管理部121にアクセラレータ機能の停止を指示する(ステップS6参照)。
アクセラレータボード120のFPGA管理部121は、汎用サーバ110のサーバ管理部111からのアクセラレータ機能の停止指示を受けて、FPGA機能部122のアクセラレータ機能を停止する命令を発行する(ステップS7参照)。FPGA管理部121は、アクセラレータの当該機能が正常化するまでの間、アクセラレータの機能を停止してもよい。
ユーザが悪意を持つ場合、ダイジェスト情報130を偽ってアクセラレータ機能の書き換えが発生していないように見せてくる可能性がある。
上記に対応するため下記を追加する。
図2は、本発明の原理説明のアクセラレータ制御システム100の構成例を示す図である。図1と同一構成部分には、同一符号を付して重複箇所の説明を省略する。
アクセラレータボード120のFPGA管理部121は、作成したダイジェスト情報130を、FPGA管理部121およびサーバ管理部111しか知り得ない秘密鍵で暗号化してから、汎用サーバ110のサーバ管理部111に定期的に通知する(ステップS4参照)。なお、ネットワーク間でのVPN(Virtual Private Network)接続が、例えばL2TP(Layer 2 Tunneling Protocol)/IPsecトンネルで行われることを図2の符号hのパイプで表記している。
汎用サーバ110のサーバ管理部111は、公開鍵を用いてダイジェスト情報130を復号する。そして、サーバ管理部111は、予め作成して保持するダイジェスト情報130とアクセラレータボード120のFPGA管理部121から通知されたダイジェスト情報130とを比較してアクセラレータ機能の書き換えを判断する(ステップS5参照)。サーバ管理部111は、ダイジェスト情報130が一致していればアクセラレータ機能の書き換えが発生していないと判断する。
(実施形態)
本実施形態は、アクセラレータとしてFPGAを例に採るとともに、アクセラレータボード120を搭載した汎用サーバ110を例に採る。
[アクセラレータ制御システム100の構成]
図3および図4は、本発明の実施形態に係るアクセラレータ制御システム100の構成例を示す図である。図1と同一構成部分には、同一符号を付して重複箇所の説明を省略する。
図3に示すアクセラレータ制御システム100は、汎用サーバ110と、アクセラレータボード120と、を備える。
汎用サーバ110は、サーバ管理部111と、FPGA書き換え部112(アクセラレータ書き換え部)と、を備える。
サーバ管理部111は、アクセラレータボード120のFPGA機能部122へのアクセラレータ機能の実装を行う前に、アクセラレータ機能のダイジェスト情報130を作成して保持する。サーバ管理部111は、予め作成したダイジェスト情報130とアクセラレータボード120のFPGA管理部121から通知されたダイジェスト情報130を比較し、一致していればアクセラレータ機能の書き換えが発生していないと判断する。サーバ管理部111は、ダイジェスト情報130が一致しない、またはダイジェスト情報130の通知が停止した場合にアクセラレータ機能の書き換えが発生していると判断し、アクセラレータの再実装を要求する。
FPGA書き換え部112(アクセラレータ書き換え部)は、アクセラレータボード120のFPGA機能部122にオフロードするFPGA機能を書き換える。
アクセラレータボード120は、FPGA管理部121と、FPGA機能部122と、を備える。
FPGA管理部121は、FPGA機能部122のダイジェスト情報130を作成し、汎用サーバ110のサーバ管理部111に定期的に通知する。
FPGA機能部122は、アクセラレータボード120に設けられたアクセラレータである。
図3に示すアクセラレータ制御システム100は、アクセラレータボード120にFPGA管理部121をハードウェアまたはソフトウェアで設ける必要がある。
図3に示すアクセラレータ制御システム100は、システム運用者等がFPGAファイルを作成できる利点がある。ただし、アクセラレータボード120では、FPGA管理部121を動作させるための工夫が必要である。
また、図4に示すアクセラレータ制御システム100Aは、汎用サーバ110Aと、アクセラレータボード120Aと、を備える。
汎用サーバ110Aは、図3に示すFPGA書き換え部112をサーバ管理部111A内に設ける。
アクセラレータボード120Aは、図3に示すFPGA管理部121をFPGA機能部122A内に設ける。
図4に示すアクセラレータ制御システム100Aは、FPGA管理部121をIP(Intellectual Property)としてFPGA機能の一部に組み込める利点がある。ただし、秘密鍵をユーザに知られることを防ぐために、FPGA書き換え部112をサーバ管理部111Aに含める必要がある。
図4に示すアクセラレータ制御システム100Aは、特別なボードが不要であるが、FPGAファイル作成まで管理者にゆだねる必要がある。
以下、図3に示すアクセラレータ制御システム100を例に採り、各機能部の詳細な構成について説明する。
[アクセラレータ制御システム100の詳細構成]
図5は、本発明の実施形態に係るアクセラレータ制御システム100の詳細な構成例を示す図である。図3と同一構成部分には、同一符号を付して重複箇所の説明を省略する。
図5に示すように、アクセラレータ制御システム100は、汎用サーバ110と、アクセラレータボード120と、を備える。汎用サーバ110とアクセラレータボード120とは、図示しないSWやネットワークにより接続される。汎用サーバ110には、バイナリファイルDB140が接続される。
<汎用サーバ110>
汎用サーバ110は、サーバ管理部111と、FPGA書き換え部112(アクセラレータ書き換え部)と、を備える。
サーバ管理部111は、サーバ管理制御部1111と、ダイジェスト情報生成部1112(サーバ側ダイジェスト情報生成部)と、ダイジェストDB1113と、鍵管理部1114(公開鍵管理部)と、FPGA通信部1115と、を備える。
FPGA書き換え部112は、FPGA機能部122(アクセラレータ機能部)のFPGAを書き換える(書き換え失敗時の復元機能を持つ)。
サーバ管理制御部1111は、ダイジェスト情報130(後記図6参照)の比較を行うとともに、FPGA書き換え有無判断を行う。具体的には、サーバ管理制御部1111は、アクセラレータ機能のFPGA機能部122への実装前に作成してダイジェストDB1113に保持したダイジェスト情報130(後記図7のダイジェスト情報130A参照)とアクセラレータボード120から通知されたダイジェスト情報130(後記図7のダイジェスト情報130B参照)とを比較し、アクセラレータ機能の書き換えの有無を判断する。
サーバ管理制御部1111は、アクセラレータ機能のFPGA機能部122への実装前に作成したダイジェスト情報130(後記図7のダイジェスト情報130A参照)と、アクセラレータボード120から通知されたダイジェスト情報130(後記図7のダイジェスト情報130B参照)とが一致しない場合にアクセラレータ機能の書き換えが発生していると判断し、FPGA管理制御部1211にアクセラレータ機能の再実装を要求する。
サーバ管理制御部1111は、アクセラレータ機能のFPGA機能部122への実装前に作成したダイジェスト情報130(後記図7のダイジェスト情報130A参照)と、アクセラレータボード120から通知されたダイジェスト情報130(後記図7のダイジェスト情報130B参照)とが一致しない場合にアクセラレータ機能が正常化するまでの間、FPGA管理制御部1211にFPGA機能部122の停止を指示する。
サーバ管理制御部1111は、アクセラレータボード120から暗号化されて通知されたダイジェスト情報130(後記図7のダイジェスト情報130B参照)を公開鍵を用いて復号する。
ダイジェスト情報生成部1112は、アクセラレータ機能をバイナリ化して、当該アクセラレータ機能のダイジェスト情報を生成する。具体的には、ダイジェスト情報生成部1112は、バイナリファイルDB140に格納されたバイナリファイル140A(図6参照)を元にダイジェスト情報130を生成する。
ダイジェストDB1113は、FPGAに実装するためのバイナリファイル140Aの識別子とそのダイジェスト情報130とを保持する。
鍵管理部1114は、通信に利用するFPGA管理部121の公開鍵を管理する。
FPGA通信部1115は、FPGA管理部121のサーバ通信部1214と通信を行う。
<アクセラレータボード120>
アクセラレータボード120は、FPGA管理部121と、FPGA機能部122と、を備える。
FPGA管理部121は、FPGA管理制御部1211と、ダイジェスト情報生成部1212(アクセラレータ側ダイジェスト情報生成部)と、鍵管理部1213(秘密鍵管理部)と、サーバ通信部1214と、を備える。
FPGA機能部122は、書き換え対象となるFPGA本体である。
FPGA管理制御部1211は、アクセラレータボード120上でFPGA機能部122のダイジェスト情報130を作成し、生成したダイジェスト情報130(後記図7のダイジェスト情報130B参照)を書き換え元の汎用サーバ110のサーバ管理制御部1111に定期的に通知する。
FPGA管理制御部1211は、生成したダイジェスト情報130をサーバ管理制御部1111しか知り得ない秘密鍵で暗号化してから通知する。
FPGA管理制御部1211は、FPGA機能部122に書き込まれた機能と書き換え元のサーバ管理部111とを記憶し、対象のサーバ管理制御部1111宛のダイジェスト情報130(後記図7のダイジェスト情報130B参照)のをサーバ通信部1214に送る。
ダイジェスト情報生成部1212は、FPGA機能部122に書き込まれたアクセラレータ機能のダイジェスト情報130を生成する。
ダイジェスト情報生成部1212は、汎用サーバ110のサーバ管理部111のダイジェスト情報生成部1112と同じ機能であり、アクセラレータ機能をバイナリ化して、当該アクセラレータ機能のダイジェスト情報130を生成する。
鍵管理部1213は、通信に利用するFPGA管理部121の秘密鍵を管理する。
サーバ通信部1214は、汎用サーバ110のサーバ管理部111のFPGA通信部1115と通信を行う。
<ダイジェスト情報130>
次に、ダイジェスト情報130について説明する。
ダイジェスト情報130は、汎用サーバ110(図5参照)のダイジェスト情報生成部1112またはアクセラレータボード120のダイジェスト情報生成部1212により生成される。
汎用サーバ110側とアクセラレータボード120側とでは、同じダイジェスト情報130が生成される。このため、ダイジェスト情報生成のためのアルゴリズムは、汎用サーバ110のダイジェスト情報生成部1112とアクセラレータボード120のダイジェスト情報生成部1212とで同じものを用いる。換言すれば、汎用サーバ110のダイジェスト情報生成部1112とアクセラレータボード120のダイジェスト情報生成部1212とは、同一構成を採る。
図6は、ダイジェスト情報130の生成例を説明する図である。
汎用サーバ110(図5参照)のダイジェスト情報生成部1112(以下、アクセラレータボード120のダイジェスト情報生成部1212についても同様。)は、アクセラレータ用ファイル50(ここでは<機能1>)をバイナリ化して、<機能1>をバイナリファイル140Aに変換する(ステップS7参照)。
ダイジェスト情報生成部1112は、<機能1>をバイナリファイル140Aに変換した後、MD5(message digest algorithm 5)やSHA(Secure Hash Algorithm)等のハッシュ関数のアルゴリズムを利用してハッシュ値を算出する(ステップS8参照)。このハッシュ値をダイジェスト情報130とする。ハッシュ値(ビット列)は、例えば8da75b24 0f3c196e ・・・である。
上述したように、ハッシュアルゴリズムは、汎用サーバ110とアクセラレータボード120の両方で同じものを利用する必要がある。
図7は、ダイジェスト情報130の比較時の一致/不一致の判断ロジック例を説明する図である。
図7に示すように、汎用サーバ110のサーバ管理部111は、汎用サーバ110のダイジェスト情報生成部1112(図5参照)で生成されたダイジェスト情報130AをダイジェストDB1113に格納している。
また、図7に示すダイジェスト情報130Bは、アクセラレータボード120(図5参照)で生成されたダイジェスト情報である。
汎用サーバ110のサーバ管理部111は、汎用サーバ110とアクセラレータボード120の、それぞれで生成したダイジェスト情報(ハッシュ値)を元に一致/不一致を判断する。図7の例では、サーバ管理部111は、上記ダイジェスト情報130Aのハッシュ値と上記ダイジェスト情報130Bのハッシュ値とを比較し、同じビット列であれば一致と判断する。
以下、上述のように構成されたアクセラレータ制御システム100のアクセラレータ制御方法について説明する。
[フローチャート]
図8は、アクセラレータ制御システム100(図5参照)のアクセラレータ制御処理を示すフローチャートである。図8は、説明の便宜上、汎用サーバ110(図5参照)におけるアクセラレータ制御処理と、アクセラレータボード120(図5参照)におけるアクセラレータ制御処理とを1つのフローに纏めている。このため、汎用サーバ110における処理と、アクセラレータボード120における処理とは、非同期で行われる。汎用サーバ110からアクセラレータボード120への移行、また、アクセラレータボード120から汎用サーバ110への移行は、それぞれ両者間の通知とその許可を待って行われることになる(図9の制御シーケンス参照)。
ユーザ端末による汎用サーバ110(図5参照)のFPGA書き換え部112への書き換え命令を通して、本フローが開始される。
ステップS11において、汎用サーバ110のFPGA書き換え部112(図5参照)は、バイナリファイルDB140にバイナリファイル140Aの取得を要求する。
ステップS12において、汎用サーバ110のFPGA書き換え部112は、サーバ管理部111のダイジェスト情報生成部1112にFPGA書き換えを要求する。
ステップS13において、サーバ管理部111のダイジェスト情報生成部1112(図5参照)は、受け取ったバイナリファイル140Aを元にダイジェスト情報130を生成する(図6の「ダイジェスト情報生成」参照)。そして、ダイジェスト情報生成部1112は、バイナリファイル140Aの識別子と生成されたダイジェスト情報130をサーバ管理制御部1111に送る。
ステップS14において、サーバ管理部111のサーバ管理制御部1111(図5参照)は、ダイジェスト情報130の更新があるか否かを判別する。具体的には、サーバ管理制御部1111は、ダイジェストDB1113にバイナリファイル140Aの識別子(図示省略)に対する既存のダイジェスト情報130を要求し、上記ステップS13で送られたダイジェスト情報130と比較する。ダイジェスト情報130の更新がある場合は、ステップS15に進み、ダイジェスト情報130の更新がない場合は、ステップS16に進む。
ステップS15において、サーバ管理部111のサーバ管理制御部1111は、バイナリファイル140Aの識別子と新しいダイジェスト情報130をダイジェストDB1113に格納するダイジェスト情報130の書き換えを行う。
ステップS16において、サーバ管理部111のサーバ管理制御部1111は、FPGA書き換え部112(図5参照)によるFPGA書き換えを実行する。具体的には、サーバ管理制御部1111は、ダイジェスト情報生成部1112を経由してFPGA書き換え部112にFPGA書き換えを許可する。そして、サーバ管理部111のFPGA書き換え部112は、現在のアクセラレータボード120のFPGA機能部122(図5参照)からのバックアップを取得し、FPGA機能部122に対してFPGA書き換えを要求する(図8の符号i参照)。
ここで、ダイジェスト情報130の更新があれば、FPGA書き換えを許可するというのが基本制御である。この他にも過去の履歴からユーザ単位やファイル単位、タイミング等で書き換え許可を制御してもよい。
ステップS17において、アクセラレータボード120のFPGA機能部122は、FPGA書き換え実行後、汎用サーバ110のFPGA書き換え部112にFPGA書き換えが完了した旨、およびFPGA管理部121のダイジェスト情報生成部1112にバイナリファイル140Aと共にFPGA書き換えが完了した旨を通知する。
ステップS18において、アクセラレータボード120のFPGA管理部121のダイジェスト情報生成部1112は、受け取ったバイナリファイル140Aを元にダイジェスト情報130を生成する。そして、FPGA管理部121は、バイナリファイル140Aの識別子と生成されたダイジェスト情報130をFPGA管理制御部1211に送る。
ステップS19において、アクセラレータボード120のFPGA管理制御部1211は、FPGA通信部1115を用いて、バイナリファイル140Aの識別子とそのダイジェスト情報130をサーバ管理制御部1111に送る。具体的には、FPGA管理制御部1211は、FPGA機能に書き込まれている機能(バイナリファイル140Aの識別子)を記憶し、サーバ通信部1214にサーバ管理部111との通信を要求する。サーバ通信部1214は、暗号通信に必要な秘密鍵を鍵管理部1114に要求し、暗号化したバイナリファイル140Aの識別子とそのダイジェスト情報130をFPGA通信部1115に送る。FPGA通信部1115は、暗号化したバイナリファイル140Aの識別子とそのダイジェスト情報130を受け取り、公開鍵を鍵管理部1114に要求する。復号後、バイナリファイル140Aの識別子とそのダイジェスト情報130をサーバ管理制御部1111に送る。
図8の符号jに示すように、サーバ管理部111のサーバ管理制御部1111は、アクセラレータボード120からのダイジェスト情報130が揃ってから、下記処理を継続する。
ステップS20において、サーバ管理部111のサーバ管理制御部1111は、ダイジェスト情報130が一致するか否かを判別する。具体的には、サーバ管理制御部1111は、ダイジェストDB1113にバイナリファイル140Aの識別子に対する既存のダイジェスト情報130を要求し、上記ステップS15で書き換えたダイジェスト情報130と、上記ステップS19で受け取ったダイジェスト情報130とを比較する。
サーバ管理制御部1111は、ダイジェスト情報130が一致しない場合は、想定外の書き換えが起こったと判断し、FPGA機能部122のバックアップをもとに、元の内容にFPGAを書き換えるために上記ステップS12に戻る。ダイジェスト情報130が一致する場合は、ステップS21に進む。
ステップS21において、サーバ管理部111のサーバ管理制御部1111は、ダイジェスト情報130比較結果を、ダイジェスト情報生成部1112を通してFPGA書き換え部112に通知する。FPGA書き換え部112は、書き換え成功通知を受けた場合、FPGA機能部122のバックアップを削除して本フローの処理を終了する。
[制御シーケンス]
図9は、アクセラレータ制御システム100(図5参照)のアクセラレータ制御処理の制御シーケンス図である。図9の制御シーケンスは、図8のステップS14において、ダイジェスト情報130の更新がある場合(S14:Yes)、かつ、図8のステップS20において、ダイジェスト情報130が一致する場合(S20:Yes)の例である。
汎用サーバ110のFPGA書き換え部112(図5参照)は、バイナリファイルDB140にバイナリファイル140Aを要求する(ステップS101参照)。
バイナリファイルDB140は、FPGA書き換え部112にバイナリファイル140Aを送信する(ステップS102参照)。
汎用サーバ110のFPGA書き換え部112は、サーバ管理部111のダイジェスト情報生成部1112にFPGA書き換え要求(バイナリファイル140Aを用いたFPGA書き換え要求)を行う(ステップS103参照)。
サーバ管理部111のダイジェスト情報生成部1112は、サーバ管理制御部1111にダイジェスト情報130を送信する(ステップS104参照)。
サーバ管理制御部1111は、ダイジェストDB1113にダイジェスト情報読み出し要求を行う(ステップS105参照)。
ダイジェストDB1113は、サーバ管理制御部1111に読み出したダイジェスト情報130を送信する(ステップS106参照)。
サーバ管理制御部1111は、ダイジェストDB1113にダイジェスト情報格納要求を行う(ステップS107参照)。
ダイジェストDB1113は、サーバ管理制御部1111にダイジェスト情報格納通知を行う(ステップS108参照)。
サーバ管理制御部1111は、ダイジェストDB1113からのダイジェスト情報格納通知を受けて、ダイジェスト情報生成部1112にFPGA書き換え許可を発行する(ステップS109参照)。
サーバ管理部111のダイジェスト情報生成部1112は、FPGA書き換え許可の発行を受けて、汎用サーバ110のFPGA書き換え部112にFPGA書き換え許可を発行する(ステップS110参照)。
汎用サーバ110のFPGA書き換え部112は、アクセラレータボード120のFPGA機能部122(図5参照)にFPGA書き換え要求を行う(ステップS111参照)。
アクセラレータボード120のFPGA機能部122は、汎用サーバ110のFPGA書き換え部112にFPGA書き換え通知を行う(ステップS112参照)。
一方で、アクセラレータボード120のFPGA機能部122は、FPGA管理部121のダイジェスト情報生成部1212にFPGA書き換え通知(バイナリファイル140Aを用いたFPGA書き換え通知)を行う(ステップS113参照)。
FPGA管理部121のダイジェスト情報生成部1212は、FPGA管理制御部1211にダイジェスト情報130を送る(ステップS114参照)。
FPGA管理部121のFPGA管理制御部1211は、サーバ通信部1214にサーバ管理部111への通信要求を行う(ステップS115参照)。
サーバ通信部1214は、鍵管理部1213に鍵要求を行い(ステップS116参照)、鍵管理部1213は、サーバ通信部1214に秘密鍵を送る(ステップS117参照)。
サーバ通信部1214は、サーバ管理部111のFPGA通信部1115にサーバ管理部111への通信を行う(ステップS118参照)。
サーバ管理部111のFPGA通信部1115は、鍵管理部1114に鍵要求を行い(ステップS119参照)、鍵管理部1114は、FPGA通信部1115に公開鍵を送る(ステップS120参照)。
サーバ管理部111のFPGA通信部1115は、サーバ管理制御部1111に通信を通知する(ステップS121参照)。
サーバ管理制御部1111は、ダイジェストDB1113にダイジェスト情報読み出し要求を発行し(ステップS122参照)、ダイジェストDB1113は、サーバ管理制御部1111にダイジェスト情報130を送る(ステップS123参照)。
サーバ管理制御部1111は、ダイジェスト情報生成部1112にダイジェスト情報比較結果を送る(ステップS124参照)。
ダイジェスト情報生成部1112は、汎用サーバ110のFPGA書き換え部112に、受け取ったダイジェスト情報比較結果を送る(ステップS125参照)。
なお、上記ステップS113において、FPGA書き換え通知は、アクセラレータボード120のFPGA機能部122が能動的に行っているが、サーバ管理部111のダイジェスト情報生成部1112からのポーリングでもよい。
以上で、アクセラレータ制御処理の制御シーケンスを終了する。
[ハードウェア構成]
本実施形態に係るアクセラレータ制御システム100の汎用サーバ110は、例えば図10に示すような構成のコンピュータ900によって実現される。なお、アクセラレータ制御システム100のアクセラレータボード120についても同様に、例えば図10に示すような構成のコンピュータ900によって実現される。
以下、汎用サーバ110を例に挙げて説明する。
図10は、汎用サーバ110の機能を実現するコンピュータ900の一例を示すハードウェア構成図である。
コンピュータ900は、CPU910、RAM920、BIOS(Basic Input/Output System)等を格納するROM930、HDD940、通信インターフェイス(I/F:Interface)950、入出力インターフェイス(I/F)960、およびメディアインターフェイス(I/F)970を有する。
CPU910は、ROM930またはHDD940に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM930は、コンピュータ900の起動時にCPU910によって実行されるブートプログラムや、コンピュータ900のハードウェアに依存するプログラム等を格納する。
HDD940は、CPU910によって実行されるプログラム、および、かかるプログラムによって使用されるデータ等を格納する。HDD940は、例えばダイジェストDB1113、およびバイナリファイルDB140(図5参照)を格納するものであってもよい。通信インターフェイス950は、通信網80を介して他の機器からデータを受信してCPU910へ送り、CPU910が生成したデータを通信網80を介して他の機器へ送信する。
CPU910は、入出力インターフェイス960を介して、ディスプレイやプリンタ等の出力装置、および、キーボードやマウス等の入力装置を制御する。CPU910は、入出力インターフェイス960を介して、入力装置からデータを取得する。また、CPU910は、生成したデータを入出力インターフェイス960を介して出力装置へ出力する。
メディアインターフェイス970は、記録媒体980に格納されたプログラムまたはデータを読み取り、RAM920を介してCPU910に提供する。CPU910は、かかるプログラムを、メディアインターフェイス970を介して記録媒体980からRAM920上にロードし、ロードしたプログラムを実行する。記録媒体980は、例えばDVD(Digital Versatile Disc)、PD(Phasechangerewritable Disk)等の光学記録媒体、MO(Magneto Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ900が本実施形態に係る汎用サーバ110として機能する場合、コンピュータ900のCPU910は、RAM920上にロードされたプログラムを実行することにより、汎用サーバ110の各部の機能を実現する。また、HDD940には、汎用サーバ110の各部内のデータが格納される。コンピュータ900のCPU910は、これらのプログラムを記録媒体980から読み取って実行するが、他の例として、他の装置から通信網80を介してこれらのプログラムを取得してもよい。
また、アクセラレータボード120は、異なる汎用サーバ110に設置されてもよいし、同一の汎用サーバ110内にあってもよい。ここで、暗号化が役立つのは、図1に示すサーバ管理部111とFPGA管理部121とが異なる汎用サーバ上にある場合である。本実施形態では、アクセラレータボード120は、基本的には汎用サーバ110に内蔵されていることを想定しているが、アクセラレータボード120が、スタンドアロンで動作するものであってもよい。
[効果]
以上説明したように、汎用サーバ110のアプリケーションの特定処理を、アクセラレータボード120上のアクセラレータ機能部(FPGA機能部122)にオフロードするアクセラレータ制御システム100であって、汎用サーバ110は、アクセラレータ機能部のアクセラレータ機能を書き換えるアクセラレータ書き換え部(FPGA書き換え部112)と、アクセラレータ機能をバイナリ化して、当該アクセラレータ機能のダイジェスト情報130を生成するダイジェスト情報生成部1112と、アクセラレータ機能のアクセラレータ機能部への実装前に作成したダイジェスト情報130と、アクセラレータボード120から通知されたダイジェスト情報130とを比較し、アクセラレータ機能の書き換えの有無を判断するサーバ管理制御部1111と、を備え、アクセラレータボード120は、アクセラレータ機能部(FPGA機能部122)と、アクセラレータ機能部に書き込まれたアクセラレータ機能のダイジェスト情報130を生成するダイジェスト情報生成部1212と、生成したダイジェスト情報130を書き換え元の汎用サーバ110宛に通知するアクセラレータ管理制御部(FPGA管理制御部1211)と、を備える。
このようにすることにより、システム運用者の運用ミスによるアクセラレータ機能の書き換えや、悪意あるユーザからのアクセラレータ機能の書き換えを防ぎ、意図しない動作を未然に防ぐことができる。特に、仮想化により複数のユーザが利用する複数の機能が同一サーバ上に併存するなど、複数のユーザがアクセラレータを使用するケースが増えている。このような場合、アクセラレータ制御システム100は、アクセラレータボードに実装されている機能の適切な管理を実現することができるので、複数ユーザが混在するクラウド環境においてアクセラレータを有効に活用することができる。
アクセラレータ制御システム100の汎用サーバ110において、サーバ管理制御部1111は、アクセラレータ機能の実装前に作成したダイジェスト情報130とアクセラレータボード120から通知されたダイジェスト情報130とが一致しない場合にアクセラレータ機能の書き換えが発生していると判断し、アクセラレータ管理制御部(FPGA管理制御部1211)にアクセラレータ機能の再実装を要求する。
このようにすることにより、汎用サーバ110内のサーバ管理部111のサーバ管理制御部1111は、アクセラレータ機能の書き換えが発生していると判断した場合、アクセラレータ管理制御部(FPGA管理制御部1211)にアクセラレータ機能の再実装を要求することで、意図しない動作の開始を未然に防ぐことができる。
アクセラレータ制御システム100の汎用サーバ110において、サーバ管理部111のサーバ管理制御部1111は、アクセラレータ機能のアクセラレータ機能部(FPGA機能部122)への実装前に作成したダイジェスト情報130と、アクセラレータボード120から通知されたダイジェスト情報130とが一致しない場合にアクセラレータ機能が正常化するまでの間、FPGA管理制御部1211にアクセラレータ機能部の停止を指示してもよい。
このようにすることにより、汎用サーバ110内のサーバ管理部111のサーバ管理制御部1111は、アクセラレータ機能の書き換えが発生していると判断した場合、アクセラレータ機能が正常化するまでの間に、意図しない動作が実行されてしまうことを防ぐことができる。
アクセラレータ制御システム100のアクセラレータボード120において、通信に利用するFPGA管理制御部1211の秘密鍵を管理する秘密鍵管理部(鍵管理部1213)を備え、アクセラレータ管理制御部(FPGA管理制御部1211)は、生成したダイジェスト情報130をサーバ管理部111しか知り得ない秘密鍵で暗号化してから汎用サーバ110に通知し、アクセラレータ制御システム100の汎用サーバ110において、通信に利用するサーバ管理制御部1111の公開鍵を管理する公開鍵管理部(鍵管理部1114)を備え、公開鍵管理部は、アクセラレータボード120から暗号化されて通知されたダイジェスト情報130を公開鍵を用いて復号する。
このようにすることにより、悪意あるユーザが、ダイジェスト情報を偽ってアクセラレータ機能の書き換えが発生していないように見せかけてくる攻撃に対しても、悪意あるユーザによるアクセラレータ機能の書き換えを防ぐことができる。
[その他]
上記原理説明および実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述文書中や図面中に示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、IC(Integrated Circuit)カード、SD(Secure Digital)カード、光ディスク等の記録媒体に保持することができる。また、本明細書において、時系列的な処理を記述する処理ステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)をも含むものである。
50 アクセラレータ用ファイル
100 アクセラレータ制御システム
110 汎用サーバ
111 サーバ管理部
112 FPGA書き換え部(アクセラレータ書き換え部)
120 アクセラレータボード
121 FPGA管理部(アクセラレータ管理部)
122 FPGA機能部(アクセラレータ機能部)
130 ダイジェスト情報
130A アクセラレータ機能の実装前に作成したダイジェスト情報
130B アクセラレータボードから通知されたダイジェスト情報
140 バイナリファイルDB
140A バイナリファイル
1111 サーバ管理制御部
1112 ダイジェスト情報生成部(サーバ側ダイジェスト情報生成部)
1113 ダイジェストDB
1114 鍵管理部(公開鍵管理部)
1115 FPGA通信部
1211 FPGA管理制御部
1212 ダイジェスト情報生成部(アクセラレータ側ダイジェスト情報生成部)
1213 鍵管理部(秘密鍵管理部)
1214 サーバ通信部

Claims (6)

  1. 汎用サーバのアプリケーションの特定処理を、アクセラレータボード上のアクセラレータ機能部にオフロードするアクセラレータ制御システムであって、
    前記汎用サーバは、
    前記アクセラレータ機能部のアクセラレータ機能を書き換えるアクセラレータ書き換え部と、
    前記アクセラレータ機能をバイナリ化して、ダイジェスト情報生成のためのアルゴリズムに従って、当該アクセラレータ機能のダイジェスト情報を生成するサーバ側ダイジェスト情報生成部と、
    前記アクセラレータ機能の前記アクセラレータ機能部への実装前に作成した前記ダイジェスト情報と、前記アクセラレータボードから通知された前記ダイジェスト情報とを比較し、前記アクセラレータ機能の書き換えの有無を判断するサーバ管理制御部と、を備え、
    前記アクセラレータボードは、
    前記アクセラレータ機能部と、
    前記アクセラレータ機能部に書き込まれた前記アクセラレータ機能をバイナリ化して、前記ダイジェスト情報生成のためのアルゴリズムと同じアルゴリズムに従って、当該アクセラレータ機能のダイジェスト情報を生成するアクセラレータ側ダイジェスト情報生成部と、
    生成した前記ダイジェスト情報を書き換え元の前記汎用サーバ宛に通知するアクセラレータ管理制御部と、を備える
    ことを特徴とするアクセラレータ制御システム。
  2. 前記サーバ管理制御部は、
    アクセラレータ機能の実装前に作成したダイジェスト情報とアクセラレータボードから通知されたダイジェスト情報とが一致しない場合にアクセラレータ機能の書き換えが発生していると判断し、前記アクセラレータ管理制御部にアクセラレータ機能の再実装を要求する
    ことを特徴とする請求項1に記載のアクセラレータ制御システム。
  3. 前記サーバ管理制御部は、
    前記アクセラレータ機能の前記アクセラレータ機能部への実装前に作成したダイジェスト情報と、前記アクセラレータボードから通知されたダイジェスト情報とが一致しない場合にアクセラレータ機能が正常化するまでの間、前記アクセラレータ管理制御部にアクセラレータ機能部の停止を指示する
    ことを特徴とする請求項1に記載のアクセラレータ制御システム。
  4. 前記アクセラレータボードは、
    通信に利用する前記アクセラレータ管理制御部の秘密鍵を管理する秘密鍵管理部を備え、
    前記アクセラレータ管理制御部は、生成した前記ダイジェスト情報を前記秘密鍵で暗号化してから前記汎用サーバに通知し、
    前記汎用サーバは、
    通信に利用する前記サーバ管理制御部の公開鍵を管理する公開鍵管理部を備え、
    前記サーバ管理制御部は、前記アクセラレータボードから暗号化されて通知された前記ダイジェスト情報を前記公開鍵を用いて復号する
    ことを特徴とする請求項1に記載のアクセラレータ制御システム。
  5. 前記サーバ管理制御部は、
    前記ダイジェスト情報の更新がない場合は、前記サーバ側ダイジェスト情報生成部を経由して前記アクセラレータ書き換え部にアクセラレータ書き換えを許可し、
    前記アクセラレータ書き換え部は、現在の前記アクセラレータボードの前記アクセラレータ機能部からのバックアップを取得し、前記アクセラレータ機能部に対してアクセラレータ書き換えを要求する
    ことを特徴とする請求項1に記載のアクセラレータ制御システム。
  6. 汎用サーバのアプリケーションの特定処理を、アクセラレータボード上のアクセラレータにオフロードするアクセラレータ制御方法であって、
    前記汎用サーバは、
    前記アクセラレータのアクセラレータ機能を書き換える工程と、
    前記アクセラレータ機能をバイナリ化して、ダイジェスト情報生成のためのアルゴリズムに従って、当該アクセラレータ機能のダイジェスト情報を生成する工程と、
    前記アクセラレータ機能の前記アクセラレータへの実装前に作成した前記ダイジェスト情報と、前記アクセラレータボードから通知された前記ダイジェスト情報とを比較し、前記アクセラレータ機能の書き換えの有無を判断する工程と、を有し、
    前記アクセラレータボードは、
    前記アクセラレータに書き込まれた前記アクセラレータ機能をバイナリ化して、前記ダイジェスト情報生成のためのアルゴリズムと同じアルゴリズムに従って、当該アクセラレータ機能のダイジェスト情報を生成する工程と、
    生成した前記ダイジェスト情報を書き換え元の前記汎用サーバ宛に通知する工程と、を有する
    ことを特徴とするアクセラレータ制御方法。
JP2021540602A 2019-08-22 2019-08-22 アクセラレータ制御システムおよびアクセラレータ制御方法 Active JP7236011B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/032770 WO2021033306A1 (ja) 2019-08-22 2019-08-22 アクセラレータ制御システムおよびアクセラレータ制御方法

Publications (2)

Publication Number Publication Date
JPWO2021033306A1 JPWO2021033306A1 (ja) 2021-02-25
JP7236011B2 true JP7236011B2 (ja) 2023-03-09

Family

ID=74659697

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021540602A Active JP7236011B2 (ja) 2019-08-22 2019-08-22 アクセラレータ制御システムおよびアクセラレータ制御方法

Country Status (3)

Country Link
US (1) US11822966B2 (ja)
JP (1) JP7236011B2 (ja)
WO (1) WO2021033306A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306343A (ja) 2000-04-21 2001-11-02 Fujitsu I-Network Systems Ltd Fpgaを有する装置のためのシステム
JP2005251017A (ja) 2004-03-05 2005-09-15 Sharp Corp 半導体装置および電子装置
JP2011015093A (ja) 2009-06-30 2011-01-20 Canon Inc 画像形成装置、その制御方法及びプログラム
US20140043059A1 (en) 2012-08-10 2014-02-13 Microsemi Soc Corp. Secure digest for pld configuration data

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6157719A (en) * 1995-04-03 2000-12-05 Scientific-Atlanta, Inc. Conditional access system
US7469338B2 (en) * 2002-07-29 2008-12-23 Broadcom Corporation System and method for cryptographic control of system configurations
US7594002B1 (en) * 2003-02-14 2009-09-22 Istor Networks, Inc. Hardware-accelerated high availability integrated networked storage system
US10929209B2 (en) * 2018-12-31 2021-02-23 Texas Instruments Incorporated Safe, secure, virtualized, domain specific hardware accelerator

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001306343A (ja) 2000-04-21 2001-11-02 Fujitsu I-Network Systems Ltd Fpgaを有する装置のためのシステム
JP2005251017A (ja) 2004-03-05 2005-09-15 Sharp Corp 半導体装置および電子装置
JP2011015093A (ja) 2009-06-30 2011-01-20 Canon Inc 画像形成装置、その制御方法及びプログラム
US20140043059A1 (en) 2012-08-10 2014-02-13 Microsemi Soc Corp. Secure digest for pld configuration data

Also Published As

Publication number Publication date
JPWO2021033306A1 (ja) 2021-02-25
US20220283868A1 (en) 2022-09-08
WO2021033306A1 (ja) 2021-02-25
US11822966B2 (en) 2023-11-21

Similar Documents

Publication Publication Date Title
US9690954B2 (en) Securing encrypted virtual hard disks
US9306737B2 (en) Systems and methods for secure handling of data
US9311509B2 (en) Creation and delivery of encrypted virtual disks
EP2710500B1 (en) Providing multiple layers of security to file storage by an external storage provider
US7444670B2 (en) Method and apparatus for migrating a virtual TPM instance and preserving uniqueness and completeness of the instance
US11489660B2 (en) Re-encrypting data on a hash chain
US10181954B2 (en) Cloud-based code signing service—hybrid model to avoid large file uploads
US20140040997A1 (en) Self-deleting virtual machines
US20140115029A1 (en) Selective data transfer between a server and client
US11132449B2 (en) Incorporating at-rest data encryption into a cloud-based storage architecture
Kumbhare et al. Cryptonite: A secure and performant data repository on public clouds
US8656159B1 (en) Versioning of modifiable encrypted documents
Che Fauzi et al. On cloud computing security issues
JP7236011B2 (ja) アクセラレータ制御システムおよびアクセラレータ制御方法
US11558190B2 (en) Using keys for selectively preventing execution of commands on a device
US20180365191A1 (en) Method for migrating a workload, computer arrangement and non-volatile storage medium
Reddy et al. Security Challenges in Cloud Storage
VISHWESHWARAN et al. SAAS APPLICATION–RUNNING LARGE SCALE APPLICATION IN LIGHTWEIGHT CLOUD WITH STRONG PRIVACY PROTECTION
Nivetha et al. Integrated Cloud Mechanism for Multi Architecture De-duplication

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221202

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: 20230124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230206

R150 Certificate of patent or registration of utility model

Ref document number: 7236011

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150