Geschiedenis van het Project en Credits
OpenSSH
is afgeleid van de originele vrije ssh-versie 1.2.12
van Tatu Ylönen. Deze versie was de laatste die vrij genoeg was voor
hergebruik door ons project. Delen van OpenSSH bevatten nog steeds Tatu's
licentie die bij die versie kwam. Deze en eerdere versies gebruikten wiskundige
functies van de libgmp-bibliotheek. Die bibliotheek was ook inbegrepen met deze
vroege ssh-versies. De libgmp-bibliotheek wordt beschikbaar gesteld onder de
(LGPL) Lesser GNU Public License, maar versies uit die tijd hadden de gewone
(GPL) GNU Public License.
Een gecombineerde licentie voor alle onderdelen is te vinden op
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/LICENCE.
Snel na versie 1.2.12 kregen nieuwere versies meer beperkende licenties,
terwijl libgmp nog steeds inbegrepen was en noodzakelijk was voor gebruik van de
software. Eerdere beperkende licenties verboden mensen om een Windows of
DOS-versie te maken. Latere licenties verboden het gebruik van ssh in een
commerciële omgeving en zorgden ervoor dat bedrijven een dure versie van
Datafellows moesten kopen.
In het begin van 1999 herontdekte Björn Grönvall deze versie en begon
bugs weg te halen. Zijn versie van ssh heet
OSSH
en had alleen ondersteuning voor het SSH 1.3 protocol. Het gerucht gaat dat
OSSH geïntegreerd is in enkele commerciële producten in Zweden. Tot
op de dag van vandaag ondersteunt OSSH nog steeds niet het SSH 2 protocol.
De leden van het OpenBSD project kwamen minder dan twee maanden voordat
OpenBSD versie 2.6 uitgebracht
werd op de hoogte van het werk van Björn. We wilden in versie 2.6
ondersteuning voor het ssh protocol hebben, maar we moesten er zeker van
zijn dat het perfect was. Daarom besloten we om onmiddelijk de OSSH versie
te "forken" om de snelle manier van ontwikkelen te behouden die aanwezig was
tijdens de originele OpenBSD veiligheidsaudit. Tegen de tijd dat het
uitgebracht werd waren sommige bestanden al op RCS revisie 1.34 en sommige
zelfs op 1.66. De ontwikkeling ging werkelijk heel snel, daar we een deadline
te halen hadden.
De volgende teamleden hebben deelgenomen:
- Theo de Raadt (CANADA) begon met het verwijderen van onporteerbare code
die de code lastiger te lezen maakte -- met als doel eenvoudigere broncode,
zodat veiligheidsgaten en andere zaken gemakkelijker naar voren zouden komen.
- Niels Provos (DUITSLAND maar leeft in de USA) verwijderde snel de
overgebleven componenten met cryptografie en componenten met een GPL door naar
Canada te rijden zodat we uiteindelijk een compleet vrij herbruikbare basis
hadden.
- Markus Friedl (DUITSLAND) kwam erbij en was in staat vrij snel de SSH 1.3
protocol code van versie 1.2.12 te vervangen door een SSH 1.5 protocol
implementatie die compatibel is met de huidige "ssh 1.2.27" serie (deze
wijziging was nodig om te kunnen werken met veel SSH-compatibele
Windows clients die geen ondersteuning hadden voor het SSH 1.3
protocol). Zijn implementatie wordt nu gebruikt in OSSH.
Hij voegde ondersteuning voor het SSH 1.5 protocol op zo een manier toe dat
ondersteuning voor het SSH 1.3 protocol behouden bleef. Later voegde hij ook
ondersteuning toe voor het SSH 2 protocol en SFTP.
- Bob Beck (CANADA) hielp met Makefile magie om te verzekeren dat we OpenSSL
konder compileren zonder gepatenteerde algoritmen; omdat OpenBSD 2.6 uitgebracht
werd voor de vervaldatum van het RSA-patent moesten we op onze CD's libssl en
libcrypto gedeelde bibliotheken uitbrengen zonder RSA. Tijdens de installatie
was de gebruiker in staat deze bibliotheken te vervangen via FTP/HTTP over het
Internet. Gelukkig zijn dit soort hacks niet meer nodig.
- Aaron Campbell (CANADA) verbeterde enkele fouten in de documentatie en
enkele andere probelem met de code. Het is vooral aan hem te danken dat de man
pagina's zo compleet zijn.
- Dug Song (USA) hielp met enkele kwesties rondom authenticatie in KerberosIV
(zijn wijzigingen zijn nauwkeuring gecontroleerd om te verzekeren dat hij geen
cryptografie aanpaste, maar alleen kwesties rondom authenticatie).
De versie van OpenSSH is gebaseerd op deze oudere versies van
ssh 1.2.12, maar met veel bugs verwijderd en nieuwere functionaliteiten
opnieuw toegevoegd:
- alle componenten die beperkend van aard zijn (b.v. patenten,
zie ssl)
zijn direct verwijderd van de broncode; gelijk welke gelicentieerde of
gepatenteerde componenten zijn uit externe bibliotheken gekozen
(b.v. OpenSSL).
- bevat toegevoegde ondersteuning voor
KerberosIV
authenticatie en ticketuitwisseling.
- bevat one-time wachtwoordauthenticatie met
skey.
- En honderden andere wijzigingen die mensen kunnen ontdekken in de nieuwe man
pagina's en de wijzigingen in de broncode.
Dat markeerde OpenSSH versie 1.2.2 die uitgebracht was met OpenBSD 2.6 op 1
December 1999. Sindsdien is OpenSSH voornamelijk ontwikkeld door
Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt
en Dug Song. We bedanken de vele mensen die bugs hebben gevonden en deze gemeld
hebben.
OpenSSH porten
Ongeveer gelijk nadat we onze implementatie van het SSH 1 protocol uitbrachten
raakten verschillende niet-OpenBSD groepen erg, erg geïnteresseerd. Damien
Miller, Philip Hands en enkele anderen begonnen OpenSSH te porten naar Linux en
verschillende andere Unix besturingssystemen. Vanaf het begin dat we begonnen
vonden we dat zelfs de originele SSH-implementatie te complex was; er waren
gewoon teveel afhankelijkheden van het besturingssysteem. Onze aanpak in het
schrijven van compleet veilige en stabiele code vermijdt het omgaan met zulke
buitensporige verschillen. Om het hele ontwikkelproces makkelijker te maken
voor ons allemaal hebben we besloten om de kernontwikkeling te scheiden van de
ontwikkeling van portabiliteit.
Dit heeft goed uitgepakt voor ons. (Vergelijk het aantal regels code
tussen de basisversie en de portable versie).
Ondersteuning voor het SSH 2 Protocol
Nadat OpenBSD 2.6 uitgebracht was besloot Markus Friedl om
ondersteuning voor het SSH 2 protocol te schrijven.
Na maanden van zware arbeid is het hem gelukt OpenSSH slank en klein te houden
en tegelijkertijd een softwareprogramma te maken die zowel het SSH 1 als het SSH
2 protocol ondersteunt. Deze versie, OpenSSH 2.0 genaamd, werd uitgebracht met
OpenBSD 2.7 op 15 Juni 2000. Het grootste gedeelte van de wijzigingen van Markus
zijn gecontroleerd door Niels Provos en Theo de Raadt. We hebben Bob Beck te
bedanken voor het updaten van OpenSSL naar een nieuwere versie.
Ondersteuning voor SFTP
Ondersteuning voor het SFTP sub-protocol aan de serverkant is geschreven door
Markus Friedl en werd uitgebracht in versie 2.3.0 in November van 2000. Kort
daarna begon Damien Miller te werken aan een sftp-client die voor het eerst
uitgebracht is in 2.5.0.
Scannen van SSH-Server Versies
Om de SSH-servers te monitoren die in gebruik zijn in b.v. een bedrijfsnetwerk
schreef Niels Provos het
scanssh
programma. scanssh scant een lijst van adressen en netwerken voor SSH-servers
en hun versies. Het ondersteunt willekeurige selectie van IP adressen van grote
netwerkbereiken en is handig voor het verzamelen van statistieken over het
gebruik van SSH-servers in een bedrijf of het Internet in z'n geheel. De
statistieken voorzien in de SSH-protocollen die ondersteund worden en de
versies van de software.
scanssh wordt gebruikt om
statistieken te verzamelen over het gebruik
van het SSH-protocol op het Internet. De metingen bieden inzicht in de
distributie van de verschillende SSH-protocollen en de marktpenetratie van
verschillende server versies.
SSH: Eindelijk volledig vrij.
www@openbsd.org
$OpenBSD: history.html,v 1.10 2005/05/22 17:38:06 saad Exp $