
์ ํต์ ์ผ๋ก ๋๋ถ๋ถ์ ์ง์์ Logitech์ ๋ฌด์ ํค๋ณด๋์ ๋ง์ฐ์ค๋ฅผ ์ฌ์ฉํด ์์ต๋๋ค. ๋ค์ ํ๋ฒ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ฉด์, ์ฐ๋ฆฌ(Raccoon Security ํ์ ์ ๋ฌธ๊ฐ)๋ ์ค์ค๋ก์๊ฒ ๋ฌผ์์ต๋๋ค. ๋ฌด์ ํค๋ณด๋์ ๋ณด์ ๋ฉ์ปค๋์ฆ์ ์ฐํํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ด๋ ค์ธ๊น์? ์ค์๋ ์กฐ์ฌ ๊ฒฐ๊ณผ, ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ ๊ตฌ์กฐ์ ๊ฒฐํจ๊ณผ ์ํํธ์จ์ด ์ค๋ฅ๊ฐ ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ป์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ก์งํ ์ธ๊ฐ?
์ ํฌ๋ Logitech ์ ๋ ฅ ์ฅ์น๊ฐ ์ต๊ณ ์ ํ์ง๊ณผ ๊ฐ์ฅ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ณด์ ํ ๋๋ถ๋ถ์ ๊ธฐ๊ธฐ๋ Logitech ์๋ฃจ์ ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. โ ์ต๋ 6๊ฐ์ ๊ธฐ๊ธฐ๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ ๋ฒ์ฉ ๋๊ธ ์์ ๊ธฐ์ ๋๋ค. Logitech Unifying ๊ธฐ์ ๊ณผ ํธํ๋๋ ๋ชจ๋ ์ฅ์น์๋ Logitech Unifying ๋ก๊ณ ๊ฐ ํ์๋์ด ์์ต๋๋ค. ์ฌ์ฉํ๊ธฐ ์ฝ์ต๋๋ค ์ปดํจํฐ์ ๋ฌด์ ํค๋ณด๋์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ํค๋ณด๋๋ฅผ Logitech ๋๊ธ ์์ ๊ธฐ์ ์ฐ๊ฒฐํ๋ ๊ณผ์ ๊ณผ ๊ธฐ์ ์์ฒด์ ๋ํด ์๋ฅผ ๋ค์ด ์์ธํ ์ค๋ช ํฉ๋๋ค. .

๋ก์งํ ์ ๋ํ์ ๋๊ธ ๋ฆฌ์๋ฒ
ํค๋ณด๋๋ ์นจ์ ์์๊ฒ ์ ๋ณด์ ์์ฒ์ด ๋ ์ ์์ต๋๋ค. Logitech์ ๋ฐ์ํ ์ ์๋ ์ํ์ ๊ณ ๋ คํ์ฌ ๋ณด์์ ๊ฐํํ์ต๋๋ค. ๋ฌด์ ํค๋ณด๋์ ๋ฌด์ ์ฑ๋์ AES128 ์ํธํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฐ ์ํฉ์์ ๊ณต๊ฒฉ์๊ฐ ๋ ์ฌ๋ฆด ์ ์๋ ์ฒซ ๋ฒ์งธ ์๊ฐ์ ๋ฐ์ธ๋ฉ ์ ์ฐจ ๋์ ๋ฌด์ ์ฑ๋์ ํตํด ์ ์ก๋๋ ์ฃผ์ ์ ๋ณด๋ฅผ ๊ฐ๋ก์ฑ๋ ๊ฒ์ ๋๋ค. ๊ฒฐ๊ตญ, ์ด์ ๊ฐ ์๋ค๋ฉด ํค๋ณด๋์ ๋ฌด์ ์ ํธ๋ฅผ ๊ฐ๋ก์ฑ์ ํด๋ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์๊ฐ ํค๋ณด๋๋ฅผ Unifying ์ ์ฐจ์ ์ฐ๊ฒฐํ ํ์๋ ๊ฑฐ์ ์๊ณ (์ฌ์ง์ด ์ ํ ์์ ์๋ ์์) ์ค์บ๋ ๋ผ๋์ค ์์ ๊ธฐ๋ฅผ ๊ฐ์ง ํด์ปค๋ผ๋ ์ค๋ ์๊ฐ์ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ๊ฒ๋ค๊ฐ ๊ฐ๋ก์ฑ๊ธฐ ๊ณผ์ ์์ฒด๋ ๊ทธ๋ ๊ฒ ๊ฐ๋จํ ๊ฒ์ ์๋๋๋ค. ๋ณด์ ์ ๋ฌธ๊ฐ Markus Mengs๋ 2019๋ XNUMX์ ์ต์ ์ฐ๊ตฌ๋ฅผ ์จ๋ผ์ธ์ ๊ฒ์ํ์ต๋๋ค. Logitech USB ๋๊ธ์ ์ค๋๋ ํ์จ์ด์์ ์ทจ์ฝ์ ์ด ๋ฐ๊ฒฌ๋์๋ค๋ ์์์ ๋๋ค. ์ฅ์น์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๊ทผํ์ฌ ๊ณต๊ฒฉ์๊ฐ ๋ฌด์ ์ฑ๋ ์ํธํ ํค๋ฅผ ์ป๊ณ ํค ์ ๋ ฅ์ ์ฝ์ ํ ์ ์์ต๋๋ค(CVE-2019-13054).
Nordic Semiconductor์ NRF24 SoC๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ Logitech ๋๊ธ์ ๋ณด์์ ๋ํ ์ฐ๊ตฌ์ ๋ํด ๋ง์๋๋ฆฌ๊ฒ ์ต๋๋ค. ๋ผ๋์ค ์ฑ๋ ์์ฒด๋ถํฐ ์์ํด ๋ณผ๊น์.
๋ผ๋์ค ์ฑ๋์์ ๋ฐ์ดํฐ๊ฐ "๋นํ"ํ๋ ๋ฐฉ์
๋ฌด์ ์ ํธ์ ์ฃผํ์-์๊ฐ ๋ถ์์ ์ํด ์คํํธ๋ผ ๋ถ์๊ธฐ ๋ชจ๋์์ Blade-RF ์ฅ์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ SDR ์์ ๊ธฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค(์ฌ๊ธฐ์์๋ ์ด์ ๋ํด ์ฝ์ ์ ์์ต๋๋ค). ).

