Реализация на javascript
(0 чел.) 
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

ТЕМА: Реализация на javascript

Re: Реализация на javascript 2 года, 4 мес. назад #3036

  • StalkAlex
  • Новый участник
  • Постов: 16
  • Репутация: 0
Согласен с пользователем Zhelkek. Зачем все разрабатывать в одном гигантском комбайне, почему бы не разделить на отдельные модули(которые могут взаимодействовать друг с другом при этом), это ведь правильней с архитектурной точки зрения. Если большинству пользователей не нужны физические устройства, достаточно ограничиться JS в браузере и не тащить им NcaLayer.

Насчет безопасности...sprproject ugotbug в чем конкретно заключается небезопасность браузерного хранилища?

Re: Реализация на javascript 2 года, 4 мес. назад #3044

  • sproject
  • Новый участник
  • Постов: 5
  • Репутация: 0
Любое хранилище данных, которое доступно в интернете может быть подвергнуто компрометации (ключи на файловой системе не исключение), в частности на данный момент в браузерах находят множество уязвимостей. И по сути когда закрытый ключ попадает в не доверенную среду, его уже можно считать скомпрометированным.
Можно привести пример с банками которые блокируют карточки после использования их в некоторых странах юго-восточной азии.

Re: Реализация на javascript 2 года, 2 мес. назад #3117

  • vprokof
  • Осваиваюсь на форуме
  • Постов: 28
  • Репутация: 0
Попробовал реализацию TLS на JavaScript.
Установил
github.com/digitalbazaar/forge

Сделал самоподписанный сертификат в pkcs12
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
openssl pkcs12 -export -out keyStore.p12 -inkey key.pem -in cert.pem

Атрибуты openssl x509 -noout -subject -in cert.pem
subject= /C=AU/ST=Some-State/L=city/O=Internet Widgits Pty Ltd/OU=un/CN=fqdn/emailAddress=email

установил node.js nodejs.org/en/

сделал файл test.js

var forge = require('node-forge');
var fs = require('fs');

var keyFile = fs.readFileSync("./keyStore.p12", 'binary');

var p12Asn1 = forge.asn1.fromDer(keyFile);

// pkcs12 с паролем
var p12 = forge.pkcs12.pkcs12FromAsn1(p12Asn1, '123456');

var bags = p12.getBags({bagType: forge.pki.oids.certBag});

var bag = bags[forge.pki.oids.certBag][0];


//аттрибуты сертификата

console.log(bag.cert.subject.getField('C').value);
console.log(bag.cert.subject.getField('ST').value);
console.log(bag.cert.subject.getField('L').value);
console.log(bag.cert.subject.getField('O').value);
console.log(bag.cert.subject.getField('OU').value);
console.log(bag.cert.subject.getField('CN').value);
console.log(bag.cert.subject.getField('E').value);

// срок действия сертификата
console.log(bag.cert.validity.notBefore);
console.log(bag.cert.validity.notAfter);


var pki = forge.pki;

// сам сертификат
var pem = pki.certificateToPem(bag.cert);

console.log(pem);


выполнил
node test.js

Получил

AU
Some-State
city
Internet Widgits Pty Ltd
un
fqdn
email
2017-06-03T14:56:50.000Z
2018-06-03T14:56:50.000Z

-----BEGIN CERTIFICATE-----
........................

Теперь, насколько я понимаю,
нужно отослать сертификат на сервер и валидировать его
его посредством
- CA bundle
- intermediate certificates
- CRL списки (Certificate revocation list)

Правильно ?

Буду очень рад продолжению темы.
Размер скомпилированной библиотеки для браузера forge.min.js составляет около 271 kb
Сейчас это уже немного.
Если кто протестирует библиотеку в браузере, просьба отписаться.
Изменено: 2 года, 2 мес. назад от vprokof.

Re: Реализация на javascript 2 года, 2 мес. назад #3118

  • ololo
  • Живу я здесь
  • Постов: 464
  • Репутация: 57
Кстати, очень интересная библиотека. Наблюдаю за ней некоторое время. Правда, в браузере запускать для организации защищённого канала, смысла маловато. Все из-за генератора случайных чисел.
gg wp

Re: Реализация на javascript 2 года, 2 мес. назад #3119

  • vprokof
  • Осваиваюсь на форуме
  • Постов: 28
  • Репутация: 0
Что касается ключей GOST, то библиотека
gostcrypto.com/
github.com/rudonick/crypto
www.npmjs.com/package/node-gost
WebCrypto GOST Library
Pure Javascript implementation of WebCrypto API interfaces and
Public Key Infrastructure for GOST algorithms (Russian Cryptographic Standards)

Производит очень сильное впечатление.

Хорошо бы, чтобы кто-нибудь и здесь покопал и предложил пример её использования.
Постоянно мучает вопрос, почему простому пользователю интернета
для таких обычных задач, как аутентификация пользователя и подпись текста,
нужно устанавливать Java и настольные приложения. Пользователь сходил в ЦОН,
получил ключ. На этом его приключения должны закончиться.
Изменено: 2 года, 2 мес. назад от vprokof.

Re: Реализация на javascript 2 года, 2 мес. назад #3120

  • ololo
  • Живу я здесь
  • Постов: 464
  • Репутация: 57
Проблема не в том, что нельзя реализовать какие-то алгоритмы, а в том, что эти подходы неуниверсальные. К тому же, ни один из этих способов не даёт работать с внешними хранилищами.
gg wp
  • Страница:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
FaLang translation system by Faboba