Какой алгоритм использует Verdaccio для шифрования реестра npm? - PullRequest
0 голосов
/ 13 февраля 2020

Не могу найти информацию нигде. Я новичок в компьютерной безопасности, поэтому мой вопрос может показаться немного глупым.

Я понимаю, что мы можем общаться с Вердаччо, используя HTTPS, и мы можем настроить аутентификацию с помощью htpasswd, поэтому я предполагаю, что Вердаччо npm реестр настроен на использование HTTPS, а аутентификация зашифрована. Если я прав, какие алгоритмы используются для шифрования реестра?

1 Ответ

0 голосов
/ 14 февраля 2020

Вердаччо использует crypto.createCipher(algorithm, password[, options]) для шифрования токенов по умолчанию.

Простым примером будет:

import { createDecipher, createCipher, createHash, pseudoRandomBytes, Hash } from 'crypto';

const const payload = Buffer.from(`${name}:${password}`, 'utf8'));
const c = createCipher('aes192', SOME_RANDOM_SALT_VALUE);
const b1 = c.update(payload);
const b2 = c.final();
return Buffer.concat([b1, b2]);

Кроме того, он имеет возможность использовать стандартный JWT (jsonwebtoken), но он не включен по умолчанию.

Согласно документации, возможный ответ на ваш вопрос может быть

Алгоритм зависит от OpenSSL, примеры: 'aes192', et c. В последних выпусках OpenSSL алгоритмы openssl list -cipher-алгоритмы (openssl list-cipher-алгоритмы для более старых версий OpenSSL) будут отображать доступные алгоритмы шифрования.

...