SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Криптография
за уеб и мобилни
разработчици
Владимир Джувинов * ТърновоКонф 2015 * @dzhuvinov
Шестте крипто инструмента
Генератор на
случайни
числа
Хеш функция HMAC
Асиметрично
шифриране
Симетрично
шифриране
Цифров
подпис
Защо да се мъчим с такива неща?
За да не ни хакнат както ЦИК!
Шест практични приложения
Безопасни
ID-та
Потребителска
верификация
Потребителски
сесии без база
Шифриране на
данни и
съобщения
Защитени уеб
заявки, OAuth
билети
Външна
потребителска
автентикация
1. Случайното число
Светът на
криптографията се
опира на случайното
число и колко
непредсказуемо е то
1. Случайното число
… влиза в ширпотреба!
1. Случайното число
Полезни приложения:
● Непредсказуеми
идентификатори
● CSRF защита
Внимаваме за:
● Ентропия на семенцата
● Достатъчно дъъъъъъъъълго
ли ни е случайното число?
● Периодично презасяване
import java.security.SecureRandom;
byte[] random = new byte[16];
SecureRandom.getInstance("SHA1PRNG").nextBytes(random);
2. Хеш функция
Криптографската хеш
функция е като
еднопосочна улица.
Връщането назад не е
желателно. Който все
пак успее печели един
биткойн :-)
2. Хеш функция
Полезни приложения:
● За проверка че не са ни барали
данните в съхраниение /
съобщенията в транзит
● За извеждане на ключове от
пароли
Внимаваме за:
● Ползваме достатъчно дълъг
хеш (SHA-256+) за избягване на
колизии. MD5 е отживял!
● Смесваме със солчица за
предпазваме от речникови атаки
import java.security.MessageDigest;
byte[] hash = MessageDigest
.getInstance("SHA-256")
.update(saltBytes)
.digest("Hello world!".getBytes("UTF-8"));
3. HMAC
Код за автентикация
и проверка целостта
на данна или
съобщение. Кодът
се генерира и
проверява с таен
ключ. Не, това не е
електронен подпис!
HMAC = Hash-based Message Authentication Code
3. HMAC
Полезни приложения:
● Потвърждение на email адрес
при регистрация на
потребител
● Уеб и мобилни сесии без база
на сървъра
● Сигурно обвързване на заявки
с обратни обаждания през
браузъра (OAuth callback)
● Алтернатива на HTTP Basic
автентикация, без споделяне
на тайната парола
Важно:
● Достатъчно дъъъъъъъълъг
ли ни е HMAC ключа?
256+ бита
● Внимаваме някой да не ни
гепи HMAC ключа! Всеки
който има достъп до него
може да създава кодове за
автентикация
● Важно: HMAC няма силата
на цифров подпис!
4. JOSE / JWT
● Улеснява живота на разработчиците на уеб, JavaScript, мобилни и
IoT приложения, които се нуждаят от HMAC, цифрови подписи и
шифриране на данни и съобщения
● URL-безопасен формат (Base64URL) за предаване на защитени
обекти и токени чрез HTTP връзки, форми и заглавия
● RFC 7515, 7516, 7517, 7518, 7519, 7520
JSON заглавие Товарен отсег
HMAC / RSASSA /
ECDSA
{''alg'':''HS256''} Hello World! xxxxxxxxxxxxx
4. JOSE / JWT
JSON заглавие Товар HMAC
{''alg'':''HS256''} Hello World! ljARfmwuxZyeQ...
eyJhbGciOiJIUzI1NiJ9.SGVsbG8gd29ybGQh.
ljARfmwuxZyeQj4XpccO3Rxr_g0wmoPEEbR3F_MbIkQ
BASE64URL
4. Java библиотеката за
JOSE/JWT
● HMAC, RSA / EC подписи +
шифриране и куп други крипто
чудесии под Java
● Работи в приложения
обслужващи над 70 милиона
потребители в мрежата
(OpenID Connect, OAuth)
● Десетки зубъри поддръжници
и тестери
● 100% документирана
● С отворен код и Apache 2.0
лиценз
http://connect2id.com/products/nimbus-jose-jwt
5. Код за email потвърждение
// Message: {''sub'':''alice'',''exp'':1449237518}
byte[] macKey = new byte[32];
SecureRandom.getInstance("SHA1PRNG").nextBytes(macKey);
JWTClaimsSet claims = new JWTClaimsSet.Builder()
.subject("alice")
.expirationTime(new Date(new Date().getTime() + 10*60*1000))
.build();
SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.HS256), claims);
jwt.sign(new MACSigner(macKey));
assertTrue(jwt.verify(new MACVerifier(macKey)));
// eyJhbGciOiJIUzI1NiJ9.SGVsbG8gd29ybGQh.Dby-zS1BF21apXtsukTokzcU22dbXT38hx2H-R2A3G8
6. Цифров подпис
Доста по-
функционален от
обикновения подпис.
Идентифицира лицето
подписало документа
и също гарантира
неговата цялост.
6. Цифров подпис
Полезни приложения:
● Удостоверяване на
документи, токени и
съобщения
● Билет за вход (OpenID
Connect - Identity token)
● Билет за достъп до уеб
API (OAuth 2.0 bearer
access token)
Внимаваме за:
● RSA ключ поне 1024 бита,
по-добре 2048
● Пазим надеждно частния
клюс, с който се подписват
съобщенията
● Периодично сменяме
ключовете (ротация)
● Не използваме един и същ
RSA / EC ключ за
подписване и шифриране
7. Билет за вход
{ ''iss'':''https://idp.ws'',
''sub'':''alice'',
''iat'':1449237518,
''exp'':1449275518,
''roles'':[''admin'',''audit''] }
import java.security.*;
import java.security.interfaces.*.
import com.nimbusds.jose.*;
import com.nimbusds.jose.crypto.*;
KeyPairGenerator rsaGen = KeyPairGenerator.getInstance("RSA");
rsaGen.initialize(2048);
KeyPair rsaKeys = rsaGen.generateKeyPair();
JWTClaimsSet claims = new JWTClaimsSet.Builder()
.issuer("https://idp.ws")
.subject("alice")
.issueTime(new Date())
.expirationTime(new Date(new Date().getTime() + 10*60*1000))
.claim("roles", Arrays.asList("admin", "audit"))
.build();
SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.RS256), claims);
jwt.sign(new RSASSASigner((RSAPrivateKey) rsaKeys.getPrivate()));
assertTrue(jwt.verify(new RSASSAVerifier((RSAPublicKey) rsaKeys.getPublic())));
7. Билет за вход
eyJhbGciOiJSUzI1NiJ9.
eyJleHAiOjE0NDkyNTM1NjAsInN1YiI6ImFsaWNlIiwicm9sZXMiOlsiYWRtaW4iLCJhdWRpdCJdLCJpc3MiO
iJodHRwczpcL1wvaWRwLndzIiwiaWF0IjoxNDQ5MjUyOTYwfQ.
UqnmYNxbySpcP0vpAcW_eWDeYGnhpB6JiLX3AgbLiFIT96kaD5C0DV1A-
53zDPk9GLzkFiH0Da85b9hgE7tPiApdWYAPghQ_3u5nmooixHFUqyWmz-nQogWvQU-
Y0vhPCGwoAp4U1onvHfnTYecZBBf1hOwidEYsFTEhtKVVApsPoSK2fScmXjXCkRydFO3XH5unYlZvyJQ13f1F
DR0iXRa6L47U1csn3dagXF0n9kEaT_I188A2XdqRe_6sTfijgEg_6B-
Lot24oxau2KxCzGsUByCYqWXbYobQrirEn5-YF0E-coBHKILN2TX04oKjY6do4nsnZ322Dh23KvgiXA
JSON заглавие Товар RSASSA
{''alg'':''RS256''} { … } ljARfmwuxZyeQ...
7. Билет за вход
https://my-cool-app.com/login?id_token=
eyJhbGciOiJSUzI1NiJ9.
eyJleHAiOjE0NDkyNTM1NjAsInN1YiI6ImFsaWNlIiwicm9sZXMiOlsiYWRtaW4iLCJhdWRpdCJdLCJpc3MiO
iJodHRwczpcL1wvaWRwLndzIiwiaWF0IjoxNDQ5MjUyOTYwfQ.
UqnmYNxbySpcP0vpAcW_eWDeYGnhpB6JiLX3AgbLiFIT96kaD5C0DV1A-
53zDPk9GLzkFiH0Da85b9hgE7tPiApdWYAPghQ_3u5nmooixHFUqyWmz-nQogWvQU-
Y0vhPCGwoAp4U1onvHfnTYecZBBf1hOwidEYsFTEhtKVVApsPoSK2fScmXjXCkRydFO3XH5unYlZvyJQ13f1F
DR0iXRa6L47U1csn3dagXF0n9kEaT_I188A2XdqRe_6sTfijgEg_6B-
Lot24oxau2KxCzGsUByCYqWXbYobQrirEn5-YF0E-coBHKILN2TX04oKjY6do4nsnZ322Dh23KvgiXA
Фирмен абонат
(MS-AD/LDAP)
Приложение
HTTP пренасочване
ID token
Благодаря!
Въпроси + Отговори?

