Introduction
SSL/TLS ๊ด๋ จ ์ฌํ ์ฃผ์ ๋ฅผ ๋ค๋ฃน๋๋ค.
TLS์ย Cipher Suite
โข
TLS๋ย ์๋ฐฉ์ดย ์ฌ์ฉํ ย 4๊ฐ์ย ์๊ณ ๋ฆฌ์ฆย ์ฆ,ย ํค๊ตํ,ย ์ ์์๋ช
,ย ๋์นญํคย ์ํธํ, MACย ์๊ณ ๋ฆฌ์ฆ์ย handshakingย ๊ณผ์ ์ย ํตํดย ํฉ์ํ๋ค.ย ์๋์ย ๊ฐ์ย ํ์์ผ๋ก.
โข
๋์นญํคย ๊ตํย ๋ฐฉ์์ย ECDHE(Elliptic Curve Diffie Hellman Ephemeral)์ย ์ฌ์ฉ
โข
์ธ์ฆ์ย ์๋ช
ย ๋ฐฉ์์ย RSA๋กย ์๋ช
๋ย ์ธ์ฆ์๋กย ์ํธย ๊ฐ์ย ์ ์์ย ํ์ธ
โข
๋์นญํคย ์ํธํย ์๊ณ ๋ฆฌ์ฆ์ย AES 256bit์ย GCM์ย ์ฌ์ฉ
โข
HMACย ์๊ณ ๋ฆฌ์ฆ์ผ๋ก๋ย SHA-384๋ฅผย ์ฌ์ฉํด์ย ๋ฉ์์ง์ย ๋ฌด๊ฒฐ์ฑ์ย ํ์ธ
TLS authenticationย ๋ฉ์ปค๋์ฆ
Domainย ์ ํจ์ฑย ๊ฒ์ฆ
โข
์ ๊ทผํย domain name๊ณผย certificateย ๋ดย CN(Common Name) fieldย ๊ฐ์ย ๋์ผ์ฑย ๋น๊ต
โข
์ฐธ๊ณ ย : CN์๋ ์ผ๋ฐ์ ์ผ๋กย domain name์ด ๋ค์ด๊ฐ(wildcardย ํฌํจ ๊ฐ๋ฅ)
signatureย ๊ฒ์ฆ
์ฌ์ ย ์ง์
โข
๊ฒ์ฆย ๋์ย certificateย ๋ดย signature๋ย CA์ย private key๋กย sign๋จ
โข
๊ฒ์ฆย ์ฃผ์ฒด๋ย ๊ฒ์ฆย ๋์ย certificate์ย signํย CA certificate์ย ๊ฐ๊ณ ย ์์
๊ฒ์ฆย ์ ์ฐจ(digital signatureย ๊ฒ์ฆย ๋ฉ์ปค๋์ฆย ๊ทธ๋๋กย ์ฌ์ฉ)
1.
MDย ์ถ์ถย via public key of CA :ย ๊ฒ์ฆย ๋์ย certificateย ๋ดย ํฌํจ๋ย signature๋ฅผย ๊ฒ์ฆย ์ฃผ์ฒดย ์์ ์ดย ๊ฐ์งย CA certificateย ๋ดย public key๋กย ๋ณตํธํ
2.
MDย ์ถ์ถย via hashing :ย ๊ฒ์ฆย ๋์ย certificate์ย hashing
3.
์ถ์ถ๋ย MDย ๊ฐ์ย ๋์ผ์ฑย ๋น๊ต
์กฐ๊ฑด
๊ฒ์ฆ ๋์ย certificate์ย CA์ ๊ฒ์ฆ ์ฃผ์ฒด๊ฐ ๊ฐ์งย CA๋ ๋์ผํด์ผ ํจ
๊ธฐํ
โข
๋ณธย ์ค๋ช
์์ย expiration / activation dateย ๊ฒ์ฆย ๋ฐย revocationย ๊ฒ์ฆย ์์
์ย ๋ํด์๋ย ์๋ตํจ
โข
DV vs OV vs EV SSL
SSL Spoofing / SSL Strip
โข
SSL์ย ๋ํย MITM(Man In The Middle) attackย ๊ธฐ๋ฒ์ผ๋ก,ย ๊ฐ์งย ์ธ์ฆ์ย ๋๋ย non SSL/TLS(e.g. HTTP)ย ๊ธฐ๋ฐ์ผ๋กย ํต์ ํ๋๋กย ํ๋ย ๊ณต๊ฒฉย ๊ธฐ๋ฒ
โข
Strip์ย Spoofing์ ์ผ์ข
์ผ๋กย SSL/TLS layer๋ฅผ ๋ฒ๊ฒจ๋ด์ดย spoofingย ๋์ย host์ย message๋ฅผ ์ ๋ฌ
SSL Spoofing / Stripย ์๋ฆฌ
1.
server(SSLย ๊ฒ์ฆย ๋์)๊ณผย victim(SSLย ๊ฒ์ฆย ์ฃผ์ฒด)์ย network channelย ์ฌ์ด์ย attackerย ์์น
2.
Attacker๋ย DNS Spoofingย ์ค๋น(e.g. DNS Serverย ๋๋ย victim hostย ํ์ทจ, DNS packetย ๊ฐ์ฒญ์ย ํตํย ๊ฐ์งย DNS responseย ์ ์ก(์ง์ง๋ณด๋คย ๋จผ์ ))
3.
victim์ย DNS spoofingย ๊ณต๊ฒฉ์ผ๋กย ์ธํดย serverย ์ ๊ทผย ์ย attacker๋กย ์ ๊ทผ
4.
attacker๋ย victim๊ณผย serverย ์ฌ์ด์ย ๋ชจ๋ ย message์ย ๋ํย ๋ณ์กฐ
โข
attacker์ย serverย ์ฌ์ด์๋ย ์ ์์ ์ธย HTTPSย ํต์
โข
attacker์ย victimย ์ฌ์ด์๋ย HTTP(SSL Stripย ๊ฒฝ์ฐ)ย ๋๋ย (attacker์)ย ๋น์ ์ย certificateย ๊ธฐ๋ฐย ํต์
SSL Spoofing / Stripย ๋ฐฉ์ดย ๋ฐฉ๋ฒย : SSL/TLSย ์ฌ์ฉย ๊ฐ์ ํย ๋ฐย ์ธ์ฆ์ย ์ ํจ์ฑย ํ์ธ
โข
HSTSย ์ฌ์ฉย : Browser Level์์ย ๊ฐ์ ์ ์ผ๋กย HTTPS๋งย ์ฌ์ฉํ๋๋กย ํจ
โข
SSL Pinning(Certificate Pinningย ๋๋ย CA Pinning)
โข
Certificate Transparency
โข
๊ธฐํ
โฆ
SSL Spoofing / Stripย ๊ณต๊ฒฉ์ย SSL MITMย ๊ณต๊ฒฉ์ย ์ผ์ข
์
โฆ
SSL MITMย ๊ณต๊ฒฉ์ผ๋กย ์๊ธฐย ๊ณต๊ฒฉย ์ด์ธ์๋ย POODLE, FREAKย ๋ฑย ๋ค์ํจ.
HSTS
โข
HTTP Strict Transport Security์ย ์ฝ์๋ก์โฏHTTPย ๋์ ย HTTPS๋ง์ย ์ฌ์ฉํ์ฌย ํต์ ํด์ผย ํ๋ค๊ณ ย ์น์ฌ์ดํธ๊ฐย ๋ธ๋ผ์ฐ์ ์ย ์๋ฆฌ๋ย ๋ณด์ย ๊ธฐ๋ฅ.โฏRFC-6797ย ์ ์.
โข
HTTP Headerย ํ์ย :โฏStrict-Transport-Security: max-age=<expire-time>; includeSubDomains
โข
includeSubDomains๊ฐย ์ค์ ๋์งย ์์ผ๋ฉดย DNS Spoofing์ย ํตํดย ์ ์ฌย ์
์ย domain์ผ๋กย ์ฐ๊ฒฐ๋ ย ์ย ์์์ย ์ ์
SSL Pinning
โข
์ ์โฏ: SSL Spoofing / SSL Stripย ๊ณต๊ฒฉ์ย ํผํ๊ธฐย ์ํย ๋์ย ๊ธฐ๋ฒ
โข
์๋ฆฌโฏ: certificateย ๋๋ย public key๋ฅผ ์ธ์ฆ ์ฃผ์ฒด ๋ชจ๋์ ๋ด์ฅํ์ฌ, TLSย ์ธ์ฆ์ ๊ฒ์ฆ ๊ณผ์ ์ ์ธ๋ถ(e.g. CA, DNS)์ ๋ํ ์์กด์์ด ์ธ์ฆ ๊ฐ๋ฅํ ๋ก ํจ.
โข
HPKP(HTTP-Based Public Key Pinning)
โฆ
HTTPย ๊ธฐ๋ฐ์์ย ์ฌ์ฉํ๋ย SSL Pinningย ๊ธฐ๋ฒ.
rust on First Useโฏ(TOFU)ย ๊ธฐ๋ฒย ์คย ํ๋๋ก,ย ์ต์ดย ์ฐ๊ฒฐย ์ย ํด๋นย ์ฌ์ดํธ์ย public key๋ฅผย HTTP header๋กย ์ ๋ฌ,ย ์ดํย ์ฐ๊ฒฐ์์ย ํด๋นย public key๋ฅผย ์ธ์ฆ์ย ์ฌ์ฉํ๋๋กย ํจ.
โฆ
HTTP headerย ํ์ย :โฏPublic-Key-Pins: pin-sha256="base64=="; max-age=expireTime [; includeSubDomains][; report-uri="reportURI"]
โฆ
Chrome์์๋ย HPKPย ๊ธฐ๋ฅ์ย ์ ๊ฑฐํจ(DoS์ย ์๋ชป๋ย ๊ฐ์ย pinningํ๋ย side effect๋ฅผย ๋ง๋ค๊ธฐ์..)
โข
SSL Pinningย ๋จ์
โฆ
์ธ์ฆย ์ฃผ์ฒด์ย ์ ์ฅ๋ย certificate / public key๊ฐย ๋ฌดํจํ๋ ย ๊ฒฝ์ฐ(๋ง๋ฃย ๋ฑ)ย ๊ฐฑ์ ย ํ์
โฆ
HPKP์ย ๊ฒฝ์ฐย Chrome์ย ์ง์ํ์งย ์์
โช
์ง์ํ๋ค๊ฐ ์ ๊ฑฐํจ.ย ์๊ธฐ ๊ฐฑ์ ํ์์ฑ์ ํฌํจํ ๋ค์ํ ์ด์ ์ ์ด์ ๋ฐ ๋ฎ์ ๋์
๋ฅ ๋ก ์ธํจ
(e.g.โฏ์๋ชป๋ย HPKP header๊ฐ ํ๋ฒ ์ ๋ฌ๋๋ฉด ํด๋นย client๋ ๋ณต๊ตฌ๊ฐ ๋งค์ฐ ์ด๋ ค์)
โช
HPKPย ๋์ ย Expect CT headerย ์ฌ์ฉ(Certificate Transparencyย ์น์
ย ์ฐธ์กฐ)
Certificate Transparency
โข
์ ์:ย ์ธ์ฆ์ย ๋ชจ๋ํฐ๋งย /ย ๊ฐ์ฌ๋ฅผย ์ํย Google์ดย ๋ฐ์/์ฃผ๋์ย ์ธํฐ๋ทย ๋ณด์ย ํ์คย /ย ์คํ์์คย ํ๋ ์์ํฌ. RFC 6962.
โข
์๋ฆฌ: CAย ๋ฐย ํต์ ย peerย ๋ชจ๋๊ฐย ์ ๋ขฐํ๋ย ๊ณณ์ย ์ธ์ฆ์ย ๋ฐ๊ธ/์ฌ์ฉ์ย ๋ํย ๋ก๊ทธ๋ฅผย ์ ์ฌํจ์ผ๋กย ๋ก๊ทธ๋ฅผย ํตํดย ์ธ์ฆ์์ย ์ ํจ์ฑ์ย ํ๋ณ
โข
ํํฉ: Chrome / Safari๋ย ํ์ฌย ๋ชจ๋ ย ์ธ์ฆ์๊ฐย CT๋ฅผย ์ง์ํ๋๋กย ๊ฐ์ ํจ(CTย ์ง์ย ์์ดย ๋ฐ๊ธ๋ย ์ธ์ฆ์๋ย ์ค๋ฅย ๋ฌธ๊ตฌย ์ฒ๋ฆฌ)
โข
๋์ย ๊ตฌ์กฐ
๊ธฐํ
SNI(Server Name Indication)
โข
TLSย ํ์ฅย ํ์คย ์คย ํ๋๋กย server๊ฐย ์ฌ๋ฌย domain์ย ๊ฐ์งย ๊ฒฝ์ฐ, client๊ฐย ์์ฒญํ๋ย server domain์ย ๋ํ๋ด๋ย field์. HTTP์ย Host header์ย ๋์ผํย ์ญํ
โข
ํ๋ฌธย ๊ธฐ๋ฐ์ธย SSL handshakingย ๊ณผ์ ย ์ค์ย ์ ์ก๋๊ธฐ์, site filteringย ๋ฑ์ย ์ค์ฉย ์ฌ์ง๊ฐย ์์(๊ตญ๋ด์ย ๊ฒฝ์ฐย ์ธํฐ๋ทย ๊ฒ์ดย ๋
ผ๋ย ๋ฑ).
โข
=> TLS 1.3ย ๋ฐย ESNI(Encrypted ENI)ย ์ ์ฉ์ย ํตํดย ๋ฐฉ์งย ๊ฐ๋ฅ
TLS 1.3
โข
ํธ๋์
ฐ์ดํฌ์ย โ0-RTTโย ๋ชจ๋ย ์ถ๊ฐโฏ: handshaking stepย ์ถ์๋กย ์ฑ๋ฅย ์ฆ๋
โข
์ ์ ์ธย RSA์ย ๋ํผ-ํฌ๋จผย ์ํธํย ์ค์ํธ(Diffie-Hellman Cipher Suite)ย ์ ๊ฑฐ
โข
ํธ๋์
ฐ์ดํฌ๋ฅผย ๊ฐ๋ฅํย ์ต๋ํย ์ํธํย :ย ๊ธฐ๋ฐ์ฑย ๊ฐํ
โข
ํ์ย ๊ณก์ ย ์๊ณ ๋ฆฌ์ฆ์ย ๊ธฐ๋ณธ์ผ๋กย ์ง์ย :ย ๊ธฐ๋ฐ์ฑย ๊ฐํํคย ๊ตํ๊ณผย ์ํธํย ๋ฐฉ์์ย ์ํธํย ์ค์ํธ(Cipher Suite)๋ฐฉ์์ดย ์๋๋ผ,ย ๊ฐ๋ณ์ ์ผ๋กย ๊ฒฐ์ ย :ย ์๊ณ ๋ฆฌ์ฆย ๊ด๋ฆฌย ๋ณต์ก๋ย ์ํ
โข
TLS 1.2์โฏCBCย ์ด์ฉย ๋ชจ๋ย ์ง์์ผ๋กย ์ธํดโฏPOODLE attack๊ณผย ์ ์ฌํย ์ทจ์ฝ์ ย ์กด์ฌ(Zombie POODLE / GOLDENDOODLE)
โข
์ด๋ฅผย ํด๊ฒฐํ๊ธฐย ์ํด์๋ย CBCย ์ด์ฉย ๋ชจ๋ย ์ง์์ย ์ ๊ฑฐํ๋๊ฐ, TLS 1.3์ผ๋กย ์
๊ทธ๋ ์ด๋ํด์ผย ํจ.
POODLE attack
โข
์ทจ์ฝ์ :ย ์ํธย ํด๋
ย ๋ฐย SSL/TLS version downgrading์ย ์ ๋ฐย ๊ฐ๋ฅ
โข
ํด๊ฒฐ์:โฏSSL 3.0ย ๋ฒ์ ย ์ดํย ์ฌ์ฉย ๊ธ์ง
References
โข
RFC 6125 Representation and Verification of Domain-Based Application Service Identity within Internet PKI - X.509 Certificates in the Context of TLS :โฏhttps://tools.ietf.org/html/rfc6125#section-6.6.2
โข
How SSL Certificates Use Digital Signature :โฏhttps://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art012
โข
Understanding SSL Certificate Authentication & Validation :โฏhttps://www.geocerts.com/blog/understanding-ssl-certificate-authentication-validation
โข
Certificate / CA Pinning :โฏhttps://security.stackexchange.com/questions/51352/is-certificate-pinning-different-from-ca-pinning
โข
SSL Spoofing(SSL Strip) :โฏSSL_Spoofing.pdf
โข
SSL Stripย ๊ณต๊ฒฉ๊ณผย ๋ฐฉ์ดย ๊ธฐ๋ฒย :โฏhttp://noplanlife.com/?p=1418
โข
How SSL and TLS provide authentication :โฏhttps://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.1.0/com.ibm.mq.doc/sy10670_.htm
โข
Certificate Transparency :โฏhttps://www.certificate-transparency.org/
โข
์ค๊ตญย SSL MITMย ๊ณต๊ฒฉย ์ฌ๊ฑดย ์ ๋ฆฌย ๋ฐย ๊ณต๊ฒฉย ์๋ฆฌย :โฏhttps://blog.alyac.co.kr/204
โข
TLS 1.3 :โฏhttps://b.luavis.kr/server/tls-1.3
โข
Zombie POODLE and GOLDENDOODLE / Exploits for TLS 1.2 :โฏhttps://www.thesslstore.com/blog/zombie-poodle-and-goldendoodle-two-new-exploits-found-for-tls-1-2/
โข
์ธ์ฆ์ย ํฌ๋ช
์ฑย ๊ฐ์ย :โฏhttps://blog.yeon.me/goto/1212
โข
์ธ์ฆ์ย ํฌ๋ช
์ฑย ์๋ย ๋ฐฉ์ย :โฏhttps://blog.yeon.me/goto/1219
โข
Certificate Transparency Home :โฏhttp://www.certificate-transparency.org/
โข
Expect-CT HTTP Header :โฏhttps://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expect-CT
โข
SSL Vulnerabilites :โฏhttps://www.digicert.com/cert-inspector-vulnerabilities.htm



.png&blockId=73e1fb70-6a5a-4110-9915-7645e4d7895e)


.jpeg&blockId=ba06749d-bd29-409a-b9a0-b2731b7478e2)
.png&blockId=f0eff6e9-6bc8-4e86-a858-704b3cec693d)
.png&blockId=00111a83-bc25-4242-87db-bad659da7731)