Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6328707B2 - マイクロフォンからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法 - Google Patents
[go: Go Back, main page]

JP6328707B2 - マイクロフォンからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法 - Google Patents

マイクロフォンからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法 Download PDF

Info

Publication number
JP6328707B2
JP6328707B2 JP2016161364A JP2016161364A JP6328707B2 JP 6328707 B2 JP6328707 B2 JP 6328707B2 JP 2016161364 A JP2016161364 A JP 2016161364A JP 2016161364 A JP2016161364 A JP 2016161364A JP 6328707 B2 JP6328707 B2 JP 6328707B2
Authority
JP
Japan
Prior art keywords
audio
data
software
audio data
encrypted
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
JP2016161364A
Other languages
English (en)
Other versions
JP2017199339A (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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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 Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of JP2017199339A publication Critical patent/JP2017199339A/ja
Application granted granted Critical
Publication of JP6328707B2 publication Critical patent/JP6328707B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Telephonic Communication Services (AREA)

Description

関連出願の相互参照
本願は、2015年4月25日に出願されたロシア特許出願第2016116002号の関連出願であり、米国特許法第119条によってこの出願に基づく優先権を主張し、本明細書中に参考として援用する。
本開示は、データの損失を防止することに関し、特に、マイクからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法に関するものである。
現代社会では、ユーザは多くのサイバー上の脅威にさらされている。その一つは、盗聴を目的とした、ユーザのマイクロフォンへの不正アクセスである。ユーザのコンピュータ上で実行されるプロセスの一部であるマイクロフォンデータへのアクセスを制御するためには、オペレーティングシステム内の特定の要求にフィルタをするか、又は、アクセスを要求するプロセスを識別するために要求データのコンテキストへアクセスして、アクセス権限のないこれらのプロセスをブロックする必要がある。Windows XP及びより古いオペレーティングシステムでは、この機能は、「KSmixer.sys」カーネルコンポーネント(Windowsカーネルストリーミング技術)領域内のトラフィックへの割り込み(インターセプト)により実現されていた。インターセプトされたトラフィックのフレームワーク内にあるマイクロフォンデータの読み出し要求は、特殊なフィルタを介して、当該マイクロフォンデータを読み出すプロセスのコンテキストで実行されていた。
Windows Vistaの登場に伴って、多数のカーネルコンポーネントと1つのユーザモードからなる新しいアーキテクチャであるWASAPIが開発された。WASAPIでは、Windowsカーネルストリーミング技術は「基本的な変形」により残された一方、オーディオトラフィックは全て、「ポートドライバ「portcls.sys」に登録された新しいオーディオドライバのプライベートCOMインタフェースを介するようになった。このようなオーディオドライバは、ダイレクトメモリアクセス(DMA)コントローラの助けを借りて、オーディオトラフィックをユーザモードバッファ内で一度に終了させることで実現でき、プロセッサの関与や補助的なコードが必要ない。そしてこのバッファは、保護されたプロセスである「audiodg.exe」に割り付けられ、この同じプロセス「audiodg.exe」のコンテキストにおいて、データはプロセッサの助けを借りて、このバッファからユーザプロセスのバッファにコピーされる。つまり、Windows Vista以降、Windowsカーネルストリーミング技術における制御フィルタは全く不適当なものとなっている。
以上のことから、マイクロフォンからのデータを読み出すプロセスのコンテキストと関連付けれた、マイクロフォンからのオーディオトラフィックに割り込むことができ、オーディオデータの送信を保護することの可能な方法が必要となっていた。
本願では、マイクロフォンからプロセスへのオーディオデータの伝送を阻止することによる、オーディオデータへの不正アクセスを防止するシステム、方法、及びコンピュータプログラム製品が開示される。
1つの例示的な態様によれば、オーディオデータへの不正アクセスを防止する方法が提供される。この態様によれば、方法は、受信工程と、割り当て工程と、処理及び暗号化工程と、記憶工程と、インストール工程と、復号工程とを備え、前記受信工程では、コンピュータのプロセッサにより、複数のソフトウェアプロセスのうちの1つのソフトウェアプロセスから要求を受信して、オーディオエンドポイントデバイスからオーディオストリームを取得し、前記割り当て工程では、前記プロセッサにより、複数のデータバッファのうちの1つのデータバッファを前記1つのソフトウェアプロセスに割り当て、前記処理及び暗号化工程では、少なくとも1つのオーディオ処理オブジェクトにより、前記オーディオエンドポイントデバイスから受信したオーディオデータを処理及び暗号化し、前記オーディオデータは前記要求されたオーディオストリームと関連するものであって、前記記憶工程では、前記プロセッサにより、前記割り当てられたデータバッファに前記暗号化されたオーディオデータを記憶し、前記インストール工程では、前記1つのソフトウェアプロセスに対してAPI関数呼び出しのインターセプターをインストールし、前記復号工程では、前記1つのソフトウェアプロセスが、前記インターセプターを用いて前記暗号化されたオーディオデータを復号する。
他の1つの例示的な態様によれば、方法は、前記コンピュータのプロセッサにより、複数のソフトウェアプロセスからの複数の要求をそれぞれ受信し、前記エンドポイントデバイスを含む1つまたは複数のエンドポイントデバイスからのオーディオストリームを取得する工程と、前記プロセッサにより、前記複数のソフトウェアプロセスに対して前記複数のデータバッファを割り当てる工程と、前記要求されたオーディオストリームの各々と関連したオーディオデータを暗号化する工程と、前記割り当てられたデータバッファに、前記要求されたオーディオストリームそれぞれに対応する前記暗号化されたオーディオデータをそれぞれ記憶する工程と、API関数呼び出しのインターセプターを備えて構成される前記複数のソフトウェアプロセスの少なくとも一部により、前記暗号化されたオーディオデータを復号する工程と、をさらに備える。
他の1つの例示的な態様によれば、方法は、前記プロセッサにより、前記1つのソフトウェアプロセスのプロセスIDデータを決定する工程と、前記プロセッサにより、前記プロセスIDデータに基づいて、前記オーディオストリームの取得を要求する前記1つのソフトウェアプロセスが不正なソフトウェアプロセスであるかどうかを決定する工程と、前記1つのソフトウェアプロセスが認証されていないソフトウェアではないと前記プロセッサが判断した場合にのみ、前記インターセプターをインストールする工程と、をさらに備える。
他の1つの例示的な態様によれば、方法は、前記オーディオストリームの取得を要求する前記ソフトウェアプロセスが不正なソフトウェアであるかどうかを決定する前記工程は、前記プロセスが信頼できるものかどうかを決定するため前記要求をしたプロセスのアクティビティを監視することと、既知のウイルスのシグネチャのデータベースにアクセスし、前記要求をしたプロセスのシグネチャーを比較することによって当該要求しているプロセスをスキャンすることと、前記要求をしたプロセスによる前記オーディオストリームへのアクセスを許可するかどうかのコマンドをユーザから受信することと、の少なくとも1つを含む。
他の1つの例示的な態様によれば、方法は、前記オーディオエンドポイントデバイスから受信した前記オーディオデータを個別のデータバッファに直接記憶する工程と、前記オーディオデータを暗号化し、前記IDデータが、前記1つのソフトウェアプロセスが不正なソフトウェアプロセスではないことを示したあとに、当該1つのソフトウェアプロセスによる前記オーディオデータへのアクセスを許可する工程と、をさらに備える。
他の1つの例示的な態様によれば、方法は、前記少なくとも1つのオーディオ処理オブジェクトによる前記オーディオデータの前記処理工程は、前記複数のソフトウェアプロセスに対して割り当てられたグローバルエフェクトオーディオ処理オブジェクト及び前記1つのソフトウェアプロセスと関連するローカルエフェクトオーディオ処理オブジェクトとにより、前記オーディオデータを処理することを備える。
他の1つの例示的な態様によれば、前記オーディオデータを暗号化する暗号化工程は、対称暗号化アルゴリズムと非対称暗号化アルゴリズムのうちの1つによって前記オーディオデータを暗号化することを備える。
また、他の1つの例示的な態様によれば、オーディオデータへの不正アクセスを防止するシステムが提供される。この態様によれば、システムは、電子メモリ内の複数のデータバッファと、プロセッサとを備え、前記プロセッサは、複数のソフトウェアプロセスのうちの1つのソフトウェアプロセスから要求を受信して、オーディオエンドポイントデバイスからオーディオストリームを取得し、前記プロセッサにより、複数のデータバッファのうちの1つのデータバッファを前記1つのソフトウェアプロセスに割り当て、少なくとも1つのオーディオ処理オブジェクトにより、前記オーディオエンドポイントデバイスから受信したオーディオデータを処理及び暗号化し、前記オーディオデータは前記要求されたオーディオストリームと関連するものであって、前記割り当てられたデータバッファに前記暗号化されたオーディオデータを記憶し、前記1つのソフトウェアプロセスに対してAPI関数呼び出しのインターセプターをインストールし、前記1つのソフトウェアプロセスにより、前記インターセプターを用いて前記暗号化されたオーディオデータを復号するよう構成される。
また、他の1つの例示的な態様によれば、オーディオデータへの不正なアクセスを防止するためのコンピュータ実行可能命令を記憶する、非一時的コンピュータ可読媒体が提供される。この態様によれば、命令は、受信命令と、割り当て命令と、処理及び暗号化命令と、記憶命令と、インストール命令と、復号命令とを備え、前記受信命令は、複数のソフトウェアプロセスのうちの1つのソフトウェアプロセスから要求を受信させて、オーディオエンドポイントデバイスからオーディオストリームを取得させ、前記割り当て命令は、複数のデータバッファのうちの1つのデータバッファを前記1つのソフトウェアプロセスに割り当てさせ、前記処理及び暗号化命令は、少なくとも1つのオーディオ処理オブジェクトにより、前記オーディオエンドポイントデバイスから受信したオーディオデータを処理及び暗号化させ、前記オーディオデータは前記要求されたオーディオストリームと関連するものであって、前記記憶命令は、前記割り当てられたデータバッファに前記暗号化されたオーディオデータを記憶させ、前記インストール命令は、前記1つのソフトウェアプロセスに対してAPI関数呼び出しのインターセプターをインストールさせ、前記復号命令は、前記1つのソフトウェアプロセスにより、前記インターセプターを用いて前記暗号化されたオーディオデータを復号させる。
上述した実施形態の簡単な説明は、本発明の基本的な理解を提供するのに役立つ。この概要は、全ての考えられる態様の詳細な概要ではなく、全ての態様の鍵となるものや決定的な要素を特定することを意図していないし、本発明の全ての態様を描写することも意図していない。その唯一の目的は、前置きとして、1つ又は複数の態様を表し、その後、本発明のより詳細な説明に続くものである。これを達成するため、本発明の1つ又は複数の態様が説明されて、特許請求の範囲においても主張される。
添付の図面は、発明の詳細な説明とともに本発明の1つ又は複数の態様を説明し、それらの原理と実施を説明するのに役立つものであり、本明細書の一部として組み込まれ、またその一部を構成する。
Windowsオーディオスタックの新たな高レベルモデルを示す図である。
例示的な態様に係るオーディオサブシステムを示すブロック図である。
例示的な態様に係る、オーディオデータへの不正アクセスを防止するオーディオサブシステムの他のブロック図である。
例示的な態様に係る、オーディオデータへの不正アクセスを防止する方法を示すフローチャートである。
例示的な態様に係る、オーディオデータへの不正アクセスを防止するオーディオサブシステムの他のブロック図である。
例示的な態様に係る、マイクロフォンからプロセスへの、オーディオデータの保護された伝送の方法を示すフローチャートである。
本発明に係るシステムと方法が実装できる汎用コンピュータシステムの例を示す図である。
本発明の例示的な態様では、マイクロフォンからプロセスへのオーディオデータの伝送を阻止することによる、オーディオデータへの不正アクセスを防止するシステム、方法、及びコンピュータプログラム製品が開示される。当業者であれば、以下の記載はあくまでも例示であり、あらゆる制限をも意図するものではないことが理解されよう。本発明の利益を享受する当業者であれば、他の態様も容易に示唆されることであろう。添付の図面では、その詳細を示すための参照符号が付されている。図面と以下の記載において、同一の又はそれに相当する項目については、同一の参照符号を用いるものとする。
信頼性を高め、オーディオデータを扱うアプリケーションの開発を簡略化するため、Microsoftは、Windows Vistaに始まる現代のオペレーティングシステムで使用されるオーディオスタックを大幅に再設計している。図1は、新たなWindowsオーディオスタックの高レベルモデルを示す。このモデルの基本的なコンポーネント(構成要素)を、以下に列挙する。なお、図1に示されるコンポーネントは、網羅的なものではなく、本願の文脈上用いられるコンポーネントであり、且つ/又は新たなオーディオスタックモデルのコンテキストにおいてオーディオデータを扱う原則を理解するのに重要なコンポーネントであるにすぎない。
WindowsオーディオセッションAPI(WASAPI101)は、アプリケーション100とオーディオエンドポイントデバイス107の間のオーディオデータストリームの制御を可能にするソフトウェアインタフェースである。本願では、「オーディオエンドポイントデバイス」、「オーディオターミナルデバイス」又は「オーディオエンドポイント」の用語は同義的に使用され、例えば、マイクロフォンと考えることができる。なお、マイクロフォンは、これと接続されているオーディオアダプタに組み込まれてもよく、また、USBアダプタやデバイスに接続され、次にオーディオアダプタに接続されてもよい。
いずれの場合でも、各オーディオストリームは1つのオーディオセッションの一部である。ここで、オーディオセッションは、アプリケーション100と特定のオーディオエンドポイントデバイス107(例えば、マイクロフォン108)の間の全てのストリームの組み合わせである。Windowsオペレーティングシステムは、1つのオーディオセッション内で各ストリームを個別に処理し、また、オーディオセッション全体におけるボリューム等の特定のパラメータを制御することを可能にする。なお、オーディオセッションは、オーディオデータレンダリングストリーム単体でもオーディオデータキャプチャストリーム単体でも構成することができる。ただし、本願では、オーディオデータキャプチャストリームのみを説明する。アプリケーション100は、共有モードと排他モードの2つのモードでWASAPIソフトウェアインタフェースを使用する。1つのアプリケーションが排他モードを使用することにより、他の全てのアプリケーションによるオーディオエンドポイントデバイスへのアクセスがブロックされる。コンポーネントであるWindowsオーディオデバイスグラフアイソレーション103は、1つのオーディオエンドポイントデバイス107から来たオーディオデータに対する共有アクセスをまとめるために使用される。
Windowsオーディオデバイスグラフアイソレーション103は、オーディオエンドポイントデバイス107から来たオーディオデータをアプリケーション100へ転送するよう設計されたオーディオスタックコンポーネントである。Windowsオーディオデバイスグラフアイソレーション103は、中央プロセッサのリソースのみを使用して、1つのオーディオセッション中のオーディオストリームのデータの様々な変換を行う。例えば、Windowsオーディオデバイスグラフアイソレーション103は、複数の異なるアプリケションからのオーディオストリームを、Windowsの設定において指定される同一の形式、つまり、同一のチャネル数、デジタル化周波数、量子化の程度にすることができる。また、Windowsオーディオデバイスグラフアイソレーション103は、オーディオストリームのミキシング(mixing)を行う。加えて、オーディオデータキャプチャストリームの場合には、Windowsオーディオデバイスグラフアイソレーション103は、いくつかのアプリケーション100への転送のため、オーディオデータをコピーする。Windowsオーディオデバイスグラフアイソレーション103は、ユーザモードで起動される、保護されたプロセスである「audiodg.exe」として実現される。
Windowsオーディオサービス104は、Windowsオペレーティングシステム内のサービスであり、オーディオデータストリームを生成し、制御するよう設計されている。このオーディオスタックコンポーネントは、アプリケーション100が、保護された「audiodg.exe」プロセスとやり取りすることを許可するが、「audiodg.exe」プロセスへの直接アクセスは、アプリケーション100側に限定されている。Windowsオーディオサービス104はまた、Windowsオーディオポリシーを実現するコンポーネントであり、オペレーティングシステムにおいて、オーディオセッションの共有モードでアクセス可能なオーディオストリームに適用されるルール群を有している。
オーディオドライバ106は、上述したオーディオスタックモデルの中間層であり、上述したオーディオスタックのアーキテクチャを維持する様々なシステムドライバの組み合わせを有するほか、他のメーカのコンポーネントのサポートを可能にするドライバも有している。例えば、PCIバス及びPCI Expressバスと接続されるオーディオアダプタでは、「ポートクラス」(portcls.sys)というシステムドライバがWindowsオペレーティングシステムに提供される。このドライバは、様々なオーディオアダプタとしての機能を実現するためのポートドライバ群を有している。また、USBバスと接続されるオーディオアダプタの場合は、「AVストリーム」クラス(Ks.sys)と「USBオーディオ」クラス(Usbaudio.sys)というシステムドライバがWindowsオペレーティングシステムに提供される。オーディオドライバ106層で実現される新たなオーディオスタックモデルの主な特徴は、Microsoftウェーブリアルタイム(WaveRT)技術の実現である。この技術により、中央プロセッサが直接関与することなく、オーディオエンドポイントデバイスがユーザモードのバッファにオーディオデータを記録することが可能となり、記録されたデータが保護された「audiodg.exe」プロセスによりバッファから読み出されることで、Windowsオーディオデバイスグラフアイソレーション・コンポーネント103が実現される。他のプロセスからのこのバッファへのアクセスは禁止され、オペレーティングシステム側において制御される。
本願に係るオーディオエンドポイントデバイス107は、オーディオデータ伝送路の一端に位置するデバイスであり、伝送路は、アプリケーション100から開始されるか、アプリケーション100で終了する。オーディオエンドポイントデバイスの例としては、マイクロフォン108、ヘッドフォン、音響スピーカ、CDプレーヤ等が挙げられるが、これらに限定されるものではない。オーディオエンドポイントデバイス107は、オーディオアダプタに接続されるか、又はオーディオアダプタの一部であってもよい。
Microsoftオーディオエンドポイントビルダ105は、新しいオーディオエンドポイントデバイス107を検出し、また、すでにあるオーディオエンドポイントデバイス107を追跡・制御するよう設計されたWindowsオペレーティングシステムのサービスである。
Windows.Devices.Enumeration102は、アプリケーション100がMicrosoftオーディオエンドポイントビルダサービス105とやり取りすることを許可するソフトウェアインタフェースであり、すでにあるオーディオエンドポイントデバイス107の情報、及びオーディオデータのレンダリング又はキャプチャのためのオーディオエンドポイントデバイス107の使用情報を取得する。
本願では、Windowsオペレーティングシステムのオーディオサブシステムにおいて提供されるオーディオスタックコンポーネントについて説明する。ここに、本願発明が実現される。図2では、特に、1つの例示的な態様に係るオーディオデータへの不正アクセスを防止するオーディオサブシステムのブロック図が示される。図2は、オーディオエンドポイントデバイス(マイクロフォン206)から受け取っているオーディオデータキャプチャストリームを含むオーディオセッションにおいて、プロセス200に共有モード(WASAPI共有)のアクセスが与えられるシナリオを示すものである。図2では、プロセス200は、その際に実行されているアプリケーションを意味する。アプリケーションが受動的な命令のセットである場合、プロセスはこれらの命令を即時実行することである。各プロセスは一意の識別子であるプロセスID(つまり、PID)を有しており、これにより特定のプロセスを識別することが可能となっている。
マイクロフォンデータへの不正アクセスを防止するシステム及びその方法の困難さは、プロセスとオーディオエンドポイントデバイスの間を行き来する全てのオーディオストリームが、Windowsオーディオデバイスグラフアイソレーション・コンポーネント202を実現する単一の保護された「audiodg.exe」プロセスのコンテキストであるという事実にある。プロセスが保護されている、つまりこのプロセスに対するアクセス権が制限されているので、多くの処理の実行時に、ユーザモードの標準的なAPI関数を使ってこのプロセスとやり取りすることは不可能である。したがって、ユーザモードの標準的なAPI関数を使用する他のプロセスは、「audiodg.exe」プロセスの内部データに関する情報を要求することはできない。Windowsオーディオデバイスグラフアイソレーション・コンポーネント202により実現される、保護された「audiodg.exe」プロセスと、各プロセス200とがやり取りをするため、オペレーティングシステムのWindowsオーディオサービス201は、プロセス間を行き来する(クロスプロセスの)特別なバッファ207を生成する。そして、このバッファ200を介してマイクロフォン206等のオーディオエンドポイントデバイスのうちの1つからオーディオデータが伝送される。上述したように、オーディオエンドポイントデバイス205の追跡及び追加は、オペレーティングシステムのWindowsマイクロソフトオーディオエンドポイントビルダサービス204の助けを借りて行われる。
マイクロフォン206のようなオーディオエンドポイントデバイスと、保護されたプロセスであるaudiodg.exe202とのやり取りは、ユーザモードでアクセス可能な特別なバッファを介しても行われる。オーディオデータは、中央プロセッサの関与なしにマイクロフォン206から直接バッファ203に行き、Windowsオーディオデバイスグラフアイソレーション・コンポーネント202に読み取られるか、逆に、中央プロセッサのリソースのみを利用して処理される。つまり、ソフトウェアにより、オーディオアダプタのリソースの関与なしに、オーディオエンドポイントデバイス205が接続されるか又はオーディオエンドポイントデバイス205がオーディオアダプタの一部を形成することで、処理される。
Windowsオーディオデバイスグラフアイソレーション・コンポーネント202の主なタスクは、オーディオエンドポイントデバイスであるマイクロフォン206からプロセス200へのオーディオデータの伝送と、単一のオーディオセッションにおけるオーディオストリームデータの様々な変換である。オーディオストリームデータの変換は、上述したWaveRT技術のミニポートドライバ(オーディオ処理オブジェクト(APO)として知られている)の助けを借りて行われる。ここで、オーディオ処理オブジェクトは、2つのタイプに区別される。2つのタイプとは、グローバルエフェクト(GFX APO211と略される)と、ローカルエフェクト(LFX APO211と略される)である。
1つの態様によれば、オーディオエンジンは、システム提供APO(system-supplied APOs)及びsAPO(システムエフェクトAPO)をパイプと呼ばれるコンポーネントに構成する。オーディオエンジンには2つのタイプのパイプが存在する。ストリームパイプは、APOsとsAPOsで構成され、APOsとsAPOsは、単一のアプリケーションからのストリームに対し、ローカルなデジタルオーディオ処理を実行する。このタイプのsAPOは、ローカルエフェクトsAPO(LFX sAPO)と呼ばれる。一方、デバイスパイプもAPOsとsAPOsで構成されるが、これらのAPOsとsAPOsは、全てのストリームに対しグローバルに影響するデジタルオーディオ処理を実行する。このタイプのsAPOは、グローバルエフェクトsAPO(GFX sAPO)と呼ばれる。
オーディオデータキャプチャストリームを含むオーディオセッションにおいて、マイクロフォン206から入力されたオーディオストリームに対してグローバルエフェクトオーディオ処理オブジェクト(GFX APO112)が用いられる。そして、Windowsオーディオデバイスグラフアイソレーション・コンポーネント202は、Windowsオーディオサービス201からオーディオストリームの生成を要求されている各プロセス200のために、グローバルエフェクトオーディオ処理オブジェクト(GFX APO112)の助けを借りて、独立したオーディオストリームの生成を行う。独立したオーディオストリームの各々は単一のプロセスと対応し、ローカルエフェクトオーディオ処理オブジェクト(LFX APO211)の助けを借りて処理される。独立したオーディオストリームのために使用されるローカルエフェクトオーディオ処理オブジェクトLFX APO211の各々は、同一のものでも異なったものでも良い。ローカルエフェクト処理オブジェクトLFX APO211の助けを借りた、独立したオーディオストリーム各々のデータの操作の性質もまた、異なっていても良い。なぜなら、オーディオデータ処理オブジェクトのパラメータはリアルタイムで制御可能だからである。ローカルエフェクト処理オブジェクトLFX APO211は、プロセスごとに独立して動作することができる。結果として、ローカルエフェクト処理オブジェクトLFX APO211は、該当するプロセスに対応するオーディオストリームに追加されることになる。ローカルエフェクトオーディオ処理オブジェクトLFX APO211はまた、個別に無効にすることもできる。結果として、ローカルエフェクトオーディオ処理オブジェクトLFX APO211は、該当するプロセスに対応するオーディオストリームから削除されることになる。ローカルエフェクト処理オブジェクトLFX APO211は、WaveRTミニポートドライバの形で実現される。ここで、WaveRTミニポートドライバは、対応するレコードをシステムレジストリに追加することにより、オペレーティングシステムにインストールされ、各オーディオエンドポイントデバイス205に関連させて登録されるものである。そして、ローカルエフェクト処理オブジェクトLFX APO211は、オーディオサブシステムによって自動的にインストールされ、オーディオエンドポイントデバイスに関連する新たなオーディオストリームそれぞれを処理する。このオーディオエンドポイントデバイスに対して、当該ローカルエフェクト処理オブジェクトLFX APO211が登録されている。
共有アクセスモード(WASAPI共有)のプロセスは、マイクロフォン206から届くオーディオデータへのアクセスを受信するため、Windowsオーディオサービス201への要求を定式化し、これを送信する。この要求は、プロセスID(PID)を含む様々なパラメータを含んでいる。Windowsオーディオサービス201は、新たなデータストリームを生成するためのRPC要求を定式化し、Windowsオーディオデバイスグラフアイソレーション・コンポーネント202に送信する。この際、Windowsオーディオサービス201は、このRPC要求の複数のパラメータのうち、オーディオストリームの生成を要求するプロセスID(PID)を伝送する。Windowsオーディオサービス201は、特別なクロスプロセスバッファ200を生成する。これにより、マイクロフォン206からオーディオデータが、オーディオストリームの生成を要求したプロセスに伝送される。これに対して、Windowsオーディオデバイスグラフアイソレーション202は、上述した特別なバッファ200に関連した独立したオーディオストリームを生成する。オーディオデータは、特別なバッファ200を介して、当該オーディオストリームの生成を要求したプロセスに伝送される。そして、最終的に、オーディオサブシステムは、生成されたオーディオストリームの処理のため、マイクロフォン206のために登録されたローカルエフェクトオーディオ処理オブジェクトLFX APO211をインストールする。
図3は、例示的な態様に係る、オーディオデータへの不正アクセスを防止するオーディオサブシステムの他のブロック図である。図3に示すように、このシステムは2つのサブシステムを有する。すなわち、図2に示す上述したサブシステムと、当該サブシステムと統合される、マイクロフォンデータへのアクセスを制御するサブシステムである。例示的な態様によれば、本願のオーディオサブシステムは、オーディオストリーム制御モジュール301を含み、これとプロセスとが、オーディオストリームの生成及び制御のためのAPI関数を介してやり取りをする。1つの例示的な態様によれば、これはWindowsオーディオサービス201とすることができる。加えて、オーディオストリームミキシング・プロセッシングモジュール302が提供される。これは、アプリケーションとオーディオエンドポイントデバイスの間のオーディオストリームを統合し、また、フィルタの助けを借りてオーディオストリームを処理するよう設計される。1つの例示的な態様において、オーディオストリームミキシング・処理モジュール302は、保護されたプロセスのWindowsオーディオデバイスグラフアイソレーション202とすることができる。さらに、オーディオサブシステムは、オーディオエンドポイントデバイスを追加し監視するよう構成された、オーディオエンドポイントデバイス制御モジュール306を含むことができる。1つの例示的な態様において、オーディオエンドポイントデバイス制御モジュール306は、Windowsオーディオエンドポイントビルダサービス204とすることができる。
マイクロフォンデータへのアクセスを制御するためのサブシステムは、3つのコンポーネント、すなわちRPCトラフィックフィルタモジュール310、オーディオストリーム遮断モジュール311、及びアクセス認証モジュール312を含むことができる。RPCトラフィックフィルタモジュール310は、オーディオエンドポイントデバイス(マイクロフォン)と関連するオーディオストリーム生成のためのRPC要求を検出し、当該オーディオストリームの生成を要求されたプロセスID(PID)を決定するため、オーディオストリーム制御モジュール301とオーディオストリームミキシング・処理モジュール302の間のRPCトラフィックを監視するよう設計される。この設計は、マイクロフォン305からのオーディオデータを受信するプロセス300を識別するという、上述した課題を解決する。ここで、プロセス300とマイクロフォン305の間を行き来する全てのオーディオストリームは、単一の保護されたプロセスである「audiodg.exe」(オーディオストリームミキシング・処理モジュール302)のコンテキストである。
オーディオストリーム遮断モジュール311は、オーディオストリームミキシング・処理モジュール302内のローカルエフェクトオーディオ処理オブジェクトLFX APO211として、オーディオエンドポイントデバイス(マイクロフォン305)と関連したオーディオセッションの新たなオーディオストリームそれぞれに対してインストールされる。1つの例示的な態様では、オーディオストリーム遮断モジュール311は、WaveRTミニポートドライバのようなドライバの形態である。オーディオサブシステムは、オーディオエンドポイントデバイス304群の各オーディオエンドポイントデバイスに関連する、オーディオセッション内の新たなオーディオストリームそれぞれに対して、オーディオストリーム遮断モジュール311を自動的にインストールする。オーディオストリーム遮断モジュール311は、ローカルエフェクトオーディオ処理オブジェクトLFX APO211として登録される。1つの例示的な態様では、上述したオーディオストリーム遮断モジュール311の自動インストールは、オーディオストリームミキシング・処理モジュール302により行われる。インストール後、オーディオストリームに対してインストールされたオーディオストリーム遮断モジュール311は、当該オーディオストリームのデータへアクセスすることに関するプロセスの認証チェック要求をアクセス認証モジュール312に送信する。アクセス認証モジュール312は、チェックを実行するため、上述した認証チェックが要求されたかどうかに関するプロセスIDを、RPCトラフィックフィルタモジュール310から受信するか、又はRPCトラフィックフィルタモジュール310に要求する。ところで、オーディオストリーム遮断モジュール311は、どのプロセスが当該オーディオストリーム遮断モジュール311をインストールすることになったオーディオストリームに対応するプロセスであるかの情報を持っていない。また、RPCトラフィックフィルタモジュール310も、そのような情報は持っていない。オーディオストリーム遮断モジュール311によりディスパッチされた要求と、RPCトラフィックフィルタモジュール310により得られたプロセスIDを整合させることは、オーディオストリームとプロセスを整合させることと同じ関係であり、これは、アクセス認証モジュール312により行われる。
1つの例示的な態様によれば、オーディオストリーム遮断モジュール311の主な目的は、不正なプロセスがオーディオストリームデータにアクセスすることを防止することである。したがって、オーディオストリーム遮断モジュール311は、オーディオストリームの生成を要求するプロセスが不正であることがアクセス認証モジュール312により判明した場合、当該オーディオストリームのデータをゼロ化する。
アクセス認証モジュール312は、RPCトラフィックフィルタモジュール310及びオーディオストリーム遮断モジュール311と接続され、上述した、マイクロフォン305等のオーディオエンドポイントデバイスに関連したオーディオストリームのデータにアクセスするためのプロセスIDにより、プロセス認証のチェックを行うよう構成される。プロセス認証モジュールは、オーディオエンドポイントデバイス304群の1つのオーディオエンドポイントデバイスに関連するオーディオストリームデータへのアクセスを得るプロセスの認証を独立してチェックし、また、他のセキュリティモジュールによりチェックを受けているプロセスに関する要求を送信する。これらのモジュールは、プロセスのアクティビティを制御するモジュールを含むことができる。プロセスのアクティビティを制御するモジュールは、下記のプロセスの一部の動作を規制(regulate)するよう設計される。
・ファイルシステムやシステムレジストリへのアクセス
・他のプロセスとのやり取り
・全てのプロセスの、以下のものへの分類:信頼されたもの/信頼されていないもの/弱い制限のあるプロセス/強い制限のあるプロセス
さらに、アンチウイスルモジュールは、シグネチャ(既知のウイルス及び他の悪意のあるアプリケーションの記述)のデータベースの助けを借りてウイルスを探索し、対応するオブジェクト及びこれと関連するデータを除去又は隔離するよう設計される。加えて、脅威無効化モジュールは、要求されていないコンテンツを検出し、リアルタイムでの攻撃や脅威を発見し、全ての不審なプロセスを終了させる措置をとり、インターネットトラフィックを閉鎖するとともに、システムをその最後の既知の安全な状態に復元するために提供され、用いられる。さらに、ユーザフィードバックモジュールが提供されてもよい。ユーザフィードバックモジュールは、マイクロフォンデータへのアクセスを得るためのプロセスの試行をユーザに警告することができ、ユーザは当該プロセスがマイクロフォンにアクセスしてよいかを選択することができる。また、ユーザフィードバックモジュールは、デフォルトとして、マイクロフォンへの全てのアクセスをブロックするオプションをユーザに提供することもできる。
したがって、アクセス認証モジュール312は、外部のセキュリティモジュールの評定に基づいて、プロセスを不正なものであると識別することができる。例えば、プロセスが悪意のあるものであるか又はマイクロフォンへのアクセスが認証されていないものであれば、当該プロセスを不正なものであるとして識別することができる。
1つの例示的な態様では、アクセス認証モジュール312はオーディオエンドポイントデバイス制御モジュール306と接続され、オーディオエンドポイントデバイス304群に新たなオーディオエンドポイントデバイスが追加されたことを確認する。新しいオーディオエンドポイントデバイスの各々に対し、アクセス認証モジュール312は、オーディオストリーム遮断モジュール311をローカルエフェクトオーディオ処理オブジェクトLFX APO211として登録する。別の例示的な態様では、アクセス認証モジュール312は、システムレジストリの全てのレコードの変更及び削除を防止する。ここで、システムレジストリは、オーディオストリーム遮断モジュール311がローカルエフェクトオーディオ処理オブジェクトLFX APO211としてリスト化したものである。
図4は、オーディオデータへの不正アクセスを防止する方法の例示的な態様を示すフローチャートである。このフローチャートに示すように、ステップ401において、オーディオストリーム遮断モジュール311を、ローカルエフェクトオーディオ処理オブジェクトLFX APOとしてオーディオストリームミキシング・処理モジュール302にインストールする。ここで、このインストールはアクセス認証モジュール312の助けを借りて、また、オーディオエンドポイントデバイス制御モジュール306によって確認された各オーディオエンドポイントデバイス(マイクロフォン305)に対して行われる。ローカルエフェクトオーディオ処理オブジェクトLFX APOは、各エンドポイントデバイス(マイクロフォン305)と関連する新たなオーディオストリームのそれぞれに対するオーディオストリームミキシング・処理モジュール302として用いられる。そして、当該オーディオストリームミキシング・処理モジュール302に対してローカルエフェクトオーディオ処理オブジェクトLFX APOがインストールされる。
次に、ステップ402において、RPCトラフィックフィルタモジュール310の助けを借りて、オーディオストリーム制御モジュール301とオーディオストリームミキシング・処理モジュール302の間のRPCトラフィックを監視し、オーディオエンドポイントデバイス(マイクロフォン305)に関連したオーディオストリームの生成のRPC要求を抽出し、上記オーディオストリームの生成の要求に対してプロセスIDを決定する。
オーディオストリームミキシング・処理モジュール302は、新しいオーディオストリームの生成中、この新たなオーディオストリームに関連するオーディオエンドポイントデバイスに対してインストールされたオーディオストリームのローカルエフェクト処理モジュールLFX APOを、当該ストリームに適用する。ここで、ステップ401において、各オーディオエンドポイントデバイス(マイクロフォン)に対して、オーディオストリームのローカルエフェクト処理モジュールLFX APOとしてオーディオストリーム遮断モジュール311をインストールした結果、ステップ403において、オーディオエンドポイントデバイス(マイクロフォン)に関連した新たなオーディオストリームに対してオーディオストリーム遮断モジュール311が与えられる。そして、ステップ403において、オーディオストリーム遮断モジュール311は、初期化直後に、アクセス認証モジュール312に認証の要求を送信する。
ステップ404において、この要求に応答して、アクセス認証モジュール312は、ステップ402で受け取ったオーディオストリームの生成を要求するプロセスのIDを用いて、上述したオーディオストリームデータへアクセスするプロセスの認証をチェックする。
そして、ステップ404でのチェック結果に基づいて、ステップ405において、オーディオストリーム遮断モジュール311は、上述したオーディオストリームの生成を要求したプロセスがアクセス認証モジュール312の助けを借りて不正であると発見された場合、上述したオーディオストリームのデータをゼロ化する。
マイクロフォンデータへの不正アクセスを防止するシステム及びその方法は、オペレーティングシステム内のオーディオサブシステムにより提供されるメカニズムを利用することで、プロセス側でのマイクロフォンデータへの不正アクセスの結果として起こるオーディオデータの漏洩からユーザを保護することを可能にする。しかしながら、上述したシステム及び方法は、認証されたプロセスに到達したオーディオストリームへの、外部プロセスによる不正アクセスに起因したオーディオデータの漏洩までは防止できない。そこで、本願の文脈における不正アクセスからオーディオストリームを保護するため、マイクロフォンからプロセスへの、オーディオデータの保護された伝送の方法が実現される。
図5は、例示的な態様に係る、オーディオデータへの不正アクセスを防止するオーディオサブシステムの他のブロック図である。図5に示すように、システムは2つのサブシステムを含む。すなわち、図2に示す上述したサブシステムと、当該サブシステムと統合される、オーディオデータ62の伝送を保護するサブシステムである。図2に示すように、オーディオサブシステムは、オーディオストリーム制御モジュール301と、オーディオストリームミキシング・処理モジュール302と、オーディオエンドポイントデバイス制御モジュール306を含む。
オーディオストリーム制御モジュール301は、オーディオストリームを生成し、制御するよう設計される。プロセス300は、API関数の助けを借りて、オーディオストリーム制御モジュール301とやり取りをする。1つの例示的な態様によれば、オーディオストリーム制御モジュール301は、Windowsオーディオサービス201とすることができる。
オーディオストリームミキシング・処理モジュール302は、オーディオストリーム制御モジュール301と接続され、プロセス300と、オーディオエンドポイントデバイス群304のうちの1つのオーディオエンドポイントデバイス(例えば、マイクロフォン305)との間にオーディオストリームを通す(route)よう設計される。オーディオストリームミキシング・処理モジュール302はまた、システムによりサポートされたオーディオ処理モジュール(オーディオ処理オブジェクト、APO)の助けを借りて、オーディオストリームを処理するよう設計される。Windowsのサブシステムでは、システムのオーディオ処理モジュール(APOと略される)と、サードパーティのオーディオ処理モジュールsAPOとが区別される。本願の目的のためには、sAPOのみが用いられる。以下では、これを単にオーディオ処理モジュールsAPOと呼ぶ。上述したように、オーディオストリームミキシング・処理モジュール302により用いられるオーディオ処理モジュールsAPOは、2つのタイプに区別される。グローバルエフェクトGFX sAPO502とローカルエフェクトLFX sAPO501である。オーディオデータキャプチャストリームを含むオーディオセッションにおいて、グローバルエフェクトオーディオ処理オブジェクトGFX sAPO502はマイクロフォンから入力されるオーディオストリームに対して適用される。そして、オーディオストリーム制御モジュール301に対してオーディオストリームを生成するよう要求した各プロセス(例えば、プロセスN)に対して、オーディオストリームミキシング・処理モジュール302は、入力されたストリームをコピーすることで独立したオーディオストリームを生成する。これは、グローバルエフェクトオーディオ処理オブジェクトGFX sAPO502の助けを借りて処理される。各独立したオーディオストリームは、プロセス300のうちの1つと対応しており、ローカルエフェクトオーディオ処理オブジェクトLFX sAPO501の助けを借りて処理される。オーディオストリームミキシング・処理モジュール302は、分離した複数のバッファ503により、オーディオデータをオーディオエンドポイントデバイス(例えば、マイクロフォン305)からプロセス300に伝送する。オーディオストリームミキシング・処理モジュール302は、このバッファ503にオーディオデータを書き込み、API関数の助けを借りたプロセス300が当該データを読み込む。1つの例示的な態様によれば、オーディオストリームミキシング・処理モジュール302は、保護されたプロセスであるWindowsオーディオデバイスグラフアイソレーション202とすることができる。
オーディオエンドポイントデバイス制御モジュール306は、オーディオエンドポイントデバイスの追加及び監視を行う。オーディオエンドポイントデバイス制御モジュール306は、Windowsオーディオエンドポイントビルダサービス204とすることができる。
オーディオデータ62の伝送を保護するためのサブシステムは、RPCトラフィックフィルタモジュール310及びオーディオストリーム暗号保護モジュール500を含むことができ、加えて、アクセス認証モジュール312を有していてもよい。RPCトラフィックフィルタモジュール310は、オーディオストリーム制御モジュール301とオーディオストリームミキシング・処理モジュール302の間のRPCトラフィックを監視する。
RPCトラフィックフィルタモジュール310は、オーディオエンドポイントデバイス(マイクロフォン305)と関連するオーディオストリーム生成のためのRPC要求を検出するよう設計される。RPCトラフィックフィルタモジュール310は、オーディオストリーム暗号保護モジュール500と接続され、オーディオデータ62の伝送を保護するサブシステム内で、オーディオエンドポイントデバイス(マイクロフォン)と関連するオーディオストリーム生成のための全てのRPC要求を追跡するために用いられる。また、RPCトラフィックフィルタモジュール310は、プロセスID(PID)を決定し、IDの組{PID 1, ... PID N}をプロセス300の組{プロセス1, ..., プロセスN}と対応させて記憶する。ここで、プロセス300は、オーディオエンドポイントデバイス(マイクロフォン305)と関連するオーディオストリーム生成を要求したプロセスである。したがって、RPCトラフィックフィルタモジュール310は、オーディオデータ62の伝送を保護するサブシステムが、その時点で任意のオーディオエンドポイントデバイス(マイクロフォン)にアクセスする全てのプロセス300を識別することを可能にする。
オーディオストリーム暗号保護モジュール500は、RPCトラフィックフィルタモジュール310と接続され、オーディオストリームミキシング・処理モジュール302内のオーディオデータの暗号化及び復号を行うよう設計される。オーディオデータの暗号化のため、オーディオストリーム暗号保護モジュール500は、ドライバの形式で実現されるオーディオ処理モジュールsAPOを利用する。オーディオ処理モジュールsAPOは、オペレーティングシステムにインストールされ、対応するレコードをシステムレジストリに追加することで、オーディオエンドポイントデバイス304群のうちの特定のオーディオエンドポイントデバイス(マイクロフォン)の各々と関連して登録される。インストール後、グローバルエフェクトオーディオ処理オブジェクトGFX sAPO502は、オーディオストリームミキシング・処理モジュール302により、オーディオエンドポイントデバイス(マイクロフォン)から入力されメモリバッファ303を介して得られるオーディオストリームに自動的に適用される。一方、ローカルエフェクトオーディオ処理オブジェクトLFX sAPO501は、オーディオエンドポイントデバイス(マイクロフォン。これに対してローカルエフェクトオーディオ処理オブジェクトLFX sAPO501及びグローバルエフェクトオーディオ処理オブジェクトGFX sAPO502がインストールされる。)と関連する新たなオーディオストリームの各々の処理のために利用される。暗号化のアルゴリズムの一部又は全部は、オーディオ処理モジュールsAPO内で実現される。具体的には、暗号化はローカルエフェクトオーディオ処理オブジェクトLFX sAPO501により、又はグローバルエフェクトオーディオ処理オブジェクトGFX sAPO502により独立して行われる。あるいは、暗号化は、ローカルエフェクトオーディオ処理オブジェクトLFX sAPO501及びグローバルエフェクトオーディオ処理オブジェクトGFX sAPO502の組み合わせにより行われる。暗号化アルゴリズムについては、AES、DES、GOST 28147-89等の対称暗号化アルゴリズムや、RSA、El-Gamal等の非対称暗号化アルゴリズムを適用することができる。対称暗号化アルゴリズムでは、暗号化と復号の際に、同一の鍵を用いなければならない。一方、非対称暗号化アルゴリズムでは、公開鍵と秘密鍵のペアを使用する。公開鍵は、(秘密でない)公衆通信路により伝送され、データの暗号化に使用される。そして、データの復号に、秘密鍵が使用される。オーディオストリーム暗号保護モジュール500は、これらの鍵を生成し、これらを保持し、暗号化のためにこれらの鍵をオーディオ処理モジュールsAPOに伝送する。
オーディオストリーム暗号保護モジュール500の助けを借りて暗号化されたデータは、メモリバッファ503に到達する。メモリバッファ503群{メモリバッファ 1, ..., メモリバッファ N}の各メモリバッファは、その時点において任意のオーディオエンドポイントデバイス(マイクロフォン)にアクセスするプロセス300群{プロセス 1, ..., プロセス N}のプロセスと対応する。メモリバッファは、オーディオストリームの生成を要求した各プロセスに対し、オーディオストリーム制御モジュール301により生成される。メモリバッファ503の助けを借りて、 オーディオストリームミキシング・処理モジュール302はエンドポイントデバイス(マイクロフォン)から来たオーディオデータをプロセスへ伝送する。実際のところ、メモリバッファ503はエンドポイントデバイス(マイクロフォン)からプロセス300への経路上でオーディオデータの漏洩が最も起こりやすい場所である。メモリバッファ503からのオーディオデータを取得するため、プロセス300はAPI関数、特にWASAPI関数を用いる。これにより、プロセス300はメモリバッファ503からオーディオデータを読み込み、例えば、データのその後の処理及び利用のため、読み込んだオーディオデータをローカルメモリバッファ503に移動させる。オーディオデータの復号を達成するため、オーディオストリーム暗号保護モジュール500は、上記API関数(これによりプロセス300がメモリバッファ503からオーディオデータを読み込む。)呼び出しのインターセプターをインストールする。これらのインターセプターは、RPCトラフィックフィルタモジュール310によりIDが決定されたプロセスに対してのみ、オーディオストリーム暗号保護モジュール500によってインストールされる。例えば、図5に示すように、プロセスID(PID) Nを持つプロセスNに対して、API関数504呼び出しのインターセプターがインストールされる。
API関数の呼び出しをその途中で捉える(インターセプトする)ための技術には、従来のシステム及び方法を用いることができ、本願の文脈において適用可能な様々な手法を導入することができる。これらの手法の1つは、サードパーティのDLLのプロセスでの任意のAPI関数の呼び出しが、関数インポートテーブルを介して実行されること基づく。したがって、API関数504を呼び出すインターセプターをインストールするため、オーディオストリーム暗号保護モジュール500は、インポートテーブルと、呼び出しをインターセプトする必要のあるインポートテーブル内のAPI関数とを探し出し、見つかったインポートテーブル内で、ポインタを元のAPI関数の代わりに他の関数に配置する。ポインタが元のAPI関数の代わりに配置された上記他の関数は、修正された元のAPI関数であり、この関数により、プロセスNがメモリバッファNからオーディオデータを読み出すことを可能にする。この他の関数は、オーディオストリーム暗号保護モジュール500によって実行される、読み出されているオーディオデータ解読ルーチンの呼び出しを付加的に含んでいることで区別される。このルーチンが終了すると、復号化されたオーディオデータがプロセスNに伝送される。
1つの例示的な態様では、例えばメモリバッファNに位置するオーディオデータの復号を、インターセプターなしで行うことができる。プロセスNは、特別なプログラムインタフェース(例えば、ソフトウェア開発キット(SDK)の形で提供されるKL API(カスペルスキーLabアプリケーションプログラミングインターフェース))によって、オーディオデータ62の保護された伝送のためのサブシステムと独立にやり取りすることができる。したがって、プロセスNは、オーディオストリーム暗号保護モジュール500によって実行される復号化ルーチンを独立して呼び出すことができる。また、これに加えて、オーディオデータの暗号化のためのルーチン及びオーディオデータの暗号化及び復号のために使用される鍵の生成及び交換のためのルーチンの呼び出しのため、オーディオストリーム暗号保護モジュール500とやり取りをすることもできる。加えて、プロセスNにおいて、オーディオエンドポイントデバイス(マイクロフォン)から来るオーディオデータのセキュリティを保証するため、オーディオデータ62の保護された伝送を行うサブシステムの他のコンポーネントとやり取りをすることもできる。
オーディオデータ62の保護された伝送のサブシステム内のアクセス認証モジュール312は、暗号保護モジュール500及びRPCトラフィックフィルタモジュール310と接続され、RPCトラフィックフィルタモジュール310によって決定されたプロセスIDによるプロセスの認証をチェックするよう設計される。これにより、オーディオエンドポイントデバイス(マイクロフォン)へのアクセスの認証がなされる。したがって、1つの例示的な態様におけるアクセス認証モジュール312を用いることにより、オーディオストリーム暗号保護モジュール500は、オーディオエンドポイントデバイス(マイクロフォン)へのアクセス権が認証されたとする、上述したアクセス認証モジュール312による検証の結果識別されたプロセスにのみ、API関数呼び出しのインターセプターを生成することができる。この結果、不正プロセスには、暗号化されたオーディオデータがオーディオストリームミキシング・処理モジュール302から送られる。
図6は、例示的な態様に係る、マイクロフォンからプロセスへの、オーディオデータの保護された伝送の方法を示すフローチャートである。このフローチャートに示すように、ステップ601においては、オーディオストリーム制御モジュール301とオーディオストリームミキシング・処理モジュール302の間のRPCトラフィックを監視するよう設計されたRPCトラフィックフィルタモジュール310に、オーディオエンドポイントデバイス(マイクロフォン)と関連するオーディオストリーム生成のためのRPC要求を追跡させ、上記マイクロフォンへのアクセスを取得する全てのプロセスのIDを決定させる。
次に、ステップ602において、オーディオストリームミキシング・処理モジュール302の全てのオーディオストリームのオーディオデータをオーディオストリーム暗号保護モジュール500により暗号化する。ここで、オーディオデータの暗号化のため、オーディオストリーム暗号保護モジュール500はオーディオ処理モジュール(APO)を使用する。なお、オーディオ処理モジュールは、グローバルエフェクトオーディオ処理モジュールGFX sAPO502及びローカルエフェクトオーディオ処理モジュールLFX sAPO502の2種類のオブジェクトに細分される。
オーディオストリームミキシング・処理モジュール302は、暗号化されたオーディオデータをメモリバッファ503に置く。メモリバッファ503群{メモリバッファ1, ..., メモリバッファN}の各メモリバッファは、その時点で任意のオーディオエンドポイントデバイス(マイクロフォン)にアクセスするプロセス300群{プロセス1, ..., プロセスN}のプロセスと対応する。
オーディオデータの解読のため、ステップ603において、暗号保護モジュール500に、対応するメモリバッファ503からオーディオデータを読み出すAPI関数呼び出しのインターセプターをインストールさせる。ここで、上記メモリバッファ503は、オーディオエンドポイントデバイス(マイクロフォン)からプロセス300へのオーディオデータの伝送のためオーディオストリームミキシング・処理モジュール302によって使用されるものである。暗号保護モジュール500によるインターセプターのインストールは、ステップ601においてRPCトラフィックフィルタモジュールによりそのIDが決定されたプロセス300に対して行われる。
1つの例示的な態様では、オーディオストリーム暗号保護モジュール500は、API関数呼び出しのインターセプターをインストールする。ただし、インストールは、アクセス認証モジュール312によるチェックの結果、オーディオエンドポイントデバイス(マイクロフォン)へのアクセスが認証されたとして識別されたプロセス300群のプロセスに対してのみ行われる。アクセス認証モジュール312は、RPCトラフィックフィルタモジュール310により決定されたIDに基づいて、オーディオエンドポイントデバイス(マイクロフォン)へのアクセスのためのプロセス300の認証のチェックを実行する。
そして、ステップ604において、上述のインターセプターが、オーディオストリーム暗号保護モジュール500によって実行されるオーディオデータの復号ルーチンの呼び出しに対して用いられ、その後、復号されたオーディオデータをプロセスに送信する。
図7は、本態様に係るシステムと方法が実装できる汎用コンピュータ・システム(パーソナル・コンピュータやサーバ等の例を示している。図示の通り、コンピュータ・システム20は、CPU21と、システムメモリ22と、CPU21と関連付けられたメモリを含む様々なシステムコンポーネントを接続するシステムバス23とを含む。システムバス23は、バスメモリ又は、バスメモリコントローラ、周辺バス、及びローカルバスを次々含む従来より公知のあらゆるバス構造としても実現され、これらはどのような他のバスアーキテクチャとも通信可能である。システムメモリは、リードオンリーメモリ(ROM)24及びランダムアクセスメモリ(RAM)25を含む。基本的な入出力システム(BIOS)26は、ROM24の使用によってオペレーティングシステムをロードする際等、パーソナル・コンピュータ20の要素間の情報の伝達を担う基本的な手順を含む。
パーソナル・コンピュータ20は、データの読み書きのためのハードディスク27、取り外し可能な磁気ディスク29の読み書きのための磁気ディスクドライブ28、及びCD−ROM、DVD−ROM、その他の光学メディア等の光学ディスク31の読み書きのための光学式ドライブ30を含む。ハードディスク27、磁気ディスクドライブ28、及び光学式のドライブ30は、ハードディスクインターフェース32、磁気ディスクインターフェース33、及び光学式のドライブインターフェース34それぞれを横切るシステムバス23と接続される。ドライブ及び対応するコンピュータ情報メディアは、コンピュータ命令、データ構造体、プログラムモジュール、及びパーソナル・コンピュータ20の他のデータのストレージのための電源依存のモジュールである。
本発明は、ハードディスク27、取り外し可能な磁気ディスク29及び取り外し可能な光ディスク31を用いるシステムの実装を提供するものであるが、コンピュータに読み込み可能な形式でデータを保存できるフラッシュメモリカード、デジタルのディスク、ランダムアクセスのメモリ(RAM)等の他のタイプのコンピュータ情報メディア56を使用してもよいことに留意されたい。また、これはコントローラ55を介してシステムバス23に接続される。
コンピュータ20は、ファイルシステム36を有し、ここに記録されたオペレーティングシステム35が保持される。ここで、ファイルシステム36は、図2に示すオーディオサブストリーム60と、図3に示す、マイクロフォンのデータへのアクセスを制御するサブシステム61と、オーディオデータ62の伝送を保護するサブシステムと、を含む。また、コンピュータ20は、追加のプログラムアプリケーション37、他のプログラムモジュール38、及びプログラムデータ39を含む。ユーザは、入力デバイス(キーボード40、マウス42)を用いてコマンドと情報をパーソナル・コンピュータ20に入力することができる。他の入力デバイス(不図示):マイクロフォン、ジョイスティック、ゲームコントローラ、スキャナ等を用いることもできる。そのような入力デバイスは、通常、システムバスに接続しているシリアルポート46を通じてコンピュータ・システム20に差し込まれるが、それらは、他の方法、例えばパラレル・ポート、ゲームポート、又は一般的なシリアルバス(USB)などにより接続してもよい。ディスプレイ機器のモニタ47又は他のタイプは、また、ビデオアダプタ48等のインターフェースと交差するシステムバス23に接続している。モニタ47に加えて、パーソナル・コンピュータは、スピーカー、プリンタ等の他の周辺の出力デバイス(不図示)を接続できる。
パーソナル・コンピュータ20は、1つ又は複数のリモートコンピュータ49とのネットワーク接続を用いて、ネットワーク環境で操作することができる。リモートコンピュータ(又はコンピュータ)49は、図5に示すように、パーソナル・コンピュータ20の性質として説明した上述の要素全ての大多数を有するパーソナル・コンピュータ又はサーバでもある。ルータ、ネットワークステーション、ピア接続の機器、又は他のネットワークノード等の他の機器もまた、かかるコンピュータ・ネットワークで存在し得るものである。
ネットワーク接続は、ローカルエリアコンピュータ・ネットワーク(LAN)50及びワイドエリアコンピュータ・ネットワーク(WAN)を形成することができる。そのようなネットワークは、企業のコンピュータ・ネットワーク及び社内ネットワークで利用され、それらはたいていインターネットにアクセスすることができる。LAN又はWANネットワークにおいて、パーソナルコンピュータ20は、ネットワークアダプタ又はネットワークインターフェース51に交差するローカルエリアネットワーク50に接続されている。ネットワークが用いられる時には、パーソナルコンピュータ20は、通信にインターネット等のワイドエリアコンピュータ・ネットワークを実現するために、モデム54又は他のモジュールを使用することができる。内部又は外部の機器であるモデム54は、シリアルポート46によりシステムバス23と接続される。かかるネットワーク接続は、単なる一例であり、ネットワークの正確な構成を示すものではない。すなわち、技術の通信モジュールによって、あるコンピュータから他のコンピュータへの接続を確立する他の方法(Bluetooth接続等)もあることに留意されたい。
様々な実施形態において、ハードウェア、ソフトウェア、ファームウェア、又はこれらのあらゆる組み合わせにおいて、ここで説明されたシステム及びメソッドを実施し得る。ソフトウェアにおいて実装される場合は、メソッドは非一時的コンピュータ可読媒体の1つ又は複数の命令又はコードとして保存され得る。コンピュータ可読媒体は、データストレージを含む。あくまでも例であり限定するものではないが、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD−ROM、フラッシュメモリ、若しくは他のタイプの電気、磁気、光学式の記憶媒体、又はその他のメディアであってもよい。すなわち、これらによって命令又はデータ構造体という形で、要求されたプログラムコードを運ぶか又は保存することができ、汎用コンピュータのプロセッサによってアクセスすることができる。
様々な実施形態で、本発明のシステム及びメソッドが、モジュールとして実装され得る。ここで用語「モジュール」は、実世界の機器、コンポーネント、又はハードウェアを用いて実装されたコンポーネント配置であり、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)等の、又は例えばモジュールの機能を実行するマイクロプロセッサシステムや命令セットによる等、ハードウェアとソフトウェアの組み合わせとして実装され得る。これらは、実行中にマイクロプロセッサシステムを特定の機器に変換する。モジュールは、ハードウェア単体により促進される一定の機能とハードウェア及びソフトウェアの組み合わせによって促進される他の機能という2つの組み合わせとして実施されてもよい。モジュールの少なくとも一部又は全部は、汎用コンピュータのプロセッサにおいて実行できる(図5において詳述したもの等)。したがって、各モジュールは様々な適当な構成で実現することができて、ここに例示した特定の実装に限られるものではない。
なお、実施形態の通常の機能のうちの全てをここで開示しているわけではない。本発明の何れの実施形態を開発する場合においてでも、開発者の具体的な目標を達成するためには多くの実施に係る特別な決定が必要であり、これらの具体的な目標は実施形態及び開発者ごとに異なることに留意されたい。そのような開発努力は、複雑で時間を要するものであるが、本発明の利益を享受し得る当業者にとってはエンジニアリングの日常であると理解されたい。
さらに、本明細書で使用される用語又は表現は、あくまでも説明のためであり、限定するものではない。つまり、関連技術の熟練の知識と組み合わせて、本明細書の用語又は表現は、ここに示される教示及び指針に照らして当業者によって解釈されるべきであると留意されたし。明示的な記載がない限り、明細書又は特許請求の範囲内における任意の用語に対して、珍しい又は特別な意味を帰することは意図されていない。
本明細書で開示された様々な態様は、例示のために本明細書に言及した既知のモジュールの、現在及び将来の既知の均等物を包含する。さらに、態様及び用途を示し、説明してきたが、本明細書に開示された発明の概念から逸脱することなく、上述したよりも多くの改変が可能であることが、この開示の利益を有する当業者には明らかであろう。

Claims (21)

  1. オーディオデータへの不正アクセスを防止する方法であって、
    受信工程と、決定工程と、割り当て工程と、処理及び暗号化工程と、記憶工程と、インストール工程と、復号工程とを備え、
    前記受信工程では、コンピュータのプロセッサにより、複数のソフトウェアプロセスのうちの1つのソフトウェアプロセスから要求を受信して、オーディオエンドポイントデバイスからオーディオストリームを取得し、
    前記決定工程では、前記プロセッサにより、前記1つのソフトウェアプロセスのプロセスIDを決定し、
    前記割り当て工程では、前記プロセッサにより、複数のデータバッファのうちの1つのデータバッファを、前記プロセスIDに基づいて前記1つのソフトウェアプロセスに割り当て、
    前記処理及び暗号化工程では、少なくとも1つのオーディオ処理オブジェクトにより、前記オーディオエンドポイントデバイスから受信したオーディオデータを処理及び暗号化し、前記オーディオデータは前記要求されたオーディオストリームと関連するものであって、
    記記憶工程では、前記プロセッサにより、前記1つのソフトウェアプロセスに対して割り当てられたデータバッファに前記暗号化されたオーディオデータを記憶し、
    前記インストール工程では、前記プロセスIDに基づいて、前記プロセスIDに対応する前記1つのソフトウェアプロセスに対してAPI関数呼び出しのインターセプターをインストールし
    前記インターセプターは、前記1つのソフトウェアプロセスに対してのみ、前記割り当てられたデータバッファの暗号化されたオーディオデータにアクセスして前記暗号化されたオーディオデータを復号するよう構成されるようにし
    前記復号工程では、前記1つのソフトウェアプロセスが、前記インターセプターを用いて前記暗号化されたオーディオデータを復号する、方法。
  2. 前記コンピュータのプロセッサにより、複数のソフトウェアプロセスからの複数の要求をそれぞれ受信し、前記エンドポイントデバイスを含む1つまたは複数のエンドポイントデバイスからのオーディオストリームを取得する工程と、
    前記プロセッサにより、前記複数のソフトウェアプロセスに対して前記複数のデータバッファを割り当てる工程と、
    前記要求されたオーディオストリームの各々と関連したオーディオデータを暗号化する工程と、
    前記割り当てられたデータバッファに、前記要求されたオーディオストリームそれぞれに対応する前記暗号化されたオーディオデータをそれぞれ記憶する工程と、
    API関数呼び出しの各インターセプターを備えて構成される前記複数のソフトウェアプロセスの少なくとも一部により、前記暗号化されたオーディオデータを復号する工程と、をさらに備える、請求項1に記載の方法。
  3. 記プロセッサにより、前記プロセスIDデータに基づいて、前記オーディオストリームの取得を要求する前記1つのソフトウェアプロセスが不正なソフトウェアプロセスであるかどうかを決定する工程と、
    前記1つのソフトウェアプロセスが不正なソフトウェアではないと前記プロセッサが判断した場合にのみ、前記インターセプターをインストールする工程と、をさらに備える、請求項1に記載の方法。
  4. 前記オーディオストリームの取得を要求する前記ソフトウェアプロセスが不正なソフトウェアであるかどうかを決定する前記工程は、
    前記プロセスが信頼できるものかどうかを決定するため前記要求をしたプロセスのアクティビティを監視することと、
    既知のウイルスのシグネチャのデータベースにアクセスし、前記要求をしたプロセスのシグネチャを比較することによって当該要求しているプロセスをスキャンすることと、
    前記要求をしたプロセスによる前記オーディオストリームへのアクセスを許可するかどうかのコマンドをユーザから受信することと、
    の少なくとも1つを含む、請求項3に記載の方法。
  5. 前記オーディオエンドポイントデバイスから受信した前記オーディオデータを個別のデータバッファに直接記憶する工程と、
    前記オーディオデータを暗号化し、前記IDデータが、前記1つのソフトウェアプロセスが不正なソフトウェアプロセスではないことを示したあとに、当該1つのソフトウェアプロセスによる前記オーディオデータへのアクセスを許可する工程と、をさらに備える、請求項3に記載の方法。
  6. 前記少なくとも1つのオーディオ処理オブジェクトによる前記オーディオデータの前記処理工程は、前記複数のソフトウェアプロセスに対して割り当てられたグローバルエフェクトオーディオ処理オブジェクト及び前記1つのソフトウェアプロセスと関連するローカルエフェクトオーディオ処理オブジェクトとにより、前記オーディオデータを処理することを備える、請求項1に記載の方法。
  7. 前記オーディオデータを暗号化する暗号化工程は、対称暗号化アルゴリズムと非対称暗号化アルゴリズムのうちの1つによって前記オーディオデータを暗号化することを備える、請求項1に記載の方法。
  8. オーディオデータへの不正アクセスを防止するシステムであって、
    電子メモリ内の複数のデータバッファと、プロセッサとを備え、
    前記プロセッサは、
    複数のソフトウェアプロセスのうちの1つのソフトウェアプロセスから要求を受信して、オーディオエンドポイントデバイスからオーディオストリームを取得し、
    前記1つのソフトウェアプロセスのプロセスIDデータを決定し、
    前記プロセッサにより、複数のデータバッファのうちの1つのデータバッファを、前記プロセスIDに基づいて前記1つのソフトウェアプロセスに割り当て、
    少なくとも1つのオーディオ処理オブジェクトにより、前記オーディオエンドポイントデバイスから受信したオーディオデータを処理及び暗号化し、前記オーディオデータは前記要求されたオーディオストリームと関連するものであって、
    前記1つのソフトウェアプロセスに対して、前記割り当てられたデータバッファに前記暗号化されたオーディオデータを記憶し、
    前記プロセスIDに基づいて、前記プロセスIDに対応する前記1つのソフトウェアプロセスに対してAPI関数呼び出しのインターセプターをインストールし、
    前記インターセプターは、前記1つのソフトウェアプロセスに対してのみ、前記割り当てられたデータバッファの暗号化されたオーディオデータにアクセスして前記暗号化されたオーディオデータを復号するよう構成されるようにし
    前記1つのソフトウェアプロセスが、前記インターセプターを用いて前記暗号化されたオーディオデータを復号するよう構成される、システム。
  9. 前記プロセッサはさらに、
    複数のソフトウェアプロセスからの複数の要求をそれぞれ受信し、前記エンドポイントデバイスを含む1つまたは複数のエンドポイントデバイスからのオーディオストリームを取得し、
    前記複数のソフトウェアプロセスに対して前記複数のデータバッファを割り当て、
    前記要求されたオーディオストリームの各々と関連したオーディオデータを暗号化し、
    前記割り当てられたデータバッファに、前記要求されたオーディオストリームそれぞれに対応する前記暗号化されたオーディオデータをそれぞれ記憶し、
    API関数呼び出しのインターセプターを備えて構成される前記複数のソフトウェアプロセスの少なくとも一部により、前記暗号化されたオーディオデータを復号するよう構成される、請求項8に記載のシステム。
  10. 前記プロセッサはさらに
    記プロセスIDデータに基づいて、前記オーディオストリームの取得を要求する前記1つのソフトウェアプロセスが不正なソフトウェアプロセスであるかどうかを決定し、
    前記1つのソフトウェアプロセスが不正なソフトウェアではないと前記プロセッサが判断した場合にのみ、前記1つのソフトウェアプロセスに対する前記API関数を呼び出す前記インターセプターをインストールするよう構成される、請求項8に記載のシステム。
  11. 前記プロセッサはさらに、
    前記プロセスが信頼できるものかどうかを決定するため前記要求をしたプロセスのアクティビティを監視することと、
    既知のウイルスのシグネチャのデータベースにアクセスし、前記要求をしたプロセスのシグネチャを比較することによって当該要求しているプロセスをスキャンすることと、
    前記要求をしたプロセスによる前記オーディオストリームへのアクセスを許可するかどうかのコマンドをユーザから受信することと、の少なくとも1つを実行することにより、
    前記オーディオストリームの取得を要求する前記ソフトウェアプロセスが不正なソフトウェアであるかどうかを決定するよう構成される、請求項10に記載のシステム。
  12. 前記プロセッサはさらに、
    前記オーディオエンドポイントデバイスから受信した前記オーディオデータを個別のデータバッファに直接記憶し、
    前記オーディオデータを暗号化し、前記IDデータが、前記1つのソフトウェアプロセスが不正なソフトウェアプロセスではないことを示したあとに、当該1つのソフトウェアプロセスによる前記オーディオデータへのアクセスを許可するよう構成される、請求項10に記載のシステム。
  13. 前記プロセッサはさらに、まず、前記複数のソフトウェアプロセスに対して割り当てられたグローバルエフェクトオーディオ処理オブジェクトにより前記オーディオデータを処理し、次に、前記1つのソフトウェアプロセスと関連するローカルエフェクトオーディオ処理オブジェクトにより前記オーディオデータを処理することで、前記少なくとも1つのオーディオ処理オブジェクトにより前記オーディオデータを処理するよう構成される、請求項8に記載のシステム。
  14. 前記プロセッサはさらに、対称暗号化アルゴリズムと非対称暗号化アルゴリズムのうちの1つによって前記オーディオデータを暗号化するよう構成される、請求項8に記載のシステム。
  15. オーディオデータへの不正なアクセスを防止するためのコンピュータ実行可能命令を記憶する、非一時的コンピュータ可読記憶媒体であって、
    受信命令と、決定命令と、割り当て命令と、処理及び暗号化命令と、記憶命令と、インストール命令と、復号命令とを備え、
    前記受信命令は、複数のソフトウェアプロセスのうちの1つのソフトウェアプロセスから要求を受信させて、オーディオエンドポイントデバイスからオーディオストリームを取得させ、
    前記決定命令は、前記1つのソフトウェアプロセスに対してプロセスIDを決定させ、
    前記割り当て命令は、複数のデータバッファのうちの1つのデータバッファを、前記プロセスIDに基づいて前記1つのソフトウェアプロセスに割り当てさせ、
    前記処理及び暗号化命令は、少なくとも1つのオーディオ処理オブジェクトにより、前記オーディオエンドポイントデバイスから受信したオーディオデータを処理及び暗号化させ、前記オーディオデータは前記要求されたオーディオストリームと関連するものであって、
    記記憶命令は、前記1つのソフトウェアプロセスに対して、前記割り当てられたデータバッファに前記暗号化されたオーディオデータを記憶させ、
    前記インストール命令は、前記プロセスIDに基づいて、前記プロセスIDに対応する前記1つのソフトウェアプロセスに対してAPI関数呼び出しのインターセプターをインストールさせ、
    前記インターセプターは、前記1つのソフトウェアプロセスに対してのみ、前記割り当てられたデータバッファの暗号化されたオーディオデータにアクセスして前記暗号化されたオーディオデータを復号するよう構成されるようにし
    前記復号命令は前記1つのソフトウェアプロセスが、前記インターセプターを用いて前記暗号化されたオーディオデータを復号させる、非一時的コンピュータ可読記憶媒体。
  16. 複数のソフトウェアプロセスからの複数の要求をそれぞれ受信させ、前記エンドポイントデバイスを含む1つまたは複数のエンドポイントデバイスからのオーディオストリームを取得させる命令と、
    前記複数のソフトウェアプロセスに対して前記複数のデータバッファを割り当てさせる命令と、
    前記要求されたオーディオストリームの各々と関連したオーディオデータを暗号化させる命令と、
    前記割り当てられたデータバッファに、前記要求されたオーディオストリームそれぞれに対応する前記暗号化されたオーディオデータをそれぞれ記憶させる命令と、
    API関数呼び出しの各インターセプターを備えて構成される前記複数のソフトウェアプロセスの少なくとも一部により、前記要求されたオーディオストリームの各々についての前記暗号化されたオーディオデータを復号させる命令とをさらに備える、請求項15に記載の非一時的コンピュータ可読記憶媒体。
  17. 記プロセスIDデータに基づいて、前記オーディオストリームの取得を要求する前記1つのソフトウェアプロセスが不正なソフトウェアプロセスであるかどうかを決定させる命令と、
    前記1つのソフトウェアプロセスが不正なソフトウェアではないと前記プロセッサが判断した場合にのみ、前記1つのソフトウェアプロセスに対する前記API関数を呼び出す前記インターセプターをインストールさせる命令と、をさらに備える、請求項15に記載の非一時的コンピュータ可読記憶媒体。
  18. 前記オーディオストリームの取得を要求する前記ソフトウェアプロセスが不正なソフトウェアであるかどうかを決定させる前記命令は、
    前記プロセスが信頼できるものかどうかを決定するため前記要求をしたプロセスのアクティビティを監視させることと、
    既知のウイルスのシグネチャのデータベースにアクセスさせ、前記要求をしたプロセスのシグネチャを比較することによって当該要求しているプロセスをスキャンさせることと、
    前記要求をしたプロセスによる前記オーディオストリームへのアクセスを許可するかどうかのコマンドをユーザから受信させることと、
    の少なくとも1つを含む、請求項17に記載の非一時的コンピュータ可読記憶媒体。
  19. 前記オーディオエンドポイントデバイスから受信した前記オーディオデータを個別のデータバッファに直接記憶させる命令と、
    前記オーディオデータを暗号化させ、前記IDデータが、前記1つのソフトウェアプロセスが不正なソフトウェアプロセスではないことを示したあとに、当該1つのソフトウェアプロセスによる前記オーディオデータへのアクセスを許可させる工程と、をさらに備える、請求項17に記載の非一時的コンピュータ可読記憶媒体。
  20. 前記少なくとも1つのオーディオ処理オブジェクトにより前記オーディオデータを処理させる前記処理命令は、前記複数のソフトウェアプロセスに対して割り当てられたグローバルエフェクトオーディオ処理オブジェクト及び前記1つのソフトウェアプロセスと関連するローカルエフェクトオーディオ処理オブジェクトとにより、前記オーディオデータを処理させることを備える、請求項17に記載の非一時的コンピュータ可読記憶媒体。
  21. 前記オーディオデータを暗号化する暗号化命令は、対称暗号化アルゴリズムと非対称暗号化アルゴリズムのうちの1つによって前記オーディオデータを暗号化させることを備える、請求項17に記載の非一時的コンピュータ可読記憶媒体。
JP2016161364A 2016-04-25 2016-08-19 マイクロフォンからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法 Active JP6328707B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
RU2016116002A RU2628925C1 (ru) 2016-04-25 2016-04-25 Система и способ защищенной передачи аудиоданных от микрофона к процессам
RU2016116002 2016-04-25
US15/201,887 US9866539B2 (en) 2016-04-25 2016-07-05 System and method for protecting transmission of audio data from microphone to application processes
US15/201,887 2016-07-05

Publications (2)

Publication Number Publication Date
JP2017199339A JP2017199339A (ja) 2017-11-02
JP6328707B2 true JP6328707B2 (ja) 2018-05-23

Family

ID=59744955

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016161364A Active JP6328707B2 (ja) 2016-04-25 2016-08-19 マイクロフォンからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法

Country Status (4)

Country Link
US (1) US9866539B2 (ja)
JP (1) JP6328707B2 (ja)
CN (1) CN107305613B (ja)
RU (1) RU2628925C1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140013B (zh) * 2016-09-05 2020-07-24 华为技术有限公司 音频处理方法及设备
US10237268B2 (en) * 2016-11-02 2019-03-19 Google Llc Secure passcode processing device
CN108196817B (zh) * 2017-12-29 2021-01-01 广州酷狗计算机科技有限公司 音频识别方法、装置及存储介质
RU2695492C1 (ru) * 2018-09-12 2019-07-23 Общество с ограниченной ответственностью "ХайТэк" Модуль защищенной аудиосвязи для ip-телефона
EP3961436A1 (en) * 2020-08-28 2022-03-02 Siemens Aktiengesellschaft Methods and systems for controlling access to at least one computer program
CN113779546B (zh) * 2021-06-01 2024-03-26 武汉深之度科技有限公司 一种录音权限管理方法、计算设备及存储介质
US20250094245A1 (en) * 2023-09-14 2025-03-20 Capital One Services, Llc Generating a modified application programming interface response including a modified pointer associated with an encrypted value
KR102767887B1 (ko) * 2024-09-03 2025-02-14 주식회사 프라임아이씨티 디지털 무선 마이크 시스템

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5893926A (en) * 1995-12-08 1999-04-13 International Business Machines Corporation Data buffering technique in computer system
US6766458B1 (en) * 2000-10-03 2004-07-20 Networks Associates Technology, Inc. Testing a computer system
US7231269B2 (en) * 2003-03-20 2007-06-12 Microsoft Corporation Recovery upon access violation by audio processing object
EP1706951A1 (de) * 2003-12-30 2006-10-04 Sennheiser electronic GmbH & Co. KG Digitales mikrofon
KR20050075877A (ko) * 2004-01-16 2005-07-25 삼성전자주식회사 데이터 재전송 장치 및 방법
US20050198061A1 (en) 2004-02-17 2005-09-08 David Robinson Process and product for selectively processing data accesses
US7502481B2 (en) * 2004-08-31 2009-03-10 Microsoft Corporation Microphone with ultrasound/audible mixing chamber to secure audio path
US8463612B1 (en) 2005-11-08 2013-06-11 Raytheon Company Monitoring and collection of audio events
US8650620B2 (en) * 2010-12-20 2014-02-11 At&T Intellectual Property I, L.P. Methods and apparatus to control privileges of mobile device applications
NL1039066C2 (nl) 2011-09-23 2013-05-06 Anna Maria Johanna Vreede Internet transactie beveiliging.
US9298917B2 (en) * 2011-09-27 2016-03-29 Redwall Technologies, Llc Enhanced security SCADA systems and methods
US9769123B2 (en) * 2012-09-06 2017-09-19 Intel Corporation Mitigating unauthorized access to data traffic
RU2546585C2 (ru) * 2013-08-07 2015-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ предоставления прав доступа приложениям к файлам компьютера
EP3080974A4 (en) * 2013-12-10 2018-01-10 VYSK Communications Inc. Microphone disruption apparatus and method
US10103872B2 (en) * 2014-09-26 2018-10-16 Intel Corporation Securing audio communications

Also Published As

Publication number Publication date
RU2628925C1 (ru) 2017-08-22
US20170310648A1 (en) 2017-10-26
CN107305613A (zh) 2017-10-31
US9866539B2 (en) 2018-01-09
CN107305613B (zh) 2020-05-29
JP2017199339A (ja) 2017-11-02

Similar Documents

Publication Publication Date Title
JP6328707B2 (ja) マイクロフォンからアプリケーションプロセスへのオーディオデータの伝送を保護するシステム及びその方法
US11775634B2 (en) Computing platform security methods and apparatus
US11848753B2 (en) Securing audio communications
US10073972B2 (en) Computing platform security methods and apparatus
US20160328562A1 (en) Computing platform security methods and apparatus
JP2015531944A (ja) データトラフィックへの未認証アクセスの軽減
JP6307126B2 (ja) マイクロフォンデータへの不正アクセスを防止するシステム及びその方法
EP3239887B1 (en) System and method for protecting transmission of audio data from microphone to application processes

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180418

R150 Certificate of patent or registration of utility model

Ref document number: 6328707

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250