Contenu connexe

En vedette

En vedette (15)

School Technology Planning
School Technology PlanningSchool Technology Planning
School Technology Planning
 
MOOCs, Automation, Artificial Intelligence and Pedagogical Agents
MOOCs, Automation, Artificial Intelligence and Pedagogical AgentsMOOCs, Automation, Artificial Intelligence and Pedagogical Agents
MOOCs, Automation, Artificial Intelligence and Pedagogical Agents
 
I Didn't Know That Existed 2015
I Didn't Know That Existed 2015I Didn't Know That Existed 2015
I Didn't Know That Existed 2015
 
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
OpenStack을 이용한 Commodity 하드웨어의 클라우드 전환
 
스마트창작터 사업계획서
스마트창작터 사업계획서스마트창작터 사업계획서
스마트창작터 사업계획서
 
Top American Universities
Top American UniversitiesTop American Universities
Top American Universities
 
New money
New moneyNew money
New money
 
QS Values
QS ValuesQS Values
QS Values
 
Top 5 Design Schools in India
Top 5 Design Schools in IndiaTop 5 Design Schools in India
Top 5 Design Schools in India
 
20 Chicago Neighborhoods to Know
20 Chicago Neighborhoods to Know20 Chicago Neighborhoods to Know
20 Chicago Neighborhoods to Know
 
