Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WPF, Silverlight Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7   вперед  Ctrl      все
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ,

исходники я еще вчера скачал

и, прежде чем начать дешифрование, задумайтесь над фразой "RSA - _асимметричный_ алгоритм шифрования" :)
24 май 10, 12:48    [8823219]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR
исходники я еще вчера скачал

Проглядел.
LR
и, прежде чем начать дешифрование, задумайтесь над фразой "RSA - _асимметричный_ алгоритм шифрования" :)

Да ёклесь моксель
Сеансовый ключ (тот же 40-битовый DES) мы уже перехватили. Не забывайте, атакующий у нас: посередине, а не сбоку у бабушки на пирогах.
P.S. Всё, потом продолжим. Времени нет...
24 май 10, 12:54    [8823291]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR, напоследок. Посмотрите в ситифоруме 14 пункт главы 2.1.1.2.
P.S. Десятый раз Вам повторяю: алгоритм лежит у клиента. Всё. Безопасность такого подхода - вопрос времени, пока не подломят.
24 май 10, 12:58    [8823325]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ,

там написано "Используя свой секретный асимметричный ключ и тот же самый асимметричный алгоритм шифрования получатель расшифровывает сеансовый ключ."

P.S. Десятый раз Вам повторяю: секретного (закрытого) ключа ни у клиента ни у злоумышленника нет. Пусть "подламывают". :)
24 май 10, 13:06    [8823401]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR
P.S. Десятый раз Вам повторяю: секретного (закрытого) ключа ни у клиента ни у злоумышленника нет. Пусть "подламывают". :)

Нету, ибо там открытый ключ. Смотрите в конфиге в секции для хранения RSA ключей. Его и подламывать нечего - он и так виден открыто в сессии
P.S. Задумайтесь сами, был бы ключ закрыт - мы бы его расшифровали, используя 14 пункт главы 2.1.1.2.
P.S2. Иначе, имея ключ открытым, его и ломать не нужно.
P.S3. В чем, вообще, вопрос-то? По-моему, Вы сами уже запутались и пытаетесь запутать меня )
24 май 10, 13:10    [8823452]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Кстати, да что даже мучать трафик, клиент у нас толстый, поставьте бряку в IDA на клиентский MainPage.Encrypt(String password, EncryptParametrs encryptParametrs) и получите чистый адрес локальной переменной password и снимите с нее значение. Всё, на этом хакерство закончено :)
P.S. Только нужно еще под правами локального администратора на клиенте эксплойт поставить.
24 май 10, 13:19    [8823545]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ
P.S3. В чем, вообще, вопрос-то? По-моему, Вы сами уже запутались и пытаетесь запутать меня )

Вопрос поставил ТС - "Silverlight->WCF: как передать имяюзера и пароль?"
Так вот, если на стороне SL использовать для _шифрования_ пароля метод RSA, то SL для этого достаточно знать лишь открытый ключ и алгоритм шифрования.
Закрытый ключ для _расшифрования_ будет находится на стороне сервера (сервиса WCF).
В такой (односторонней SL->сервер) схеме, не взломав сервер, закрытый ключ взять просто негде.
Вроде тут запутаться не в чем :)
24 май 10, 13:48    [8823811]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR
Вопрос поставил ТС - "Silverlight->WCF: как передать имяюзера и пароль?"

Вопрос поставили Вы, а не автор.
LR
Так вот, если на стороне SL использовать для _шифрования_ пароля метод RSA, то SL для этого достаточно знать лишь открытый ключ и алгоритм шифрования.

Во-первых, RSA - это метод, а алгоритм. Во-вторых, тоже самое относится и к закрытому ключу (ссылку я приводил). В-третьих, это и есть доказательство того, о чем я говорил, а Вы всё никак не могли в это "поверить".
LR
Закрытый ключ для _расшифрования_ будет находится на стороне сервера (сервиса WCF). В такой (односторонней SL->сервер) схеме, не взломав сервер, закрытый ключ взять просто негде.
Вроде тут запутаться не в чем :)

Миллиардный раз повторяю: если у нас в руках АЛГОРИТМ (выделил красным, для тех, кто находится под башней в танке, держа в руках гранату), то взломать пароль ничуть не сложнее, чем в первом случае.
P.S. Что не ясно опять?
24 май 10, 13:55    [8823897]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
МСУ
Во-первых, RSA - это не метод, а алгоритм

Уже заговариваться начинаю с Вами, LR...
24 май 10, 13:56    [8823911]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR, глава 2.1.1.1, пункты 3, 4 и 5.

