Technische Universität Braunschweig
  • Study & Teaching
    • Beginning your Studies
      • Prospective Students
      • Degree Programmes
      • Application
      • Fit4TU
    • During your Studies
      • Freshmen-Hub
      • Term Dates
      • Information for Freshman
      • Practical Information
      • Additional Qualifications
      • Financing and Costs
      • Special Circumstances
      • Campus life
    • At the End of your Studies
      • Discontinuation and Credentials Certification
      • After graduation
      • Alumni
    • For Teaching Staff
      • Strategy, Offers and Information
      • Learning Management System Stud.IP
      • Team Teaching and Media Education
    • Contact
      • Student Advice Centre
      • Academic Advice Service
      • Admissions Office
  • Research
    • Research Profile
      • Core Research Areas
      • Clusters of Excellence
      • Research Projects
      • Research Centres
    • Early Stage Researchers
      • Promotion of early career scientists
      • PhD-Students
      • Postdocs
      • Junior research group leaders
      • Junior Professorship and Tenure-Track
      • Habilitation
      • Service Offers for Scientists
    • Research Data & Transparency
      • Transparency in Research
      • Research Data
      • Open Access Strategy
      • Digital Research Announcement
    • Research Funding
      • Research funding
    • Contact
      • Research Services
      • Academy for Graduates
  • International
    • International Students
      • Why Braunschweig?
      • Degree seeking students
      • Exchange Studies
      • Doctorate (PhD)
      • Refugee Students
      • Welcome Programme
      • TU Braunschweig Summer School
    • Scientists
      • Mobile Researchers at the TU Braunschweig
      • Research Services and European Office
    • Language and intercultural competence training
      • Learning German
      • Intercultural Communication
    • International Profile
      • Internationalisation
      • International Cooperation
    • International House
      • Information for first semester students
      • Contact
      • News and Events
      • Advisory Services
      • Location
      • About us
  • TU Braunschweig
    • Our Profile
      • Aims & Values
      • Regulations and Guidelines
      • Alliances & Partners
      • Facts & Figures
      • Our History
    • Career
      • Working at TU Braunschweig
      • Vacancies
    • Economy & Business
      • Knowledge and Technology Transfer
      • Entrepreneurship
    • General Public
      • Access to the University Library
    • Media Services
      • Communications and Press Service
      • Communications and Press Service
      • Film and photo permits
      • Advices for scientists
      • Topics and stories
    • Contact
      • General Contact
      • Getting here
  • Organisation
    • Presidency & Administration
      • Presidency
      • Designated Offices
      • Administration
      • Committees
    • Faculties
      • Carl-Friedrich-Gauß-Fakultät
      • Faculty of Life Sciences
      • Architecture, Civil Engineering and Environmental Sciences
      • Faculty of Mechanical Engineering
      • Fakultät für Elektrotechnik, Informationstechnik, Physik
      • Faculty of Humanities and Studies in Education
    • Institutes
      • Institutes from A to Z
    • Facilities
      • University Library
      • Gauß-IT-Zentrum
      • International House
      • Sports Centre
      • Facilities from A to Z
    • Equal Opportunity Office
      • Equal Opportunity Office
      • Family
      • Diversity for Students
  • Search
  • Quicklinks
    • People Search
    • Webmail
    • Campus map
    • CloudStorage
    • Messenger
    • Cafeteria
    • Courses
    • Stud.IP
    • Library Catalogue
    • IT Self-Service
    • Information Portal (employees)
    • Link Collection
    • DE
    • EN
    • IBR Twitter
    • IBR YouTube
    • Facebook
    • Twitter
    • Instagram
    • YouTube
    • LinkedIn
Menu
  • Technische Universität Braunschweig
  • Organisation
  • Faculties
  • Carl-Friedrich-Gauß-Fakultät
  • Institutes
  • Institute of Operating Systems and Computer Networks