SDR ๋ธ๋ ์ด๋-RF ์ฅ์น
๋ํ ์ฐ๋ฆฌ๋ ์ค๊ฐ ์ฃผํ์์์ ๋ฌด์ ์ ํธ์ ๊ตฌ์ ๋ฒ์ ๊ธฐ๋กํ์ฌ ๋์งํธ ์ ํธ ์ฒ๋ฆฌ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ถ์ํ ๊ฐ๋ฅ์ฑ๋ ๊ณ ๋ คํ์ต๋๋ค.
๋ฌ์์ ์ฐ๋ฐฉ ๋ฌด์ ์ฃผํ์์ ๊ดํ ๊ตญ๊ฐ ์์ํ 2400~2483,5MHz ์ฃผํ์ ๋ฒ์์ ๋จ๊ฑฐ๋ฆฌ ์ฅ์น์์ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๊ณณ์ ๋งค์ฐ "์ธ๊ตฌ๊ฐ ๋ง์" ์ ํ๊ตฐ์ผ๋ก, Wi-Fi, ๋ธ๋ฃจํฌ์ค, ๋ชจ๋ ์ข ๋ฅ์ ๋ฆฌ๋ชจ์ปจ, ๋ณด์ ์์คํ , ๋ฌด์ ๊ฐ์ง๊ธฐ, ํค๋ณด๋๊ฐ ๋ฌ๋ฆฐ ๋ง์ฐ์ค ๋ฐ ๊ธฐํ ๋ฌด์ ๋์งํธ ์ฅ์น ๋ฑ ๋ชจ๋ ๊ฒ์ ์ฐพ์ ์ ์์ต๋๋ค.

