๐ iOS/iOS Application (26) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [iOS, Network] Wireshark๋ก ๋คํธ์ํฌ ํจํท ๋ถ์ํ๊ธฐ(5) - Wireshark ํํฐ๋ง ๋ช ๋ น์ด - IP ๊ฒ์, ํฌํธ ๊ฒ์ 1. IP ๊ฒ์ (1) Source, DST ๋ ๋ค ip.add == 233.130.195.98 (2) Source ip.src == 233.130.195.98 (3) Destination ip.dst == 233.130.195.98 2. ํฌํธ(port) ๊ฒ์ (1) Source, DST ๋ ๋ค tcp.port == 80 (2) Source tcp.srcport == 80 (3) Destination tcp.dstport == 80 3. ๋ช ๋ น์ด ํผํฉ (1) and >> ๋ ์กฐ๊ฑด ๋ชจ๋ ์ฑ๋ฆฝํ๋ ๊ฒฝ์ฐ ip.add == 233.130.195.98 and tcp.port == 80 (2) or >> ๋ ์กฐ๊ฑด ์ค ํ๋๋ผ๋ ์ฑ๋ฆฝํ๋ ๊ฒฝ์ฐ ip.add == 233.130.195.98 or tcp.port == 80 [iOS, Network] Wireshark๋ก ๋คํธ์ํฌ ํจํท ๋ถ์ํ๊ธฐ(4) - Wireshark๋ก 4-way handshake ๋ถ์ํ๊ธฐ TCP 4-way handshake 3 way handshake์ ๋ฐ๋๋ก TCP ์ฐ๊ฒฐ์ ํด์ ํ ๋ ์ฃผ๊ณ ๋ฐ๋ ํ์ธ์์ ์ด๋ค. ์ด ์ญ์ 4๋ฒ์ ํ์ธ๊ณผ์ ์ ๊ฑฐ์น๋ค๊ณ ํ์ฌ 4-way handshake๋ผ๊ณ ๋ถ๋ฅธ๋ค. TCP 4-way handshake๋ฅผ ๊ฐ๋จํ ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. [4-way handshake] 1. Client์์ ์ข ๋ฃ๋ฅผ ์๋ฆฌ๋ FIN FLAG ์๋ฒ๋ก ์ ์ก 2. FIN ํจํท์ ์ ์์ ์ผ๋ก ๋ฐ์๋ค๋ ACK๋ฅผ Client์ ์ ์กํด ์ค๋๋ค. ๊ทธํ Server๋ CLOSE-WAIT ์ํ๋ก ๋น ์ง 3. ์ฐ๊ฒฐ ์ข ๋ฃ ํ Server๋ Client์๊ฒ FIN FLAG ์ ์ก 4. Server๋ก ๋ถํฐ ์ ์ก๋ FIN FLAG๋ฅผ ๋ฐ์ Client๋ ํ์ธ์ ์๋ฆฌ๋ ACK๋ฅผ ์๋ฒ๋ก ์ ์กํ ํ, ์ผ์ ์๊ฐ ๋์ TIME-W.. [iOS, Network] Wireshark๋ก ๋คํธ์ํฌ ํจํท ๋ถ์ํ๊ธฐ(3) - Wireshark๋ก SSL Handshake(TLS Handshake) ๊ณผ์ ๋ถ์ SSL Handshake(TLS Handshake) SSL handshake๋ HTTP์ ์ ์ํ๋ ๊ณผ์ ์ผ๋ก 3 way handshake ๊ฐ ๋๋ ๋ค์ ์ด๋ฃจ์ด์ง๋ ๊ณผ์ ์ด๋ค. ํต์ ๊ณผ์ ์์ ์ก์ ์์ ์์ ์๊ฐ ์ํธํ ํต์ ์ ์ํ ๋ฐฉ๋ฒ๊ณผ ์๋จ์ ๋ํด ๊ณต์ ํ๋ค. ์ฆ, ์ํธํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํ Client์ Server์ ํ์ ๊ณผ์ . ํ์ ๊ณผ์ ์์๋ SSL ์ธ์ฆ์ ์ ๋ฌ, ๋์นญํค(๋น๋ฐํค) ์ ๋ฌ, ์ํธํ ์๊ณ ๋ฆฌ์ฆ ๊ฒฐ์ , SSL/TLS ํ๋กํ ์ฝ ๊ฒฐ์ ๋ฑ์ด ํฌํจ. (1) Client Hello (ํด๋ผ์ด์ธํธ -> ์๋ฒ) : ์ํธํ ์๊ณ ๋ฆฌ์ฆ ๋์ด ๋ฐ ์ ๋ฌ ํด๋ผ์ด์ธํธ๋ ํต์ ํ๊ณ ์ ํ๋ TLS ๋ฒ์ , ์์ ์ด ์ง์ํ๋ cipher ๋ฆฌ์คํธ, ํด๋ผ์ด์ธํธ๊ฐ ์์ฑํ ๋์ ์ ๋ณด๋ฅผ ๋ณด๋ธ๋ค. Cipher Suite์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ ๋ฐ์ด.. [iOS, Network] Wireshark๋ก ๋คํธ์ํฌ ํจํท ๋ถ์ํ๊ธฐ(2) - Wireshark๋ก HTTP Handshake, 3 Way-Handshake ๋ถ์ํ๊ธฐ ์ฌ์ Setting์ ํตํด ์์ดํฐ ํจํท ๋ฏธ๋ฌ๋ง์ ์ฑ๊ณตํ๋ค๋ฉด, ์์ดํฐ์์ ์ผ์ด๋๋ ๋คํธ์ํฌ ํต์ ์ Wireshark๋ฅผ ํตํด ํจํท ๋ถ์ํ๋ ๋ฐฉ๋ฒ๊ณผ HTTP Handshake, ๋ฐ์ดํฐ ํต์ ๊ณผ์ ์ ํ์ธํด๋ณด์! โญ๏ธ ํ ์คํธ ๋ฐฉ๋ฒโญ๏ธ Wireshark๋ฅผ ์คํ ์ธํฐํ์ด์ค์์ ์ฐ๊ฒฐ๋ ๋๋ฐ์ด์ค๋ฅผ ์ ํํ์ฌ ์บก์ฒ ์์(์ฌ์ Setting์์ ํ์ธ) ์์ดํฐ์ผ๋ก ์ฌํ๋ฆฌ ์คํ ์ฌํ๋ฆฌ์์ ๋ค์ด๋ฒ์ ์ ์ ์บก์ฒ๋ฅผ ์ข ๋ฃ ํ ํจํท ๋ถ์ [ ์ฌ์ Setting ๋ฐฉ๋ฒ ] [iOS, Network] Wireshark๋ก ๋คํธ์ํฌ ํจํท ๋ถ์ํ๊ธฐ(1) - iOS ํจํท ์บก์ณํ๊ธฐ โญ๏ธ ์ค๋น์ฌํญ โญ๏ธ Xcode ์ค์น ์์ดํฐ์ ํจํท์ ๋ถ์ํ๊ธฐ ์ํด์๋ Remote Virtual Interface ์ฌ์ฉ Xcode๋ฅผ ์ค์นํด์ผ ์ค์น๋๋ค. Wireshark ์ค์น.. [iOS, Network] Wireshark๋ก ๋คํธ์ํฌ ํจํท ๋ถ์ํ๊ธฐ(1) - iOS ํจํท ๋ฏธ๋ฌ๋ง โญ๏ธ ์ค๋น์ฌํญ โญ๏ธ Xcode ์ค์น ์์ดํฐ์ ํจํท์ ๋ถ์ํ๊ธฐ ์ํด์๋ Remote Virtual Interface ์ฌ์ฉ Xcode๋ฅผ ์ค์นํด์ผ ์ค์น๋๋ค. Wireshark ์ค์น ๋คํธ์ํฌ ํจํท์ ๋ถ์ํ ๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํด๋ก, ๊ณต์ ํํ์ด์ง์์ ๋ฌด๋ฃ๋ก ๋ค์ด๋ก๋ํ ์ ์๋ค. https://www.wireshark.org/download.html โญ๏ธ ์ฌ์ฉ ๋ฐฉ๋ฒ โญ๏ธ 1. ์์ดํฐ๊ณผ mac ์ฐ๊ฒฐํ์ฌ ์์ดํฐ UDID ํ์ธ Finder๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ์์ดํฐ์ UDID ์ ๋ณด ํ์ธ ๊ฐ๋ฅํ๋ค. *UDID(Unique Device IDentifier) : iOS, tvOS, macOS๋ฅผ ์คํํ๋ Apple ๊ธฐ๊ธฐ์ ๊ณ ์ ํ ๊ธฐ๊ธฐ ์๋ณ์ 2. ํจํท ๋ฏธ๋ฌ๋ง ์์ ์์ ํ์ธํ UDID์ ๋ณด์ rvictl ๋ช ๋ น์ด ์ฌ์ฉํ์ฌ ํจํท ๋ฏธ.. [iOS] ์ฑ์์ด์ฝ(App Icon) ์ค์ ํ๊ธฐ 1. ์์ด์ฝ ์ด๋ฏธ์ง ์ค๋นํ๊ธฐ - ์ฌ์ด์ฆ ๋ณ๋ก ์ค๋นํ๋ ๋ฐฉ๋ฒ ์ํ๋ ์์ด์ฝ ์ด๋ฏธ์ง๋ฅผ ์ค๋นํ๋ค๋ฉด, ์๋ ์ฌ์ดํธ์ ๋ค์ด๊ฐ ๋ฆฌ์ฌ์ด์งํด์ค๋๋ค. App Icon Generator appicon.co ์ฌ์ดํธ์ ๋๋๊ทธํด์ ์ด๋ฏธ์ง๋ฅผ ๋ฃ๊ณ ์๋ Generate ๋ฒํผ ํด๋ฆญ!! 2. Assets ์ค์ Generate ํด๋ฆญ ์ ๋ฐ๋ก AppIcons.zip ํ์ผ์ด ๋ค์ด๋ฉ๋๋ค. zip ํ์ผ์ ์ด๋ฉด ๋ค์๊ณผ ๊ฐ์ด AppIcon.appiconset ์ด๋ ํด๋ ์์ ์ฌ์ด์ฆ ๋ณ๋ก ์ด๋ฏธ์ง๋ค์ด ๋ค์ด์์ด์! ์ด ํด๋ '๊ทธ๋๋ก' Xcode์ Assets.xacassets์ ๋๋๊ทธํ์ฌ ๋ฃ์ด์ค๋๋ค!! ๋๋๊ทธ ์ ํ์ธํ๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ ๋๋ก import ๋์ด์์ด์~~๐๐ป ๋น๋ํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ฑ์์ด์ฝ์ด ์ ์ ์ฉ๋์ด ์์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค. ๐ ๐ก ์ฑ.. [Xcode] ์ฑ ๊ธฐ๋ณธ ์ธ์ด ํ๊ตญ์ด๋ก ๋ณ๊ฒฝํ๋ ๋ฒ Xcode์์ ์ฑ ๊ธฐ๋ณธ ์ธ์ด ํ๊ตญ์ด๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ๐ [NEW ๋ฒ์ ] 1. PROJECT → Info → Localization → “ + ” ํด๋ฆญ → Korean (ko) ์ ํ 2. ์ธ์ด๋ฅผ ์ ์ฉํ ํ์ผ ์ ํ ํ Finish ํด๋ฆญ 3. Info → Localization ์์ Korean ์ ์ฉ๋์์์ ํ์ธ [๊ตฌ๋ฒ์ ] 1. Xcode project์์ ํ๊ตญ์ด ์ถ๊ฐํ๊ธฐ 2. Info.plist์์ Localization native development region์ Korea์ผ๋ก ๋ฐ๊พธ๊ธฐ 3. ํ๋ก์ ํธ์ด๋ฆ.xcodeproj/project.pbxproj ํ์ผ์ ๋ค๋ฅธ ์๋ํฐ(atom, vs ๋ฑ..)๋ฅผ ์ด์ฉํด์ ํธ์ง : developmentRegion๋ฅผ ๊ฒ์ํ์ฌ developmentRegion = ko;๋ก ๋ฐ๊พธ๊ธฐ.. [iOS, Swift, Objective-C] ์ํธํ - SHA256 ๊ตฌํํ๊ธฐ ๐ก SHA256์ด๋? SHA-256์ SHA(Secure Hash Algorithm) ์๊ณ ๋ฆฌ์ฆ์ ํ ์ข ๋ฅ๋ก์ SHA-2 ๊ณ์ด ์ค ํ๋์ด๋ฉฐ, 2^256๋งํผ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ง๋ค ์ ์๋ค. ์ด๋ค ๊ธธ์ด์ ๊ฐ์ ์ ๋ ฅํ๋๋ผ๋ 256๋นํธ์ ๊ณ ์ ๋ ๊ฒฐ๊ณผ๊ฐ(64์๋ฆฌ ๋ฌธ์์ด(32byte))์ ๋ฐํํ๊ณ , SHA-256์ ๋จ๋ฐฉํฅ ์ํธํ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๋ณตํธํ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค. SHA256 - ํด์๋ท SHA-256์ SHA(Secure Hash Algorithm) ์๊ณ ๋ฆฌ์ฆ์ ํ ์ข ๋ฅ๋ก์ 256๋นํธ๋ก ๊ตฌ์ฑ๋๋ฉฐ 64์๋ฆฌ ๋ฌธ์์ด์ ๋ฐํํ๋ค. SHA-256์ ๋ฏธ๊ตญ์ ๊ตญ๋ฆฝํ์ค๊ธฐ์ ์ฐ๊ตฌ์(NIST; National Institute of Standards and Technology)์ ์ํด ๊ณตํ๋ wiki.hash.kr ๐ก ํด์(Hash)๋?.. ์ด์ 1 2 3 4 ๋ค์