本当にできていますか?
マイナンバーやクレジットカード番号などは、数字列の誤りの検出やねつ造を防止するために、一定のアルゴリズムに従って数値が付加されるチェックデジットが用いられています。これを判定することによって、マイナンバーの12桁の数字列なのか、単なる12桁の数字の羅列なのかを高い精度で検出することができます。マイナンバーの場合、1桁目から11桁目の数字を、総務省が公表している「検査用数字を算出する算式」に当てはめて計算すると12桁目の値になります。
一般的に、チェックデジットを活用した検出では、ファイルをオープンしてから対象となる桁数の数字列を見つけ出し、その後にチェックデジット算出を行って判定するという方法が多く用いられています。しかし「すみずみ君」では、検査対象ファイルをオープンする前にチェックデジットの計算は完了しています。
つまり、マイナンバーの12桁の数字列では、11桁の数字列の10の11乗通り存在するすべてのパターンを最初から記憶させておき、それに該当するかどうかを判定しています。例えば「12345678901」という11桁の数字列に該当するチェックデジットは算式により「8」となりますので、「123456789018」という数字列であればマイナンバーと判定するということです。この仕組みにより、マイナンバーを高速で見つけ出すことを可能にしています。マイナンバーとは桁数やアルゴリズムが異なるクレジットカードについても同じ方式で判定しています。
そのほか、高精度で検知しなければならない個人情報には、「名字」「住所」「電話番号」「メールアドレス」などがあります。名字や住所の検出精度が低いと個人情報ファイル検出ツールとしての評価も低くなるため、ツール導入時の選定ではこの名字や住所の検出精度が重要なポイントとなります。
例えば、「谷」さんや「森」さんなどの一文字の名字を「名字」として認識すると、実際には名字ではない文字列を個人情報として検出してしまうため誤検知が増えます。この誤検知防ぐため、「すみずみ君」の名字辞書には一文字名字を除外した日本人の名字ランキング上位2,000件の名字を登録しています。
また、「千葉県千葉市の千葉大学に千葉モノレールで行く千葉太郎さん」という文中にある「千葉」の文字列をすべて名字として認識しても、当然誤検知が増えます。「すみずみ君」はこの場合「千葉太郎さん」の「千葉」しか名字として検出しないように処理しています。更には名字辞書に登録している2,000名字のうち、「山口」「宮崎」「千葉」「福島」「長野」など、県名や市名などの地名と同じものが含まれているのですが、極力名字の誤検知を出さないよう検知精度を高めるためのさまざまな工夫も施しています。
住所も名字と同様に、検知精度が低ければ現実的な運用には適しません。「すみずみ君」は、Aのように番地までが記述されている文字の配列の場合に「住所だと考えられる文字列」として検知します。Bのような都道府県名や市町村名などの地名だけでは個人を特定することができないので、個人情報には該当しないと判断します。名字と同じ表記の地名は非常に多く、地名だけで安易に個人情報だと判断すれば多くの誤検知が発生してしまいます。「すみずみ君」の住所辞書には日本の地名すべてを登録しているわけではありませんが、「番地までが記述されていなければ個人情報として検出しない」ことで誤検知を防ぎ、検出精度を高めています。
パスポート番号や運転免許証番号、健康保険番号、など規則性のある任意の文字列は「正規表現」で表現することができます。「正規表現」とは、複数の文字列パターンを一つの形式で表現するための方法です。例えば、パスポート番号は英字2文字と7桁の数字で構成されています。さらに頭文字は有効期限の違いによって「M(5年)」と「T(10年)」に区別されています。この場合の正規表現は「[MT][A-Z](\d{7})」(1文字目がMまたはT、2文字目がA~Zのいずれか、以降は7桁の数字という意味)となります。
「すみずみ君」では、標準で搭載されている「住所」「氏名」「電話番号」などの辞書以外に、お客様自身が辞書を作成したいというご要望にも対応して、この正規表現によるユーザー辞書の作成も可能としました。自由に文字列パターンを定義することで、パスポート番号や文書番号のような任意の文字列も検出することができます。
任意に検出キーワードを追加できる「キーワード辞書」機能がある個人情報ファイル検出ツールは多くありますが、「すみずみ君」のように正規表現によるユーザー辞書が作成できる検出ツールは多くはありません。例えば、機密情報に関するデータを検出するために「機密」というキーワード辞書を作成するとします。検出キーワードとして「取扱注意」や「社外秘」などのキーワードを登録することになりますが、「取扱い注意」や「取り扱い注意」のように送り仮名の違いで記述が異なるものをすべて想定して登録する必要があります。
また、「社 外 秘」のように文字の間にスペースを入れる人がいる場合も想定しておかなければならず、いくつもの文字パターンを登録しなければなりません。「正規表現辞書」を使えば、図2のように記述するだけなので、キーワード辞書のように多くの文字列パターンを洗い出して登録する必要がありません。
当然のことですが、他社の個人情報ファイル検出ツールでも検出結果は表示されます。しかし、その多くが検出したファイル名と、名前や住所など各辞書の個人情報項目に該当した数を表示するだけのものです。この場合、検出した情報が本当に個人情報に該当しているのかを確認するには、該当するファイルを一つ一つ開かなければなりません。もしそれが一つのファイルで100ページもあるような文書ファイルだった場合、個人情報に該当しそうな文字列を探すだけでも大変です。また、開いたファイルが個人情報ではなく実は企業一覧などの企業情報だったという誤検知のケースも少なくありません。
「すみずみ君」には個人情報として検出された文字列の前後のテキスト文字を、ファイルを開かなくても確認できる「検出文字列表示」機能をご用意していますので、一覧表示された情報を手がかりに、そのファイルが個人情報に該当するかどうかを判断できるようになっています。図3