2,4GHz ๋์ญ์ ์คํํธ๋ผ
ํด๋น ๋ฒ์ ๋ด์ ๊ฐ์ญ ํ๊ฒฝ์ ๋งค์ฐ ๋ณต์กํฉ๋๋ค. ์ด๋ฌํ ์ ์๋ ๋ถ๊ตฌํ๊ณ , Logitech์ ์ฃผํ์ ์ ์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํจ๊ป NRF24 ํธ๋์๋ฒ์ Enhanced ShockBurst ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ์์ ์ ์ด๊ณ ์ ๋ขฐํ ์ ์๋ ์์ ์ ์ ๊ณตํ ์ ์์์ต๋๋ค.
๋ฒ์ ๋ด ์ฑ๋์ ๋ค์์ ์ ์๋ ์ ์ MHz ์์น์ ๋ฐฐ์น๋ฉ๋๋ค. NRF24 Nordic Semiconductor โ ์ฃผํ์ ๊ทธ๋ฆฌ๋์ ์ฑ๋์ด 84๊ฐ๋ฟ์ ๋๋ค. ๋ฌผ๋ก , Logitech์ด ๋์์ ์ฌ์ฉํ๋ ์ฃผํ์ ์ฑ๋ ์๋ ์ ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ด๋ ๋ค ๊ฐ์ง์ ์ฉ๋๋ฅผ ํ์ธํ์ต๋๋ค. ์ฌ์ฉ๋ ์ ํธ ์คํํธ๋ผ ๋ถ์๊ธฐ์ ๋์ญํญ์ด ์ ํ๋์ด ์์ด ์ฌ์ฉ๋ ์ฃผํ์ ์์น์ ์ ํํ ๋ชฉ๋ก์ ๊ฒฐ์ ํ ์ ์์์ง๋ง, ๋ฐ๋์ ๊ทธ๋ด ํ์๋ ์์์ต๋๋ค. ํค๋ณด๋์์ ์์ ๊ธฐ ๋๊ธ๋ก์ ์ ๋ณด๋ 1Mbaud์ ์ฌ๋ณผ ์๋์์ XNUMX์์น ์ฃผํ์ ๋ณ์กฐ GFSK๋ฅผ ์ฌ์ฉํ์ฌ ๋ฒ์คํธ ๋ชจ๋(์ก์ ๊ธฐ์ ์งง์ ๋ฒ์คํธ)๋ก ์ ์ก๋ฉ๋๋ค.

์๊ฐ ํํ์ ํค๋ณด๋ ๋ผ๋์ค ์ ํธ
์์ ๊ธฐ๋ ์์ ์ ์๊ด ์๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ์ ์ก๋ ํจํท์๋ ํ๋ฆฌ์ฐ๋ธ๊ณผ ์ฃผ์ ๋ถ๋ถ์ด ํฌํจ๋ฉ๋๋ค. ๋ ธ์ด์ฆ ๋ฐฉ์ง ์ฝ๋ฉ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ๋ณธ๋ฌธ์ AES128 ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ํธํ๋ฉ๋๋ค.
์ผ๋ฐ์ ์ผ๋ก Logitech ๋ฌด์ ํค๋ณด๋์ ๋ฌด์ ์ธํฐํ์ด์ค๋ ํต๊ณ์ ๋ฉํฐํ๋ ์ฑ๊ณผ ์ฃผํ์ ์ ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์์ ๋น๋๊ธฐ์์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์ด๋ ํค๋ณด๋ ์ก์ ๊ธฐ๊ฐ ์ฑ๋์ ์ ํํ์ฌ ์๋ก์ด ํจํท์ ์ ์กํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์์ ๊ธฐ๋ ์ ์ก ์๊ฐ์ด๋ ์ฃผํ์ ์ฑ๋์ ๋ฏธ๋ฆฌ ์์ง ๋ชปํ๊ณ , ๋จ์ง ๋ชฉ๋ก๋ง ์๊ณ ์์ต๋๋ค. ์์ ๊ธฐ์ ์ก์ ๊ธฐ๋ ์กฐ์ ๋ ์ฃผํ์ ์ฐํ ๋ฐ ์์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ํฅ์๋ ShockBurst ํ์ธ ๋ฉ์ปค๋์ฆ ๋๋ถ์ ์ฑ๋์์ ๋ง๋ฉ๋๋ค. ์ฑ๋ ๋ชฉ๋ก์ด ์ ์ ์ธ์ง ์ฌ๋ถ๋ ์กฐ์ฌํ์ง ์์์ต๋๋ค. ์ด๋ฌํ ๋ณํ๋ ์ฃผํ์ ์ ์ ์๊ณ ๋ฆฌ์ฆ ๋๋ฌธ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ๋์ญ์ ์ฃผํ์ ์์ ์ฌ์ฉ์์ ์ฃผํ์ ํธํ ๋ฐฉ์(์์ฌ ๋์ ์ฃผํ์ ํธํ)์ ๊ฐ๊น์ด ๊ฒ์ ์ ์ ์๋ค.
๋ฐ๋ผ์ ์ฃผํ์-์๊ฐ ๋ถํ์ค์ฑ์ ์กฐ๊ฑด์์ ๋ชจ๋ ํค๋ณด๋ ์ ํธ์ ์์ ์ ๋ณด์ฅํ๊ธฐ ์ํด ๊ณต๊ฒฉ์๋ 84์๋ฆฌ ๋ฒ์์ ์ ์ฒด ์ฃผํ์ ๊ทธ๋ฆฌ๋๋ฅผ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํด์ผ ํ๋ฉฐ, ์ด๋ฅผ ์ํด ์๋นํ ์๊ฐ์ด ์์๋ฉ๋๋ค. ์ฌ๊ธฐ์ USB ํค ์ถ์ถ ์ทจ์ฝ์ (CVE-2019-13054)์ ์์ธ์ด ๋ช ํํด์ง๋๋ค. ๊ณต๊ฒฉ์๊ฐ ํค๋ณด๋์์ ์ ๋ ฅํ ๋ฐ์ดํฐ์ ์ก์ธ์คํ ์ ์๋๋ก ํ๋ ๊ฒ์ด ์๋๋ผ ํค ์ ๋ ฅ์ ์ฃผ์ ํ ์ ์๋ ๊ธฐํ๋ก ์๋ฆฌ ์ก์์ต๋๋ค. ๋ฌด์ ํค๋ณด๋์ ๋ฌด์ ์ธํฐํ์ด์ค๋ ๋งค์ฐ ๋ณต์กํ๊ณ 2,4GHz ๋ฒ์์ ๊ฐ์ญ ์กฐ๊ฑด์ด ์ด๋ ค์ด ๊ฒฝ์ฐ์๋ Logitech ์ฅ์น ๊ฐ์ ์์ ์ ์ธ ๋ฌด์ ํต์ ์ ์ ๊ณตํ๋ค๋ ๊ฒ์ ๋ถ๋ช ํฉ๋๋ค.
๋ด๋ถ์์ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๋ค
์ฐ๋ฆฌ๋ ์ฐ๊ตฌ๋ฅผ ์ํด ๊ธฐ์กด์ Logitech K330 ํค๋ณด๋ ์ค ํ๋์ Logitech Unifying ๋๊ธ์ ์ ํํ์ต๋๋ค.

