Apple als ‘Big Brother’? Of valt het allemaal wel mee?

Door: Night - 12 reacties
Big Brother is watching you
Afbeelding: Apple Inc. - Commercial uit 1984

Toen Apple macOS Big Sur lanceerde, werd dit vrijwel onmiddellijk gevolgd door een serverprobleem bij het bedrijf. Hierdoor konden gebruikers ineens geen apps van derden meer op hun Mac draaien. Hoewel mensen op Twitter al snel een oplossing vonden, hadden anderen ernstige zorgen over je online privacy met betrekking tot dat probleem.

Vlak na de lancering van macOS 11.0 Big Sur bleken diverse gebruikers ineens geen apps van derden meer te kunnen draaien. De oorzaak bleek te liggen in een storing op de OCSP-server van Apple. macOS stuurt daar namelijk onversleutelde gegevens naar toe met betrekking tot de apps die je gebruikt. Een gevalletje ‘Big Brother is watching you’ van Apple, of valt het wel mee met je online privacy?

In dit artikel gaan we dieper in op die veiligheidsmaatregel van Apple en laten we zien dat je je niet direct zorgen hoeft te maken over je online privacy.

Wat is OCSP?

OCSP staat voor Online Certificate Status Protocol. Zoals de naam al aangeeft, wordt het gebruikt om de geldigheid van een certificaat te verifiëren zonder grote certificaatintrekkingslijsten te hoeven downloaden en scannen. macOS gebruikt OCSP om ervoor te zorgen dat het ontwikkelaarscertificaat niet is ingetrokken voordat een app wordt gestart. Met OCSP gebruikt Apple dus gewoon een industrie-standaard.

Jeff Johnson legt in zijn tweet hierboven uit dat als macOS de OCSP-responder van Apple niet kan bereiken, de controle wordt overgeslagen en de app toch wordt gestart. Het is in feite een fail-open-gedrag. Het probleem is echter dat de responder van Apple helemaal niet uitviel. Hij was bereikbaar maar werd door nog niet bekende oorzaken extreem traag. Dit voorkwam dat de controle werd overgeslagen, met als gevolg dat apps niet wilden opstarten.

Het is duidelijk dat dit mechanisme vereist dat macOS contact opneemt met Apple voordat een app wordt gelanceerd. Het plotselinge publieke besef van dit feit, veroorzaakt door de server-problemen van Apple, veroorzaakte enige bezorgdheid over de online privacy van gebruikers. Een bericht van beveiligingsonderzoeker Jeffrey Paul werd erg populair op Twitter. Hij gooide extra olie op het vuur met de volgende bewering:

In de huidige versie van macOS stuurt het besturingssysteem naar Apple een hash (unieke identificatie) van elk programma dat je draait, wanneer je het draait.

 

Oversleutelde gegevens?

Dat zou inderdaad eng zijn. Om het nog erger te maken, is het gebruikelijk dat OCSP HTTP gebruikt – dus die goede oude HTTP platte tekst via poort 80, niet die versleutelde HTTPS-onzin. Daar is overigens een goede reden voor, die vooral duidelijk wordt wanneer de OCSP-service wordt gebruikt voor webbrowsers: het voorkomen van ‘loops’.

Als je HTTPS gebruikt om een ​​certificaat met OCSP te controleren, moet je ook het certificaat voor de HTTPS-verbinding met OCSP controleren. Dat zou betekenen dat er nóg een HTTPS-verbinding moet worden geopend, etc. etc..

Hoewel gegevens naar de OCSP-server dus ongecodeerd verzonden worden, vereist het natuurlijk wel dat de antwoorden worden ondertekend door de server. Dit neemt echter nog steeds de aanvankelijke zorg niet weg, dat iemand met een traffic analyzer op je netwerk van elke app kan zien, dat je die gebruikt en en wanneer je die app opent.

We duiken iets dieper in OCSP

Zodra je enkele basisprincipes van OCSP kent, rijzen er diverse vragen. OCSP gaat over het controleren van certificaten; waarom zou dit iets te maken hebben met het verzenden van hashes van apps die je draait? Berekent macOS echt de hash van elk uitvoerbaar bestand bij elke lancering? Hoe zit het met zeer grote apps? Dat zou veel tijd kosten… Hoe is het mogelijk dat niemand dat dan heeft opgemerkt? Misschien wordt de hash maar één keer berekend (bijvoorbeeld de eerste keer dat je de app start) en wordt deze ergens opgeslagen. Het is allemaal niet erg overtuigend en behoeft duidelijk meer onderzoek.