Hardware By the Numbers: O'Reilly Solid Keynote
Hardware By the Numbers: O'Reilly Solid Keynote Hardware By the Numbers: O'Reilly Solid Keynote
Hardware By the Numbers: O'Reilly Solid Keynote
 
Top 10 universities in USA
Top 10 universities in USATop 10 universities in USA
Top 10 universities in USA
 
Top 25 Best College Towns in America
Top 25 Best College Towns in AmericaTop 25 Best College Towns in America
Top 25 Best College Towns in America
 
Top 10 Green Colleges
Top 10 Green CollegesTop 10 Green Colleges
Top 10 Green Colleges
 
Integration with dynamics ax 2012
Integration with dynamics ax 2012Integration with dynamics ax 2012
Integration with dynamics ax 2012
 

Similaire à Криптография за уеб и мобилни разработчици

методи за криптиране и декриптиране на данни
методи за криптиране и декриптиране на данниметоди за криптиране и декриптиране на данни
методи за криптиране и декриптиране на данни
Georgi Georgiev
 
Web and WS based Embedded Systems
Web and WS based Embedded SystemsWeb and WS based Embedded Systems
Web and WS based Embedded Systems
Nikolay Kakanakov
 
Методи за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данниМетоди за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данни
d_e_n_i_8_7
 
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка YiiСигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Ilko Kacharov
 
криптиране и декриптиране
криптиране и декриптиранекриптиране и декриптиране
криптиране и декриптиране
Georgi Georgiev
 
5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt
Nikolai Nikolov
 

Similaire à Криптография за уеб и мобилни разработчици (20)

методи за криптиране и декриптиране на данни
методи за криптиране и декриптиране на данниметоди за криптиране и декриптиране на данни
методи за криптиране и декриптиране на данни
 
Симетрични и асиметрични алгоритми за криптиране на информация
Симетрични и асиметрични алгоритми за криптиране на информацияСиметрични и асиметрични алгоритми за криптиране на информация
Симетрични и асиметрични алгоритми за криптиране на информация
 
WordPress Security
WordPress SecurityWordPress Security
WordPress Security
 
Криптографски протоколи за сигурна комуникация в интернет - същност, практиче...
Криптографски протоколи за сигурна комуникация в интернет - същност, практиче...Криптографски протоколи за сигурна комуникация в интернет - същност, практиче...
Криптографски протоколи за сигурна комуникация в интернет - същност, практиче...
 