Logitech K330
ํค๋ณด๋ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ณด๋์์ ์ฐ๊ตฌํ ๋งํ ํฅ๋ฏธ๋ก์ด ์์๋ Nordic Semiconductor์ SoC NRF24 ์นฉ์ ๋๋ค.

Logitech K24 ๋ฌด์ ํค๋ณด๋ ๋ณด๋์ NRF330 SoC
ํ์จ์ด๋ ๋ด๋ถ ๋ฉ๋ชจ๋ฆฌ์ ์์นํ๋ฉฐ, ์ฝ๊ธฐ ๋ฐ ๋๋ฒ๊น ๋ฉ์ปค๋์ฆ์ ๋นํ์ฑํ๋์ด ์์ต๋๋ค. ์ํ๊น๊ฒ๋ ํ์จ์ด๋ ์คํ ์์ค๋ก ๊ณต๊ฐ๋์ง ์์์ต๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ ๋ค๋ฅธ ๊ฐ๋์์ ๋ฌธ์ ์ ์ ๊ทผํ๊ธฐ๋ก ํ์ต๋๋ค. ์ฆ, Logitech ๋๊ธ ์์ ๊ธฐ์ ๋ด๋ถ๋ฅผ ์กฐ์ฌํ๋ ๊ฒ์ ๋๋ค.
๋๊ธ ์์ ๊ธฐ์ '๋ด๋ถ ์ธ๊ณ'๋ ๋งค์ฐ ํฅ๋ฏธ๋กญ๊ฒ ๊ตฌ์ฑ๋์ด ์์ต๋๋ค. ๋๊ธ์ ๋ถํดํ๊ธฐ ์ฝ๊ณ , ๋ด์ฅ USB ์ปจํธ๋กค๋ฌ๊ฐ ์๋ ์ต์ํ NRF24๋ฅผ ํ์ฌํ๊ณ USB ์ธก๊ณผ ํ๋ก๊ทธ๋๋จธ๋ฅผ ํตํด ์ง์ ์ฌํ๋ก๊ทธ๋๋ฐํ ์ ์์ต๋๋ค.

