Сегодня речь пойдет о шифровании в сети #MetaHash, которое играет важнейшую роль в подтверждении транзакций, идентификации отправителей и получателей, а также защите сети. Но все начинается с создания #MHC кошелька. При клике на “создать новый #MHC кошелек” для пользователя автоматически генерируются приватный и публичный ключи. Последний представляет из себя набор букв и цифр, сформированный на основе приватного ключа и идентифицирующий отправителя или получателя средств. Приватный же ключ — это строго конфиденциальный код, дающий доступ к средствам, хранящимся на кошельке.
Поскольку подобрать или случайно угадать код из-за его сложности невозможно, злоумышленники чаще всего пытаются украсть ключ из памяти носителей или же каналов коммуникации. Вот почему так важно обеспечить безопасность места хранения вашего приватного ключа. Пользователь может позаботиться о дополнительной защите ключа, создав специальный пароль, или, иначе говоря, еще раз зашифровав свой индивидуальный шифр. Однако некоторые боятся забыть пароль и предпочитают хранить ключ незашифрованным.
Рассмотрим один из наиболее популярных методов шифрования нашего приватного ключа. Приватный ключ #MetaHash хранится только в зашифрованном файле, для шифровки которого мы используем алгоритм симметричного блочного шифра — Advanced Encryption Standard с размером блока 128 бит и режимом Cipher block chaining.
Ниже список команд OpenSSL для работы с шифрованием ключей методом AES-128-CBC:
Создать приватный ключ:
openssl ecparam -genkey -name secp256k1 -out test.pem
Посмотреть приватный ключ:
openssl ec -in test.pem -outform DER | xxd -p
read EC key
writing EC key
307402010104204fd8da7797691335ab201250b3559c631a8b35fadb4b02
21f2ce953ae7446b28a00706052b8104000aa144034200040a7b6609296b
662dfe7d8b025231f04422488b954c9fa36ffa3778aca9f94525811ef1b8
7250446b7cf837bfbc1b4f6927648fe2f7e11dd5a674afebe863ee3f
Зашифровать файл ключа:
openssl ec -in ./test.pem -out enc.pem -aes-128-cbc
read EC key
writing EC key
Enter PEM pass phrase: // тут нужно ввести пароль, он должен быть длиной от 4 до 1024 символов
Verifying — Enter PEM pass phrase: // повторно введите пароль
Расшифровать файл ключа для просмотра приватного ключа:
openssl ec -in enc.pem -outform DER | xxd -p
read EC key
Enter PEM pass phrase: // введите повторно тот же самый пароль
writing EC key
307402010104204fd8da7797691335ab201250b3559c631a8b35fadb4b02
21f2ce953ae7446b28a00706052b8104000aa144034200040a7b6609296b
662dfe7d8b025231f04422488b954c9fa36ffa3778aca9f94525811ef1b8
7250446b7cf837bfbc1b4f6927648fe2f7e11dd5a674afebe863ee3f
Как видно выше, чтобы создать адрес кошелька, сеть сначала формирует приватный ключ, а уже на его основе при помощи хэширования генерирует публичный ключ, который подходит исключительно под данный приватный. Вот почему имя файла с приватным ключом совпадает с адресом кошелька. Зная секретный ключ можно с легкостью определить публичный, но вычисление приватного ключа только лишь на основе публичного совершенно исключено. Поэтому, чтобы гарантировать безопасность средств на вашем кошельке, не пытайтесь видоизменить или же открыть приватный ключ непроверенными приложениями, а также позаботьтесь о надежном месте для его хранения.