SlideShare a Scribd company logo
1 of 16
1
Gnuk トークンで SSH
今井 祐二
Special thanks g 新部 裕 (FSIJ / 飛石技術 )
2
今まで怖くて聴けませんでした。
CBUG なので聴いちゃいます。
id_rsa どこに置いてますか?
①~/.ssh/
②My Document
③USB メモリ
④暗号付き USB メモリ
⑤スマートカード・トークン
⑥言いたくない。
⑦事情を察して…。
3
発表要旨
●
Gnuk トークンによる SSH ユーザ認証の紹介
–
Gnuk トークン (Gnuk on FST-01)
●
USB カードリーダ一体型のスマートカードトークン。 GnuPG との相性がとても良い。
–
Gnuk
●
フリーソフトの OpenPGP v2 スマートカードファームウェア
–
FST-01
●
USB トークン型小型コンピュータ。設計情報が Creative Commmons で公開。
●
GnuPG と Gnuk トークンで SSH を堅牢化
–
2要素認証の定番であるスマートカードでユーザー認証
–
フリーソフト・設計公開ハードによる、透明性の確保
–
お試しコストが低く、明日から実戦配備可能
ネット機器・サーバのユーザ認証でお困りの CBUG で、
Gnuk トークンを、ぜひぜひオススメしたい。
4
その秘密鍵、
置き場に困ってませんか?
●
SSH 系
–
OpenSSH : ~/.ssh/ が定位置
–
Putty-gen :普通に My Document
●
TLS 系
–
配布された .p12 をブラウザに突込む。
( エキスポート不可くらいはする。 )
本当のことは、オトナなので言えなかったけれど、
本当に大丈夫なんだろうか、と思っていませんでしたか?
5
その秘密鍵は狙われている。
●
事例:銀行取引クライアント証明書搾取多発
–
マルウェアがエクスポート不可の証明書を消去し、再発
行されるタイミングで盗み見。
–
–
–
–
–
–
●
OS プロテクションのみでは、秘密鍵が守りきれな
い時代になっています。
「 法人向けインターネットバンキングの不正送金対策、しっかりできていますか? 」
(IPA 2014 年 8 月の呼びかけ ) より http://www.ipa.go.jp/security/txt/2014/08outline.html
6
その秘密鍵、
スマートカードに入れましょう!
●
秘密鍵保管 / 署名演算器の一体型デバイス
–
計算機本体とはシリアル I/F で接続
●
PIN を入力して接続開始
●
平文データを流し込むと、デバイス内の秘密鍵で署名して返して
くれる
●
シリアル I/F を流れるのは署名対象データのみ。秘密鍵は規格上
カードから取出せない。
–
ハード I/F なし。ソフト API もなし。
–
悪意の侵入者も、プログラムも、利用者自身にもできない。
–
2要素型認証の代表選手にして定番
●
クレジットカード・住基カード・でかめの企業の社員証
●
PCI DSS, ISMS/ISO27001 に出てくるやつ
7
今まで敷居が高かった
スマートカード
●
バリバリのプロプライエタリ
–
想定適用フィールドが大規模(住基カード、クレジットカード、社員証)
–
カード管理発行システムと一体で構築・運用
●
NDA に囲まれた設計詳細と、ソフトウェア群
●
利用範囲がシステムごとにクローズだった(国の電子化業務、企業システム SSO )
●
フリー & オープンソフト動くカードを求めて、カードを取り寄せて
は試す、楽しい ^H^H 試練の日々。
–
OpenSSH with PKCS#11
–
putty-CAC, putty-sc
–
アプリ、カード、カードリーダ、ドライバーの相性問題噴出
8
誕生!
オープンなスマートカード
●
Gnuk, FST-01 の開発&公開 by g 新部 @FSIJ
●
SSH 関連フリーソフト・オープンソースが徐々に整備
–
OpenPGP の pgp-agent による、 ssh-agent, pagent との
互換動作サポート
●
馴染み深い SSH の世界にスルリと導入できるスマート
カード環境が、手軽に手に入ります。
–
OpenSSH, Putty, TeraTerm はもちろん、
–
WinSCP, git まで、まるっと OK !
9
Gnuk トークン by g 新部
●
ハード (FST-01)
–
STM32 搭載 USB トーク
ンの設計図
–
Creative Commons (CC
BY 3.0) で設計情報公開
●
ファーム (Gnuk)
–
STM32 マイコンを
OpenPGPCard v2 準拠ス
マートカードにする
●
STM32 は、 ARM ベースの
超安価な組込みコンピュータ
(750 円~ )
–
RSA-2048
●
署名時間 約 1.5 秒
–
GPLv3
10
Gnuk トークン入手方法
① 自作
秋月で STM 開発ボード (750 円~ ) を買って、工作。
② 輸入
Seeed Studio( 中国 深圳 ) が、公開された設計書を
もとに製造。 Web 通販 $36 ドル ( 送料込 )
Gnuk インストール済
③ g 新部さんから購入
4000 円 + ドネーション
11
Gnuk トークン秘密鍵封入
① GnuPG で RSA2048 鍵ペアを生成
② Gnuk トークンに書込み
PC に残っている秘密鍵を
バックアップして消去
③ Gnuk トークンに PIN コード設定
12
Gnuk トークンで SSH
①gpgkey2ssh で OpenSSH 形式の公開鍵を取
り出し、接続先の authorized_keys に追加。
②ssh-agent / pagent の替わりに gpg-agent
を立ち上げ。
③普通に SSH
• 初回のみ PIN コードを入力
普通すぎてなんの面白みもないほど、
あっけなく動く。
13
Demo
14
URL
●
Gnuk handbook 1.1
http://no-passwd.net/fst-01-gnuk-handbook/index.html
●
Gnuk 1.1.1 の入った FST-01 を購入す
る ( 飛石技術 )
http://www.gniibe.org/shop/gnuk_1_1_x-on-fst-01.html
●
FST-01 Wiki
http://www.seeedstudio.com/wiki/FST-01
15
一緒に助けて欲しいの…。
Gnuk トークンの作成・保管・再発行のツール作りたい
–
手順書書いても守られない。
●
「秘密鍵作ってもバックアップしない」
●
「バックアップを秘密じゃない場所にアップロードする」
–
LiveCD にしちゃいたい。
●
ウィルスフリーな環境で鍵生成
●
秘密鍵ごと焼いちゃう。
●
PIN/ パスフレーズを入力すると Gnuk に書き込む。
●
CD は鍵つきロッカーに保管。
16
付録: OpenPGP Card いろいろ
●
OpenPGP Card 準拠カードも色々あります。
–
FSFE Fellowship Card
●
Free Software Foundation Europe の Fellow 会員証が
OpenPGP スマートカード ( 同等品が、 Kernel Concepts 社
から購入可能 13,90€)
●
カードリーダーが別途必要
–
Yubikey NEO($50)
●
Yubico 社の USB トークン
●
出荷時は OTP を自動入力モード
●
Yubico 社リリースの GPLv3 Java applet をインストールす
ると、 OpenPGP + USB カードリーダとして使える。
●
ファームはフリーソフト、ハードはプロプライエタリ
–
暗号なんで、気になる人はとことん気になる世界…。
–
色々、お試し中…。
●
入手容易性 可搬性 検証容易性 運用に対する考慮…。・ ・ ・

