技術めいた何か

1人の大学生によるIT系の記事群

(JAG 学生部) 大学生ですがGoogle I/O 2018に参加してきました!

Google I/O 2018に参加してきました。

もたもたしてたら6月になってた。 アウトプットを残そうと思う。

もくじ

大学生が初めてI/Oに行ってきた

情報系の学部4年生です。 @prprhyt
5/8〜10(現地時間)に開催されたGoogle I/O 2018に参加してきました。
セッションは興味があったセキュリティや認証・認可系セッションと
Flutterのセッションを中心に聴きました。
(大学の所属研究室が暗号系かつ
認証/認可技術、暗号技術に強いベンチャーでバイトをさせていただいているので)

費用のいくらかを日本Androidの会から支援していただいた

宿泊費とI/Oのチケット費を日本Androidの会から支援していただきました。
チケット費用はおよそ4万円でした。(アカデミックなので)
また、宿泊費はAirBnBを利用したためチケットと同じくらいでした。
飛行機代など他で一杯一杯だったため、非常に助かりました。
ありがとうございます!

(学生必見)支援していただいた経緯

僕は日本Androidの会のWG(ワーキング・グループ)の1つである学生部に所属していて、
今回の学生部の活動の一環としてI/Oに参加し支援をしていただきました!
学生/生徒であれば誰でも入部可能なので是非!(入部方法は↓)

日本Androidの会 学生部の紹介と入部方法

日本Androidの会のWGの1つです。

「”Android”だけにこだわらず、ビジネス系・技術系・デザイナー系の学生が集まり、切磋琢磨していく場所」を作る
http://student.android-group.jp/about/ より引用

2013年から(諸説では2010年から)活動しているWGです。
日本Androidの会から活動の為の予算を割り当てて頂いて活動しています。
Androidだけにこだわらずやりたいプロジェクトを企画して部員内でメンバー募集して〜
ABC(後述)やOSCに出展したり、開発合宿、勉強会や就活イベントなどを開催しています。
基本はオンライン(Slack, Hangout, GitHub/GitLabなど)で活動しています。
月に1度、都内でオフライン or オンラインミーティングを行っています。

参加条件は現役の学生/生徒であること。ただそれだけ。
絶賛部員募集中です!
現在のアクティブメンバーは15名程です。
高校生、大学生、大学院生などが所属しています。高専生も歓迎です。
入部方法は↓のGoogleフォームから入部届を出せばOKです!
(HPは平文通信ですがGoogleフォームは暗号化されています)
入部について: http://student.android-group.jp/join/
入部届け(Google フォーム): https://docs.google.com/forms/d/e/1FAIpQLScqVfLSCwLwhJ3AuawobnOhsC_BxMM7B7sOtYRuKzu24JdOnQ/viewform

公式ホームページ: http://student.android-group.jp/
GitHub: https://github.com/jagsc
GitLab: https://gitlab.com/jagsc

(ダイレクトマーケティングおわり)

現地でのコミュニケーションとか

英語力は不安しかなかったのですが、案外短期間の滞在をする分には大丈夫でした。
セッション中に万が一聞き取れなかったらアクセシビリティ用のモニタから書き起こしを読むみたいなスタイルでセッションは乗り切れました。
(日本人参加者はわりとそうしてる人多そうな印象だった)

現地の情報についても、
幸いにも経験者(@hotu_ta)と一緒だったこともあり、一人よりだいぶ気持ちが楽でした。

セッションの感想(気に入ってるやつ)

本題。
セキュリティと関係しそうなセッション+Flutterを中心に聴きました。

聴いたセキュリティ系・認証/認可系のセッションは次の4つ

  1. 5/8
    1. [Session] Introducing .app domain names, and how to secure them
  2. 5/10
    1. [Session] What's new in Android security
    2. [Session] What's new with sign up and sign in on the web
    3. [Session] Device provisioning and authentication with Android Things

