マイナンバー制度のメリットをプログラマーの視点で考える




マイナンバー制度は、国民1人1人に対して固有の番号が割り振られて、個人を識別できるようにするという制度ですよね。これを年金や税金などを管理するために使おうというのが趣旨だと思いますが、これをプログラマーの視点で考えてみた場合、どのように見えているかということをご紹介したいと思います。



マイナンバーはシステム的にどうなるかをプログラマーの視点で考える


マイナンバー制度を実現しようとしたとき、私たちプログラマーならどのようなシステムを組むかということを考えてみたいと思います。なお、ここで紹介するのは私個人の考えですので、実際のシステムとは違う可能性があることをご承知ください。


まず、大前提ですが国民1人1人に識別番号を振りますので、以下のような関係を持ったデータができます。

マイナンバー 氏名
1 東京太郎
2 大阪次郎
3 名古屋三郎
4 神戸花子
5  福岡四郎


個人とマイナンバーが一対一で対応していますよね。これでマイナンバー制度をコンピューターの中で実現する心臓部ができあがりました。


次に、マイナンバーがあれば年金情報を管理する場合には次のようなデータができると思います。


マイナンバー 年金支払額 時期 
1 3万円 2015年1月
1 3万円 2015年2月
1 3万円 2015年3月
2 3万円 2012年8月
2 3万円 2012年3月
2 3万円  2012年2月
4 2万円 2013年5月


これは少しわかりにくいでしょうか。個人情報がどこにもないじゃないか!と思われるかもしれませんね。では、最初のデータと合わせてみましょう。



マイナンバー  氏名 年金支払額 時期 
1  東京太郎 3万円 2015年1月
1  東京太郎 3万円 2015年2月
1  東京太郎 3万円 2015年3月
2  大阪次郎 3万円 2012年8月
2  大阪次郎 3万円 2012年3月
2  大阪次郎 3万円  2012年2月
4  神戸花子 2万円 2013年5月


はい、これでどうでしょうか?個人名と年金支払額、そして支払い時期が表になりましたね。わかりやすくなったと思います。コンピューターがあれば、マイナンバーをキーにして、個人名と年金情報を結びつけるのは一瞬でできてしまいます。手作業でこれをやるとどれだけの時間がかかるか?と思うと、油汗を通り越して血の汗が出てきそうです。


では、この状態で東京太郎さんが市役所に行ってこれまでの年金の支払いを照会したとしましょう。必要になるのはマイナンバーです。市役所に行ってマイナンバーを提示し、パソコン端末にマイナンバーを入力するとすぐに情報を取得することができます。


マイナンバー  氏名 年金支払額 時期 
1 東京太郎 3万円 2015年1月
1 東京太郎 3万円 2015年2月
1 東京太郎 3万円 2015年3月
1 東京太郎 3万円 2015年4月
1 東京太郎 3万円 2015年5月
1 東京太郎 3万円  2015年7月
1 東京太郎 3万円 2015年8月


合計:21万円  支払い時期:2015年1月~2015年8月 抜け:2015年6月


このように、マイナンバーを利用して、データを一瞬で取りだして集計することができます。支払った金額の合計だけでなく、支払い時期や抜けがないかということが、コンピューターを使えば簡単にできるようになります。要する時間は1秒にも満たないでしょう。


とても便利だと思いませんか?




もしマイナンバーがなければどうなる?


以前、社保庁の年金記載漏れの事件がありましたが、このときはすべて手作業で照会作業をやっていたそうです。確か、私のところにもこれまでの記録が郵送されてきていました。大騒ぎになった事件ですので、覚えていらっしゃる方も多いと思います。


手作業でやったということは、ものすごく時間がかかったと思います。同姓同名の方もいらっしゃると思うので、名前だけでデータを突合させることは難しかったと思います。名前、住所、電話番号などの複数の情報を照らし合わせながら、書面とにらめっこしていたのではと想像します。一か所にずっと居住していればいいのですが、引っ越すこともあるでしょう。そうすると、さらに照会に時間がかかります。


何度も言いますが、血の汗が出てきそうです。


投入された人数と時間とお金は膨大なものだったのではと想像します。