Особое внимание уделить этой фразе:

варнингнах
Симметричный секретный ключ никогда не передается по незащищенным каналам связи.


http://www.citforum.ru/security/cryptography/crypto_1.shtml

Но, канал у нас не защищен, ибо мы SSL пока в данном примере не рассматриваем.

P.S. Это еще раз показывает, что SSL рулит (это я не Вам, LR, это я одному клоуну в ветке)
24 май 10, 14:04    [8823990]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ,

imho, дальше говорить бессмысленно...
просто продемонстрируйте - у Вас есть алгоритм (RiaWebSoftRu.Cryptography.dll), открытый ключ и зашифрованный пароль - расшифруйте, если утверждаете что это так легко
МСУ
Миллиардный раз повторяю: если у нас в руках АЛГОРИТМ (выделил красным, для тех, кто находится под башней в танке, держа в руках гранату), то взломать пароль ничуть не сложнее, чем в первом случае.
P.S. Что не ясно опять?


P.S. если не получится, изучайте что такое _асимметричный_ алгоритм шифрования
24 май 10, 14:14    [8824073]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
WPFdev
Member

Откуда: Архангельская обл.
Сообщений: 97
Утверждение: SSL практически нельзя вскрыть.
Доказательство: нет фактов его вкрытия в реальных (не лабораторных) условиях.

На этом можно поставить точку. Но все-таки как безопасно передать имя юзера и пароль не используя https?

У меня как и прежде два варианта -
1. AES (втсроенный в Silverlight). Недостаток -надо как то спрятать ключ.
2. Сторонние RSA (и пр. ассиметричные) . Недостаток - нестандартно для SL 4.0.

Есть другие варианты?
24 май 10, 14:26    [8824145]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR
просто продемонстрируйте - у Вас есть алгоритм (RiaWebSoftRu.Cryptography.dll), открытый ключ и зашифрованный пароль - расшифруйте, если утверждаете что это так легко

Почему-то валится на System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters, не пойму пока, почему...
24 май 10, 14:38    [8824230]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
WPFdev
Но все-таки как безопасно передать имя юзера и пароль не используя https?

Imho, никак, (повторюсь) если канал не безопасный, злоумышленник сможет записать и затем повторить (трафик обмена) _не расшифровывая пароль_ (т.е., пароль не узнает, но "идентифицироваться" сможет)...

WPFdev
2. Сторонние RSA (и пр. ассиметричные) . Недостаток - нестандартно для SL 4.0.

"нестандартно" - понятие растяжимое... Например, упоминающаяся здесь библиотека RiaWebSoftRu.Cryptography.dll (с исходниками) - вполне "стандартна" в плане совместимости с System.Security.Cryptography.RSACryptoServiceProvider - т.е., RiaWebSoftRu.Cryptography шифрует на стороне SL - System.Security.Cryptography расшифровывает на стороне сервера (ну и наоборот очевидно)
24 май 10, 14:41    [8824246]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ
Почему-то валится на System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters, не пойму пока, почему...

чего ж тут непонятно, для расшифровки параметров открытого ключа недостаточно :)
24 май 10, 14:42    [8824254]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR
МСУ
Почему-то валится на System.Security.Cryptography.RSACryptoServiceProvider.ImportParameters, не пойму пока, почему...

чего ж тут непонятно, для расшифровки параметров открытого ключа недостаточно :)

Правильно, нужен и алгоритм. Он есть...
24 май 10, 14:43    [8824263]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ
Правильно, нужен и алгоритм. Он есть...

...и ему требуются параметры закрытого ключа :)
24 май 10, 14:50    [8824318]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR
и ему требуются параметры закрытого ключа :)

Каким образом Вы меняли P, Q, DP, DQ, InverseQ и D в конфиге? )
24 май 10, 14:54    [8824351]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
МСУ
LR
и ему требуются параметры закрытого ключа :)

Каким образом Вы меняли P, Q, DP, DQ, InverseQ и D в конфиге? )

Если через new RsaGenerateKey().Generate(2048), то у Вас параметры уже другие.
24 май 10, 15:00    [8824396]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
LR, короче, нужно плясать от обратного, исходя из того, что ключ у нас уже есть:

