Golangによるubicの試作

13
golangによるUbicの試作 Sapporo #golang Meetup kn1kn1

Transcript of Golangによるubicの試作

golangによるUbicの試作

Sapporo #golang Meetupkn1kn1

自己紹介

● 現在○ 札幌市内の受託メインの会社

● もともとは○ 組込みセキュリティとか○ エンタープライズ向けパッケージソフトとか

● github○ https://github.com/kn1kn1

最近は・・

● Language-Context-Free○ https://atom.io/packages/language-context-free○ Atomエディタのpackage○ Context Free○ CIにwercker + dockerを使用○ 詳しくは別の機会に・・

go言語

● Kato Kazuyoshi さん○ Docker を読む○ http://2013.8-p.info/japanese/06-22-docker.html

● @t-wada さん○ 「2014年プログラミング大予測」に参加しました ○ http://t-wada.hatenablog.jp/entry/programming-

forecast-2014

● @omo さん○ Resolutions 2014 - Unparalyze Passion○ http://flakiness.es/2014/01/02/resolutions-2014.html

○ 個人的にはこのエントリーがきっかけ

go-sclang● https://github.com/kn1kn1/go-sclang

● goからSuperCollider(音響合成用プログラミング言語)を起動するためのライブラリ

● sc4nodeとして公開していたnode.jsのライブラリを移植

Ubic● http://www.eurekalert.org/pub_releases/2014-03/su-

isf030614.php● Google Glassを使用した認証● 所属する会社の研究開発として調査● 手段の目的化はもちろん否めない

● 実現方式は論文として公開されていたので、それを参照して実装

○ http://arxiv-web3.library.cornell.edu/pdf/1403.1343v3.pdf

○ http://arxiv-web3.library.cornell.edu/pdf/1403.1343v1.pdf

● goで実装したのはサーバ側

● 仕様○ サーバ(go)

■ 認証コード(6桁の数字)を生成■ 認証コードを暗号化(RSA OAEP)■ 署名生成(RSA-PSS)■ QRコード作成

○ クライアント(Google Glass - Android)■ QRコード読取り■ 署名検証(RSA-PSS)■ 認証コード復号(RSA OAEP)

● 実装○ フレームワークは無し(net/http)○ QRコード生成は、ZXing("zebra crossing")のgenerator

を使用■ http://zxing.appspot.com/generator

○ 作ったものはHerokuにデプロイ■ https://peaceful-forest-7529.herokuapp.com/

○ Dockerfileも作りましたが今回は出番がなかったです

○ go側はあまり問題なく実装完了

● Androidでの問題のほうが多かった○ RSA-PSS署名に対応していない

■ RSA PKCS#1 v1.5に変更したり。。

→ 最終的には、Android側にSpongy Castle (https://rtyley.github.io/spongycastle/)を入れてPSSに対応

○ QRコードの密度が高い(画像が小さくて文字数が多い)と読み取ってくれない■ 鍵長を短くしたり。。

→ 最終的には、表示する画像を大きくして対応

● goの暗号について○ 今回使用した限りでは好印象

○ 他には、crypto/subtleとか■ http://golang.org/pkg/crypto/subtle/

○ Practical Cryptography With Go■ https://leanpub.com/gocrypto■ 翻訳予定

ありがとうございました!