JP6703064B2 - バスを介して周辺デバイスを安全にアクセスするための方法 - Google Patents

バスを介して周辺デバイスを安全にアクセスするための方法 Download PDF

Info

Publication number
JP6703064B2
JP6703064B2 JP2018179656A JP2018179656A JP6703064B2 JP 6703064 B2 JP6703064 B2 JP 6703064B2 JP 2018179656 A JP2018179656 A JP 2018179656A JP 2018179656 A JP2018179656 A JP 2018179656A JP 6703064 B2 JP6703064 B2 JP 6703064B2
Authority
JP
Japan
Prior art keywords
bus
processor
line
transaction
host
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
JP2018179656A
Other languages
English (en)
Other versions
JP2019023896A (ja
Inventor
ハーシュマン ジヴ
ハーシュマン ジヴ
タナミ オレン
タナミ オレン
モラヴ ダン
モラヴ ダン
Original Assignee
新唐科技股▲ふん▼有限公司
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 新唐科技股▲ふん▼有限公司 filed Critical 新唐科技股▲ふん▼有限公司
Publication of JP2019023896A publication Critical patent/JP2019023896A/ja
Application granted granted Critical
Publication of JP6703064B2 publication Critical patent/JP6703064B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/82Protecting input, output or interconnection devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Description

関連出願の相互参照
本出願は、2015年6月8日に出願された米国仮特許出願第62/172,298号の利益を主張し、上記出願の開示全体を参照により本明細書に組み込まれる。
本発明は一種の電子システムセキュリティーに関わり、特に周辺デバイスへの安全なアクセスを確保するの方法及びシステムに関する。
電子システムは、ホストデバイスと周辺デバイスの間に通信するために、様々のバスインターフェースを使用する。バスインターフェースの例としては、IC(Inter−Integrated−Circuit)バス及びSPI(Serial Peripheral Interface)バスが含まれる。ICバスのスペックは、例えば「ICバス仕様およびユーザマニュアル(IC bus specification and user manual)」、UM10204、NXP Semiconductors、バージョン6、2014年4月4日という文献に記載され、その文献を参照により本明細書に組み込まれる。
本発明で説明される実施例は、インターフェースおよびプロセッサーを含む装置を提供する。そのインターフェースは、バスを介して通信するように構成され、プロセッサーは、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、バスの少なくとも1つのラインに強制的に1つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させるように設定される。
1つの実施例では、プロセッサーは、バスのデータラインにダミー値を強制的に書き込むことによって、データラインを介して周辺デバイスに送信または周辺デバイスから受信されたそれぞれのデータ値の転送を中断させるように設定される。追加的または代替的に、プロセッサーは、バスのクロックラインにダミー値を強制的に書き込むことによって、トランザクションにおいて使用されるクロック信号を中断させるように設定される。さらに追加的または代替的に、プロセッサーは、バスのチップ選択ライン上にダミー値を強制的に書き込むことによって、バスマスタデバイスによる周辺デバイスの選択を中断するように設定される。
一部の実施例では、バスは、デフォルト論理値を有するオープンドレインまたはオープンコレクタを備え、且つプロセッサーは、バスの少なくとも1つのラインにデフォルト論理値と相反するダミー値を強制的に書き込むように設定される。
一部の実施例では、プロセッサーは、ダミー値を強制的に書き込むことによって、バスマスタデバイスまたは前記周辺デバイスの少なくとも1つのラインに書き込まれた対応値を上書きするように設定される。1つの例示的な実施例では、プロセッサーは、バスマスタデバイスまたは周辺デバイスの駆動強度より強い駆動強度で、少なくとも1つのラインを駆動することによって、バスマスタデバイスまたは周辺デバイスによって書き込まれた前記対応値を上書きするように設定される。もう1つの実施例では、装置は、少なくとも1つの抵抗器を有し、その抵抗器は、少なくとも1つのラインに挿入され、バスマスタデバイスまたは周辺デバイスによって書き込まれた値を、ダミー値に応じて減衰させるように設定される。
一部の実施例では、プロセッサーは、バスマスタデバイスと周辺デバイスの間の通信に使用されるバスの既存のラインのみにダミー値を強制的に書き込むように設定される。一部の実施例では、プロセッサーは、バスを監視することによって、中断させるべきトランザクションを検出するように設定される。1つの実施例では、プロセッサーは、バスの外部にある補助インターフェースを介してバスマスタデバイスと通信することによって、中断させるべきトランザクションを検出するように設定される。
開示された1つの実施例では、プロセッサーは、装置がリセットされるまで、無制限にダミー値を強制的に書き込むように設定される。もう1つの実施例では、プロセッサーは、トランザクションを検出した後に、一定期間内にダミー値を強制的に書き込むように設定される。また1つの実施例では、プロセッサーは、トランザクションが中断された後に、前記バスの正常動作を再開するように設定される。
本発明で説明される実施例は、さらに周辺デバイスと安全装置を備えるシステムを提供する。その周辺デバイスは、バスを介して1つまたは複数のバスマスタデバイスにアクセス可能であり、安全装置は、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、バスの少なくとも1つのラインに強制的に1つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させるように設定される。
実施例によって、本発明はさらに1つの方法を提供する。その方法は、バスに接続された安全装置を使用し、バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、トランザクションを中断させることを決定することと、バスの少なくとも1つのラインに強制的に1つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させることを含む。
本発明は、以下の実施例に対する詳細な説明を、図面と合わせて、より完全に理解されるであろう。
図1は、本発明の実施例による、複数のデバイスがICバスを介して通信する安全なシステムを概略的に示すブロック図である。 図2は、本発明の実施例による、ICバスを介して周辺デバイスへのアクセスを保護する方法を概略的に示すフローチャートである。 図3は、本発明の代替の実施例による、複数のデバイスがSPIバスを介して通信する安全なシステムを概略的に示す的ブロック図である。 図4は、本発明の代替の実施例による、複数のデバイスがSPIバスを介して通信する安全なシステムを概略的に示す的ブロック図である。
本発明で説明される実施例は、バスインターフェースを介して周辺デバイスへのアクセスを確保するための改良された方法および装置を提供する。周辺デバイスは、例えば、暗号エンジン、機密データを格納するメモリデバイス、またはバスを介してアクセス可能な他の適切なデバイスを含むことができる。
開示された一部の実施例では、安全装置は、バス上のトランザクションを監視し、ホストデバイスまたはバスマスタデバイスが無許可に周辺デバイスにアクセスを試みるトランザクションを検出する。トランザクションは、任意の適切な基準または方針を使用して、許可または無許可なものとして分類することができる。
無許可なトランザクションを検出する時、安全装置は、トランザクションと並行して、意図的にバスの1つ以上のラインまたは信号の値を、あるダミー値に強制的に書き込むことによって、トランザクションを中断させる。ダミー値を強制的に書き込むのことは、例えば、クロック信号、データ信号及び/またはチップセレクト(Chip−Select)信号で実行することができる。
バス上にダミー値を強制的に書き込むことによるトランザクションの中断は、ICなどのオープンドレインまたはオープンコレクタバス、SPIなどのプッシュプルバスなどに適している。トランザクションに並行してバス上にダミー値を強制的に書き込むことは、周辺デバイスへの及び/または周辺デバイスからの通信を中断し、及び/またはそれぞれのクロック信号を中断する。
ここでは、ICおよびSPIバス上の無許可なトランザクションを中断するためのいくつかの技術について説明する。そして中断後の正常動作を正常に再開するための技術についても説明する。一部の実施例では、安全装置は、バス上でトランザクションを検出することなく、またはバスを監視なしにトランザクションを中断することができる。例えば、安全装置は、このホストが許可されるまで、またはこのホストが許可されない限り、特定のホストのチップセレクトライン上にダミー値を強制的に書き込むことができる。
開示された技術は、事務レベル(transaction−by−transaction level)で、リアルタイムで周辺デバイスに対する安全な選択的なアクセスを提供する。本明細書で説明される技術の大部分では、トランザクションの識別および中断の両方が、バスの既存の信号を用いてのみ実行される。したがって、開示された技術は、追加のピンまたは相互接続を必要とせず、それによってシステム全体のサイズ及びコストを低減する。
[ICバスで周辺デバイスへのアクセスを保護する]
図1は、本発明の実施例の安全なシステム20を概略的に示すブロック図である。本発明の実施例では、システム20は、ICバス32に接続されたホストデバイス24及び周辺デバイス28を備える。ホストデバイス24及び周辺デバイス28は、簡潔するためにホスト及び周辺(peripheral)とも記載される。ホスト24はまた、バスマスタデバイスと呼ばれることもある。
安全装置36は、ICバス上のトランザクションを監視し、ホスト24またはバスマスタ機能を有する他のデバイスが無許可に周辺デバイスにアクセスを試みるトランザクションを防止することによって、周辺デバイス28へのアクセスを保護する。安全装置36は、制御装置またはTPM(Trusted Platform Module)と記載されることもある。本発明の実施例では、安全装置36は、インターフェース40と、プロセッサー44と、メモリー48とを備え、インターフェース40は、ICバス32に接続する。プロセッサー44は、本発明の技術を実行するように設定される。メモリー48は、1つまたは複数のプロセッサー44が実行する安全方針を格納するように構成される。
プロセッサー44は、所定または設定された任意の方針(policy)に従って、トランザクションを無許可なものに分類することができる。無許可なトランザクションは、周辺デバイス28へのデータの書き込み、周辺デバイス28からのデータの読み取り、周辺デバイス28を設定または周辺デバイス28に命令を送信し、または他の適切な方法による周辺装置へのアクセスを試みることができる。安全装置36が実行する方針は、ポジティブ方針(例えば、ホワイトリスト)、ネガティブ方針(例えば、ブラックリスト)、デバイスアドレスまたはレジスタのオフセット(register offset)に依存する方針、または他のタイプの方針を含むことができる。
例えば、安全装置36は、ホストの周辺デバイス28へのアクセスが許可される前に、ホスト24のアイデンティティ(identity)に対する認証を要求することができる。無許可なホストによって実行されたトランザクションは、無許可のトランザクションに判断される。その認証は、例えば、ホストと安全装置の間の応答式プロセス(challenge−response process)を使用して実行することができる。追加的または代替的に、ホストは、他の適切な方法で自分のアイデンティティを証明し、または安全なブートプロセスを完成することが要求されることがある。
さらに追加的または代替的に、幾つかのタイプのトランザクション(例えば、読み取りトランザクション)は許可されたものとして判断され、他のタイプのトランザクション(例えば、書き込みトランザクション)は無許可なものとして判断されることができる。さらにもう1つの実施例では、周辺デバイスの選択されたアドレスへのアクセスは許可されたものとして判断され、他のアドレスへのアクセスは無許可なものとして判断されることができる。別の実施例として、バス上のビットシーケンス(bit sequences)は無許可なトランザクションとして判断されることができる。
一般的に、プロセッサー44は、許可されたトランザクションと無許可なトランザクションとを任意の適切な方法で判断することができる。メモリー48は、トランザクションが許可されているかを判断するための1つまたは複数の方針が格納されている。
Cバス32は、シリアルデータ信号を伝達するシリアルデータ(SDA)ラインと、シリアルクロック信号を伝達するシリアルクロック(SCL)ラインとを備える。用語“ライン”及び“信号”は、本明細書では交換可能に使用される。SDAライン及びSCLラインを監視することによって、プロセッサー44はICバス上のすべてのトランザクションを監視することができ、且つ無許可なトランザクションを検出することができる。
無許可なトランザクションを検出した後、プロセッサー44は、ICバス32上のSDAライン及び/またはSCLラインに1つまたは複数のダミー値を強制的に書き込むことによってそのトランザクションを中断する。この機構は、ICバスのオープンドレイン/オープンコレクタ構造によって実現されることができる。通常的に、SDAライン及びSCLラインの両方は、プルアップ抵抗器を使用して、デフォルトで論理的な“1”の状態にプルアップされる。どのデバイスも、他のデバイスによって同時に書き込まれた値にかかわらず、いつでも“0”値を書き込むことによって、SDAラインまたはSCLラインの論理値を強制的に“0”に変わることができる。
よって、一部の実施例では、無許可なトランザクションを検出すると、安全装置36中のプロセッサー44は、インターフェース40を介して、ICバス32のSDAラインまたはSCLライン上に論理値“0”(デフォルト論理値“1”と相反する値)を強制的に書き込む。本明細書では、“0”値はダミー値と見なされる。SDAラインに強制的に書き込まれた“0”値は、ホスト24から周辺デバイス28への値、またはホスト24が周辺デバイス28から読み出された値、若しくはデフォルト論理値“1”などのすべてのデータ値を上書きする。SCLラインに強制的に書き込まれた“0”値は、クロック信号を停止する。上述のどちらの場合も、トランザクションは中断される。
一部の実施例では、プロセッサー44は、例えば装置のパワーアップリセットが実行されるまで、無制限に“0”値を強制的に書き込みを続ける。他の実施例では、プロセッサー44、中断から正常な回復を可能にする、即ち、ホスト24及び周辺デバイス28が中断されたトランザクションから回復して正常動作を再開することを可能にする。一部のホスト及び/または周辺デバイス28は、クロック停止から回復できない。よって、シンプルなホストや周辺デバイス28でも正常な回復が必要な場合は、SCLラインではなくSDAラインにダミー値を強制的に書き込むの方が良い。
1つの実施例では、トランザクションが中断された後に通常の動作を再開するため、プロセッサー44は、バス上でIC停止(IC STOP)またはIC再起動(IC RESTART)状態を生成する。本明細書では、IC停止またはIC再起動状態は、バスがトランザクション開始可能であることを対象デバイスに示すバス信号値の任意のシーケンスを含むことができる。
プロセッサー44、中断されたトランザクションからの正常に回復を可能にするために様々な技術を使用することができる。1つの実施例では、プロセッサー44は、一定時間内に強制的に“0”値を書き込み続けることは、無許可なトランザクションを中断するのに充分であると見なされる。任意の長さの予定時間も使用されることができる。例えば、SMバス仕様ではタイムアウトが25msと定義される。したがって、SMバスとICとの応用では、タイムアウトをトリガするために、定義済みの持続時間を少なくとも25msに設定するのが理にかなっている。
別の実施例では、プロセッサー44は、SCLラインの論理値がハイ(即ち、トグルしていない(not toggling))に検出されるまで、一定時間内にSDAライン上に“0”値を強制的に書き込みを続ける。この状態は、ホストがトランザクションを終了または中止したことを示すことができる。プロセッサー44は、SDAラインを解放し、場合によってはIC停止条件を生成することができる。
周辺デバイス28から読み取ったトランザクションを中断させるのに有用なもう1つ実施例では、安全装置36を周辺デバイス28と同様なアドレスを有するICスレーブとして構成されること。安全装置36中のプロセッサー44は、“0”データを使用して、無許可の読み取り要求に応答する。周辺デバイス28は、プロセッサー44と平行的にこれらの読み取り要求に応答するが、そのデータ値は、安全装置36が送信された“0”値によって上書きされる。このプロセスは、例えば停止条件によってホストがトランザクションを中断するまで続く。注意すべきは、IC仕様に従って、ICスレーブはデータ送信する時にACK/NEGACKビットを駆動しない。
読み取りトランザクションと書き込むトランザクションの両方を中断するのに有用な他の実施例では、プロセッサー44がSDAライン上に強制的に“0”値を書き込むことである。次に、ホスト24がこれを中断として識別していない場合に、ことトランザクションは、周辺デバイス28から送信されたデータではなく、バス上の“0”値を介して通常に停止する。ホスト24がこの中断を検出し、(例えば、ICマルチマスタアービトレーション(multi−master arbitration)に対応する)且つこのトランザクションを中止する場合、プロセッサー44は、一般的に、SCLライン上で追加のクロックサイクルを生成することによって、ホスト24によって中断されたトランザクションを引き続くことができる。プロセッサー44は、転送されている現在のバイトを補完し、停止状態を発行することによってトランザクションを中止することができる。
上述中断及び回復の技術は、単純に例として示されている。代替の実施例では、安全装置36のプロセッサー44は、他の任意の適切な技術を介して、トランザクションを中断する及び/または中断から回復することもできる。
上述の実施例では、無許可なトランザクションを検出、中断、及び中断からの回復の全ては、バスの既存のラインを介して実現される。代替の実施例では、安全装置36及びホスト24は、バス32の外部にある補助インターフェースによって接続する。例えば、安全装置36及びホスト24が同じICに統合され、ICのSDAピンとSCLピンを共有する場合に実現可能である。
これらの実施例では、安全装置36及びホスト24は、補助インターフェースを介して他のホストデバイスが周辺デバイス28にアクセスしないことを検証する。例示的な実施例では、ホスト24が周辺デバイス28にアクセスする時、ホスト24は補助インターフェースを介して安全装置36に通知する。その通知に応じて、プロセッサー44は、バスにダミー値“0”を書き込まない、且つトランザクションを実行させる。周辺デバイス28にアクセスするが、補助インターフェース上で報告されていないトランザクションを検出する時、プロセッサー44は、そのトランザクションが無許可なホストから送信されたものと見なし、強制的に“0”値を書き込むことによってそのトランザクションを中止する。
図2は、本発明の実施例による、ICバスを介して周辺デバイスへのアクセスを保護する方法を概略的に示すフローチャートである。この方法は、監視ステップ50において、安全装置36のプロセッサー44がインターフェース40を使用して、ICバス32上のトランザクションを監視することから始まる。
トランザクション検出ステップ54において、プロセッサー44は、ホスト24が周辺デバイス28にアクセスしようとするトランザクションを識別する。チェックステップ58において、プロセッサー44は、トランザクションが許可されたのかをチェックする。例えば、プロセッサー44は、このトランザクションがメモリー48に格納された安全方針に違反しているかをチェックすることができる。
このトランザクションが許可されていれば、プロセッサー44は、許可ステップ62でトランザクションを正常に進める、そうでなければ、トランザクションが無許可であると判断された場合、プロセッサー44は、ステップ66でダミー値“0”をICバスのSCL及び/またはSDAラインに強制的に書き込むことによってこのトランザクションを中断する。
[SPIバス上で周辺デバイスへのアクセスを保護する]
図3は、本発明の代替の実施例による、安全なシステム70を概略的に示す的ブロック図である。図3に示されるように、システム70は、すべてSPIバス82に接続するホストデバイス74と、周辺デバイス78と安全装置86とを含む。
ホスト74が無許可に周辺デバイス78にアクセスしようとする時、安全装置86はそのトランザクションを識別して中断する。本発明の実施例では、安全装置86は、SPIバス82に接続するインターフェース90と、開示された技術を実行するように構成されたプロセッサー94と、1つまたは複数のプロセッサー94によって実行される安全方針を格納するように構成されたメモリー98とを含む。
許可されたトランザクションと無許可なトランザクションとを区別する安全方針、及び安全装置86のプロセッサー94が無許可なトランザクションを識別する方法は、上述したシステム20と本質的に同様である。以下で説明される技術と上述で説明された技術との区別は、安全装置86が無許可なトランザクションを中断するために、バス82上にダミー値を強制的に書き込むことである。
SPIバス82は、クロック(CLK)ラインと、MOSI(Master−Out Slave−In)及びMISO(Master−In Slave−Out)と呼ばれる2本のデータラインを含む。CLK、MISO及びMOSIラインは、すべてのデバイス(本実施例中ではデバイス74、78及び86)に共通である。また、各スレーブデバイスは、専用のチップセレクトラインを使用して選択可能である。本実施例では、ホスト74は、CS2#に示されるCSラインを使用して周辺デバイス78を選択し、且つCS1#に示されるCSラインを使用して安全装置86を選択する。
マスタであるホスト74は、すべてのCSラインに接続する。一方、周辺デバイス78はスレーブであるため、各周辺デバイス78は専用のCSラインのみに接続される。一般的には、ホスト74は、それぞれのCSラインを使用して、所要の周辺デバイス78を選択することによってトランザクションを開始し、次にCLK、MOSI及びMISOラインを使用してデバイスと通信する。MOSIラインは、ホスト74から周辺デバイス78への送信に使用され、MISOラインは、周辺デバイス78からホスト74への送信に使用される。
安全装置86と通常のSPIスレーブと異なり、スレーブとして定義されたことにもかかわらず、すべてのCSラインを駆動することができる。図3に示すように、安全装置86のインターフェース90は、ホストデバイス74と並列的にCS2#ラインを駆動するように構成される。システム70がそれぞれのCSラインを有する周辺デバイス78を含む場合、安全装置86は、ホスト74と並列的にいずれかのCSラインを駆動するように構成される。
一部の実施例では、システム70は、ホスト74及び安全装置86が相反する論理値でCSラインを起動する時、安全装置86によって駆動された論理値がホスト74によって駆動された論理値を上書きするように設定される。換言すれば、ホスト74及び安全装置86が相反する論理値出CSラインを駆動する時、周辺デバイス78は安全装置86によって駆動される論理値を受信し動作する。
CSライン(の信号)を上書きすることは、バス上のトランザクションを中断することによって、ホスト74と周辺デバイス78の間の無許可なトランザクションを中断するもう1つの例である。上述の上書き機構は、様々な方法で実行することができる。以下の説明は、周辺デバイス78を選択する時使用されるCS2#ラインに関するが、複数の周辺デバイス78及びそれぞれのCSラインを使用する場合、同じ機構も適用する。
1つの実施例では、安全装置86によってインターフェース90内のCS2#ラインを駆動するラインドライバは、ホスト74によってCS2#ラインを駆動するラインドライバより強い。代替的な実施例では、直列抵抗器100は、ホスト74の出力でCS2#ラインに挿入されてもよい。抵抗器100は、安全装置86のCS2#ラインドライバの出力に対して、ホスト74のCS2#ラインドライバの出力を減衰させる。さらに代替的には、安全装置86は、任意の他の適切な方法でCS2#ラインを駆動するホスト74(の信号)を上書きするように構成することができる。
安全装置86のプロセッサー94は、SPIバス82のCS#ライン、CLK、MISO及び/またはMOSIラインを監視することによって、任意の適切な方法で無許可なトランザクションを識別することができる。一部の実施例では、ホスト74が無許可である周辺デバイス78にアクセスのトランザクションを識別する時、安全装置86のプロセッサー94は、周辺デバイス78のCSラインを無効にすることによってトランザクションを中断する。安全装置86は、ホスト74がCS2#ラインにの駆動を上書きするように構成されるので、周辺デバイス78は選択解除され、トランザクションは中断される。一方、トランザクションが許可されることを確定すると、プロセッサー94は自分のCS2#ドライバを停止し、それによってホスト74が中断することなく周辺デバイス78にアクセス可能になる。
図3は、本発明の代替の実施例による、安全なシステム110を概略的に示す的ブロック図である。システム110はまた、図3のシステム70と同様に、SPIバス82に基づいている。しかしながら、システム110では、CSライン(の信号)を上書きすることを代わりに、安全装置86は、CLKライン、MISOライン及び/またはMOSIライン上にダミー値を強制的に書き込むことによって、無許可なトランザクションを中断する。
本実施例では、システム110は、安全装置86がCLKライン、MISOラインM及び/またはMOSIラインを駆動する時、ホスト74(の信号)を上書きするように構成される。図面に示されるように、この目的を達成するため、直列抵抗器100をCLKライン、MISOライン及びMOSIラインに挿入される。本実施例でのCS2#ライン(の信号)は上書きされてないため、CS2#ラインに直列抵抗器を挿入しない。
代替の実施例では、安全装置86内のCLKライン、MISOライン及び/またはMOSIラインのラインドライバをホスト74内の対応するラインドライバより強くすることによって、その上書き機構を実行することができる。
他の実施例では、同時にCSライン(図3に参照)及びCLKライン、MISOライン及び/またはMOSIライン(図4に参照)(の信号)を上書きする混合方案も実現可能である。
図1、3及び4に示されたシステム20、70及び110の構成は、安全装置36、86及びバス32、82など様々な構成要素で、概念的明瞭性のために純粋に示された構成例である。代替の実施形態では、任意の他の適切な構成を使用することができる。
例えば、図面は明確にするために、単一の周辺デバイスと単一のホストデバイスのみを示している。一部の実施例では、システムは、2つ以上の周辺デバイス及び/または2つ以上のホストデバイスを備えることができる。本明細書で説明する実施例は、例としてのICおよびSPIバスを参照する。代替の実施例では、開示された技術は、必要に応じて他の任意の適切なタイプのバスで実行することができる。
システム20、70及び110の異なる要素は、ASIC(Application−Specific Integrated Circuit)またはFPGA(Field−Programmable Gate Array)などの任意の適切なハードウェアを使用して実行することができる。一部の実施例では、安全装置36及び86の幾つかの構成要素、例えば、プロセッサー44またはプロセッサー94は、ソフトウェアを使用して、またはハードウェア要素とソフトウェア要素の組み合わせを使用して実行することができる。メモリー48及び98は、RAM(Random Access Memory)またはフラッシュメモリー(Flash memory)などの任意の適切なタイプのメモリデバイスを使用して実行することができる。
一部の実施例では、プロセッサー44及び/またはプロセッサー94は、本明細書で説明する機能を実行するようにソフトウェアでプログラムされた汎用プログラマブルプロセッサーを備える。ソフトウェアは、例えば、ネットワークを介して電子形式でプロセッサーにダウンロードすることができ、あるいは、磁気的、光学的、または電子的メモリーなどの非一時的な有形の媒体に提供及び/または格納することができる。
上述の実施例では、安全装置はまずバスを監視することによって無許可なトランザクションを検出し、その後トランザクションを中断する。代替的な実施例では、安全装置は、バス上で最初にそのトランザクションを検出することなく、またはバスを全く監視することなく、トランザクションを中断することができる。例えば、安全装置はこのホストが許可されるまで、またはそのホストが許可されない限り、特定のホストのチップセレクトラインを無効にすることができる。この許可は、必ずしも同じバスを使用するではなく、任意の適切な方法で実行することができる。
非限定的な例として、本明細書に記載の方法及びシステムは、安全メモリーアプリケーション、IoT(Internet−of−Things)アプリケーション、組み込みアプリケーション(embedded application)または自動車アプリケーション(automotive application)などの様々なアプリケーションで使用することができる。
よって、理解されるべきことは、上述実施例として引用されたものであり、本発明は、上に特に示され説明されたものに限定されないことである。むしろ、本発明の範囲は、上述した様々な特徴の組み合わせ及び部分的な組み合わせ、ならびに前述の説明を読むことによって当業者に想到し得る変形および修正の両方を含む。本特許出願において参照により援用される文書は、本明細書において明示的または暗示的になされた定義と矛盾するとき、これらの組み込まれた文書で定義される用語を除いて、本明細書の定義を参考にする必要がある。
20、70、110:システム
24、74:ホスト
28、78:周辺デバイス
32:ICバス
36、86:安全装置
40、90:インターフェース
44、94:プロセッサー
48、98:メモリー
50:監視ステップ
54:検出ステップ
58:検査ステップ
62:許可ステップ
66:中断ステップ
82:SPIバス
100:直列抵抗器
CS1#、CS2#:チップセレクトライン
CLK:クロックライン
MOSI:マスタアウトスレーブインライン
MISO:マスタスインレーブアウトライン


Claims (7)

  1. インターフェースを介して、プロセッサーを備える安全装置をバスに接続するステップと、
    バスマスタデバイスが無許可に周辺デバイスにアクセスを試みる時、前記プロセッサーを介して前記バスの少なくとも1つのラインに強制的に1つまたは複数のダミー値を並行的に書き込むことによって、少なくとも一部のトランザクションを中断させるステップと、
    を備えることを特徴とする、バスを介して周辺デバイスを安全にアクセスするための方法。
  2. 前記バスは、デフォルト論理値を有するオープンドレインまたはオープンコレクタを備え、及び前記プロセッサーを介して前記バスの少なくとも1つのラインにデフォルト論理値に相反するダミー値を強制的に書き込むステップを備えることを特徴とする、請求項1に記載の方法。
  3. ダミー値を強制的に書き込むステップは、前記プロセッサーを介して前記バスマスタデバイスまたは前記周辺デバイスによって少なくとも1つのラインに書き込まれた対応値を上書きするステップを備えることを特徴とする、請求項1に記載の方法。
  4. ダミー値を強制的に書き込むステップは、前記バスマスタデバイスと前記周辺デバイスの間の通信に使用される前記バスの既存のラインのみに実行されることを特徴とする、請求項1に記載の方法。
  5. 前記プロセッサーを介して、前記バスを監視することによって、中断させるべきトランザクションを検出するステップを備えることを特徴とする、請求項1に記載の方法。
  6. 前記プロセッサーを介して、前記バスの外部にある補助インターフェースを介して前記バスマスタデバイスと通信することによって、中断させるべきトランザクションを検出するステップを備えることを特徴とする、請求項1に記載の方法。
  7. 前記トランザクションが中断された後に、前記プロセッサーを介して前記バスの正常動作を再開するステップを備えることを特徴とする、請求項1に記載の方法。
JP2018179656A 2015-06-08 2018-09-26 バスを介して周辺デバイスを安全にアクセスするための方法 Active JP6703064B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562172298P 2015-06-08 2015-06-08
US15/075,219 2016-03-21
US15/075,219 US10095891B2 (en) 2015-06-08 2016-03-21 Secure access to peripheral devices over a bus

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2017052212A Division JP6411568B2 (ja) 2015-06-08 2017-03-17 バスを介して周辺デバイスに安全にアクセスするための装置、システム及び方法

Publications (2)

Publication Number Publication Date
JP2019023896A JP2019023896A (ja) 2019-02-14
JP6703064B2 true JP6703064B2 (ja) 2020-06-03

Family

ID=57452023

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017052212A Active JP6411568B2 (ja) 2015-06-08 2017-03-17 バスを介して周辺デバイスに安全にアクセスするための装置、システム及び方法
JP2018179656A Active JP6703064B2 (ja) 2015-06-08 2018-09-26 バスを介して周辺デバイスを安全にアクセスするための方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2017052212A Active JP6411568B2 (ja) 2015-06-08 2017-03-17 バスを介して周辺デバイスに安全にアクセスするための装置、システム及び方法

Country Status (3)

Country Link
US (1) US10095891B2 (ja)
JP (2) JP6411568B2 (ja)
TW (1) TWI614638B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10783250B2 (en) 2014-07-24 2020-09-22 Nuvoton Technology Corporation Secured master-mediated transactions between slave devices using bus monitoring
US10691807B2 (en) 2015-06-08 2020-06-23 Nuvoton Technology Corporation Secure system boot monitor
US20170371830A1 (en) * 2016-06-28 2017-12-28 Qualcomm Incorporated Accelerated i3c master stop
US10635827B2 (en) * 2016-11-18 2020-04-28 Raptor Engineering, LLC Systems and methods for secure isolation of legacy computer peripherals
GB2571727B (en) * 2018-03-06 2022-05-25 Siemens Ind Software Inc Monitoring accesses to a region of an integrated circuit chip
TWI698769B (zh) * 2018-04-18 2020-07-11 新唐科技股份有限公司 透過匯流排安全存取周邊裝置之裝置及方法
GB201806465D0 (en) 2018-04-20 2018-06-06 Nordic Semiconductor Asa Memory-access controll
GB201810662D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Access On A Secure-Aware Bus System
GB201810653D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure peripheral interconnect
GB201810659D0 (en) 2018-06-28 2018-08-15 Nordic Semiconductor Asa Secure-Aware Bus System
CA3031936A1 (en) * 2019-01-30 2020-07-30 J.J. Mackay Canada Limited Spi keyboard module for a parking meter and a parking meter having an spi keyboard module
TWI751962B (zh) * 2019-04-07 2022-01-01 新唐科技股份有限公司 安全裝置、安全方法、安全系統以及安全設備
TWI791244B (zh) * 2019-04-07 2023-02-01 新唐科技股份有限公司 監控系統開機之安全裝置及其方法
US11436315B2 (en) 2019-08-15 2022-09-06 Nuvoton Technology Corporation Forced self authentication
TWI791138B (zh) * 2019-09-12 2023-02-01 新唐科技股份有限公司 序列周邊介面快閃記憶體之安全裝置
CN113157635B (zh) * 2019-09-25 2024-01-05 支付宝(杭州)信息技术有限公司 在fpga上实现合约调用的方法及装置
US11520940B2 (en) * 2020-06-21 2022-12-06 Nuvoton Technology Corporation Secured communication by monitoring bus transactions using selectively delayed clock signal
JP7090772B1 (ja) 2021-03-30 2022-06-24 三菱電機株式会社 電力変換制御装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289408B1 (en) 1995-05-08 2001-09-11 Apple Computer, Inc. Bus interface with address mask register for transferring selected data from one bus to another
US5696994A (en) 1995-05-26 1997-12-09 National Semiconductor Corporation Serial interface having control circuits for enabling or disabling N-channel or P-channel transistors to allow for operation in two different transfer modes
US6049876A (en) * 1998-02-09 2000-04-11 Motorola, Inc. Data processing system and method which detect unauthorized memory accesses
US6510522B1 (en) 1998-11-20 2003-01-21 Compaq Information Technologies Group, L.P. Apparatus and method for providing access security to a device coupled upon a two-wire bidirectional bus
PL363432A1 (en) * 2001-01-31 2004-11-15 International Business Machines Corporation Method and apparatus for transferring interrupts from a peripheral device to a host computer system
JP2003233521A (ja) * 2002-02-13 2003-08-22 Hitachi Ltd ファイル保護システム
DE60314935T2 (de) 2002-04-16 2007-12-20 Robert Bosch Gmbh Verfahren und Einheit zur Bitstromdekodierung
US7434264B2 (en) * 2003-03-07 2008-10-07 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
US7010639B2 (en) 2003-06-12 2006-03-07 Hewlett-Packard Development Company, L.P. Inter integrated circuit bus router for preventing communication to an unauthorized port
US7398345B2 (en) * 2003-06-12 2008-07-08 Hewlett-Packard Development Company, L.P. Inter-integrated circuit bus router for providing increased security
US7496929B2 (en) * 2004-05-28 2009-02-24 Intel Corporation Performance of operations on a hardware resource through integral interpretive execution
JP2007164622A (ja) * 2005-12-15 2007-06-28 Kyocera Mita Corp メモリ制御システム及び画像形成装置
JP2012098985A (ja) * 2010-11-04 2012-05-24 Oki Data Corp ダイレクトメモリアクセス制御装置、ダイレクトメモリアクセス制御システム、プログラム、画像処理装置および複合機
US8813227B2 (en) * 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US20120255014A1 (en) * 2011-03-29 2012-10-04 Mcafee, Inc. System and method for below-operating system repair of related malware-infected threads and resources
IN2014DN03052A (ja) * 2011-10-21 2015-05-08 Hewlett Packard Development Co
GB2497528B (en) * 2011-12-12 2020-04-22 Nordic Semiconductor Asa Peripheral communication
KR101301022B1 (ko) * 2011-12-23 2013-08-28 한국전자통신연구원 암 코어 기반의 프로세서를 위한 외부 공격 방어 장치 및 이를 이용한 방법
US20130312099A1 (en) * 2012-05-21 2013-11-21 Mcafee, Inc. Realtime Kernel Object Table and Type Protection
US8880771B2 (en) * 2012-10-25 2014-11-04 Plx Technology, Inc. Method and apparatus for securing and segregating host to host messaging on PCIe fabric
JP5801330B2 (ja) * 2013-01-29 2015-10-28 Necプラットフォームズ株式会社 デバイスの状態監視方法
JP6430710B2 (ja) * 2014-03-27 2018-11-28 株式会社メガチップス データ転送制御装置及びデータ転送の制御方法
JP2014167818A (ja) * 2014-05-12 2014-09-11 Hitachi Ltd データ転送装置およびデータ転送方法
US9569638B2 (en) * 2014-12-31 2017-02-14 Google Inc. Trusted computing

Also Published As

Publication number Publication date
JP2019023896A (ja) 2019-02-14
US20160357991A1 (en) 2016-12-08
TW201734881A (zh) 2017-10-01
JP2017208075A (ja) 2017-11-24
TWI614638B (zh) 2018-02-11
US10095891B2 (en) 2018-10-09
JP6411568B2 (ja) 2018-10-24

Similar Documents

Publication Publication Date Title
JP6703064B2 (ja) バスを介して周辺デバイスを安全にアクセスするための方法
US10452582B2 (en) Secure access to peripheral devices over a bus
US10691807B2 (en) Secure system boot monitor
US10776527B2 (en) Security monitoring of SPI flash
US10783250B2 (en) Secured master-mediated transactions between slave devices using bus monitoring
US20100241875A1 (en) External storage device and method of controlling the same
EP3631667B1 (en) Flash recovery mode
CN111226215B (zh) 透明附接的闪存存储器安全性
TWI698769B (zh) 透過匯流排安全存取周邊裝置之裝置及方法
JP7005676B2 (ja) システム起動を監視するための安全装置及び安全方法
CN111797440B (zh) 安全装置、方法及其系统
TW201905703A (zh) 保護主機機器對抗經由擴展卡槽之直接記憶體存取(dma)攻擊
JP7079558B2 (ja) Spiフラッシュ用安全装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180926

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191129

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200507

R150 Certificate of patent or registration of utility model

Ref document number: 6703064

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250