上記以外にもFlutter、WearOS、アシスタントのセッションなどを聴きました。
3日目に集中していたので2日目はCode LabsやSandBoxに行っていました。

気に入っているのは5/10の2.1、2.2と2.3です。

セキュリティ系・認証/認可系のセッションではデベロッパーに使ってもらうことを意識して
ライブラリの使用例を示したり,用語の解説をきちんと時間を取って行っていたのが好印象でした。
(認証/認可は違うよっていうのをパスポートと映画のチケットに例えたりとか)

[Session] What's new in Android security

概要

  • Androidセキュリティの話
  • ハードウェアセキュリティの強化
  • 鍵の保護機能の強化(StrongBox)
  • 認証手段の強化

認証周りを中心に書くと

指紋認証などのバイオメトリクス認証のサポートライブラリ版が来るって話だった。

やったー!
AndroidにもWebAuthn/FIDO2来ましたね!
Androidではこれからが楽しみです
なお、U2Fのセキュリティ キーは既にAndroidでもOTGケーブル等でUSBでつないだり、type-C対応のものだと使えるみたいです。

[Session] What's new with sign up and sign in on the web

概要

  • Webの認証の話
  • Googleアカウントを使ったOne Tap SignIn/Auto SignIn
    • ライブラリの提供あり
  • OTP(One Time Password)を使った二段階認証は中間者攻撃に対して脆弱なのでU2FやWebAuthnを使おう
    • Web Authentication APIなら対応ブラウザが豊富
      • (所感)U2Fのときは非対応ブラウザに3rd製の拡張機能(えぇ...)を入れたりとかしないといけなかったので嬉しい
    • Web Authentication APIは既存のU2Fのセキュリティ キーとも互換性があるので導入が楽
    • Web Authentication APIならバイオメトリクス認証(指紋とか)にも対応している
      • pixel2 の指紋センサを使ったデモが披露された

話の流れ的にはOTP(ワンタイムパスワード)を用いた2段階認証が中間者攻撃に弱いという話からの導入でした。

このあとアタックされる図があった

FIDO2.0はドメインの検証をするので中間者攻撃に耐性があるよってスライドがあった(取り忘れた)

これはWeb Authen ( on Web Authentication API)を使ったパスワードレス認証の話のところ。
この時FIDO2.0とかつぶやいているけど直後に調べたところFIDO2.0はWebAuthenを含むもよう。
勉強になった。
https://developers.yubico.com/FIDO2/

話はそれますが、ブラウザの方では着々とWeb Authentication APIが正式版リリースが近づいてきていたのでこの流れがとても嬉しかったです!
実はセッションの前日5/9にリリースされたFireFox 60.0 stableでWeb Authentication APIが有効になってたみたい。
なお、Chromeは5/29からStableになった67から有効です!
FireFox:
Firefox — Notes (60.0) — Mozilla
Chrome:
Web Authentication API for Chrome - Chrome Platform Status
これでブラウザでユーザもWeb Authen API経由で対応デバイスが使えますね!

[Session] Device provisioning and authentication with Android Things

  • Android Thingsにおける認証の話
    • 認証/認可の違いの説明に時間をきちんと割いてた
    • ライブラリが強力っぽい
  • NearByとの連携あり
  • 通信はMQTTベースだった(競合のAWS IoTもそう)

全体的にセキュリティ専門でないアプリケーション/Webデベロッパが自社プロダクトに取り込みやすいような流れが期待できて好感が持てた。
強力なライブラリが提供されている模様。
実装イメージが持ちやすかった。

洗濯機のIoT化のシナリオを例に説明があった。
Authentication(認証)とAuthorization(認可)の違いをそれぞれパスポートと映画のチケットに例えて説明するなど、
セキュリティ専門でないデベロッパーでも理解をしやすいように配慮されていた。

Code Labs,SandBox

Code Labs