Logo IBR
IBR Login
  • Institute of Operating Systems and Computer Networks
    • News
    • About us
      • Whole Team
      • Directions
      • Floor Plan
      • Projects
      • Publications
      • Software
      • News Archive
    • Connected and Mobile Systems
      • Team
      • Courses
      • Theses
      • Projects
      • Publications
      • Software
      • Datasets
    • Distributed Systems
      • Team
      • Courses
      • Theses
      • Projects
      • Publications
      • Software
    • Algorithms
      • Team
      • Courses
      • Theses
      • Projects
      • Publications
    • Microprocessor Lab
    • Education
      • Summer 2023
      • Winter 2022/2023
      • Summer 2022
      • Theses
    • Services
      • Library
      • Mailinglists
      • Webmail
      • Knowledge Base
      • Wiki
      • Account Management
    • Spin-Offs
      • Docoloc
      • AIPARK
      • Confidential Technologies
    • Research Cooperations
      • IST.hub

Softwareentwicklungspraktikum: SSH Agent on Android

Semester
Summer 2017
Summer 2022Summer 2021Summer 2020Summer 2019Summer 2018Summer 2016Summer 2015Summer 2014Summer 2013Summer 2012Summer 2011Summer 2010Summer 2009Summer 2008Summer 2007
IBR GroupCM (Prof. Wolf)
TypePraktikum
Lecturer
Photo
Prof. Dr.-Ing. Lars Wolf
Institutsleiter
wolf[[at]]ibr.cs.tu-bs.de
+49 531 3913288
Room 138
Assistants
Photo
Dr. Dominik Schürmann
Ehemaliger Wissenschaftlicher Mitarbeiter
schuermann[[at]]ibr.cs.tu-bs.de
Photo
Martin Wegner
Ehemaliger Wissenschaftlicher Mitarbeiter
Hiwi
Anonymous Photo
Linda Fliss
Time & Place

Übungstermine am IBR

Folgende betreute Übungstermine im IZ 146 werden angeboten:

  • Dienstag, 11:30 bis 13:00 Uhr
Start03.04.2017
Attendees Studierende der Informatik, Wirtschaftsinformatik und Informations-Systemtechnik im vierten Semester
Content

Einleitung

SSH bezeichnet ein Netzwerkprotokoll mit dem man auf eine sichere Art und Weise eine verschlüsselte Netzwerkverbindung mit einem entfernten Gerät herstellen kann. Häufig wird diese Methode verwendet, um lokal eine entfernte Kommandozeile verfügbar zu machen, das heißt, auf einer lokalen Konsole werden die Ausgaben der entfernten Konsole ausgegeben und die lokalen Tastatureingaben werden an den entfernten Rechner gesendet.

SSH auf Linux

Wie in Abbildung 1 zu sehen, gibt es unter Linux hierfür den "ssh"-Client und "sshd"-Server-Daemon. Neben einer Passwort-basierten Authentisierung, können auch sogenannte Public-Key-Verfahren genutzt werden. Die Verwaltung solcher Schlüssel findet traditionell im "ssh-agent" statt. Man kann aber auch einen anderen SSH Agent einstellen und die Schlüssel beispielsweise von GnuPG durch den "gpg-agent" verwalten lassen.


Abbildung 1: SSH Agent auf Linux


SSH auf Android

Unter Android existiert mit ConnectBot eine der wichtigsten quelloffenen SSH-Client-Implementierungen. Eine sehr gute proprietäre Alterantive ist JuiceSSH, von dem man sich weitere Features abgucken könnte. In ConnectBot findet die Verwaltung von Schlüsseln in ConnectBot selber statt. Im Moment gibt es keine Möglichkeit andere Apps als SSH Agent zu nutzen (siehe Abbildung 2).


Abbildung 2: Aktuelle Android-Implementierung


Ziel dieses SEP

In diesem SEP soll ConnectBot so erweitert werden, sodass andere Apps als SSH Agent genutzt werden können. Des Weiteren sollen zwei SSH Agents implementiert werden, wie in Abbildung 3:

  • Ein Agent soll auf der Android Keystore API basieren. Schlüssel die mit Hilfe dieser API abgelegt werden sind besonders durch das Betriebssystem geschützt, wenn es das Gerät unterstützt sogar durch Security Hardware.
  • OpenKeychain, eine App die z.B. Public-Key-Kryptographie für E-Mails unterstützt, soll erweitert werden sodass auch diese als SSH Agent von ConnectBot genutzt werden kann. Dies würde auch die Nutzung von NFC Security Tokens ermöglichen, wie beispielsweise dem YubiKey NEO (Ich werde innerhalb des SEPs solche Security Tokens ausgeben).


Abbildung 3: Ziel dieses SEP


Ablauf

