Golangによるubicの試作
Transcript of Golangによるubicの試作
自己紹介
● 現在○ 札幌市内の受託メインの会社
● もともとは○ 組込みセキュリティとか○ エンタープライズ向けパッケージソフトとか
● 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■ 翻訳予定