курсова 91582
курсова 91582курсова 91582
курсова 91582
 
Abstract - SSL Certificates
Abstract - SSL CertificatesAbstract - SSL Certificates
Abstract - SSL Certificates
 
Web and WS based Embedded Systems
Web and WS based Embedded SystemsWeb and WS based Embedded Systems
Web and WS based Embedded Systems
 
Електронна идентификация
Електронна идентификацияЕлектронна идентификация
Електронна идентификация
 
Сравненителна характеристика на криптографски алгоритми
Сравненителна характеристика на криптографски алгоритмиСравненителна характеристика на криптографски алгоритми
Сравненителна характеристика на криптографски алгоритми
 
Php security
Php securityPhp security
Php security
 
Penetration testing for dummies
Penetration testing for dummiesPenetration testing for dummies
Penetration testing for dummies
 
(You better) change focus, 2015 finance ict & isaca v2
(You better) change focus, 2015 finance ict & isaca v2(You better) change focus, 2015 finance ict & isaca v2
(You better) change focus, 2015 finance ict & isaca v2
 
Методи за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данниМетоди за криптиране и декриптиране на данни
Методи за криптиране и декриптиране на данни
 
Lekciq 6 new (2ch)
Lekciq 6   new (2ch)Lekciq 6   new (2ch)
Lekciq 6 new (2ch)
 
Презентация - sniffing атаки
Презентация - sniffing атакиПрезентация - sniffing атаки
Презентация - sniffing атаки
 
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка YiiСигурност и права за достъп в уеб приложения изработени с работната рамка Yii
Сигурност и права за достъп в уеб приложения изработени с работната рамка Yii
 
Secure OpenID
Secure OpenIDSecure OpenID
Secure OpenID
 
криптиране и декриптиране
криптиране и декриптиранекриптиране и декриптиране
криптиране и декриптиране
 
5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt5494 n nikolov_zashtita_ppt
5494 n nikolov_zashtita_ppt
 
Web Security Intro
Web Security IntroWeb Security Intro
Web Security Intro
 

Plus de Vladimir Dzhuvinov

Plovdev 2013: How to be a better programmer, beyond programming
Plovdev 2013: How to be a better programmer, beyond programmingPlovdev 2013: How to be a better programmer, beyond programming
Plovdev 2013: How to be a better programmer, beyond programming
Vladimir Dzhuvinov
 
Binding components, events + data sources in HTML + JS
Binding components, events + data sources in HTML + JSBinding components, events + data sources in HTML + JS
Binding components, events + data sources in HTML + JS
Vladimir Dzhuvinov
 

Plus de Vladimir Dzhuvinov (7)

Mind patterns and anti-patterns
Mind patterns and anti-patternsMind patterns and anti-patterns
Mind patterns and anti-patterns
 
Cross-domain requests with CORS
Cross-domain requests with CORSCross-domain requests with CORS
Cross-domain requests with CORS
 
Protecting web APIs with OAuth 2.0
Protecting web APIs with OAuth 2.0Protecting web APIs with OAuth 2.0
Protecting web APIs with OAuth 2.0
 
OpenID Connect Explained
OpenID Connect ExplainedOpenID Connect Explained
OpenID Connect Explained
 
JSON Web Tokens (JWT)
JSON Web Tokens (JWT)JSON Web Tokens (JWT)
JSON Web Tokens (JWT)
 
Plovdev 2013: How to be a better programmer, beyond programming
Plovdev 2013: How to be a better programmer, beyond programmingPlovdev 2013: How to be a better programmer, beyond programming
Plovdev 2013: How to be a better programmer, beyond programming
 
Binding components, events + data sources in HTML + JS
Binding components, events + data sources in HTML + JSBinding components, events + data sources in HTML + JS
Binding components, events + data sources in HTML + JS
 