Die Anzahl an Codezeilen in diesem SEP wird im Vergleich zu anderen Projekten eher gering ausfallen. Stattdessen muss man sich hier mehr Hintergrundwissen aneignen als in anderen Projekten. Außerdem soll der produzierte Code in die Originalprojekte zurückfließen und veröffentlicht werden. Ihr arbeitet also an "Real-World Source Code". Damit die Komplexität zu meistern ist, schlage ich folgendes Vorgehen vor:

  1. Einarbeitung in Android-APIs, Beispiele programmieren
  2. Einen Prototyp-SSH-Client unter Nutzung der sshlib entwickeln.
    1. Dieser soll so einfach wie möglich gehalten werden. Es geht nur darum zu verstehen wie man eine einfache Passwort-gesicherte Verbindung zu einem SSH-Server herstellen kann.
    2. Hilfreich dazu: ConnectBot Source Code lesen, im Speziellen die SSH-Klasse
    3. Also: Connection mit Password-Authentication herstellen und Response anzeigen
  3. Simples Key Management für Public Keys in den Prototypen einbauen
    1. Erst mit hardcoded Public Keys
    2. Dann mit User Interface und Key-Liste
    3. Abschließend unter Nutzung der Keystore API
  4. API für SSH Agent entwickeln
    1. ConnectBot anpassen damit der Prototyp als externer SSH Agent genutzt wird
    2. Pull Request erstellen an unseren ConnectBot fork
  5. OpenKeychain als SSH Agent
    1. OpenKeychain anpassen damit es als SSH Agent gentutzt werden kann
    2. Pull Request erstellen an OpenKeychain
  6. Test des Gesamtsystems
  7. Währenddessen: Pflege der SEP-Dokumente (Angebot, Pflichtenheft, Fachentwurf, ...)

Anmerkung zur Nutzung SVN/Git

Der von euch erstellte Code und die Dokumente müssen im SVN des ISF verwaltet werden. Nur für die Pull Requests an ConnectBot und OpenKeychain soll Git verwendet werden.

Schedule
[ Subscribe Calendar | Download Calendar ]
09.02.2017, 13:15
Vorstellung der Projekte (PK 2.2)
03.04.2017, 13:00
IBR: Kick-off (IZ 105)
19.04.2017, 23:59
Abgabe Angebot
10.05.2017, 23:59
Abgabe Pflichtenheft und Abnahmetestspezifikation
12.05.2017, 23:59
IBR-CM: Abgabe Folien
24.05.2017, 15:00
Zwischenpräsentation Prototyp (IZ 160)
31.05.2017, 23:59
Abgabe Fachentwurf
21.06.2017, 23:59
Abgabe Technischer Entwurf
05.07.2017, 23:59
Abgabe Testdokumentation
11.07.2017, 23:59
IBR-CM: Abgabe Poster zum Druck
13.07.2017, 13:00
Tag der jungen Software Entwickler (TDSE)
ReferencesDokumente
The material is only available to registered attendees. In order to register, you need either an IBR POSIX account or a self-activated IBR-y-account. Afterwards you can login to this site.
Chapter
Slides
Movies
Audio
Exercises
Kick-Off
pdfpdfpdf
SVN-Einfuehrung
pdfpdfpdf
Vorlagen
  • Dokumentenvorlagen vom ISF
  • Präsentationsvorlagen
Organisatorisches
  • SEP-Hauptseite vom ISF
  • Mailingliste
  • Redmine
SVN-Hilfen
  • Sehr gute Einführung in SVN
  • RabbitVCS (SVN Client für Linux)
  • TortoiseSVN (SVN Client für Windows)
Weitere Hilfen
  • LaTeX-Kurzbeschreibung
  • Android Developer Site
  • Android Code Conventions
  • Google Java Code Conventions
  • Traditional Java Code Conventions

last changed 2017-04-04, 21:28 by Dr. Dominik Schürmann

For All Visitors

Vacancies of TU Braunschweig
Career Service' Job Exchange 
Merchandising

For Students

Term Dates
Courses
Degree Programmes
Information for Freshman
TUCard

Internal Tools

Glossary (GER-EN)
Change your Personal Data

Contact

Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig

P. O. Box: 38092 Braunschweig
GERMANY

Phone: +49 (0) 531 391-0

Getting here

© Technische Universität Braunschweig
ImprintPrivacyAccessibility