ํ์ฐ์ง ์๋ ๋ก์งํ ๋๊ธ
ํ์จ์ด๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํ ํ์ค ๋ฉ์ปค๋์ฆ์ด ์๊ธฐ ๋๋ฌธ์ (์ฌ๊ธฐ์ ์ ๋ฐ์ดํธ๋ ๋ฒ์ ์ ํ์จ์ด๋ฅผ ์ถ์ถํ ์ ์์) ๋๊ธ ๋ด๋ถ์์ ํ์จ์ด๋ฅผ ์ฐพ์ ํ์๊ฐ ์์ต๋๋ค.
์ํ๋ ์์ : ํ์จ์ด ์ ๋ฐ์ดํธ ๋๊ตฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณธ๋ฌธ์์ ํ์จ์ด RQR_012_005_00028.bin์ ์ถ์ถํ์ต๋๋ค. ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๊ธฐ ์ํด ๋๊ธ ์ปจํธ๋กค๋ฌ๋ฅผ ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐํ์ต๋๋ค. :

Logitech ๋๊ธ์ ChipProg 48 ํ๋ก๊ทธ๋๋จธ์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ์ผ์ด๋ธ
ํ์จ์ด์ ๋ฌด๊ฒฐ์ฑ์ ํ์ธํ๊ธฐ ์ํด, ์ปจํธ๋กค๋ฌ์ ๋ฉ๋ชจ๋ฆฌ์ ์ฑ๊ณต์ ์ผ๋ก ์ ์ฅํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ์ผ๋ฉฐ, ํค๋ณด๋์ ๋ง์ฐ์ค๋ Logitech Unifying์ ํตํด ๋๊ธ์ ์ฐ๊ฒฐ๋์์ต๋๋ค. ์ํธํ๋ ํ์จ์ด ๋ณดํธ ๋ฉ์ปค๋์ฆ์ด ์ ๊ณต๋์ง ์์ผ๋ฏ๋ก ํ์ค ์ ๋ฐ์ดํธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์์ ๋ ํ์จ์ด๋ฅผ ์ ๋ก๋ํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. ์ฐ๊ตฌ ๋ชฉ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋๋จธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ฐ๊ฒฐํ์ฌ ๋๋ฒ๊น ์ ํจ์ฌ ๋น ๋ฅด๊ฒ ์งํํ ์ ์์์ต๋๋ค.
ํ์จ์ด ์ฐ๊ตฌ ๋ฐ ์ฌ์ฉ์ ์ ๋ ฅ ๊ณต๊ฒฉ
NRF24 ์นฉ์ ๊ธฐ์กด ํ๋ฒ๋ ์ํคํ ์ฒ์ Intel 8051 ์ปดํจํ ์ฝ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๊ณ๋์์ต๋๋ค. ์ฝ์ด์ ๊ฒฝ์ฐ, ํธ๋์๋ฒ๋ ์ฃผ๋ณ ์ฅ์น ์ญํ ์ ํ๋ฉฐ ์ฃผ์ ๊ณต๊ฐ์ ๋ ์ง์คํฐ ์ธํธ๋ก ์์นํฉ๋๋ค. ์นฉ ์ค๋ช ์์ ์์ค ์ฝ๋ ์์ ๋ ์จ๋ผ์ธ์์ ์ฐพ์ ์ ์์ผ๋ฏ๋ก ํ์จ์ด๋ฅผ ๋ถํดํ๋ ๊ฒ์ ์ด๋ ต์ง ์์ต๋๋ค. ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ ๋ฌด์ ์ฑ๋์์ ํค ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ์ด๋ฅผ USB ์ธํฐํ์ด์ค๋ฅผ ํตํด ํธ์คํธ๋ก ์ ์กํ ์ ์๋๋ก HID ํ์์ผ๋ก ๋ณํํ๋ ๊ธฐ๋ฅ์ ํ์งํํ์ต๋๋ค. ์ฌ์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ ์ฃผ์ ์ฝ๋๋ก ์ฑ์์ก๋๋ฐ, ์ฌ๊ธฐ์๋ ์ ์ด๋ฅผ ๊ฐ๋ก์ฑ๊ณ , ์๋ ์คํ ์ปจํ ์คํธ๋ฅผ ์ ์ฅํ๊ณ ๋ณต์ํ๋ ๋๊ตฌ๋ ๋ฌผ๋ก ๊ธฐ๋ฅ์ ์ฝ๋๋ ํฌํจ๋์์ต๋๋ค.
๋๊ธ์ด ๋ฌด์ ์ฑ๋์์ ์์ ํ ํค ์ ๋ ฅ ํจํท์ด๋ ํค ํด์ ํจํท์ ํด๋ ๋์ด ํ์ค HID ๋ณด๊ณ ์๋ก ๋ณํ๋๊ณ ์ผ๋ฐ ํค๋ณด๋์์์ฒ๋ผ USB ์ธํฐํ์ด์ค๋ก ์ ์ก๋ฉ๋๋ค. ์ฐ๋ฆฌ์ ์ฐ๊ตฌ ๋งฅ๋ฝ์์ HID ๋ณด๊ณ ์ ์ค ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฅ ํฐ ๊ด์ฌ์ ๋๋ ๋ถ๋ถ์ ์์ ์ ํ๋๊ทธ ๋ฐ์ดํธ์ ํค ์ ๋ ฅ ์ฝ๋๊ฐ ํฌํจ๋ 6๋ฐ์ดํธ ๋ฐฐ์ด์ ํฌํจํ๋ ๋ถ๋ถ์ ๋๋ค(์ฐธ๊ณ ๋ก HID ์ ๋ณด ์ฐธ์กฐ). ).
HID ๋ณด๊ณ ์ ๊ตฌ์กฐ:
// Keyboard HID report structure.
// See https://flylib.com/books/en/4.168.1.83/1/ (last access 2018 december)
// "Reports and Report Descriptors", "Programming the Microsoft Windows Driver Model"
typedef struct{
uint8_t Modifiers;
uint8_t Reserved;
uint8_t KeyCode[6];
}HidKbdReport_t;ํธ์คํธ์ HID ๊ตฌ์กฐ๋ฅผ ์ ์กํ๊ธฐ ์ง์ ์ ์ฝ์ ๋ ์ฝ๋๋ ์ ์ด๊ถ์ ๋ฐ๊ณ , 8๋ฐ์ดํธ์ ๊ธฐ๋ณธ HID ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ๋ณต์ฌํ ํ ์ผ๋ฐ ํ ์คํธ๋ก ์ธก๋ฉด ๋ฌด์ ์ฑ๋์ ์ ์กํฉ๋๋ค. ์ฝ๋๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~>
// Profiling have shown time execution ~1.88 mSec this block of code
SaveRfState(); // save transceiver state
RfInitForTransmition(TransmitRfAddress); // configure for special trnsmition
hal_nrf_write_tx_payload_noack(pDataToSend,sizeof(HidKbdReport_t)); // Write payload to radio TX FIFO
CE_PULSE(); // Toggle radio CE signal to start transmission
RestoreRfState(); // restore original transceiver state
//~~~~~~~~~ Send data via radio ~~~~~~~~~~~~~~~~~~~~~~~~~<์ฌ์ด๋ ์ฑ๋์ ํน์ ์กฐ์ ์๋์ ํจํท ๊ตฌ์กฐ์ ํน์ฑ์ ๋ฐํ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ์ค์ ํ ์ฃผํ์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์นฉ ๋ด ํธ๋์๋ฒ์ ๋์ Enhanced ShockBurst ํ๋กํ ์ฝ์ด ์ ๊ธฐ์ ์ผ๋ก ํตํฉ๋ ์ํ ๊ทธ๋ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ํธ์คํธ USB ์ธํฐํ์ด์ค๋ก HID ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ง์ ์ ํธ๋์๋ฒ๊ฐ IDLE ์ํ์ ์์์ ๋ฐ๊ฒฌํ์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ด๋ ์ฑ๋์์ ์๋ํ๋๋ก ์์ ํ๊ฒ ์ฌ๊ตฌ์ฑํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ก์ต๋๋ค. ์ฃผ์ ๋ ์ฝ๋๋ ์ ์ด๊ถ์ ๋๊ฒจ๋ฐ์ ์๋์ ํธ๋์๋ฒ ๊ตฌ์ฑ์ ๊ทธ๋๋ก ๋ณด์กดํ๊ณ ์ฌ์ด๋ ์ฑ๋์ ์๋ก์ด ์ ์ก ๋ชจ๋๋ก ์ ํํฉ๋๋ค. ์ด ๋ชจ๋์์๋ ํฅ์๋ ShockBurst ํ์ธ ๋ฉ์ปค๋์ฆ์ด ๋นํ์ฑํ๋๊ณ , HID ๋ฐ์ดํฐ๋ ๋ฌด์ ์ผ๋ก ์ผ๋ฐ ํ ์คํธ๋ก ์ ์ก๋ฉ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ์ธก๋ฉด ์ฑ๋์ ํจํท ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ ํธ ๋ค์ด์ด๊ทธ๋จ์ ๋ณต์กฐ ํ, ๋ฐ์ดํฐ ํด๋ก ๋๊ธฐํ๋ฅผ ๋ณต๊ตฌํ๊ธฐ ์ ์ ์ป์ด์ก์ต๋๋ค. ์ฃผ์ ๊ฐ์ ํจํท์ ์๊ฐ์ ์ผ๋ก ์ฝ๊ฒ ์๋ณํ ์ ์๋๋ก ์ ํ๋ฉ๋๋ค.