Криптография за уеб и мобилни разработчици

  • 1. Криптография за уеб и мобилни разработчици Владимир Джувинов * ТърновоКонф 2015 * @dzhuvinov
  • 2. Шестте крипто инструмента Генератор на случайни числа Хеш функция HMAC Асиметрично шифриране Симетрично шифриране Цифров подпис
  • 3. Защо да се мъчим с такива неща? За да не ни хакнат както ЦИК!
  • 4. Шест практични приложения Безопасни ID-та Потребителска верификация Потребителски сесии без база Шифриране на данни и съобщения Защитени уеб заявки, OAuth билети Външна потребителска автентикация
  • 5. 1. Случайното число Светът на криптографията се опира на случайното число и колко непредсказуемо е то
  • 6. 1. Случайното число … влиза в ширпотреба!
  • 7. 1. Случайното число Полезни приложения: ● Непредсказуеми идентификатори ● CSRF защита Внимаваме за: ● Ентропия на семенцата ● Достатъчно дъъъъъъъъълго ли ни е случайното число? ● Периодично презасяване import java.security.SecureRandom; byte[] random = new byte[16]; SecureRandom.getInstance("SHA1PRNG").nextBytes(random);
  • 8. 2. Хеш функция Криптографската хеш функция е като еднопосочна улица. Връщането назад не е желателно. Който все пак успее печели един биткойн :-)
  • 9. 2. Хеш функция Полезни приложения: ● За проверка че не са ни барали данните в съхраниение / съобщенията в транзит ● За извеждане на ключове от пароли Внимаваме за: ● Ползваме достатъчно дълъг хеш (SHA-256+) за избягване на колизии. MD5 е отживял! ● Смесваме със солчица за предпазваме от речникови атаки import java.security.MessageDigest; byte[] hash = MessageDigest .getInstance("SHA-256") .update(saltBytes) .digest("Hello world!".getBytes("UTF-8"));
  • 10. 3. HMAC Код за автентикация и проверка целостта на данна или съобщение. Кодът се генерира и проверява с таен ключ. Не, това не е електронен подпис! HMAC = Hash-based Message Authentication Code
  • 11. 3. HMAC Полезни приложения: ● Потвърждение на email адрес при регистрация на потребител ● Уеб и мобилни сесии без база на сървъра ● Сигурно обвързване на заявки с обратни обаждания през браузъра (OAuth callback) ● Алтернатива на HTTP Basic автентикация, без споделяне на тайната парола Важно: ● Достатъчно дъъъъъъъълъг ли ни е HMAC ключа? 256+ бита ● Внимаваме някой да не ни гепи HMAC ключа! Всеки който има достъп до него може да създава кодове за автентикация ● Важно: HMAC няма силата на цифров подпис!
  • 12. 4. JOSE / JWT ● Улеснява живота на разработчиците на уеб, JavaScript, мобилни и IoT приложения, които се нуждаят от HMAC, цифрови подписи и шифриране на данни и съобщения ● URL-безопасен формат (Base64URL) за предаване на защитени обекти и токени чрез HTTP връзки, форми и заглавия ● RFC 7515, 7516, 7517, 7518, 7519, 7520 JSON заглавие Товарен отсег HMAC / RSASSA / ECDSA {''alg'':''HS256''} Hello World! xxxxxxxxxxxxx
  • 13. 4. JOSE / JWT JSON заглавие Товар HMAC {''alg'':''HS256''} Hello World! ljARfmwuxZyeQ... eyJhbGciOiJIUzI1NiJ9.SGVsbG8gd29ybGQh. ljARfmwuxZyeQj4XpccO3Rxr_g0wmoPEEbR3F_MbIkQ BASE64URL
  • 14. 4. Java библиотеката за JOSE/JWT ● HMAC, RSA / EC подписи + шифриране и куп други крипто чудесии под Java ● Работи в приложения обслужващи над 70 милиона потребители в мрежата (OpenID Connect, OAuth) ● Десетки зубъри поддръжници и тестери ● 100% документирана ● С отворен код и Apache 2.0 лиценз http://connect2id.com/products/nimbus-jose-jwt
  • 15. 5. Код за email потвърждение // Message: {''sub'':''alice'',''exp'':1449237518} byte[] macKey = new byte[32]; SecureRandom.getInstance("SHA1PRNG").nextBytes(macKey); JWTClaimsSet claims = new JWTClaimsSet.Builder() .subject("alice") .expirationTime(new Date(new Date().getTime() + 10*60*1000)) .build(); SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.HS256), claims); jwt.sign(new MACSigner(macKey)); assertTrue(jwt.verify(new MACVerifier(macKey))); // eyJhbGciOiJIUzI1NiJ9.SGVsbG8gd29ybGQh.Dby-zS1BF21apXtsukTokzcU22dbXT38hx2H-R2A3G8
  • 16. 6. Цифров подпис Доста по- функционален от обикновения подпис. Идентифицира лицето подписало документа и също гарантира неговата цялост.
  • 17. 6. Цифров подпис Полезни приложения: ● Удостоверяване на документи, токени и съобщения ● Билет за вход (OpenID Connect - Identity token) ● Билет за достъп до уеб API (OAuth 2.0 bearer access token) Внимаваме за: ● RSA ключ поне 1024 бита, по-добре 2048 ● Пазим надеждно частния клюс, с който се подписват съобщенията ● Периодично сменяме ключовете (ротация) ● Не използваме един и същ RSA / EC ключ за подписване и шифриране
  • 18. 7. Билет за вход { ''iss'':''https://idp.ws'', ''sub'':''alice'', ''iat'':1449237518, ''exp'':1449275518, ''roles'':[''admin'',''audit''] } import java.security.*; import java.security.interfaces.*. import com.nimbusds.jose.*; import com.nimbusds.jose.crypto.*; KeyPairGenerator rsaGen = KeyPairGenerator.getInstance("RSA"); rsaGen.initialize(2048); KeyPair rsaKeys = rsaGen.generateKeyPair(); JWTClaimsSet claims = new JWTClaimsSet.Builder() .issuer("https://idp.ws") .subject("alice") .issueTime(new Date()) .expirationTime(new Date(new Date().getTime() + 10*60*1000)) .claim("roles", Arrays.asList("admin", "audit")) .build(); SignedJWT jwt = new SignedJWT(new JWSHeader(JWSAlgorithm.RS256), claims); jwt.sign(new RSASSASigner((RSAPrivateKey) rsaKeys.getPrivate())); assertTrue(jwt.verify(new RSASSAVerifier((RSAPublicKey) rsaKeys.getPublic())));
  • 19. 7. Билет за вход eyJhbGciOiJSUzI1NiJ9. eyJleHAiOjE0NDkyNTM1NjAsInN1YiI6ImFsaWNlIiwicm9sZXMiOlsiYWRtaW4iLCJhdWRpdCJdLCJpc3MiO iJodHRwczpcL1wvaWRwLndzIiwiaWF0IjoxNDQ5MjUyOTYwfQ. UqnmYNxbySpcP0vpAcW_eWDeYGnhpB6JiLX3AgbLiFIT96kaD5C0DV1A- 53zDPk9GLzkFiH0Da85b9hgE7tPiApdWYAPghQ_3u5nmooixHFUqyWmz-nQogWvQU- Y0vhPCGwoAp4U1onvHfnTYecZBBf1hOwidEYsFTEhtKVVApsPoSK2fScmXjXCkRydFO3XH5unYlZvyJQ13f1F DR0iXRa6L47U1csn3dagXF0n9kEaT_I188A2XdqRe_6sTfijgEg_6B- Lot24oxau2KxCzGsUByCYqWXbYobQrirEn5-YF0E-coBHKILN2TX04oKjY6do4nsnZ322Dh23KvgiXA JSON заглавие Товар RSASSA {''alg'':''RS256''} { … } ljARfmwuxZyeQ...
  • 20. 7. Билет за вход https://my-cool-app.com/login?id_token= eyJhbGciOiJSUzI1NiJ9. eyJleHAiOjE0NDkyNTM1NjAsInN1YiI6ImFsaWNlIiwicm9sZXMiOlsiYWRtaW4iLCJhdWRpdCJdLCJpc3MiO iJodHRwczpcL1wvaWRwLndzIiwiaWF0IjoxNDQ5MjUyOTYwfQ. UqnmYNxbySpcP0vpAcW_eWDeYGnhpB6JiLX3AgbLiFIT96kaD5C0DV1A- 53zDPk9GLzkFiH0Da85b9hgE7tPiApdWYAPghQ_3u5nmooixHFUqyWmz-nQogWvQU- Y0vhPCGwoAp4U1onvHfnTYecZBBf1hOwidEYsFTEhtKVVApsPoSK2fScmXjXCkRydFO3XH5unYlZvyJQ13f1F DR0iXRa6L47U1csn3dagXF0n9kEaT_I188A2XdqRe_6sTfijgEg_6B- Lot24oxau2KxCzGsUByCYqWXbYobQrirEn5-YF0E-coBHKILN2TX04oKjY6do4nsnZ322Dh23KvgiXA Фирмен абонат (MS-AD/LDAP) Приложение HTTP пренасочване ID token