Het registeren van een OCSP-verzoek is heel eenvoudig. Geen HTTPS betekent geen encryptie, geen certificaten, dus geen enkel probleem. Onderzoeker Jacopo Jannone heeft dit daarom uitgezocht. Hij is begonnen met het vastleggen van een OCSP verzoek van macOS naar Apple’s OCSP-server tijdens het openen van de bekende webbrowser Firefox:

GET /ocsp-devid01/ME4wTKADAgEAMEUwQzBBMAkGBSsOAwIaBQAEFDOB0e%2FbaLCFIU0u76%2BMSmlkPCpsBBRXF%2B2iz9x8mKEQ4Py%2Bhy0s8uMXVAIIBseUIWx6qTA%3D HTTP/1.1<br />
Host: ocsp.apple.com<br />
Accept: */*<br />
User-Agent: com.apple.trustd/2.0<br />
Accept-Language: it-it<br />
Accept-Encoding: gzip, deflate<br />
Connection: keep-alive

Jannone merkt daarbij op dat er na het sluiten en opnieuw openen van Firefox geen nieuwe verzoeken zijn verstuurd. Dat is redelijk en geeft aan dat de certificaat-controle niet bij elke lancering wordt uitgevoerd, maar pas nadat deze gedurende een bepaalde periode niet is uitgevoerd.

Het verzoek is een heel eenvoudige GET die de payload bevat als een base64-gecodeerde string. De feitelijke binaire gegevens kunnen eenvoudig naar een bestand worden gedumpt:

echo 'ME4wTKADAgEAMEUwQzBBMAkGBSsOAwIaBQAEFDOB0e / baLCFIU0u76 + MSmlkPCpsBBRXF + 2iz9x8mKEQ4Py + hy0s8uMXVAIIBseUIWx6qTA =' | base64 --decode> output.bin

Het resultaat is een payload van 80 bytes die in niet eens in de verte op een hash lijkt. En verrassing – dat is het ook niet. We kunnen OpenSSL gebruiken om het bestandje in leesbare informatie om te zetten:

openssl ocsp -text -reqin output.bin

Het resultaat:

OCSP Request Data:<br />
Version: 1 (0x0)<br />
Requestor List:<br />
Certificate ID:<br />
Hash Algorithm: sha1<br />
Issuer Name Hash: 3381D1EFDB68B085214D2EEFAF8C4A69643C2A6C<br />
Issuer Key Hash: 5717EDA2CFDC7C98A110E0FCBE872D2CF2E31754<br />
Serial Number: 06C794216C7AA930

Het is duidelijk dat de trusd service op macOS geen hash verstuurt van de apps die je opstart. In plaats daarvan stuurt het alleen informatie over een bepaald certificaat. Precies zoals we zeker zouden verwachten als we begrijpen wat OCSP in de eerste plaats is.

Dit lost het probleem echter nog niet op. Als elke app een uniek certificaat heeft, zou het nog steeds mogelijk zijn om een ​​tabel te maken die elk serienummer aan de bijbehorende app koppelt. Dan zou dit dus nog steeds een privacy-kwestie zijn. Jannone ging daarom verder kijken of dit het geval is.

Ontwikkelaarscertificaten…

Allereerst wilde Jannone bepalen van welk certificaat deze informatie afkomstig is. Hij heeft daar het hulpprogramma codesign van Apple voor gebruikt. Hiermee kon hij certificaten uit de Firefox-app extraheren om naar overeenkomende gegevens te zoeken.

codesign -d --extract-certificaten /Applications/Firefox.app

Dit commando resulteert in het creëren van verschillende bestanden met de namen codesign0, codesign1, etc. De eerste is het leaf-certificaat, terwijl de anderen tot de root behoren van de certificaatketen. Codesign0 is dus wat we zoeken, en opnieuw is gebruik gemaakt van OpenSSL om er wat informatie uit te filteren.

openssl x509 -inform der -in codesign0 -text
Certificate:<br />
Data:<br />
Version: 3 (0x2)<br />
Serial Number: 488521955867797808 (0x6c794216c7aa930)<br />
Signature Algorithm: sha256WithRSAEncryption<br />
Issuer: CN=Developer ID Certification Authority, OU=Apple Certification Authority, O=Apple Inc., C=US<br />
Validity<br />
Not Before: May 8 19:08:58 2017 GMT<br />
Not After : May 9 19:08:58 2022 GMT<br />
Subject: UID=43AQ936H96, CN=Developer ID Application: Mozilla Corporation (43AQ936H96), OU=43AQ936H96, O=Mozilla Corporation, C=US<br />
...

Hij controleerde het serienummer dat eerder boven water kwam (0x6c794216c7aa930) en vergeleek het met de payload van het OCSP-verzoek. Een match! Dit bewijst dat OCSP-verzoeken daadwerkelijk informatie over het app-ontwikkelaarscertificaat verzenden.

… En hun algemeenheid

“Ja, en..?” zou je nu kunnen vragen. Nou, ontwikkelaars-certificaten zijn niet per app uniek. Jannone toont dit aan door het certificaat van een andere app van Mozilla, in dit geval Thunderbird, te controleren.

codesign -d --extract-certificaten /Applications/Thunderbird.app<br />
openssl x509 -inform der -in codesign0 -text
<br />
Certificate:<br />
Data:<br />
Version: 3 (0x2)<br />
Serial Number: 488521955867797808 (0x6c794216c7aa930)<br />
Signature Algorithm: sha256WithRSAEncryption<br />
Issuer: CN=Developer ID Certification Authority, OU=Apple Certification Authority, O=Apple Inc., C=US<br />
Validity<br />
Not Before: May 8 19:08:58 2017 GMT<br />
Not After : May 9 19:08:58 2022 GMT<br />
Subject: UID=43AQ936H96, CN=Developer ID Application: Mozilla Corporation (43AQ936H96), OU=43AQ936H96, O=Mozilla Corporation, C=US

Hé, dat is precies hetzelfde certificaat dat voor Firefox wordt gebruikt (dûhh). Dus de analyse van Jeffrey Paul is niet helemaal nauwkeurig – althans niet wat de volgende onderdelen betreft:

Het besturingssysteem stuurt naar Apple een hash (unieke identificatie) van elk programma dat je draait en wanneer je het opstart.

[Een IP-adres] staat een tabel toe met de volgende koppen: Datum, Tijd, Computer, ISP, Stad, Staat, Applicatiehash

[Dit betekent dat Apple weet] welke apps je daar opent, en hoe vaak. Ze weten wanneer je Premiere opent bij een vriend thuis via hun wifi, en ze weten wanneer je Tor Browser opent in een hotel tijdens een reis naar een andere stad.

macOS verstuurt eigenlijk alleen wat wazige informatie over het ontwikkelaars-certificaat van die apps, en dat is een vrij belangrijk verschil vanuit privacy-perspectief.

Notarisatie

Er is waarschijnlijk iets dat aan dit misverstand ten grondslag ligt. In feite bestaat er wel een situatie waarin macOS Apple daadwerkelijk de hash van een app kan sturen. Dat is wanneer Gatekeeper bij de eerste lancering controleert of er een notarisatieticket bestaat op de servers van Apple, voor het geval dat ticket niet reeds aan de app is gekoppeld.

Dat heeft echter niets te maken met OCSP. Het gebeurt onder specifieke omstandigheden en de controle wordt uitgevoerd via een beveiligd (HTTPS) verbinding naar api.apple-cloudkit.com. Tijdens dit proces zie je hiervan ook gewoon een pop-up met een voortgangsbalk.

Over het blokkeren van OCSP

Zoals je waarschijnlijk al ergens hebt gelezen tijdens de storing op de OCSP-responder van Apple, kun je OCSP-verzoeken op verschillende manieren blokkeren. De meest populaire zijn Little Snitch1 en het bewerken van je /etc/hosts bestand. Dit is echter niet aan te raden, omdat je er dan voor zorgt dat een belangrijke beveiligingsfunctie in macOS niet meer werkt.

Nu ken je alle feiten en moet je voor jezelf de afweging maken wat belangrijker voor je is: je privacy die door deze functie in gevaar wordt gebracht, of de mogelijkheid dat niet-gedetecteerde malware op je Mac zijn gang kan gaan. Als je privacy je absoluut heilig is, ga dan vooral je goddelijke gang en blokkeer de verbinding met de OCSP server. Voor alle anderen, die liever hebben dat hun Mac zo goed als mogelijk is beveiligd door Apple, is het de moeite niet waard. Wij denken in ieder geval dat je je geen enkele zorgen hoeft te maken.

Als je inmiddels macOS Big Sur gebruikt, is het blokkeren van OCSP misschien niet geheel onbelangrijk voor jou. Voordat je echter over een samenzwering van Apple begint te schreeuwen, moet je rekening houden met het volgende: de meeste gebruikers zijn over het algemeen niet in staat zijn om de impact van het uitschakelen van zo’n complexe en delicate beveiligingsfunctie op hun computer volledig te begrijpen en in te schatten. Die gebruikers te stimuleren een belangrijk onderdeel van Apple’s beveiligingssysteem uit te schakelen, is dan ook niet echt een goed idee.

Conclusie

Nee, macOS stuurt Apple niet elke keer een berichtje met een hash van je apps, op het moment dat je die app gebruikt.

Je moet er overigens wel rekening mee houden dat macOS ondoorzichtige informatie kan verzenden over het ontwikkelaars-certificaat van de apps die u gebruikt. Deze informatie wordt in leesbare tekst verzonden.

Gezien het bovenstaande is het dus waarschijnlijk niet slim om een verbinding met ocsp.apple.com te blokkeren met Little Snitch of in je hosts-bestand.

➔ Meer over het Online Certificate Status Protocol kun je hier lezen.

 

1 Little Snitch, vrijelijk vertaald als ‘kleine klikspaan’, is een betaalde app, eigenlijk meer een daemon (een proces dat altijd in de achtergrond draait) voor macOS, die alle in- en uitgaande dataverkeer in de gaten houd. Zodra er software contact probeert te maken met een andere computer, zoals de thuisbasis, wordt dat tegengehouden en gemeld.

 

De kop-foto komt uit een Apple ‘Big Brother’ commercial uit 1984, die werd uitgezonden tijdens de Amerikaanse Superbowl. Je kan de commercial hier bekijken.

 

Vrije vertaling van een artikel door Jacopo Jannone

Reacties

12 reacties
  • Profielfoto
    Ome Kor

    Zucht, het is hollen of stilstaan met Apple. Na al dat interessante nieuws van de afgelopen weken nu dit weer. Ik vind het zeer verontrustend dat het verkeer tussen de Mac en die OCSP-server onbeveiligd is. Alle servers (ook die van de drieletterige diensten) tussen de Mac en Apple kunnen meelezen. Als iemand (een journalist of dissident) om de een of andere reden via een VPN zou willen werken, dan schijnt Big Sur het OCSP-verkeer toch met het echte IP-nummer te sturen en omdat dit op OS niveau zit zal Little Snitch dit niet kunnen onderdrukken.

    Vraag is verder wat doet Apple met die gegevens. Persoonlijk vind ik vooralsnog de veiligheid die Gatekeeper op deze manier biedt belangrijker. Ik hoop echter dat Apple wel wat aan de onbeveiligde verbinding gaat doen en als ze echt aan privacy willen doen geen device ID mee gaan sturen.

    @Night, prima geschreven stuk.

  • Profielfoto
    Alexander Henket

    @Ome Kor: OCSP is een standaard, onafhankelijk van Apple. Deze standaard wordt buiten Apple ook heel veel gebruikt. Apple gebruikt hem niet specifiek anders dan waarvoor is bedoeld. Zoals het stuk al uitlegt: als je https (ssl/tls dus met certificaat) zou gebruiken om certificaten te controleren dan heb je een metavraagstuk. Het is dus niet zo gek dat http gebruikelijk is.
    OCSP net als CRL werkt normaal altijd met periodieke controles. Niet zo gek dus dat conclusie ook is dat er niet constant gecheckt wordt.

    Leuk informatief artikel trouwens.

  • Profielfoto
    Ome Kor

    Na het nog eens goed gelezen te hebben zie ik dat er geen computer specifieke  informatie wordt verstuurd. Dan is het inderdaad wat betreft privacy niet zoals ik hierboven beschreef.

  • Profielfoto
    epsylon

    👍🏻 Eindelijk eens een stuk met diepgang en research… (of is het ergens van gekopieerd?)

  • Profielfoto
    Willem

    Dat iets een veelgebruikte standaard is, is natuurlijk geen excuus. Het is raar dat aan de ene kant Apple erg ver zegt te gaan met privacy en zaken lokaal op het device te doen in plaats van de cloud (foto herkenning bijvoorbeeld) en hier te kiezen voor een oplossing waarbij je gewoon lekt/ prijs geeft welke software je gebruikt. Had daar hetzelfde voor gedaan: periodiek een lijst ophalen met ingetrokken of goedgekeurde certificaten en lokaal hier tegenaan controleren.

  • Profielfoto
    Yh-xxl

    Bedankt voor de nuanceringen in het bericht.

  • Profielfoto
    iDeMi

    Een heel interessant artikel!

    Ik kan begrijpen voor de keuze van http voor ocsp communicatie. Wat ik echter niet begrijp is waarom deze inhoudelijke data van deze berichten zelf niet versleuteld wordt over de http lijn. Dit zorgt voor een extra drempel om de data in te kunnen zien.

    Dit had Apple zelf ook vooraf kunnen bedenken. En de privacy discussie eenvoudiger kunnen maken.

  • Profielfoto
    Ruurd

    Het artikeltje van Jeffrey Paul even gelezen. Ik ben toch bang dat de beste meneer spoken ziet en bovendien is zijn narratief erg gericht om mensen bang te maken. Wat hij aan OCSP koppelt (Ze slaan je IP adres op! De tijd! Ze stalken je!) is gewoon gekoppeld aan welk request over IP dan ook. Wil je de kans dat dat soort dingen misschien heel misschien worden opgeslagen niet lopen dan neem deze wijze raad van mij aan: verkoop je computer en ga in een hutje op de hei wonen. De beste meneer handelt in angst.
    Ik zou toch willen dat mensen ook eens bedachten wat het kost om dat allemaal over langere tijd op te slaan. Laten we eens zeggen dat je per dag 30 OCSP controles moet laten doen om je Apple device veilig te laten lopen. Laten we niet lullig doen en zeggen dat een enkele entry dan 40 byte is. 1200 byte per dag. Voor 1,4 miljard devices. Dat is 1680000000000 bytes. Doe eens leuk en zeg dat 10% daar van ECHT word aangevraagd, nog altijd 168000000000 bytes. Dat is pak hem beet 156 GB per dag. 55 TB per jaar. En in het geval dat alle devices ook worden gebruikt tien keer zo veel. En dat is dan nog niet eens zoekbaar gemaakt. En er is geen backup van gemaakt. En eigenlijk kan je uit die bak data helemaal nog niet zo gemakkelijk privacygevoelige informatie halen. Dus je computer stond aan. En er werd een applicatie gestart om tien voor elf. Ja? En wat zegt dat dan?

  • Profielfoto
    Ruurd

    iDeMi op 15 november 2020 19:01
    Wat ik echter niet begrijp is waarom deze inhoudelijke data van deze berichten zelf niet versleuteld wordt over de http lijn. Dit zorgt voor een extra drempel om de data in te kunnen zien.

    Dit had Apple zelf ook vooraf kunnen bedenken. En de privacy discussie eenvoudiger kunnen maken.

    Eh nou misschien staat het zo in de OCSP specificatie. Bovendien. Je kan gegevens inzien die BIJ UITSTEK BEDOELD ZIJN om openbaar inzichtelijk te zijn. Het heeft bar weinig zin om een certificaat weg te stoppen waar niemand er bij kan. Dus heeft het ook bar weinig zin om een vraag daarover te verstoppen. Wat dat aangaat is het heel netjes juist dat de issuer gegevens zijn gehasht.

  • Profielfoto
    Prof Dr Jan Onderwater

    Het is een prima systeem dat er voor zorgt dat als jij software uit de App Store of van gecertificeerde ontwikkelaars installeert deze aan een set eisen voldoet. Blijkt er uit nader onderzoek dat het Malware is of bevat, kan Apple het Certificaat intrekken en de Software start niet meer op.

    Dat is hoe het werkt bij Apple. Ik vind dat een prima systeem, en ja, als er een storing is, is er een storing, net zoals dat bij SAAS oplossingen kan gebeuren, of SW met een licentiesleutel zoals Photoshop die had, die checkte ook of je gerechtvaardigd was de SW te gebruiken, een geldige licentie had.

     

  • Profielfoto
    meesje

    Bron: https://blog.jacopo.io/en/post/apple-ocsp/

  • Profielfoto
    GrannySmith

    Apple geeft toe dat het zo niet moet en zegt vernietigen van de logs en verbeteringen toe.

    https://www.onemorething.nl/community/topic/apple-spioneert-dus-toch-privacy-my-ass/#post-3367592

     

    (Onderaan.)