我々の研究は、電話を介してのプロダクトアクティベーションに対象を絞った。そうしたのは、この形式のアクティベーションが、最もシンプルに解析できると考えたからだ。
電話を介してWindows XPをアクティベートする最初のステップは、コールセンターの係員にインストレーションID(Installation ID)を伝えることである。このIDは、ユーザーによるアクティベーションの手続きをガイドするアプリケーション、msoobe.exeによって表示される。このインストレーションIDは50桁の数字で、以下のように、それぞれ6桁からなるグループに分けられている。
002666-077894-484890-114573-XXXXXX-XXXXXX-XXXXXX-XXXXXX-XX
このインストレーションIDは本物だが、我々が秘密にしておきたい部分の数字は'X'文字で置き換えてある。
もしmsoobe.exeが複数回呼び出されると、毎回違ったインストレーションIDを提供する。
これに対して、コールセンターの係員は、読み上げられたインストレーションIDに相当するコンファメーションID(Confirmation ID)を提供する。このコンファメーションIDを入力することによって、アクティベーションの手続きは完了する。
アクティベーションの間に明かされる情報はインストレーションIDだけなので、アクティベーション手続きの間に送信される情報は何か、という上記の質問は、以下の問いと等価である。
インストレーションIDは、どのようにして生成されるのか?
この質問に対する答えを得るために、我々はインストレーションIDの、それぞれの桁が、どこから来ているのかを探索した。