人によっては税金の無駄遣いだという人もいるでしょう。もし、昔からマイナンバーを導入していればこれらの人手と時間とお金は何百分の一にも減ります。まったくのゼロであったかもしれません。貴重な税金が投入されることもなかったでしょう。それくらい、便利で効率的なシステムなのです。


マイナンバーがあることによって、データの照会や管理作業は著しく向上します。マイナンバー制度は今まで支払ったはずの年金や税金がきちんと管理されることを保証してくれるシステムだと思います。




セキュリティの確保をどうするか?基本的なセキュリティ対策


マイナンバー制度には上に書いたようなメリットがありますが、当然デメリットというか懸念事項もあります。それはセキュリティです。


最近は個人情報の管理というのが特に注目されるようになっています。個人情報が漏えいしてしまって企業が謝罪するというニュースもよく目にするようになりました。


マイナンバーでいうと、特に情報流出が心配なのが一番最初に記載したマイナンバーと個人情報が対応したデータです。ここが漏れるとヤバイです。


情報が流出する経路としては大きく分けると以下の2点が挙げられます。

・外部からの侵入によるもの
・内部からの持ち出し



この2点に対して、どのような対策をするかというのが一番重要だと思います。プログラマーとして簡単に思いつく対策としては以下のものがあります。


1)ウィルスソフトは最新のものを必ず利用する。
2)OSは常に最新のものを利用する。
3)ファイアウォールの設置
4)IPアドレス、パスワード、生体認証による制限
5)データにアクセスできる人を制限する
6)通信はSSLで暗号化する
7)データが登録されたコンピューターを隔離する。
8)アクセスログの保存と検証。
9)USBメモリー、光学メディアの使用禁止



1)~3)は個人のパソコンでもよく言われることですのでご存知の方が多いと思います。これらは主に外部からの侵入に対する対策になります。


ウィルスは常に新しいものが日々生まれています。古いOSではセキュリティの不備が存在していることも多く、その隙をつくようにウィルスが狙っています。OSを常に最新の状態にし、さらに最新のウィルス対策を施した状態であることが重要なのは言うまでもありません。外部から不正に侵入されることを防ぐためにもファイアウォールの設置は重要です。


4)と5)については外部からの侵入、内部からの持ち出しの両方に対応しています。


外部からシステムに侵入しようとした場合、IPアドレスというパソコンの住所のようなものをあらかじめシステムに登録しておくことで、アクセスできる場所やパソコンを制限することができます。また、システムを利用するためにIDとパスワードを使用するようにしておけば、利用する人を制限することができますし、不正使用の防止にも役立ちます。指紋や顔などの生体認証であれば、完全にアクセスできる人を限定できる可能性が高まります。IDとパスワードは不正に入手される可能性が残りますが、生体認証であればその可能性は著しく低くなります。


また、データにアクセスできる人を限定しておくことも有効に働きます。アクセスできる人を限定し、IDとパスワード、生体認証を利用すればセキュリティは著しく高まります。


6)のSSLで暗号化するのも重要です。SSLはネット通販などでクレジットカードや指名などの情報を入力するときによく使われています。ネットワーク経由でデータにアクセスする場合には通信内容を盗聴される可能性がありますので、暗号化して盗み見られないようにする必要があります。


7)のデータが登録されたコンピューターを隔離するというのは、サーバールームなど専用の部屋を用意して、そこにデータが登録されたコンピューターを設置することを意味します。この部屋に出入りできる人を制限し、出入りの際は身分証の提示や入退出時間を記録するなどして厳格に管理します。


パソコン本体に直接アクセスし、USBメモリなどにデータをコピーしてしまうという手段でデータが漏れることがあります。データが登録されたコンピューターにアクセスしづらい環境を構築することによって、データの漏えいを未然に防ぐことができます。


8)はデータにアクセスがあった際に、いつ、だれが、どこからアクセスしたかという記録を残すということです。これを確実にとるようにし、おかしなアクセスがないかどうかを定期的にチェックするようにします。


9)は、USBメモリやCDなどのメディアにデータを移して持ちだされることを防ぐための対策になります。USBメモリをパソコンに挿すと関連部署に自動的に連絡が行くシステムもあるようです。



より強固なセキュリティ対策の例


上で書いたセキュリティ対策はこれまでも実践されてきた基本的なものです。より強固なセキュリティ対策が求められるかもしれません。参考になるかもしれませんので、一例をご紹介したいと思います。