Code Labsを4回クリアーすると来年のGoogle I/Oの招待枠に応募できるとのことだったのでやってみました。
次の問題にチャレンジしました。

  1. Write Your First Flutter App, part 1
  2. Write Your First Flutter App, part 2
  3. Android App Resizing for Chrome OS X(トラブル発生したけど解決。しかし、時間切れ)
  4. Build a PWA using Workbox
  5. Hangouts Chat bot with Apps Script X(トラブル未解決)
  6. Beautiful, interactive, canonical AMP pages

感想:
直接Googlerに質問ができた。
基礎的な質問でもとても親切に答えてくれた。
あと、3, 5で発生した問題についても親身に対応してくれた。 最高。
が、どちらも中々クセのある問題でGooglerの技術力を持ってしても時間がかかったり解決できなかったりした...

3, 5についてはそれぞれ次のトラブルが発生してクリアできなかった。

3.chromeos-resizing

ちょうどAndroid StudioがChromeOS上で動くと話題だったので試した。
会場備え付けのAndroid Studio on ChromeOS (Pixel Book)でやった。
動作自体は快適だった。トラックパッドMacみたいに慣性スクロールが効いててよかった。

トラブルはチュートリアルの3番目くらいでADBからPixel Bookが見えなくなってしまった。
どうやら、何らかの理由でコンテナで建てたadbのリモートホストとの接続が切れていたらしい。
最初に駆けつけたGooglerの人が詳しい人を呼んでくれて$adb connect {コンテナのipアドレス}
を入力してくれてたことで解決。
Android Studio on ChromeOSはその日初めて触ったのもあって構成がよくわからなかった。
でも、コンテナは一体何だったんだろう? (ビルド鯖とかかな...?でも表示はPixel Bookだった)
解決はしたものの、次の予定があったので時間切れ。

5.chat-apps-script

Slackのチャットみたいなノリでいけるのかなーと思って選択。
CodeLabsで提供されているGoogle アカウントを利用。

https://codelabs.developers.google.com/codelabs/chat-apps-script/index.html#3
To publish your bot to Hangouts Chat, do the following: の9番

・Under Permissions, select Specific people and group in your domain. In the text box under the drop-down menu, enter your email address associated with your G Suite organization.

ここでCodeLabsで提供されているユーザのemailを入れてもエラーが発生して進まなかった。
(うろ覚えだけどユーザの権限が無い的なやつだった覚えがある)
Googlerが合計5人、多いときは3人がかりで助けてくれたけど解決できず...無念

SandBox

Android Thingsとか見に行った。
Googlerが展示員でスタンバイしていて展示物の説明をしてくれる感じ。
Android Thingsで制御するロボットや3Dプリンタ
スマートロック(電子錠)とかがあった。
あと、Android Things Developer Kitを貰うためのクイズが難しくて参加者同士で情報交換したりとかもした。

まとめ

体験記というより技術まとめっぽくなってしまった。。。
慣れれば英語でもコミュニケーションが取れて楽しかったです。 実は、前日イベントのIntel Zero Partyの話とか夜のイベントの話とかもあるのですが、今回は割愛。
気が向いたら書きます。
良い経験になった。
行くこと自体はすごくないので経験を生かせるようにしたい。

Android Buzzer and Conferenceの紹介

abc.android-group.jp

Android Buzzer and Conference 2018 Summerが開催されます。
日時: 6/9(土) 10:00〜18:00
場所: 東京大学本郷キャンパス
参加登録: Android Bazaar and Conference 2018 Spring - connpass

Android Buzzer and Conference(通称ABC)は
日本Androidの会主催のカンファレンスです。
参加無料です!
基調講演がとても豪華です。(IBMGoogle)
Google I/Oの話もあります!
コミュニティの出展もあります!
日本Androidの会 学生部もバザールにブースを出すので是非遊びにきてくだい!
ABC*1で僕と握手!

*1:競プロじゃないほう