2016-01-28 14 views
10

zu senden? In watchOS 2 gibt es keine gemeinsam genutzten Schlüsselbunde mehr.Ist es sicher, updateApplicationContext zu verwenden, um den Keychain-Wert

Wenn ich einen Schlüsselbundwert von der iOS-App an die Watch-App senden möchte, kann er dann sicher über WCSession updateApplicationContext gesendet werden?

+0

Was meinst du mit ‚sicher‘? – ccjensen

+0

Durch sichere ich meine Hacker können die Passwörter bekommen etc .... – david72

+0

@ccjensen Basierend auf [diesen Kommentar] (http://stackoverflow.com/questions/35073236/is-it-safe-to-use-updateapplicationcontext-to-send-keychain- Wert/35075970 # comment57902075_35075970), hat die OP [Bedenken über diesen Aspekt] (http://stackoverflow.com/q/32546602/4151918). –

Antwort

1

Antwort von Apple:

Der Inhalt der App wird während der Übertragung verschlüsselt. Ansonsten wird der Inhalt im App-Container gespeichert, der die inhärente Sicherheit von Containern bietet.

Hier ist ein Link zum Sicherheits-Whitepaper. https://www.apple.com/business/docs/iOS_Security_Guide.pdf

Für die in-transit Teil, sollten Sie einen Blick auf die „Apple-Watch“ nehmen Abschnitt unter "App-Sicherheit". Für den relevanten Teil des Behälters Sicherheit sollten Sie einen Blick auf die „File Data Protection“ Abschnitt nehmen unter „Verschlüsselung und Data Protection“.

2

Ja.

Wenn sich Ihr Schlüsselbundwert nicht ändert und Sie Ihren Anwendungskontext wiederholt aktualisieren, können Sie den Wert nur einmal senden (für die Uhr, um ihn zu seinem Schlüsselbund hinzuzufügen), anstatt den Schlüsselbund wiederholt erneut zu senden Wert.

Ein Apple-Ingenieur diskutiert using Watch Connectivity to send keychain items auf dem Entwickler-Forum:

Wenn Sie Daten auf dem Handy, die Sie auf dem sehen Sie Ihre App zugreifen möchten WatchConnectivity können die spezifischen Daten und Schlüsselbund Elemente sie braucht übertragen . Der Schlüsselbund auf der Apple Watch enthält einen eindeutigen Satz von Einträgen aus dem Schlüsselbund des gepaarten iPhones. Wenn Sie also an beiden Orten etwas benötigen, können Sie es entweder einmal für jedes Gerät erstellen oder mit WatchConnectivity zwischen ihnen übertragen.

Update:

In watchOS 2, Video-Konnektivität ist der Mechanismus, um Daten zwischen einem gekoppelten Telefon und seiner Uhr übertragen. Die Kommunikation zwischen Geräten ist gemäß der iOS Security Guide verschlüsselt.

Ob das Wörterbuch möglicherweise im Arbeitsspeicher verfügbar ist oder wie es beibehalten werden kann, bevor es von Ihrer Erweiterung empfangen wird, denke ich, dass Sie sich auf Apple verlassen müssen, um mögliche Sicherheitslücken zu schließen.

Es ist wahrscheinlich vernünftig zu sagen, dass die Informationen nicht in als sicher ein Platz als Schlüsselbund, bis Ihre Erweiterung aufwacht, erhält das Update, dann speichert den Wert im Schlüsselbund.

+1

Der Wert kann sich ändern, deshalb bevorzuge ich updateApplicationContext. Aber dieses Wörterbuch - ist es an einem sicheren Ort gespeichert, wo Hacker die Daten nicht bekommen kann? – david72

2

Gemäß der Apple-Sicherheitsrichtlinie: -

Keychain Data Protection Viele Anwendungen benötigen Passwörter und andere kurze, aber sensible Daten-Bits, wie Schlüssel und Login-Token zu handhaben. Der iOS-Schlüsselanhänger bietet eine sichere Möglichkeit zum Speichern dieser Elemente. Der Schlüsselbund ist als SQLite-Datenbank implementiert, die im Dateisystem gespeichert ist. Dort ist nur eine Datenbank; Der Securityd Daemon bestimmt, welche Schlüsselbunde Elemente, auf die jeder Prozess oder jede App zugreifen kann. Schlüsselbund-Zugriffs-APIs führen zu Aufrufen des Daemon, der die "keychain-access-groups" der Anwendung abfragt, "application-identifier" und "applicationgroup" -Ansprüche. Eher als Zugriffsbeschränkung auf einen einzigen Prozess, Zugriffsgruppen ermöglichen Schlüsselbund Elemente zwischen Apps geteilt werden. Schlüsselbundartikel können nur zwischen Apps desselben Entwicklers geteilt werden. Dies wird durch die Anforderung von Drittanbieter-Apps zur Verwendung von Zugriffsgruppen mit einem ihnen zugewiesenen Präfix über das iOS-Entwicklerprogramm über Anwendungsgruppen gesteuert. Das Präfix Anforderung und Anwendungsgruppeneindeutigkeit werden durch den Code Signieren, Bereitstellungsprofile und das iOS-Entwicklerprogramm erzwungen.

Schlüsselbunddaten werden durch eine Klassenstruktur geschützt, die der in der Datei Data Protection verwendeten ähnelt. Diese Klassen verfügen über die entsprechenden Verhaltensweisen , um Datenschutzklassen zu archivieren, verwenden jedoch unterschiedliche Schlüssel und sind Teil von APIs, die unterschiedlich benannt sind.


Apple Watch nutzt die Sicherheitsfunktionen und Technologie für iOS gebaut, um Daten auf dem Gerät zu schützen, sowie die Kommunikation mit seinem gepaart iPhone und dem Internet. Dazu gehören Technologien wie Data Protection und Keychain Access Control. Der Benutzercode des Benutzers ist auch mit der UID des Geräts verknüpft, um die Verschlüsselung Schlüssel zu erstellen. Die Paarung der Apple Watch mit dem iPhone erfolgt über einen Out-of-Band-Prozess (OOB) zum Austausch öffentlicher Schlüssel, gefolgt vom BTLE-Link shared secret. Apple Watch zeigt ein animiertes Muster an, das von der Kamera auf dem iPhone erfasst wird. Das Pattern enthält einen codierten Code , der für die Out-of-Band-Paarung von BTLE 4.1 verwendet wird. Standard BTLE Passkey Entry wird bei Bedarf als Fallback-Pairing-Methode verwendet. Sobald die BTLE-Sitzung hergestellt ist, tauschen Apple Watch und iPhone die Schlüssel unter Verwendung eines Prozesses aus, der von IDS angepasst wurde, wie in der iMessage-Sektion dieses Artikels beschrieben. Nachdem die Schlüssel ausgetauscht wurden, wird der Schlüssel der Bluetooth-Sitzung verworfen und die gesamte Kommunikation zwischen Apple Watch und dem iPhone wird mit IDS verschlüsselt, wobei die verschlüsselten BTLE- und Wi-Fi-Verbindungen eine sekundäre Verschlüsselungsschicht bereitstellen. Key Rolling wird in 15-Minuten-Intervallen verwendet, um das Belichtungsfenster zu begrenzen, sollte Verkehr kompromittiert sein. Zur Unterstützung von Apps, die Streaming-Daten benötigen, wird die Verschlüsselung mithilfe der im Abschnitt FaceTime dieses Dokuments beschriebenen Methoden bereitgestellt, wobei der IDS-Dienst des gepaarten iPhones verwendet wird. Apple Watch implementiert Hardware-verschlüsselten Speicher und klassenbasierten Schutz von Dateien und Schlüsselbundelemente, wie im Abschnitt Datenschutz dieses Dokuments beschrieben. Zugangskontrollierte Schlüsseltaschen für Schlüsselbundartikel werden ebenfalls verwendet. Schlüssel, die für die Kommunikation zwischen der Uhr und dem iPhone verwendet werden, werden ebenfalls durch einen klassenbasierten Schutz gesichert. Wenn sich die Apple Watch nicht im Bluetooth-Bereich befindet, kann stattdessen WLAN verwendet werden. Apple Watch wird nicht Wi-Fi-Netzwerken beitreten, es sei denn, die Anmeldeinformationen sind vorhanden auf dem gepaarten iPhone, das die Liste der bekannten -Netzwerke der Uhr automatisch zur Verfügung stellt. Apple Watch kann manuell gesperrt werden, indem Sie die seitliche Taste gedrückt halten. Darüber hinaus wird die Heuristik verwendet, um das Gerät kurz nach dem Entfernen aus dem Handgelenk automatisch zu sperren. Wenn gesperrt, kann Apple Pay nicht verwendet werden. Wenn die automatische Verriegelung durch die Handgelenkerkennung in den Einstellungen deaktiviert ist, ist Apple Pay deaktiviert. Die Handgelenkserkennung ist mit der Apple Watch App auf dem iPhone ausgeschaltet. Diese Einstellung kann auch mithilfe der Mobilgeräteverwaltung erzwungen werden. Das gepaarte iPhone kann auch die Uhr entsperren, sofern die Uhr getragen wird. Dies wird erreicht, indem eine Verbindung hergestellt wird, die mit den während der Kopplung festgelegten Schlüsseln authentifiziert wird. Das iPhone sendet den Schlüssel, den die Uhr verwendet, um ihre Datenschutzschlüssel zu entsperren. Der Passcode der Uhr ist iPhone nicht bekannt noch wird es übertragen.Diese Funktion kann mit der Apple Watch App auf dem iPhone ausgeschaltet werden. Apple Watch kann nur mit jeweils einem iPhone gepaart werden. Beim Pairing mit einem neuen iPhone werden automatisch alle Inhalte und Daten von Apple Watch aus der gelöscht. Die Aktivierung von "Mein Handy suchen" auf dem gekoppelten iPhone aktiviert auch die Aktivierungssperre auf der Apple Watch. Aktivierung Lock macht es schwieriger für jedermann, eine Apple Watch zu verwenden oder zu verkaufen, die verloren gegangen ist oder gestohlen wurde. Aktivierungssperre erfordert die Apple ID des Benutzers und das Kennwort , um eine Apple Watch zu entkoppeln, zu löschen oder zu reaktivieren.

Keychain Dienstleistungen Einfache Bedienung https://developer.apple.com/library/ios/documentation/Security/Conceptual/keychainServConcepts/02concepts/concepts.html