Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Java で SSH を実装しています


        ymnk



          1000speakers@Sendai#1(2008/11/22)
自己紹介
•   山中淳彦(ymnk)
•   株式会社ジェイクラフト (JCraft,Inc.)
•   Java
•   最近は、Scala
•   Scala勉強会@東北
•   Eclipse.org の Platform Projec...
内容
•   自己紹介
•   SSHとは
•   Javaによる実装 JSch
•   Uses of JSch
•   今後の予定
•   まとめ
SSH とは
SSHとは(1)
• Secure Shell(secsh)
• Wikipedia: “Secure Shell” から
  – 暗号や認証の技術を利用して、安全にリモートコン
    ピュータと通信するためのプロトコル。パスワードなど
  ...
SSHとは(2)
• 1995年、 Tatu Ylönen がフリーウェアとして第
  一版をリリース(SSH-1)
• 瞬く間に世界中にひろまる
• 同年12月、 Ylönen がSSH社を設立
    →ソースは非公開に
• 1996年、S...
SSHとは(3)
•   RFC4250: Assigned Numbers
•   RFC4251: Protocol Architecture
•   RFC4252: Authentication Protocol
•   RFC4253...
Java による実装 JSch
Javaによる実装 JSch (1)
• JSch(Java Secure Channel)
• SSH-2のクライアント側を実装
  –   shell(リモートログイン)
  –   exec
  –   scp
  –   port-fo...
Javaによる実装 JSch (2)
• JCraft,Inc. 単独で開発
• 関連する自製ソフトウェア
 –   JZlib
 –   JCTerm
 –   JCTerm Plug-in for Eclipse
 –   SFtp Plu...
Uses of JSch
Uses of JSch: Eclipse (1)
• Eclipse 3.0より Eclipse SDK に同梱
• Help > About Eclipse SDK > Plug-in Details
Uses of JSch: Eclipse (2)
• 当初は、CVSの通信の暗号化のために導入

            Eclipse 3.0以降の変更
                      =
     dev.eclipse.or...
Uses of JSch: Eclipse (3)
• committerになったお祝いにトロントからTシャツ
  とキャップが送られてきました:-)
Uses of JSch: NetBeans (1)
• NetBeans 5.0よりプラットフォームに同梱
• http://www.netbeans.org/about/legal/code_depe
  ndency_matrix.html
Uses of JSch: NetBeans (2)
Uses of JSch: NetBeans (3)
• ある日の “NetBeans for PHP” ブログから
 http://blogs.sun.com/netbeansphp/
Uses of JSch: Apache Project
•   Apache Ant (1.6.0以降)
•   Apache Commons VFS
•   Ivy、Maven Wagon、Synapse
•   Chainsaw、Forr...
Uses of JSch: その他
•   Included in Fedora Core 4(and later)
•   JAlbum
•   Sancho
•   JIRA
•   WikiPageOutputStreamPlug-in ...
今後の予定
今後の予定
• “Plaintext Recovery Attack Against SSH” へ
  の対処(コード的には済)
• SSHサーバの実装、sftp サーバの実装
• 認証・暗号通信部分の切り出し
  – 他のアプリでも簡単に暗号...
まとめ
まとめ
• Java で SSH を実装してます
• JSch をどこかで見かけたら、
   この発表と
   1000speakers@Sendai#1
 のことを思い出していただけると幸いです
ありがとうございました
Q&A
Upcoming SlideShare
Loading in …5
×

Implementing SSH in Java

17,429 views

Published on

Published in: Technology

Implementing SSH in Java

  1. 1. Java で SSH を実装しています ymnk 1000speakers@Sendai#1(2008/11/22)
  2. 2. 自己紹介 • 山中淳彦(ymnk) • 株式会社ジェイクラフト (JCraft,Inc.) • Java • 最近は、Scala • Scala勉強会@東北 • Eclipse.org の Platform Project で committer • でも、普段は emacs でプログラムを書いてます
  3. 3. 内容 • 自己紹介 • SSHとは • Javaによる実装 JSch • Uses of JSch • 今後の予定 • まとめ
  4. 4. SSH とは
  5. 5. SSHとは(1) • Secure Shell(secsh) • Wikipedia: “Secure Shell” から – 暗号や認証の技術を利用して、安全にリモートコン ピュータと通信するためのプロトコル。パスワードなど の認証部分を含むすべてのネットワーク上の通信が 暗号化される。 • リモートログイン、scp、sftp、port-fowarding • SSH-1(脆弱性や制限あり)、SSH-2 SSHは、SSH社の登録商標(米国)です
  6. 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. 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社の登録商標(米国)です
  8. 8. Java による実装 JSch
  9. 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. 10. Javaによる実装 JSch (2) • JCraft,Inc. 単独で開発 • 関連する自製ソフトウェア – JZlib – JCTerm – JCTerm Plug-in for Eclipse – SFtp Plug-in for Eclipse – CVS-SSH2 Plug-in for Eclipse
  11. 11. Uses of JSch
  12. 12. Uses of JSch: Eclipse (1) • Eclipse 3.0より Eclipse SDK に同梱 • Help > About Eclipse SDK > Plug-in Details
  13. 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. 14. Uses of JSch: Eclipse (3) • committerになったお祝いにトロントからTシャツ とキャップが送られてきました:-)
  15. 15. Uses of JSch: NetBeans (1) • NetBeans 5.0よりプラットフォームに同梱 • http://www.netbeans.org/about/legal/code_depe ndency_matrix.html
  16. 16. Uses of JSch: NetBeans (2)
  17. 17. Uses of JSch: NetBeans (3) • ある日の “NetBeans for PHP” ブログから http://blogs.sun.com/netbeansphp/
  18. 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. 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.,
  20. 20. 今後の予定
  21. 21. 今後の予定 • “Plaintext Recovery Attack Against SSH” へ の対処(コード的には済) • SSHサーバの実装、sftp サーバの実装 • 認証・暗号通信部分の切り出し – 他のアプリでも簡単に暗号通信ができるように – UDP上で SSH ?
  22. 22. まとめ
  23. 23. まとめ • Java で SSH を実装してます • JSch をどこかで見かけたら、 この発表と 1000speakers@Sendai#1 のことを思い出していただけると幸いです
  24. 24. ありがとうございました
  25. 25. Q&A

×