Безопасно и эффективно выполняйте криптографические операции с помощью этой новой платформы

В этом году на WWDC19 Apple представила новую платформу под названием CryptoKit, которая помогает разработчикам создавать хэши, проверять данные с помощью подписей и шифровать данные. CryptoKit прост в использовании и не требует знания низкоуровневого API, единственного способа выполнить эту операцию до сих пор.

Сегодня я объясню и покажу некоторые фрагменты кода на площадке для криптографических операций с использованием CryptoKit.

Мы можем начать с простого проекта пустой игровой площадки. Не забудьте добавить CryptoKit в начало файла.

Генерация хэшей

Хеш-функции, как правило, генерируют уникальный ключ из определенных входных данных, который остается неизменным до тех пор, пока входные данные остаются неизменными. Это можно использовать, например, для проверки того, что файл, размещенный на сервере, совпадает с файлом на вашем рабочем столе. В противном случае, если хэш отличается, файл на вашем рабочем столе может быть измененным файлом с вредоносной программой внутри.

Прямо сейчас CryptoKit поддерживает следующие типы хэшей: SHA256, SHA384 и SHA512.

Ниже приведен пример того, как мы можем сгенерировать хеш из строки данных:

Если вы попытаетесь запустить предыдущий скрипт на своем компьютере, вы увидите, что результат такой же, как на скриншоте ниже:

Создание / проверка подписей

Цифровые подписи используются для проверки подлинности сообщения или данных. Эта математическая схема использует асимметричную криптографию и используется в большинстве криптографических протоколов. Мы ежедневно используем его для HTTPS, финансовых транзакций, электронной почты, контрактов и многих других целей.

CryptoKit поддерживает четыре различных типа, используемых для создания и проверки криптографических подписей: Curve25519, P521, P384 и P256.

Прежде всего, мы генерируем открытый и закрытый ключ:

Затем мы используем наш закрытый ключ для подписи некоторых данных:

Теперь каждый, у кого есть открытый ключ, может проверить подлинность подписи или фальшивку следующим образом:

Шифрование данных

В настоящее время шифрование данных действительно важно. Это позволяет повысить безопасность вашего приложения и сделать его более привлекательным для конечных пользователей, которым действительно интересно, когда мы говорим о конфиденциальности. CryptoKit поддерживает алгоритмы AES-GCM и ChaChaPoly. Учтите, что в мобильной среде предпочтительнее использовать ChaChaPoly, потому что он быстрее.

Мы можем зашифровать и расшифровать данные в несколько строк кода:

В заключение, вот примерная площадка, которую Apple создала, чтобы показать разработчикам операции, которые можно выполнять с помощью CryptoKit.

Если у вас есть вопросы или предложения, оставьте комментарий ниже!