์ฌ์ด๋ ์ฑ๋์ ๋ณต์กฐ๋ ๋ฒ์คํธ ํจํท ์ ํธ
ํจํท์ด ์ฌ์ด๋ ์ฑ๋๋ก ์ ์ก๋ ํ, ์ฃผ์ ๋ ์ฝ๋๋ ํธ๋์๋ฒ ์ํ๋ฅผ ๋ณต์ํฉ๋๋ค. ์ด์ ์๋ ํ์จ์ด์ ์ปจํ ์คํธ์์ ๋ค์ ์ผ๋ฐ ๋ชจ๋๋ก ์์ ํ ์ค๋น๊ฐ ๋์์ต๋๋ค.
์ฃผํ์ ๋ฐ ์๊ฐ-์ฃผํ์ ์์ญ์์ ์ธก๋ฉด ์ฑ๋์ ๊ทธ๋ฆผ์ ํ์๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.

์ฌ์ด๋ ์ฑ๋์ ์คํํธ๋ผ ๋ฐ ์๊ฐ-์ฃผํ์ ํํ
์์ ๋ ํ์จ์ด๊ฐ ์ ์ฉ๋ NRF24 ์นฉ์ ์๋์ ํ ์คํธํ๊ธฐ ์ํด ์์ ๋ ํ์จ์ด๊ฐ ์ ์ฉ๋ Logitech ๋๊ธ, ๋ฌด์ ํค๋ณด๋, NRF24 ์นฉ์ด ์ ์ฉ๋ ์ค๊ตญ ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก ์กฐ๋ฆฝ๋ ์์ ๊ธฐ๋ฅผ ํฌํจํ๋ ์คํ ๋๋ฅผ ์กฐ๋ฆฝํ์ต๋๋ค.

