Technische Universität Braunschweig
  • Studium & Lehre
    • Vor dem Studium
      • Informationen für Studieninteressierte
      • Studiengänge von A-Z
      • Bewerbung
      • Fit4TU - Self-Assessment
      • Orientierungsstudium
    • Im Studium
      • Erstsemester-Hub
      • Semestertermine
      • Lehrveranstaltungen
      • Informationen für Erstsemester
      • Studien-ABC
      • Studienorganisation
      • Beratungsangebote
      • Zusatzqualifikationen
      • Finanzierung und Kosten
      • Besondere Studienbedingungen
      • Campusleben
    • Nach dem Studium
      • Exmatrikulation und Vorlegalisation
      • Nach dem Abschluss
      • Alumni
    • Strategien und Qualitätsmanagement
      • Strategiepapiere für Studium und Lehre
      • Studienqualitätsmittel
      • Qualitätsmanagement
      • Rechtliche Grundlagen
    • Für Lehrende
      • Informationen für Lehrende
      • Konzepte
      • Lernmanagementsystem Stud.IP
      • Lehre und Medienbildung
    • Kontakt
      • Studienservice-Center
      • Sag's uns - in Studium und Lehre
      • Zentrale Studienberatung
      • Immatrikulationsamt
      • Abteilung 16 - Studium und Lehre
      • Career Service
      • Projekthaus
  • Forschung
    • Forschungsprofil
      • Forschungsschwerpunkte
      • Exzellenzcluster
      • Forschungsprojekte
      • Forschungszentren
    • Wissenschaftlicher Nachwuchs
      • Förderung des wissenschaftlichen Nachwuchs
      • Promotion
      • Postdocs
      • Nachwuchsgruppenleitung
      • Junior Professur und Tenure-Track
      • Habilitation
      • Service-Angebote für Wissenschaftler*innen
    • Forschungsdaten & Transparenz
      • Transparenz in der Forschung
      • Forschungsdaten
      • Open Access Strategie
      • Digitale Forschungsanzeige
    • Forschungsförderung
      • Datenbanken und Stiftungen
    • Kontakt
      • Forschungsservice und EU-Hochschulbüro
      • Graduiertenakademie
  • International
    • Internationale Studierende
      • Warum Braunschweig?
      • Studium mit Abschluss
      • Austauschstudium
      • Promotion
      • Geflüchtete Studierende
      • Welcome Programme
      • TU Braunschweig Summer School
    • Wege ins Ausland
      • Studium im Ausland
      • Praktikum im Ausland
      • Promotion im Ausland
      • Lehren und Arbeiten im Ausland
    • Wissenschaftlerinnen und Wissenschaftler
      • Forschen an der TU Braunschweig
      • Forschungsservice und EU-Hochschulbüro
    • Sprachen und interkulturelle Kompetenzvermittlung
      • Deutsch lernen
      • Fremdsprachen lernen
      • Interkulturelle Kompetenzvermittlung
    • Internationales Profil
      • Internationalisierung
      • Internationale Kooperation
    • International House
      • Informationen für Erstsemester
      • Kontakt
      • Aktuelles und Termine
      • Beratung und Sprechstunden
      • Standort
      • Wir über uns
      • Publikationen
      • Stellenausschreibungen
  • Die TU Braunschweig
    • Unser Profil
      • Ziele & Werte
      • Ordnungen und Leitlinien
      • Allianzen & Partner
      • Internationale Strategie
      • Fakten & Zahlen
      • Unsere Geschichte
    • Karriere
      • Arbeiten an der TU
      • Stellenmarkt
      • Berufsausbildung an der TU
    • Wirtschaft & Unternehmen
      • Wissens- und Technologietransfer
      • Unternehmensgründung
      • Freunde & Förderer
    • Öffentlichkeit
      • Veranstaltungskalender
      • TU-Night
      • Check-in für Schüler*innen
      • Hochschulinformationstag (HIT)
      • Kinder-Uni
      • Gasthörer*innen & Seniorenstudium
      • Nutzung der Universitätsbibliothek
    • Presse & Kommunikation
      • Stabsstelle Presse und Kommunikation
      • Medienservice
      • Ansprechpartner*innen
      • Tipps für Wissenschaftler*innen
      • Themen und Stories
    • Kontakt
      • Allgemeiner Kontakt
      • Anreise
  • Struktur
    • Leitung & Verwaltung
      • Universitätsleitung
      • Stabsstellen
      • Verwaltung
      • Organe, Statusgruppen und Kommissionen
    • Fakultäten
      • Carl-Friedrich-Gauß-Fakultät
      • Fakultät für Lebenswissenschaften
      • Fakultät Architektur, Bauingenieurwesen und Umweltwissenschaften
      • Fakultät für Maschinenbau
      • Fakultät für Elektrotechnik, Informationstechnik, Physik
      • Fakultät für Geistes- und Erziehungswissenschaften
    • Institute
      • Institute von A-Z
    • Einrichtungen
      • Universitätsbibliothek
      • Gauß-IT-Zentrum
      • International House
      • Projekthaus
      • Transfer- und Kooperationshaus
      • Sportzentrum
      • Einrichtungen von A-Z
    • Studierendenschaft
      • Studierendenparlament
      • Fachschaften
    • Lehrer*innenbildung
      • Lehramtsstudium
      • Lehrer*innenfortbildung
      • Forschung
    • Chancengleichheit
      • Gleichstellung
      • Familie
      • Diversität
    • Kontakt
      • Personensuche
  • Suche
  • Schnellzugriff
    • Personensuche
    • Webmail
    • Campusplan
    • CloudStorage
    • Messenger
    • Mensa
    • TUconnect (Studierendenportal)
    • Lehrveranstaltungen
    • Stud.IP
    • UB Katalog
    • Status GITZ-Dienste
    • Störungsmeldung
    • IT Self-Service
    • Informationsportal (Beschäftigte)
    • Linksammlung
    • DE
    • EN
    • IBR Twitter
    • IBR YouTube
    • Facebook
    • Twitter
    • Instagram
    • YouTube
    • LinkedIn