研究機関において患者から組織や血液サンプル(検体)を採取した場合、その情報は非常にデリケートに扱う必要があり、それらを管理する場合にはシステム上、非常に厳格な管理が求められます。なぜなら、特定の疾患に関連する個人や特定のDNA情報を持つ個人が特定されると、結婚や差別、保険への加入の拒否などへの影響が考えられるからです。


文部科学省の指針にもありますが、これらの情報を扱う場合にはデータの「連結不可能・匿名化」を実施する必要があります。


参考URL:
http://www.mext.go.jp/b_menu/shingi/gijyutu/gijyutu1/006/siryo/04101902/001/001.htm


研究機関などでは患者から採取した検体と個人情報を管理していますが、これらが容易に結び付けられてしまうと万が一漏えいした場合に大問題となります。そのため、個人情報は匿名化して誰のものかわからないようにします。また、個人情報と検体情報(DNAや疾患情報)が簡単に結びつけられないようにします。両者を同一のコンピューターで管理するのではなく、別々のコンピューターで管理することも多くあります。


そして、基本的なセキュリティ対策のところで記載したような管理方法に加えて、ネットワークに接続しないようにする場合もあります。LANケーブルを外してしまったり無線LANの接続を切ってしまうということです。IPアドレスやパスワードの設定によってネットワーク経由でアクセスできる人を制限したとしても、パスワードが不正に入手されてしまえば、簡単にデータが盗み取られてしまいます。ネットワーク経由でのアクセスを遮断することで、このような事態を避けることができるようになります。


このようにすることによって、個人情報の流出が起こらない、万が一起きたとしても個人が特定できないようにしています。


ただし、ここまで厳しいセキュリティを実施すると、マイナンバー制度ではデータの照会作業に支障をきたしてしまうかもしれません。いちいち専用のパソコンを利用しにいかないといけなくなるので、時間がかかる可能性があります。


しかし、それくらい厳密な管理が求められているのも事実です。実際のシステムの構築はセキュリティに精通した会社が担当されていると思いますが、どのようにされているのか知りたいところです。




プログラマーから見るとマイナンバー制度は合理的なシステムである


以上見てきたように、セキュリティ対策はしっかりする必要がありますが、マイナンバー制度による効率化はとても大きなメリットがあると思います。


私たちプログラマーから見ると、ID(マイナンバー)ですべてデータを結び付けられるということは非常に合理的で効率的です。IDを入力するだけで必要なデータが一瞬で取りだせるのは便利ですし、間違いがありません。


もし、さらに管理したい項目を増やしたいと思っても、IDと関係するデータを別途用意するだけで良いです。今後さらに適用範囲が広がっていくことも検討されているようですが、管理するのはこれまでと比較してもとても容易になるのではないかと想像しています。


システムの導入に費用がかかるかもしれません。ただ、一旦構築してしまえばその後の運用の費用は下がるのではないかと思います。人件費が特に削減されるのではないかと想像します。



税金の無駄遣いを指摘する人を時々見ますが、我々プログラマーから見ると、手作業でデータを照会するのに比べてはるかに費用は抑えられると思います。



また、国民一人一人がIDで管理されることに反対する人も見受けられます。でも、よく考えてみると私たちに番号が付与されることはよくあります。たとえば、学校に行くようになると出席番号が割り振られます。授業中に「今日は3月6日だから出席番号6番の人」、といって指名されることがあります。


会社に入れば社員番号が割り振られます。勤務状況や給与などはすべて社員番号で管理されています。


電話もある意味、個人を特定する番号です。携帯電話の電話番号は自分だけのものです。これが登録されているということは、個人に番号が付与されているのと同じと考えることもできます。もし、あなたの電話が犯罪に使われれば、あなたが真っ先に警察から疑われます。でも、このような危険性があるからといって、携帯電話を解約することはないですよね。


私はマイナンバーを管理する側の人間ではないですが、番号で管理することはとても便利だと思います。国や自治体の運営が効率化されるのは賛成です。システムを作る側の人間として、このようなシステムを開発するのはとても良いことだと思います。




関連記事 

1.マクドナルドの異物混入確率を計算してみた
2.exif情報を持つ写真をブログやSNSにアップするときの注意点



このエントリーをはてなブックマークに追加


▲ このページの上部へ戻る