๋ก์งํ ๋ฌด์ ํค๋ณด๋ ๋ฌด์ ์ ํธ ์ฐจ๋จ ๋ฐฉ์

NRF24 ๊ธฐ๋ฐ ๋ชจ๋
์คํ ๋์์ Logitech ๋๊ธ์ ํค๋ณด๋๋ฅผ ์ฐ๊ฒฐํ ํ ์ ์์ ์ผ๋ก ์๋ํ๋ ๋์, ์ธก๋ฉด ๋ฌด์ ์ฑ๋์์ ํค ์ ๋ ฅ์ ๋ํ ๊ณต๊ฐ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๊ณ , ์ฃผ ๋ฌด์ ์ธํฐํ์ด์ค์์ ์ํธํ๋ ๋ฐ์ดํฐ๊ฐ ์ ์์ ์ผ๋ก ์ ์ก๋๋ ๊ฒ์ ๊ด์ฐฐํ์ต๋๋ค. ์ด๋ ๊ฒ ํ์ฌ ์ฐ๋ฆฌ๋ ์ฌ์ฉ์ ํค๋ณด๋ ์ ๋ ฅ์ ์ง์ ๊ฐ๋ก์ฑ๋ ๋ฐ ์ฑ๊ณตํ์ต๋๋ค.

