2019-700209
クラウドベースのアプリケーションセキュリティサービスの提供方法及びシステム
- 審判番号
- 2019-700209
- 法域
- 特許
- 審判種別
- 異議申立(異議の決定)
- 出願番号
- 特願2017-507698外部サイト(J-PlatPat)へ移動します
- 請求日
- 2019年03月18日
- 審決日
- 2019年06月24日
- 公報発行日
- 2019年08月30日
- 結論
- 維持
- 当事者
- 分類
- P1652.121-Y (G06F)
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項
- データ出所
- 審決公報(SGML)
事件の表示
結論
理由
目次 ▾ 13項目
理 由
1.手続の経緯
特許第6392446号の請求項1~17に係る特許についての出願は,平成27年 8月13日に出願され,平成30年 8月31日にその特許権の設定登録がされ,平成30年 9月19日に特許掲載公報が発行された。その後,請求項1~3,9~11に係る特許に対し,平成31年 3月18日に特許異議申立人 石井 悠太(以下,単に「申立人」という。)は,特許異議の申立てを行った。
2.本件発明
特許第6392446号の請求項1~3,9~11の特許に係る発明(以下,それぞれ「本件特許1」,「本件特許2」,「本件特許3」,「本件特許9」,「本件特許10」,「本件特許11」という。)は,それぞれ,その特許請求の範囲の請求項1~3,9~11に記載された事項により特定される次のとおりのものである。
(本件特許1)
「【請求項1】クライアント装置とクラウド装置とを含むセキュリティサービス提供システムにおける、クラウドベースのアプリケーションセキュリティサービスの提供方法であって、前記クライアント装置において、アプリケーションソースをコンパイルしてバイナリを生成するバイナリ生成ステップと、前記クライアント装置において、前記バイナリ生成ステップで生成されたバイナリを含む実行パッケージを構成する実行パッケージ構成ステップと、前記クライアント装置において、前記実行パッケージ構成ステップで構成された実行パッケージを前記クラウド装置にアップロードするアップロードステップと、前記クラウド装置において、前記アップロードステップでアップロードされた実行パッケージを分解して、バイナリを抽出する実行パッケージ分解ステップと、前記クラウド装置において、複数のセキュリティライブラリのいずれかのセキュリティライブラリを、前記実行パッケージ分解ステップで抽出されたバイナリに適用してセキュリティ適用バイナリを生成するセキュリティライブラリ適用ステップと、前記クラウド装置において、前記セキュリティライブラリ適用ステップで生成されたセキュリティ適用バイナリを含むセキュリティ適用実行パッケージを再構成する実行パッケージ再構成ステップと、前記クライアント装置において、前記実行パッケージ再構成ステップで再構成されたセキュリティ適用実行パッケージをダウンロードするダウンロードステップと、を含むことを特徴とする、クラウドベースのアプリケーションセキュリティサービスの提供方法。」
(本件特許2)
「【請求項2】前記セキュリティライブラリには、整合性検証のためのハッシュ検証機能が含まれており、前記クラウド装置において、前記セキュリティライブラリにおけるハッシュ検証機能のために、前記実行パッケージ分解ステップで抽出されたバイナリに対してハッシュコードを生成するハッシュコード生成ステップをさらに含むことを特徴とする、請求項1に記載のクラウドベースのアプリケーションセキュリティサービスの提供方法。」
(本件特許3)
「【請求項3】前記セキュリティライブラリには、前記ハッシュ検証機能のほかに、アンチデバッグ機能、アンチダンプ機能、または、アンチデバッグ機能及びアンチダンプ機能が含まれていることを特徴とする、請求項2に記載のクラウドベースのアプリケーションセキュリティサービスの提供方法。」
(本件特許9)
「【請求項9】クライアント装置とクラウド装置とを含むクラウドベースのアプリケーションセキュリティサービスの提供システムであって、前記クライアント装置は、アプリケーションソースをコンパイルしてバイナリを生成するコンパイラ部と、続きを表示(全15行)前記コンパイラ部で生成されたバイナリを含む実行パッケージを構成する実行パッケージ構成部と、前記実行パッケージ構成部で構成された実行パッケージを前記クラウド装置にアップロードするアップロード部と、前記クラウド装置からセキュリティの適用されたセキュリティ適用実行パッケージをダウンロードするダウンロード部と、を含み、前記クラウド装置は、前記アップロード部でアップロードされた実行パッケージを分解してバイナリを抽出する実行パッケージ分解部と、複数のセキュリティライブラリのいずれかのセキュリティライブラリを提供するセキュリティライブラリ提供部と、前記セキュリティライブラリ提供部で提供されたセキュリティライブラリを、前記実行パッケージ分解部で抽出されたバイナリに適用し、セキュリティ適用バイナリを生成するセキュリティライブラリ適用部と、前記セキュリティライブラリ適用部で生成されたセキュリティ適用バイナリを含む実行パッケージを再構成する実行パッケージ再構成部と、を含むことを特徴とする、クラウドベースのアプリケーションセキュリティサービス提供システム。」
(本件特許10)
「【請求項10】前記セキュリティライブラリには、整合性検証のためのハッシュ検証機能が含まれて、前記クラウド装置は、前記セキュリティライブラリにおけるハッシュ検証機能のために、前記実行パッケージ分解部で抽出されたバイナリに対してハッシュコードを生成するハッシュコード生成部をさらに含むことを特徴とする、請求項9に記載のクラウドベースのアプリケーションセキュリティサービス提供システム。」
(本件特許11)
「【請求項11】前記セキュリティライブラリには、前記ハッシュ検証機能のほかに、アンチデバッグ機能、アンチダンプ機能、または、アンチデバッグ機能及びアンチダンプ機能が含まれていることを特徴とする、請求項10に記載のクラウドベースのアプリケーションセキュリティサービス提供システム。」
3.申立理由の概要
申立人は,主たる証拠として甲第1号証及び従たる証拠として甲第2号証を提出し,請求項1~3,9~11に係る特許は特許法第29条第2項の規定に違反してされたものであるから,請求項1~3,9~11に係る特許を取り消すべきものである旨主張する。
(証拠方法)
4.各引用例の記載について
(1)引用例1
ア 引用例1に記載された事項
引用例1には,次の事項が記載されている。(当審注:下線は,参考のために当審で付与したものである。)
A 「【請求項1】第1のオブジェクトコードブロックを受け取ることと、前記第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することと、前記第2のオブジェクトコードブロックを実行することと、を備え,続きを表示(全58行)前記翻訳は,前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに抗タンパー技術を適用することを含む、ことを特徴とする方法。・・・(略)・・・【請求項4】前記第1のオブジェクトコードブロックは、第1のマシン上での実行に適したフォーマットのバイトコードを含むことを特徴とする請求項1記載の方法。・・・(略)・・・【請求項6】前記第2のオブジェクトコードブロックは第2のマシン上での実行に適したフォーマットであることを特徴とする請求項4記載の方法。・・・(略)・・・【請求項24】第1のオブジェクトコードプログラムをインストールすることと、マシンによる実行のために第2のオブジェクトコードプログラムを格納することと、を備え、前記インストールは,前記第1のオブジェクトコードプログラムを、前記マシン上で実行可能な前記第2のオブジェクトコードプログラムに静的に翻訳することを含み、該静的な翻訳は、前記マシンの状態又はユーザ属性に基づき識別名を決定することと、前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムを前記識別名に基づき不明瞭化することと、を含むことを特徴とする方法。・・・(略)・・・【請求項28】前記静的な翻訳はネットワークサーバ上で行われ、前記第2のオブジェクトコードプログラムはネットワークのクライアント上に格納されることを特徴とする請求項24記載の方法。・・・(略)・・・【請求項33】ランタイムに第1のオブジェクトコードプログラムのブロックを第2のオブジェクトコードプログラムのブロックに翻訳する翻訳部であって、前記第2のオブジェクトコードプログラムのブロックが前記翻訳の結果として不明瞭化され、前記第2のオブジェクトコードプログラムのブロックがシステムコールを含んでいる翻訳部と、前記システムコールのいくつかのためのサービスを提供し、前記システムコールのその他のためのサービスを抗タンパーポリシーに基づいて拒否するランタイムサポート部と、を備えることを特徴とする装置。【請求項34】前記第1のオブジェクトコードプログラムはバイトコードを含むことを特徴とする請求項33記載の装置。・・・(略)・・・【請求項46】マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、第1のオブジェクトコードブロックを受け取ることと、前記第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することと、前記第2のオブジェクトコードブロックを実行することと、を備え、前記翻訳は、前記第1のオブジェクトコードブロック又は前記第2のオブジェクトコードブロックに抗タンパー技術を適用することを含む、ことを特徴とするマシン読み取り可能な媒体。・・・(略)・・・【請求項49】前記第1のオブジェクトコードブロックは、第1のマシン上での実行に適したフォーマットのバイトコードを含むことを特徴とする請求項46記載のマシン読み取り可能な媒体。・・・(略)・・・【請求項51】前記第2のオブジェクトコードブロックは第2のマシン上での実行に適したフォーマットであることを特徴とする請求項49記載のマシン読み取り可能な媒体。・・・(略)・・・【請求項68】マシンによって実行される時に該マシンに動作を行わせる命令を提供するマシン読み取り可能な媒体であって、前記動作は、第1のオブジェクトコードプログラムをインストールすることと、マシンによる実行のために第2のオブジェクトコードプログラムを格納することと、を備え、前記インストールは、前記第1のオブジェクトコードプログラムを、前記マシン上で実行可能な前記第2のオブジェクトコードプログラムに静的に翻訳することを含み、該静的な翻訳は、前記マシンの状態又はユーザ属性に基づき識別名を決定することと、前記第1のオブジェクトコードプログラム又は前記第2のオブジェクトコードプログラムを前記識別名に基づき不明瞭化することと、を含むことを特徴とするマシン読み取り可能な媒体。・・・(略)・・・【請求項70】前記静的な翻訳はネットワークサーバ上で行われ、前記第2のオブジェクトコードプログラムはネットワークのクライアント上に格納されることを特徴とする請求項68記載のマシン読み取り可能な媒体。」
B 「【0001】本発明は、一般に、コンピュータデータ処理の分野に関するものであり、特には、抗タンパー(tamper-resistant:改ざんに対抗する)ソフトウェアを生成する技術に関する。【0002】抗タンパーソフトウェアは、変更、改ざん、及び/又は攻撃することの困難なソフトウェアである。コードの不明瞭化(code obfuscation)は、抗タンパーソフトウェアを達成するための1つの技術である。一般に、コードの不明瞭化が目標とするところは、コードのブロック中で何が起こっているのかを攻撃者が決定することを困難にすることである。攻撃者がデバッガーやエミュレーターを使用する場合、コードの不明瞭化はコードの理解又は変更を困難にすることが可能である。【0003】或るコード不明瞭化の技術によれば、追加の命令がプログラムに追加される。この命令は、攻撃者を混乱させたり、及び/又は補助結果(ancillary results)を生成するために追加されるのであり、実行が或る点を過ぎて続行可能である前に確認されなければならない。このコード不明瞭化の方法に伴う1つの問題点は,一般に,それが人手によって変更されなければならないコードを必要とするということである。更に、特にソフトウェアの一部が、システムサービスの限定を伴う抗タンパーの解釈的環境(interpretive environment)の中で動作しなければならない場合は、完全に再構築されなければならない現存のソフトウェアを必要とする場合もある。【0004】ここには、抗タンパーコードを生成するシステム及び方法について記載する。一実施の形態において、本方法は、第1のオブジェクトコードブロックを受け取ることを備えている。本方法はまた、第1のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳することを備え、この翻訳は、第1のオブジェクトコードブロック又は第2のオブジェクトコードブロックに抗タンパー技術を適用することを含む。本方法はまた、第2のオブジェクトコードブロックを実行することを備えている。」
C 「【0014】図2は、本発明の模範的な実施形態に係る、静的翻訳を用いて抗タンパーコードを生成するシステムを示すブロック図である。図2に示されるように、抗タンパーコードシステム200はランタイム環境216を含んでいる。このランタイム環境216は、実行部210及びランタイムサポート部212を含んでいる。抗タンパーコードシステム200はまたコンパイラ208を含み、このコンパイラ208はオブジェクトコード格納部204に接続されている。このオブジェクトコード格納部204は翻訳器206に接続されている。オブジェクトコード格納部204はまたローダ202に接続され、このローダ202は実行部210に接続されている。この実行部210はランタイムサポート部212に接続されている。このランタイムサポート部212はシステムリソース214に接続されている。【0015】一実施形態によれば、コンパイラ208は高水準言語コンパイラ(例えば、Objective C コンパイラ、C++ コンパイラ、Java(登録商標)コンパイラ、C コンパイラ等)である。コンパイラ208は高水準ソースコードを1つ以上のオブジェクトコードブロックにコンパイルする。コンパイラ208はまた、このオブジェクトコードブロックをオブジェクコード格納部204に格納する。コンパイラ208はネットワークサーバ上に遠隔配置することが可能であり、一方、このシステム200の他の要素はネットワーククライアント上に局所的に格納される(上述したコンパイラ102の記載を参照のこと)。一実施形態では、オブジェクトコード格納部204はまた、翻訳器206によって生成されたオブジェクトコードを格納する。本発明の実施形態によれば、オブジェクトコード格納部204は、何らかの適当な記憶媒体(例えば、RAM、ROM、ディスク等)であり得る。」
D 「【0020】ブロック302では、ソースコードがコンパイルされて、最初のオブジェクトコードが生成される。例えば、コンパイラ102がソースコードプログラムをコンパイルして、最初のオブジェクトコードプログラムを生成する。一実施形態において、最初のオブジェクトコードは、仮想のマシン上で実行可能なバイトコードを含んでいる。一実施形態において、最初のオブジェクトコードは、特別なプロセッサ構造(例えば、PowerPC、MIPS、Intel Pentium(登録商標)等)上での実行に適したフォーマットとなっている。実施形態によれば、オブジェクトコードは、何らかの適当なローダフォーマットであってもよい。フローはブロック304に続く。」
E 「【0028】ブロック406では、最初のオブジェクトコードブロックが抗タンパーオブジェクトコードブロックに翻訳される。例えば、翻訳器110が、最初のオブジェクトコードブロックを抗タンパーオブジェクトコードブロックに翻訳する。一実施形態では、翻訳器110が、最初のオブジェクトコードブロックを抗タンパーオブジェクトコードブロックに翻訳する前に不明瞭化する。従って、最初のオブジェクトコードブロックを不明瞭化した結果として、翻訳が、不明瞭化されたオブジェクトコードブロックを生成する(すなわち、抗タンパーオブジェクトコードブロックが、不明瞭化されたコードを含む)。それに代わる実施形態では,翻訳器110が、最初のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳し、これを不明瞭化して抗タンパーオブジェクトコードブロックを形成する。それに代わる実施形態では、翻訳器110が、同一プロセスの中で最初のオブジェクトコードブロックを翻訳及び不明瞭化する。すなわち、翻訳器110は、抗タンパーオブジェクトコードを生成する時に、最初のオブジェクトコードブロックを一命令ずつ(instruction-by-instruction)翻訳及び不明瞭化していく。或る実施形態では、オブジェクトコードブロックが翻訳される度に、翻訳器110が異なるオブジェクトコードを生成する。例えば、翻訳されてキャッシュされたオブジェクトコードがなくなると、翻訳器110が、なくなったブロックとは異なる、翻訳されたオブジェクトコードブロックを生成する。」
F 「【0035】ブロック502では、最初のオブジェクトコードプログラムが受け取られる。例えば、翻訳器206が、オブジェクトコードプログラムをオブジェクトコード格納部204から取り出す。一実施形態では、ソフトウェア導入プロセス(すなわち、ソフトウェアを格納し、それを実行用に構成するプロセス)の進行中に、翻訳器206がオブジュクトコード格納部204からオブジェクトコードプログラムを受け取る。それに代わる実施形態では、ソフトウェア導入プロセス中に、翻訳器206がネットワーク接続を介してオブジェクトコードプログラムを受け取る。フローはブロック504へ続く。」
G 「図2には、抗タンパーコードシステム200に、翻訳器206及びオブジェクトコード格納部が含まれる点が記載されている。」
イ 引用例1に記載された発明
(ア)上記記載事項Aの【請求項28】の「静的な翻訳はネットワークサーバ上で行われ」,「第2のオブジェクトコードプログラムはネットワークのクライアント上に格納される」との記載,上記記載事項Bの【0001】の「抗タンパー(tamper-resistant:改ざんに対抗する)ソフトウェアを生成する技術」との記載,上記記載事項Cの【0014】の「図2は,本発明の模範的な実施形態に係る,静的翻訳を用いて抗タンパーコードを生成するシステムを示すブロック図である」との記載,上記記載事項Gの「図2には,抗タンパーコードシステム200に,翻訳器206」「が含まれる」との記載から,引用例1には,“ネットワークのクライアントと,ネットワークサーバとを含む,抗タンパー(tamper-resistant:改ざんに対抗する)コードシステム”が記載されていると認められる。
(イ)上記記載事項Bの【0001】の「抗タンパー(tamper-resistant:改ざんに対抗する)ソフトウェアを生成する技術」との記載,上記記載事項Bの【0004】の「抗タンパーコードを生成するシステム及び方法」との記載から,引用例1には“抗タンパーソフトウェアとともに抗タンパーコードを生成する方法”が記載されているものと認められる。
(ウ)上記記載事項Cの【0014】の「抗タンパーコードシステム200はまたコンパイラ208を含み」との記載,上記記載事項Gの「図2には,抗タンパーコードシステム200に,」「オブジェクトコード格納部が含まれる」との記載から,引用例1には“抗タンパーコードシステムは,コンパイラ及びオブジェクトコード格納部を含”む点が記載されている。
(エ)上記記載事項Cの【0015】には,「コンパイラ208は高水準ソースコードを1つ以上のオブジェクトコードブロックにコンパイルする。」と記載されているところ,上記記載事項Dの「ソースコードがコンパイルされて,最初のオブジェクトコードが生成される」との記載から,ソースコードがコンパイルされた結果,最初のオブジェクトコードが生成されると認められる。
加えて,上記記載事項Cの【0015】の「コンパイラ208はまた,このオブジェクトコードブロックをオブジェクコード格納部204に格納する。」との記載から,コンパイラでコンパイルされたオブジェクトコードは,オブジェクトコード格納部に格納されると認められるので,引用例1には,“コンパイラにおいて,高水準ソースコードをコンパイルして最初のオブジェクトコードを生成し,最初のオブジェクトコードをオブジェクトコード格納部に格納”する点が記載されているものと認められる。
(オ)上記(エ)の認定から,オブジェクトコード格納部には,最初のオブジェクトコードが格納されると認められるところ,上記記載事項Fの「翻訳器206が,オブジェクトコードプログラムをオブジェクトコード格納部204から取り出す」及び「翻訳器206がネットワーク接続を介してオブジェクトコードプログラムを受け取る。」との記載,上記記載事項Aの【請求項28】の「前記静的な翻訳はネットワークサーバ上で行われ」との記載から,引用例1には,“ネットワークサーバ上の翻訳器において,オブジェクトコード格納部から最初のオブジェクトコードを受け取”る点が記載されているものと認められる。
(カ)上記(オ)の認定,及び,上記記載事項Eの「翻訳器110が,最初のオブジェクトコードブロックを第2のオブジェクトコードブロックに翻訳し,これを不明瞭化して抗タンパーオブジェクトコードブロックを形成する」との記載から,翻訳器により,最初のオブジェクトコードを第2のオブジェクトコードに翻訳し,第2のオブジェクトコードは不明瞭化されるものと認められるから,引用例1には,“ネットワークサーバ上の翻訳器において,最初のオブジェクトコードを第2のオブジェクトコードに翻訳して不明瞭化”する点が記載されているものと認められる。
(キ)上記(カ)の認定から,ネットワークサーバ上の翻訳器において,翻訳の結果,第2のオブジェクトコードは不明瞭化されると認められるところ,上記記載事項Aの【請求項28】の「静的な翻訳はネットワークサーバ上で行われ」,「第2のオブジェクトコードプログラムはネットワークのクライアント上に格納される」との記載から,引用例1には,“翻訳して不明瞭化された第2のオブジェクトコードは,ネットワークのクライアント上に格納される”点が記載されているものと認められる。
(ク)上記(ア)~(キ)によれば,引用例1には,次の発明(以下「引用発明」という。)が記載されていると認められる。
「ネットワークのクライアントと,ネットワークサーバとを含む,抗タンパー(tamper-resistant:改ざんに対抗する)コードシステムにおいて,抗タンパーソフトウェアとともに抗タンパーコードを生成する方法であって,前記抗タンパーコードシステムは,コンパイラ及びオブジェクトコード格納部を含み,前記コンパイラにおいて,高水準ソースコードをコンパイルして最初のオブジェクトコードを生成し,前記最初のオブジェクトコードを前記オブジェクトコード格納部に格納し,前記ネットワークサーバ上の翻訳器において,前記オブジェクトコード格納部から前記最初のオブジェクトコードを受け取り,前記ネットワークサーバ上の前記翻訳器において,前記最初のオブジェクトコードを第2のオブジェクトコードに翻訳して不明瞭化し,翻訳して不明瞭化された前記第2のオブジェクトコードは,前記ネットワークのクライアント上に格納される,前記方法。」
(2)引用例2
ア 引用例2に記載された事項
引用例2には,次の事項が記載されている。(当審注:下線は,参考のために当審で付与したものである。)
H 「【0001】本発明は、情報処理端末で動作するプログラムの配布を行うサーバ装置、及びサーバ装置と情報処理端末からなるプログラム管理システムに関し、特に不正なプログラムの使用を図る情報処理端末の排除における技術に関する。」
I 「【0017】このように、不正なプログラム使用を行っている情報処理端末2101の有するプログラムの固有情報を特定すれば、CRLを用いて不正使用を図る情報処理端末2101を排除することが可能となる。」
J 「【0022】本発明は以上のような課題に鑑みてなされたものであり、プログラム配布元であるサーバ装置において、固有情報を用いたリストにより排除された不正な情報処理端末が新規な固有情報を取得して排除を回避することを防止するサーバ装置を提供することを第1の目的とする。また、情報処理端末へのプログラム配信においてサーバ装置の処理負担を少なくすることをも目的とする。」
K 「【0032】このように、本発明は、上述のようなサーバ装置として実現できるのみではなく、サーバ装置と情報処理端末との間のプログラム管理システムやサーバ装置が備える手段をステップとするプログラム配布方法としても実現できる。また、このプログラム配布方法をコンピュータ等で実現させるプログラムとして実現したり、当該プログラムをCD-ROM等の記録媒体や通信ネットワーク等の伝送媒体を介して流通させることができるのは言うまでもない。」
L 「【0098】そして、サーバ装置120においては、固有情報ヘッダ1000にプログラム固有情報1020のハッシュ値1005を格納し、固有情報ヘッダ1000にのみCA署名1007を付加することで、プログラム910のCA署名に必要とする情報を低減しながら、固有情報ヘッダ1000、プログラム固有情報1020に署名を付加する場合と同様の効果を得ることが可能となる。また、固有情報ヘッダ1000とプログラム固有情報1020の組み合わせが不正に変更された場合、情報処理端末100において、プログラム固有情報1020のハッシュ値を算出することにより組み合わせの異常を検出することが可能となる。」
イ 引用例2に記載された発明
(ア)上記記載事項Lの「サーバ装置120においては,固有情報ヘッダ1000にプログラム固有情報1020のハッシュ値1005を格納」するとの記載から,引用例2には,“サーバ装置において,固有情報ヘッダにプログラム固有情報のハッシュ値を格納”する点が記載されている。
(イ)上記記載事項Lの「固有情報ヘッダ1000とプログラム固有情報1020の組み合わせが不正に変更された場合,情報処理端末100において,プログラム固有情報1020のハッシュ値を算出することにより組み合わせの異常を検出する」との記載から,引用例2には,“情報処理端末において,プログラム固有情報のハッシュ値を算出することにより,固有情報ヘッダとプログラム固有情報の組み合わせの異常を検出する”点が記載されている。
(ウ)上記記載事項Kの「サーバ装置と情報処理端末との間のプログラム管理システムやサーバ装置が備える手段をステップとするプログラム配布方法」との記載から,引用例2には,“プログラム配布方法”が記載されているものと認められる。
(エ)上記(ア)~(ウ)によれば,引用例2には,次の発明(以下「引用例2発明」という。)が記載されていると認められる。
「サーバ装置において,固有情報ヘッダにプログラム固有情報のハッシュ値を格納し,情報処理端末において,プログラム固有情報1020のハッシュ値を算出することにより,固有情報ヘッダとプログラム固有情報の組み合わせの異常を検出する,プログラム配布方法。」
5.当審の判断
(1)本件特許1について
ア 対比
本件特許1と引用発明とを対比する。
(ア) 引用発明の「クライアント」,「コンパイル」は,それぞれ,本件特許1の「クライアント装置」,「コンパイル」に相当する。
(イ) 耐タンパーコードによりセキュリティサービスを提供することは周知慣用技術から自明であるので,引用発明の「抗タンパーコードシステム」は,本件特許1の「セキュリティサービス提供システム」に相当する。
(ウ) 上記(イ)の検討に加え,引用発明の「抗タンパーソフトウェアとともに抗タンパーコードを生成する方法」は,ソフトウェアの1つとしてアプリケーションが含まれることは周知の事項であり,抗タンパー(tamper-resistant:改ざんに対抗する)であることが,セキュリティサービスに含まれることは,本件特許出願時の技術常識に照らして明らかであるので,本件特許1の「アプリケーションセキュリティサービスの提供方法」に相当する。
(エ) 引用発明の「高水準ソースコード」は,アプリケーションを含むプログラムのソースコードであることは明らかであるので,本件特許1の「アプリケーションソース」に相当する。
(オ) 引用発明の「最初のオブジェクトコード」は,コンパイルの結果生成されたものであるので,本件特許1の「バイナリ」に相当する。
(カ) 引用発明の「前記コンパイラにおいて,高水準ソースコードをコンパイルして最初のオブジェクトコードを生成」することは,上記(エ)における,引用発明の「高水準ソースコード」が,本件特許1の「アプリケーションソース」に相当するとの認定,上記(ア)における,引用発明の「コンパイル」が,本件特許1の「コンパイル」に相当するとの認定,上記(オ)における,引用発明の「最初のオブジェクトコード」が,本件特許1の「バイナリ」に相当するとの認定から,本件特許1の「アプリケーションソースをコンパイルしてバイナリを生成」することに相当する。
(キ) したがって,本件特許1と引用発明との間には,次の一致点及び相違点があるといえる。
(一致点)
クライアント装置を含むセキュリティサービス提供システムにおける,アプリケーションセキュリティサービスの提供方法であって,
アプリケーションソースをコンパイルしてバイナリを生成する,
前記方法。
(相違点1)
本件特許1のセキュリティサービス提供システムは,「クラウド装置」を含むのに対し,引用発明の抗タンパーコードシステムは,ネットワークサーバを含むものの,クラウド装置を含むことは特定されていない点。
(相違点2)
本件特許1は,「クラウドベースのアプリケーションセキュリティサービスの提供方法」であるのに対し,引用発明は,アプリケーションセキュリティサービスの提供方法と認められるものの,クラウドベースであるか特定されていない点。
(相違点3)
本件特許1は,「前記クライアント装置において,アプリケーションソースをコンパイルしてバイナリを生成するバイナリ生成ステップ」を備えるのに対し,引用発明は,高水準ソースコードをコンパイルして最初のオブジェクトコードを生成するものの,クライアント装置で処理しているかどうか特定されていない点。
(相違点4)
本件特許1は,「前記クライアント装置において,前記バイナリ生成ステップで生成されたバイナリを含む実行パッケージを構成する実行パッケージ構成ステップ」を備えるのに対し,引用発明はそのように特定されていない点。
(相違点5)
本件特許1は,「前記クライアント装置において,前記実行パッケージ構成ステップで構成された実行パッケージを前記クラウド装置にアップロードするアップロードステップ」を備えるのに対し,引用発明は,ネットワークサーバ上の翻訳器において,オブジェクトコード格納部から最初のオブジェクトコードを受け取るものの,そのように特定されていない点。
(相違点6)
本件特許1は,「前記クラウド装置において,前記アップロードステップでアップロードされた実行パッケージを分解して,バイナリを抽出する実行パッケージ分解ステップ」を備えるのに対して,引用発明は,ネットワークサーバ上の翻訳器において,最初のオブジェクトコードを第2のオブジェクトコードに翻訳して不明瞭化するものの,「実行パッケージ分解ステップ」を備えているか特定されていない点。
(相違点7)
本件特許1は,「前記クラウド装置において,複数のセキュリティライブラリのいずれかのセキュリティライブラリを,前記実行パッケージ分解ステップで抽出されたバイナリに適用してセキュリティ適用バイナリを生成するセキュリティライブラリ適用ステップ」を備えるのに対して,引用発明は,ネットワークサーバ上の翻訳器において,最初のオブジェクトコードを第2のオブジェクトコードに翻訳して不明瞭化するものの,「セキュリティライブラリ適用ステップ」を備えているか特定されていない点。
(相違点8)
本件特許1は,「前記クラウド装置において,前記セキュリティライブラリ適用ステップで生成されたセキュリティ適用バイナリを含むセキュリティ適用実行パッケージを再構成する実行パッケージ再構成ステップ」を備えるのに対して,引用発明は,ネットワークサーバ上の翻訳器において,最初のオブジェクトコードを第2のオブジェクトコードに翻訳して不明瞭化するものの,「実行パッケージ再構成ステップ」を備えているか特定されていない点。
(相違点9)
本件特許1は,「前記クライアント装置において,前記実行パッケージ再構成ステップで再構成されたセキュリティ適用実行パッケージをダウンロードするダウンロードステップ」を備えるのに対し,引用発明は,翻訳して不明瞭化された第2のオブジェクトコードは,ネットワークのクライアント上に格納されるものの,そのように特定されていない点。
イ 相違点についての判断
事案に鑑み,先に相違点6~相違点8についてまとめて検討する。
上記「4.各引用例の記載について」,「(1)引用例1」より,引用発明には,ネットワークサーバ上の翻訳器において,最初のオブジェクトコードを第2のオブジェクトコードに翻訳して不明瞭化する点は特定されているものの,最初のオブジェクトコードに対して,本件特許1に特定される上記「実行パッケージ分解ステップ」,上記「セキュリティライブラリ適用ステップ」及び上記「実行パッケージ再構成ステップ」を備える点は特定されていない。
加えて,上記「4.各引用例の記載について」,「(2)引用例2」より,引用例2発明を参酌しても,本件特許1に特定される上記「実行パッケージ分解ステップ」,上記「セキュリティライブラリ適用ステップ」及び上記「実行パッケージ再構成ステップ」を備える点は特定されておらず,また,本件特許出願前に当該技術分野の周知技術であったとはいえないので,引用発明に当該ステップを具備させる動機付けは存在しない。
したがって,他の相違点について判断するまでもなく,本件特許1は,当業者であっても引用発明,引用例2発明及び当業者の周知技術または技術常識に基づいて容易に発明できたものであるとはいえない。
(2)本件特許2及び3について
本件特許2及び3は,本件特許1を更に減縮したものであるから,上記本件特許1についての判断と同様の理由により,当業者であっても引用発明,引用例2発明及び当業者の周知技術または技術常識に基づいて容易に発明できたものであるとはいえない。
(3)本件特許9について
本件特許9も,上記相違点6~相違点8に対応する「前記アップロード部でアップロードされた実行パッケージを分解してバイナリを抽出する実行パッケージ分解部」,「複数のセキュリティライブラリのいずれかのセキュリティライブラリを提供するセキュリティライブラリ提供部」及び「前記セキュリティライブラリ提供部で提供されたセキュリティライブラリを,前記実行パッケージ分解部で抽出されたバイナリに適用し,セキュリティ適用バイナリを生成するセキュリティライブラリ適用部」,「前記セキュリティライブラリ適用部で生成されたセキュリティ適用バイナリを含む実行パッケージを再構成する実行パッケージ再構成部」との特定事項を含むから,上記本件特許1についての判断と同様の理由により,当業者であっても引用発明,引用例2発明及び当業者の周知技術または技術常識に基づいて容易に発明できたものであるとはいえない。
(4)本件特許10及び11について
本件特許10及び11は,本件特許9を更に減縮したものであるから,上記本件特許9についての判断と同様の理由により,当業者であっても引用発明,引用例2発明及び当業者の周知技術または技術常識に基づいて容易に発明できたものであるとはいえない。
(5)小括
以上のとおり,本件特許1~3,9~11は,当業者であっても引用発明,引用例2発明及び当業者の周知技術または技術常識に基づいて容易に発明できたものであるとはいえない。
6.むすび
したがって,特許異議の申立ての理由及び証拠によっては,請求項1~3,9~11に係る特許を取り消すことはできない,
また,他に請求項1~3,9~11に係る特許を取り消すべき理由を発見しない。
よって,結論のとおり決定する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
2019-700209