Menü
  • Technische Universität Braunschweig
  • Struktur
  • Fakultäten
  • Carl-Friedrich-Gauß-Fakultät
  • Institute
  • Institut für Betriebssysteme und Rechnerverbund
Logo IBR
IBR Login
  • Institut für Betriebssysteme und Rechnerverbund
    • News
    • Wir über uns
      • Gesamtes Team
      • Anreise
      • Raumplan
      • Projekte
      • Veröffentlichungen
      • Software
      • News Archiv
    • Connected and Mobile Systems
      • Team
      • Lehrveranstaltungen
      • Abschlussarbeiten
      • Projekte
      • Veröffentlichungen
      • Software
      • Datensätze
    • Verteilte Systeme
      • Team
      • Lehrveranstaltungen
      • Abschlussarbeiten
      • Projekte
      • Veröffentlichungen
      • Software
    • Algorithmik
      • Team
      • Lehrveranstaltungen
      • Abschlussarbeiten
      • Projekte
      • Veröffentlichungen
    • Mikroprozessorlabor
    • Studium
      • Sommersemester 2023
      • Wintersemester 2022/2023
      • Abschlussarbeiten
    • Service
      • Bibliothek
      • Mailinglisten
      • Webmail
      • Knowledgebase
      • Wiki
      • Account Management
    • Spin-Offs
      • Docoloc
      • AIPARK
      • Confidential Technologies
    • Forschungsverbünde
      • IST.hub

Softwareentwicklungspraktikum: SSH Agent on Android

Semester
Sommersemester 2017
Sommersemester 2023Sommersemester 2022Sommersemester 2021Sommersemester 2020Sommersemester 2019Sommersemester 2018Sommersemester 2016Sommersemester 2015Sommersemester 2014Sommersemester 2013Sommersemester 2012Sommersemester 2011Sommersemester 2010Sommersemester 2009Sommersemester 2008Sommersemester 2007
IBR GruppeCM (Prof. Wolf)
ArtPraktikum
Dozent
Photo
Prof. Dr.-Ing. Lars Wolf
Institutsleiter
wolf[[at]]ibr.cs.tu-bs.de
+49 531 3913288
Raum 138
Assistenten
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
Ort & Zeit

Übungstermine am IBR

Folgende betreute Übungstermine im IZ 146 werden angeboten:

  • Dienstag, 11:30 bis 13:00 Uhr
Beginn03.04.2017
Hörerkreis Studierende der Informatik, Wirtschaftsinformatik und Informations-Systemtechnik im vierten Semester
Inhalt

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.

Termine
[ Kalender abonnieren | Kalender herunterladen ]
09.02.2017, 13:15 Uhr
Vorstellung der Projekte (PK 2.2)
03.04.2017, 13:00 Uhr
IBR: Kick-off (IZ 105)
19.04.2017, 23:59 Uhr
Abgabe Angebot
10.05.2017, 23:59 Uhr
Abgabe Pflichtenheft und Abnahmetestspezifikation
12.05.2017, 23:59 Uhr
IBR-CM: Abgabe Folien
24.05.2017, 15:00 Uhr
Zwischenpräsentation Prototyp (IZ 160)
31.05.2017, 23:59 Uhr
Abgabe Fachentwurf
21.06.2017, 23:59 Uhr
Abgabe Technischer Entwurf
05.07.2017, 23:59 Uhr
Abgabe Testdokumentation
11.07.2017, 23:59 Uhr
IBR-CM: Abgabe Poster zum Druck
13.07.2017, 13:00 Uhr
Tag der jungen Software Entwickler (TDSE)
Literatur/LinksDokumente
Diese Unterlagen sind nur für registrierte Teilnehmer zugänglich. Um sich zu registrieren, benötigen Sie entweder einen IBR-POSIX-Account, den Sie vielleicht bereits im Rahmen einer Arbeit am Institut erhalten haben, oder einen selbst aktivierten IBR-y-Account. Anschließend melden Sie sich über die Login-Funktion dieser Website an.
Kapitel
Folien
Filme
Audio
Übungen
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

aktualisiert am 04.04.2017, 21:28 von Dr. Dominik Schürmann

Für alle

Stellen der TU Braunschweig
Jobbörse des Career Service
Merchandising
Sponsoring- & Spendenleistungen
Drittmittelgeförderte Forschungsprojekte

Für Studierende

Semestertermine
Lehrveranstaltungen
Studiengänge von A-Z
Informationen für Erstsemester
TUCard

Interne Tools

Status GITZ-Dienste
Handbuch für TYPO3 (Intern)
Corporate Design-Toolbox (Intern)
Glossar (DE-EN)
Meine Daten ändern
Hochschulöffentliche Bekanntmachungen

Kontakt

Technische Universität Braunschweig
Universitätsplatz 2
38106 Braunschweig
Postfach: 38092 Braunschweig
Telefon: +49 (0) 531 391-0

Anreise

© Technische Universität Braunschweig
ImpressumDatenschutzBarrierefreiheit