More Related Content
Similar to Implementing SSH in Java
Similar to Implementing SSH in Java (20)
Implementing SSH in Java
- 1. Java で SSH を実装しています
ymnk
1000speakers@Sendai#1(2008/11/22)
- 2. 自己紹介
• 山中淳彦(ymnk)
• 株式会社ジェイクラフト (JCraft,Inc.)
• Java
• 最近は、Scala
• Scala勉強会@東北
• Eclipse.org の Platform Project で committer
• でも、普段は emacs でプログラムを書いてます
- 3. 内容
• 自己紹介
• SSHとは
• Javaによる実装 JSch
• Uses of JSch
• 今後の予定
• まとめ
- 5. SSHとは(1)
• Secure Shell(secsh)
• Wikipedia: “Secure Shell” から
– 暗号や認証の技術を利用して、安全にリモートコン
ピュータと通信するためのプロトコル。パスワードなど
の認証部分を含むすべてのネットワーク上の通信が
暗号化される。
• リモートログイン、scp、sftp、port-fowarding
• SSH-1(脆弱性や制限あり)、SSH-2
SSHは、SSH社の登録商標(米国)です
- 6. SSHとは(2)
• 1995年、 Tatu Ylönen がフリーウェアとして第
一版をリリース(SSH-1)
• 瞬く間に世界中にひろまる
• 同年12月、 Ylönen がSSH社を設立
→ソースは非公開に
• 1996年、SSH社が SSH-2を設計・実装
• 1999年、有志がフリーな頃のコードを元にfork
→のちの OpenSSH
• 2000年、OpenSSH が SSH-2に対応
SSHは、SSH社の登録商標(米国)です
- 7. SSHとは(3)
• RFC4250: Assigned Numbers
• RFC4251: Protocol Architecture
• RFC4252: Authentication Protocol
• RFC4253: Transport Layer Protocol
• RFC4254: Connection Protocol
• RFC4256: Generic Message Exchange Auth
• RFC4344: Transport Layer Encryption Modes
• RFC4419: DH Group Exchange for Transport Layer
• RFC4462: GSSAPI Authentication and Key Exchange
• RFC4335 、RFC4716、RFC4819、RFC4255
• DRAFT: SSH File Transfer Protocol
SSHは、SSH社の登録商標(米国)です
- 9. Javaによる実装 JSch (1)
• JSch(Java Secure Channel)
• SSH-2のクライアント側を実装
– shell(リモートログイン)
– exec
– scp
– port-forwarding
• J2SE(1.4以降)、J2ME CDC・CLDC(MIDP2.0)
• 修正BSDライセンス
• 開発開始: 2003年1月
- 10. Javaによる実装 JSch (2)
• JCraft,Inc. 単独で開発
• 関連する自製ソフトウェア
– JZlib
– JCTerm
– JCTerm Plug-in for Eclipse
– SFtp Plug-in for Eclipse
– CVS-SSH2 Plug-in for Eclipse
- 12. Uses of JSch: Eclipse (1)
• Eclipse 3.0より Eclipse SDK に同梱
• Help > About Eclipse SDK > Plug-in Details
- 13. Uses of JSch: Eclipse (2)
• 当初は、CVSの通信の暗号化のために導入
Eclipse 3.0以降の変更
=
dev.eclipse.org の CVS repository へのコミット
全て、JSch を介してます!!
• org.eclipse.jsch.{core,ui}Plug-in、DSDP-TM
- 14. Uses of JSch: Eclipse (3)
• committerになったお祝いにトロントからTシャツ
とキャップが送られてきました:-)
- 15. Uses of JSch: NetBeans (1)
• NetBeans 5.0よりプラットフォームに同梱
• http://www.netbeans.org/about/legal/code_depe
ndency_matrix.html
- 17. Uses of JSch: NetBeans (3)
• ある日の “NetBeans for PHP” ブログから
http://blogs.sun.com/netbeansphp/
- 18. Uses of JSch: Apache Project
• Apache Ant (1.6.0以降)
• Apache Commons VFS
• Ivy、Maven Wagon、Synapse
• Chainsaw、Forrest、Pig(Hadoopのsubproject?)
• http://www.apache.org/licenses/exports/
- 19. Uses of JSch: その他
• Included in Fedora Core 4(and later)
• JAlbum
• Sancho
• JIRA
• WikiPageOutputStreamPlug-in for Trac
• Rational Application Developer for Websphere
• HP Storage Essentials
• etc.,
- 21. 今後の予定
• “Plaintext Recovery Attack Against SSH” へ
の対処(コード的には済)
• SSHサーバの実装、sftp サーバの実装
• 認証・暗号通信部分の切り出し
– 他のアプリでも簡単に暗号通信ができるように
– UDP上で SSH ?
- 23. まとめ
• Java で SSH を実装してます
• JSch をどこかで見かけたら、
この発表と
1000speakers@Sendai#1
のことを思い出していただけると幸いです