大学の公式な組織ではありません。
AMICITEC は、九州工業大学の学生が集まってつくっている非公認の団体です。大学が認めた組織ではないので、部室も予算もありません。大学の名前で何かを保証することもできません。ここに書いてあることの責任は、すべて私たちにあります。
はじまりは過去問の共有でした。学内向けのサービスをつくると、必ず「これを使おうとしている人は、本当に九工大生なのか」を確かめる必要が出てきます。ところがその確認は、サービスをひとつ増やすたびに一から作り直すことになります。学生証を預かる場所が増え、それを見る人が増え、そのたびに同じ心配をかけることになる。
それなら、確認だけを引き受ける仕組みを先に立てて、アプリはその上に載せたほうがいい。そう考えてつくったのが KITAPP です。いま私たちがやっているのは、この KITAPP の開発と運営、そしてその上で動くアプリづくりです。
KITAPP が引き受けているのは、確認ひとつだけです。
- 1
AMICITEC のマークは、三つの点が結ばれた形をしています。この三つが、そのまま KITAPP の関係図です。
- 2
学生、KITAPP、そして KITAPP に接続するアプリ。この三者のあいだで何がやりとりされるのかを、順に見ていきます。
- 3
学生は、KITAPP に Google アカウントでログインします。パスワードはこちらを通りません。KITAPP が受け取るのは、どのアカウントかという情報だけです。
- 4
続けて、学生証の画像を出します。審査の権限を持つ人がそれを開いて、在学しているかどうかを目で確かめます。
- 5
確認が済んだ時点で、画像は消えます。夜まで待ちません。元に戻す方法もありません。
- 6
学生が加盟アプリを使うとき、アプリは KITAPP に「このアカウントは在学中か」とだけ尋ねます。返ってくるのも、その答えだけです。
- 7
氏名も学籍番号も、アプリには渡っていません。KITAPP が引き受けているのは、この確認ひとつだけです。
学生証の画像は、確認が済んだ時点で消えます。
在学しているかどうかを確かめるために、学生証を撮った画像を一度だけ預かります。他人の学生証で登録できてしまうと、この仕組み全体が意味を失うので、ここは省略できません。預かる以上、何を受け取り、誰が見て、いつ消すのかをはっきりさせておきます。
何を出してもらうのか
学生証を撮影した画像を1枚です。形式は JPEG か PNG、大きさは5MBまで。拡張子ではなくファイルの中身を読んで判定しているので、名前を変えただけの別の形式は受け取りません。JPEG には撮影した場所や端末の情報が埋め込まれていることがありますが、これは保存する前に取り除いています。こちらが必要としているのは学生証に書かれていることだけで、それ以外は受け取っても困るからです。
誰が見るのか
「申請の審査」の権限を持っている人だけです。KITAPP の運営に関わっていても、加盟アプリの設定を担当している人にはこの権限がなく、学生証を開くことはできません。権限はログインしたときに一度確かめて終わりではなく、画像を開こうとするたびに確かめ直しています。権限を外した人が、その場で見られなくなるようにするためです。
画像を取り出せる経路はひとつしかありません。その経路に権限のない人が来たときは、「権限がありません」ではなく「そんなものはありません」と返します。どの申請に画像が残っているのかを、外から数えられないようにするためです。
どこに置かれるのか
ウェブから直接たどれる場所には置いていません。ファイルの名前も、申請の番号や学籍番号とは関係のない32桁のでたらめな文字列です。置き場所を知っていても、名前を言い当てて取り出すことはできません。
いつ、どうやって消えるのか
審査が終わった時点です。通った場合も、通らなかった場合も消します。夜間にまとめて消す処理ではなく、審査の操作そのものに消す処理がつながっているので、審査が終われば画像は残りません。あとに残るのは「いつ消したか」という記録だけで、画像を元に戻すことはできません。
確認のあと、加盟アプリに何が渡るのか
既定では、在学しているかどうかだけです。氏名も学籍番号も渡りません。メールアドレスにいたっては、渡せる項目の一覧にそもそも入っていません。
ただし正確に書いておくと、設定を変えれば氏名や学籍番号を渡せる作りにはなっています。いま実際に渡しているアプリはひとつもありませんが、「渡せない」のではなく「渡していない」というのが本当のところです。渡す設定にした場合は、いつどのアプリに何を渡したかの記録が残ります。その記録が取れなかったときは、情報を渡さずにエラーにします。記録の残らない受け渡しが起きないようにするためです。
なぜそう決めたか。
Google のログインを使っている理由
自前でログインをつくると、パスワードを預かることになります。学生証を預かる仕組みの上に、さらにパスワードまで持つのは避けたいと考えました。Google のログインであれば、こちらがパスワードを見ることはありません。
もうひとつは、同じ人かどうかを見分けられることです。学生証の審査は、一人につき一度で終わらせたい。アカウントを作り直すたびに審査をやり直す形だと、こちらの手間が増えるだけでなく、そのたびに学生証をもう一度預かることになります。預かる回数は少ないほうがいい。
学籍番号の自己申告にしなかった理由
学籍番号には規則性があります。ひとつ知っていれば、その前後を書くだけで別の番号が作れてしまう。自己申告で通る仕組みにすると、在学を確認していないのとほとんど変わりません。しかも、通してしまった相手が誰だったのかを、あとから確かめる方法がありません。だから、学生証そのものを見せてもらう形にしました。
連携アプリの開発に必ず同席する理由
加盟アプリに渡す鍵は、どのアプリからの問い合わせかを見分けるためのものです。その鍵で何を受け取れるようにするかは、KITAPP 側の設定で決まります。この設定を申請する側だけで決められるようにすると、「あとで使うかもしれないから」という理由で、いまは必要のない項目まで受け取る設定ができあがります。悪意がなくてもそうなります。だから、決める場には必ず同席することにしました。
受け取る情報を既定で空にしている考え方
加盟アプリが受け取る項目は、何も指定しなければ空です。設定を書き間違えたときも、こちらが知らない項目名が混ざっていたときも、まとめて空として扱います。判断に迷う入力が来たら、渡さない側に倒れるようにしてあります。
在学が確認できなかった相手については、申請が却下されたのか、まだ申請していないのか、そもそもアカウントが無いのかを区別せず、すべて同じ返答にしています。加盟アプリの側からは、その人が KITAPP に申請したことがあるかどうかも分かりません。
一方で、鍵をどこに置いているか、どれくらいの頻度までの問い合わせを受けるかといった具体的な値は、このページに書きません。ここに書いて得をするのは、この仕組みを破ろうとする人だけだからです。
三つの立場があります。
- AMICITEC のメンバー
- すでにいるメンバーからの招待制です。申し込みの入口は設けていません。学生証を人が見て確認している以上、その作業に関われる人数を絞ること自体が、預かった画像の扱いに直結するからです。
- KITAPP の開発・運営メンバー
- AMICITEC の中から決めています。こちらも申し込むことはできません。
- 連携アプリの開発メンバー
- KITAPP に接続するアプリをつくりたい人は、誰でも加われます。ただし、KITAPP 側のメンバーと一緒に開発することが条件です。その理由は次の節に書きます。
氏名や顔写真を出していない理由
私たちは、他人の学生証を見る立場にあります。誰がその立場にいるのかを公開すると、その人に直接頼み込めば通してもらえるのではないか、という考えが生まれます。実際に頼まれた側が断れるかどうかとは別に、そう思われる状態をつくらないほうがいいと判断しました。学年を書いていないのも同じ理由です。
そのぶん、この団体は「誰がやっているか」では信用してもらえません。だから、何をどう決めたのかをこのページに書いています。
KITAPP に接続するアプリをつくりたい人へ。
加盟するアプリの開発は、KITAPP 側のメンバーと一緒に行います。これは人手を貸すという話ではなく、鍵の設定を他人任せにしないための決まりです。
加盟アプリには、KITAPP に問い合わせるための鍵を1本お渡しします。この鍵は、どのアプリからの問い合わせなのかを見分けるためのもので、これだけで学生証を開くことも、ほかのアプリの設定を読むこともできません。ただし、その鍵で何を受け取れるようにするか(在学しているかどうかだけにするか、入学年度も受け取るか)は、KITAPP 側の設定で決まります。ここを申請する側だけで決められる形にすると、必要以上に受け取る設定が、悪気なくできあがります。だから、設定する場には必ず同席します。
受け入れの条件は二つです。九工大の学生がつくっていること。そして、そのアプリに在学確認が必要な理由を説明できることです。
申し込みのフォームは置いていません。連絡先を公開して受け付けられるだけの体制がまだないので、置いていないというのが正直なところです。いま接続しているアプリは、どれも私たちが直接知っている人からの話でした。この形が変わったら、このページを書き直します。