ํค๋ณด๋ ์ ๋ ฅ ์ฐจ๋จ ๊ฒฐ๊ณผ
์ฝ์ ๋ ์ฝ๋๋ ๋๊ธ ํ์จ์ด ์๋์ ์ฝ๊ฐ์ ์ง์ฐ์ ์ด๋ํฉ๋๋ค. ํ์ง๋ง ์ฌ์ฉ์๊ฐ ์์์ฐจ๋ฆฌ๊ธฐ์๋ ๋๋ฌด ์์ต๋๋ค.
์์ํ ์ ์๋ฏ์ด Unifying ๊ธฐ์ ๊ณผ ํธํ๋๋ ๋ชจ๋ Logitech ํค๋ณด๋๋ ์ด๋ฌํ ๊ณต๊ฒฉ ๋ฒกํฐ์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด ๊ณต๊ฒฉ์ ๋๋ถ๋ถ์ Logitech ํค๋ณด๋์ ํฌํจ๋ Unifying ์์ ๊ธฐ๋ฅผ ํ์ ์ผ๋ก ์ผ์ผ๋ฏ๋ก ํน์ ํค๋ณด๋ ๋ชจ๋ธ์๋ง ๊ตญํ๋์ง ์์ต๋๋ค.
๊ฒฐ๋ก
์ฐ๊ตฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด ๊ณต๊ฒฉ์๋ ์์ ์ธ๊ธํ ์๋๋ฆฌ์ค๋ฅผ ํ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค. ํด์ปค๊ฐ ํผํด์์ ๋๊ธ ์์ ๊ธฐ๋ฅผ ๋ฌด์ Logitech ํค๋ณด๋๋ก ๊ต์ฒดํ๋ฉด ํผํด์ ๊ณ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์๋ด์ด ๊ทธ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค. ํค ์ ๋ ฅ์ ์ฃผ์ ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค๋ ์ ์ ๊ธฐ์ตํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฆ, ํผํด์์ ์ปดํจํฐ์์ ์์์ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ด ์ด๋ ต์ง ์๋ค๋ ๋ป์ ๋๋ค.
๊ณต๊ฒฉ์๊ฐ USB๋ฅผ ํตํด ๋ชจ๋ Logitech ๋๊ธ์ ํ์จ์ด๋ฅผ ์๊ฒฉ์ผ๋ก ์์ ํ ์ ์๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ฐ ๋ค์, ์๋ก ๊ฐ๊น์ด ์์นํ ๋๊ธ์ ํตํด ๋ฆฌํผํฐ ๋คํธ์ํฌ๋ฅผ ๊ตฌ์ถํ๊ณ ๋์ค ๊ฑฐ๋ฆฌ๋ฅผ ๋๋ฆด ์ ์์ต๋๋ค. "์ฌ์ ์ ์ผ๋ก ์์ ํ" ๊ณต๊ฒฉ์๋ ์ต์ ๋ฌด์ ์์ ์ฅ๋น, ๋งค์ฐ ์ ํ์ ์ธ ์์คํ , ์งง์ ์ฃผํ์ ํ๋ ์๊ฐ์ ๊ฐ์ถ ๋ฏผ๊ฐํ ๋ฌด์ ์์ ๊ธฐ ๋ฐ ์ข์ ๋น ์ํ ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ธ์ ๊ฑด๋ฌผ์์๋ ํค๋ณด๋ ์ ๋ ฅ์ "๋ฃ๊ณ " ํค๋ฅผ ๋๋ฅผ ์ ์์ต๋๋ค.

๋ผ๋์ค ์์ ์ ์ํ ์ ๋ฌธ ์ฅ๋น
Logitech ํค๋ณด๋์ ๋ฌด์ ๋ฐ์ดํฐ ์ฑ๋์ ์๋นํ ์ ๋ณดํธ๋์ด ์์ผ๋ฏ๋ก, ๊ณต๊ฒฉ ๋ฒกํฐ๋ฅผ ๋ฐ๊ฒฌํ๋ ค๋ฉด ์์ ๊ธฐ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ฉฐ, ์ด๋ ๊ณต๊ฒฉ์๋ฅผ ํฌ๊ฒ ์ ํํฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ณดํธ๋ฅผ ์ํ ์ ์ผํ ์ต์ ์ ์์ ๊ธฐ์ ํ์จ์ด์ ๋ํ ์ํธํ ๋ณดํธ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ธ๋ฐ, ์๋ฅผ ๋ค์ด ์์ ๊ธฐ ์ธก์ ๋ก๋๋ ํ์จ์ด์ ์๋ช ์ ํ์ธํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง ๋ถํํ๋ NRF24๋ ์ด๋ฅผ ์ง์ํ์ง ์์ผ๋ฉฐ, ํ์ฌ ์ฅ์น์ ์ํคํ ์ฒ ๋ด์์ ๋ณดํธ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ฐ๋ผ์ ์ค๋ช ๋ ๊ณต๊ฒฉ ์ต์ ์ ์ฌ์ฉํ๋ ค๋ฉด ๋๊ธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ๊ทผํด์ผ ํ๋ฏ๋ก ๋๊ธ์ ์ ๊ด๋ฆฌํด์ผ ํฉ๋๋ค.

Raccoon Security๋ ์ค์ฉ ์ ๋ณด ๋ณด์, ์ํธํ, ํ๋ก ์ค๊ณ, ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง ๋ฐ ์ ์์ค ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ถ์ผ์ Vulcan Scientific and Technical Center ์ถ์ ์ ๋ฌธ๊ฐ๋ก ๊ตฌ์ฑ๋ ํน๋ณํ์ ๋๋ค.
์ถ์ฒ : habr.com