+ CalculationKey
private RSAParameters CalculationKey(IntBig a, IntBig b, IntBig e)
{
    if (b > a)
    {
        IntBig c = a;
        a = b;
        b = c;
    }

    IntBig P = a;
    IntBig Q = b;

    IntBig Exponent = e;
    IntBig Modulus = P * Q;
    IntBig PHI = (P - 1) * (Q - 1);
    IntBig D = Algebra.ExtendedEuclid(Exponent, PHI);
    IntBig DP = D % (P - 1);
    IntBig DQ = D % (Q - 1);
    IntBig InverseQ = Algebra.ModInverse(Q, P);


    IntBig prov = Algebra.GCD(PHI, Exponent);

    RSAParameters parametrs = new RSAParameters();

    parametrs.P = P.GetBytes();
    parametrs.Q = Q.GetBytes();
    parametrs.Exponent = Exponent.GetBytes();
    parametrs.Modulus = Modulus.GetBytes();
    parametrs.D = NormalizeArrayLength(D.GetBytes(), keybitsize / 8); ;
    parametrs.DP = NormalizeArrayLength(DP.GetBytes(), keybitsize / 16);
    parametrs.DQ = NormalizeArrayLength(DQ.GetBytes(), keybitsize / 16);
    parametrs.InverseQ = NormalizeArrayLength(InverseQ.GetBytes(), keybitsize / 16);

    return parametrs;
}


Короче, вся логика в RsaGenerateKey, в нем можно "подобрать" остальные параметры.
24 май 10, 15:08    [8824455]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ
Каким образом Вы меняли P, Q, DP, DQ, InverseQ и D в конфиге? )
"Копипастил". С библиотекой идет пример (TestCryptography1_04), в котором я генерировал новый ключ (метод TestCryptography.Page.RsaGenerateKey(Int32 keylengt)).

МСУ
у Вас параметры уже другие.
разумеется, другие, это же мой ключ, открытую часть я раздаю всем, закрытую(секретную) - берегу как зеницу ока :)
24 май 10, 15:08    [8824456]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
МСУ
можно "подобрать" остальные параметры.

надеюсь, теперь до Вас дошло, "что такое _асимметричный_ алгоритм шифрования"? :)
24 май 10, 15:12    [8824482]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Я знаю, что такое асимметричный алгоритм шифрования :) Я до сих пор не понял, почему в алгоритме имеется только управление открытым ключом.
24 май 10, 15:26    [8824581]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
WPFdev
Member

Откуда: Архангельская обл.
Сообщений: 97
LR
WPFdev
Но все-таки как безопасно передать имя юзера и пароль не используя https?

Imho, никак, (повторюсь) если канал не безопасный, злоумышленник сможет записать и затем повторить (трафик обмена) _не расшифровывая пароль_ (т.е., пароль не узнает, но "идентифицироваться" сможет)...


Здесь решение известно - для передачи используется временный пароль и счетчик пакетов, так что трафик повторять бессмысленно. Поэтому для перехвата пароля надо знать А) исходный ключ; Б) весь трафик; В) алгоритм формирования временного ключа. Задача достаточно сложная, чтобы отсеять рядовых хакеров.


LR

WPFdev
2. Сторонние RSA (и пр. ассиметричные) . Недостаток - нестандартно для SL 4.0.

"нестандартно" - понятие растяжимое... Например, упоминающаяся здесь библиотека RiaWebSoftRu.Cryptography.dll (с исходниками) - вполне "стандартна" в плане совместимости с System.Security.Cryptography.RSACryptoServiceProvider - т.е., RiaWebSoftRu.Cryptography шифрует на стороне SL - System.Security.Cryptography расшифровывает на стороне сервера (ну и наоборот очевидно)


Только кто такой "Aleksey A Parkin" и где гарантия, что алгоритм реализован без дыр?
24 май 10, 15:29    [8824593]     Ответить | Цитировать Сообщить модератору
 Re: Silverlight->WCF: как передать имяюзера и пароль?  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
WPFdev
трафик повторять бессмысленно.

+1

WPFdev
для перехвата пароля надо знать А) исходный ключ; Б) весь трафик; В) алгоритм формирования временного ключа. Задача достаточно сложная, чтобы отсеять рядовых хакеров.

А) Известно Б) Известно В) Известно
Вот только не соображу, как "реверсировать" пункт "В" ... :(

WPFdev
Только кто такой "Aleksey A Parkin" и где гарантия, что алгоритм реализован без дыр?

Ну код алгоритма же прилагается.
24 май 10, 15:33    [8824621]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6] 7   вперед  Ctrl      все
Все форумы / WPF, Silverlight Ответить