Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!



function u_login(ctx,email,password,uh,permanent)
{
ctx.result = u_login2;
ctx.permanent = permanent;
api_getsid(ctx,email,prepare_key_pw(password),uh);
}
function prepare_key_pw(password)
{
return prepare_key(str_to_a32(password));
}
function prepare_key(a)
{
var i, j, r;
var pkey = [0x93C467E3,0x7DB0C7A4,0xD1BE3F81,0x0152CB56];
for (r = 65536; r--; )
{
for (j = 0; j < a.length; j += 4)
{
key = [0,0,0,0];
for (i = 0; i < 4; i++) if (i+j < a.length) key[i] = a[i+j];
aes = new sjcl.cipher.aes(key);
pkey = aes.encrypt(pkey);
}
}
return pkey;
}
POST eu.api.mega.co.nz/cs?id=345352429
200 OK
Запрос
POST /cs?id=345352429 HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.2; WOW64) Presto/2.12.388 Version/12.12
Host: eu.api.mega.co.nz
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Referer: mega.co.nz/
Connection: Keep-Alive
Content-Length: 64
Origin: mega.co.nz
Content-Type: text/plain;charset=UTF-8
[{«a»:«us»,«user»:"----",«uh»:"---"}]
Ответ
HTTP/1.1 200 OK
Content-Type: application/json
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Content-Encoding: gzip
Content-Length: 1012
Connection: Keep-Alive
[{«csid»:«CABLoiwQx408H8wEo2TXYirl3ZmrbKJgEPtvyrZee2L9kulhCO1_zyJHxJOK94oam1kb2CkKWxjogu2b4A284TPLjzwpyn9xCid0QY26HV2P_UQOzfCrBSqN_z14fOOeaXgPlrGMrcEYBDGtEYLvbvXTqyJ3x8sAEQfnAiCW2fnCPr61I3QFFOdzxCxPCdOdhZ9nrJuKLm1PJwBBvQlnw-yaT2k6lcKUasA6bzz8_58pFKU3swUT-Qde5tcLJCWXwss2BV1EowcOXsZQceovVfXYwp7KE8xUqB5dmDUQNZX8ve7Pt6mu61T9R4KVC_GLypQpfj-sP_s3dCZxTbkzJFqT»,«privk»:«yevr_h_N2bgKwARElpKC8XoLutlTdmlqXtgaQeDVt8bqTTWuwrczXKIQpi9-VnpnjPXto7aj49uLJ6LDw98cUv5LIdaRZIRMqZHRaSuHBb0znjj5uUNlxYHwXa9XN-BkbNhIS8HjKRBR5j8L2CDSQ8hsVt2KjzJaksJ8yxuN0HOE3REwliRtUa1QCDg9Iy_ywZ7TUh7WmdwdTn3h_JqCF3U1_9d882T-Z6oDrxkZEMpGcOwwuumIU_oaeyy9L95lImPVaB7cJY-7qC6visJri2GDUYfO1li84c1bgXeWTZvD3NZ6mqpN_ZByw4uUKKWuEvHojgwgTgtl8MhCfYlbbAF8Z8KktigQgDxCHIOYNMmO53GgonI22bZw7h_4fqfgVpbf2A5f1H18Iq36rIVHTBKC5jL34tHJY_Dq6RkO9ViyNDEiXso9GawPbqTcadSmYYeIXMEHvp1fbk180nIOlJ4JrAuNyP04cAFXg3q7qNQxnHa5oFajxmqJSK8t3rjgGHRKbWqAhvRtCzHWnY8W7Z-jZw3dDl2KllHP1rWx4S60clXchHajlufwpQoUUE8GpOkcZugUvatTCCcTdqEKdQGi4QS6De8rXSHtqjQ_w1-WS1kULjjNQ4ZtAlbpovdRE8cM5AUwhtCN5hx_ji9v_R57kCiHpgeHYK1SPb4oXv4WdjWgE_OwBT9kluwuwtbT5yE0i2cuPl4f8Tdecc7zlXXAlQSoZn-QPX4b3-r-0LP0PPsY3rZFS8a7b44tzSaKMCSA9hz8oEmYHwt6CB3ngDuamRoilMHOVLI6Bd4MSQVtzs1GVOSLISrpcBhtkzWjKDQlXbH6oXjfEhLcM7jEEXEbE7DtYSUetKz6lELJ7PM»,«k»:«Igc01fFij63336KUerhLWw»}]
Тут скорее всего приватный ключ шифруется симметричным ключом выведенным из пароля (pbkdf2 например) и в таком виде хранится на сервере.В этом-то и проблема. Самое слабое звено — это пароль. А все заморочки с асимметричным шифрованием ничего не стоят, так как ключи гуляют по сети туда и обратно.
Трояны и социальные виды атак относятся к другой области.Наконец-то мы пришли к очевидному. Большая часть ваших претензий не относится к дизайну криптографической системы. Если кто-то может поменять код отдаваемый index.html, он также может просунуть закладку в очередной апдейт LastPass и никакой токен от этого не спасет.
Т.к. случайное число (соль) разделяется между сервером и клиентом, лучше его генерировать на сервере из заведомо надежного источника ГСЧ.с
занимаюсь профессионально шифрованием
Через 5 дней после запуска файл-хостинг Mega обошёл Rapidshare и Dropbox