More Related Content

What's hot

Fluentとmongoで作るサービス
Fluentとmongoで作るサービスFluentとmongoで作るサービス
Fluentとmongoで作るサービス
直也 堀松
 
http2.0 negotiation&header compression
http2.0 negotiation&header compressionhttp2.0 negotiation&header compression
http2.0 negotiation&header compression
yuki-f
 

What's hot (20)

Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux 2
 
最近のスマートウォッチについて
最近のスマートウォッチについて最近のスマートウォッチについて
最近のスマートウォッチについて
 
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐBug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
 
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
 
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by LinuxAndroid Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux
 
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on LinuxAndroid タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux
Android タブレットにLinuxを入れて色々と遊んでみよう 続編その2 Hacking of Android Tablet on Linux
 
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
#GPD-Pocket にUbuntu17.04をインストール Install Ubuntu Linux 17.04 on GPD-Pocket
 
ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!
 
irc 再入門
irc 再入門irc 再入門
irc 再入門
 
Fluentとmongoで作るサービス
Fluentとmongoで作るサービスFluentとmongoで作るサービス
Fluentとmongoで作るサービス
 
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
鹿児島らぐに初参加してみました I tried the paticipate Kagoshima Linux Users Group
 
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyotoドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
 
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux.
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux.Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux.
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux.
 
GPD-WIN、Windows10タブレットに各種Linuxディストリを入れて改造してみた 2017年度名古屋版
GPD-WIN、Windows10タブレットに各種Linuxディストリを入れて改造してみた 2017年度名古屋版GPD-WIN、Windows10タブレットに各種Linuxディストリを入れて改造してみた 2017年度名古屋版
GPD-WIN、Windows10タブレットに各種Linuxディストリを入れて改造してみた 2017年度名古屋版
 
Recently Mobile Linux Hacking after Kernel4.16RC 最近のKernel4.16RC以降の ガジェットLin...
Recently Mobile Linux Hacking after Kernel4.16RC  最近のKernel4.16RC以降の ガジェットLin...Recently Mobile Linux Hacking after Kernel4.16RC  最近のKernel4.16RC以降の ガジェットLin...
Recently Mobile Linux Hacking after Kernel4.16RC 最近のKernel4.16RC以降の ガジェットLin...
 
HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会HTTP2 RFC 発行記念祝賀会
HTTP2 RFC 発行記念祝賀会
 
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
Android 4.x CyanobenModの 移植方法を調査してみた
Android 4.x CyanobenModの 移植方法を調査してみたAndroid 4.x CyanobenModの 移植方法を調査してみた
Android 4.x CyanobenModの 移植方法を調査してみた
 
http2.0 negotiation&header compression
http2.0 negotiation&header compressionhttp2.0 negotiation&header compression
http2.0 negotiation&header compression
 
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみようAndroidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
Androidクラウドブック DynabookAZでLinuxを色々と遊んでみよう
 

GnukトークンでSSH