Intel SGX: νλ λ°μ΄ν° λ³΄νΈ κΈ°μ μ λͺ¨λ κ²


μνΈνν κΈ°μ΄ μ΄ν΄
μνΈννλ λμ§νΈ λ° κ°μ ν΅νμ μΌμ’ μΌλ‘, λ³΄ν΅ μ€μμνμ΄λ μ λΆμ κ°μ μ ν΅μ μΈ κΈμ΅ μμ€ν μ κ°μ μμ΄ μ΄μλ©λλ€. μΈν°λ·κ³Ό λΈλ‘μ²΄μΈ κΈ°μ μ λ°μ μΌλ‘ 21μΈκΈ° λ€μ΄ κ·Έ μ€μμ±μ΄ ν¬κ² λΆκ°μ¬μμ΅λλ€. λΉνΈμ½μΈμ΄λΌλ 첫 λ²μ§Έ μνΈννκ° 2009λ μ λ±μ₯ν μ΄ν, μμ² κ°μ§μ λ€μν μνΈννλ€μ΄ μμ₯μ λ±μ₯νμ΅λλ€.
μνΈννμ μ μ λ° μμ¬
μνΈννλ μ μ κ±°λμ 보μμ±μ μ¦λμν€κΈ° μν΄ μνΈνμ κΈ°λ²μ μ¬μ©νλ λμ§νΈ μμ°μ λλ€. λΉνΈμ½μΈμ μ±κ³΅μ μ΄ν μ΄λ리μ, 리ν κ°μ λ€μμ μνΈννλ€μ΄ λ±μ₯νλ κ³κΈ°κ° λμκ³ , μ΄λ μλ‘μ΄ κΈμ΅ μμ€ν μ μ 곡νλ λ° κΈ°μ¬νκ² λ©λλ€. μ΄ λͺ¨μ΅μ νλ κΈμ΅μΈκ³μμ νμ μ λ³νλ₯Ό μΌμΌμΌ°μ΅λλ€.
λΈλ‘μ²΄μΈ κΈ°μ μ μ리
λΈλ‘체μΈμ μ 보λ₯Ό κΈ°λ‘νκ³ μ μ₯νλ λΆμ°ν λ°μ΄ν°λ² μ΄μ€ κΈ°μ λ‘, μ€μ μ§μ€ν λ°μ΄ν°λ² μ΄μ€μλ λ€λ₯΄κ² λͺ¨λ μ°Έμ¬μκ° κ³΅ν΅μΌλ‘ μ§μ€μ νμΈν μ μκ² ν©λλ€. μ 보λ βλΈλ‘βμΌλ‘ μ μ₯λκ³ , μ΄λ¬ν λΈλ‘λ€μ β체μΈβμΌλ‘ μ°κ²°λ©λλ€. μ΄ μμ€ν μ κ±°λκ° λ°μν λλ§λ€ μ΄λ₯Ό κΈ°λ‘νκ³ κ²μ¦νκΈ° λλ¬Έμ, μμ‘°λ λ³μ‘°λ₯Ό λ°©μ§νλ λ° νμν©λλ€.
λΈλ‘체μΈμ λ―Όκ°ν μ 보λ₯Ό ν¬ν¨νλ λͺ¨λ ννμ κ±°λμ λν μ λ’°μ±μ 보μ₯ν©λλ€.
ν¬μ μ λ΅ λ° μμ₯ λΆμ
μνΈννμ λν ν¬μλ μ ν΅μ μΈ μ£Όμμ΄λ μ±κΆκ³Όλ λ€λ₯΄λ©°, λ νΉν μ λ΅μ νμλ‘ ν©λλ€. λ³λμ±μ΄ ν¬κ³ μμ₯μ νλ¦μ μμΈ‘νκΈ° μ΄λ ΅λ€λ μ μ΄ μ΄λ₯Ό κ°λ₯νκ² ν©λλ€. κ·ΈλΌμλ λΆκ΅¬νκ³ , μνΈννλ μ μ¬μ μμ΅μ μ 곡ν μ μλ ν¬μμ²λ‘ μ¬κ²¨μ§κ³ μμ΅λλ€.
μνΈνν ν¬μ κΈ°λ³Έ μ λ΅


- μ₯κΈ° 보μ : μμ μ μΈ μνΈννλ κΈ°μ μ κ°μ§ μνΈννμ μ₯κΈ°μ μΌλ‘ ν¬μνλ μ λ΅μ λλ€.
- λ¨κΈ° 맀맀: λΉ λ₯Έ κ±°λλ‘ μ΄μ΅μ μΆκ΅¬νλ λ°©λ²μΌλ‘, κ°κ²© λ³νμ λ―Όκ°νκ² λ°μν΄μΌ ν©λλ€.
- λΆμ° ν¬μ: μ¬λ¬ μμ°μ λλμ΄ ν¬μνμ¬ μνμ μ΅μνν©λλ€.
μ΅μ μμ₯ λν₯ λ° μμΈ‘
νμ¬ μνΈνν μμ₯μ λΉνΈμ½μΈμ λΉλ‘―ν μ¬λ¬ μνΈννλ€μ΄ μ λνλκ³ μλ μΆμΈμ λλ€. μλ₯Ό λ€μ΄, μ΄λ리μμ μ€λ§νΈ κ³μ½ κΈ°λ₯ λμ λ€μν νμ€μν μμ©νλ‘κ·Έλ¨μ νμ©λκ³ μμ΅λλ€. μμ₯ μ λ¬Έκ°λ€μ μμΌ λ‘ λμ± λ λ§μ μ ν΅ κΈμ΅κΈ°κ΄λ€μ΄ μ§μ ν κ²μΌλ‘ μμΈ‘νκ³ μμ΅λλ€. μ΄λ μμ₯μ μ±μ₯μ κ°μνν κ²μΌλ‘ 보μ λλ€.
μ΄λ° λ€μν λ³ν μμμ ν¬μμλ€μ΄ μ‘°μ¬ν΄μΌ νλ μ μ λ°λ‘ μμ₯μ λ³λμ±κ³Ό μ κ· μ§μ μλ‘ μΈν΄ μ 곡λλ νΌλμ λλ€.
μ 보μ λΉλμΉ, κΈ°μ μ μΈ μ΄λ €μ, μ¬λ¦¬μ μΈ μμ λ±μ΄ 볡ν©μ μΌλ‘ μμ©νμ¬ κ°κ°μ ν¬μ μ λ΅μ μν₯μ λ―ΈμΉ μ μμ΅λλ€.
μμ₯μμ μ±κ³΅νκ³ μΆλ€λ©΄, κΎΈμ€ν νμ΅κ³Ό μμ₯ λΆμμ΄ νμμ μ λλ€.
μμΈν μ 보λ μν€λ°±κ³Όμ λΈλ¦¬νλ컀μμ μ°Ύμ λ³Ό μ μμ΅λλ€.
Intel SGXμ κΈ°λ³Έ κ°λ
Intel SGXλ νλ λ°μ΄ν° λ³΄νΈ κΈ°μ μμ μμ μ±μ μμ§μΌλ‘ μ리 μ‘κ³ μμ΅λλ€. μ΄ κΈ°μ μ λ°μ΄ν°λ₯Ό μμ νκ² κ΄λ¦¬νκ³ λ³΄νΈνλ λ°©λ²μΌλ‘, νΉν κ°μΈ μ 보μ κΈ°μ λΉλ°μ μ§ν€λ λ° ν° λ³΄ν¬μ΄ λ©λλ€. μ€λλ κΈ°μ λ€μ΄ λμ΄λλ μ¬μ΄λ² 곡격μ λν λλΉμ± μ λ§λ ¨νκ³ μ νλ©΄μ, SGXμ νμμ±μ λμ± κ°μ‘°λκ³ μμ΅λλ€.
SGXμ μ μ
SGXλ Software Guard Extensionsμ μ½μ΄λ‘, Intelμ μν΄ κ°λ°λ κΈ°μ μ λλ€. μ΄ κΈ°μ μ CPU λ΄μ 격리λ μ€ν νκ²½μμ μ½λλ₯Ό μ€ννλ λ₯λ ₯μ μ 곡ν©λλ€. μ΄λ¬ν 격리λ κ²½κ³ μμμ μ€νλλ μ½λμ λ°μ΄ν°λ ν νλ‘κ·Έλ¨μ΄λ μ¬μ©μλ‘λΆν° 보νΈλλ©°, μ΄λ₯Ό ν΅ν΄ λ°μ΄ν° λ³΄νΈ ν¨κ³Όλ₯Ό κ·Ήλνν©λλ€.


μλ μ리
SGX μν€ν μ²
SGX μν€ν μ²λ μμ ν μ€ν νκ²½μ μ 곡νμ¬, λ°μ΄ν°μ μ½λλ₯Ό 보νΈν©λλ€. μ£Όμ νΉμ§μ μννΈμ¨μ΄κ° μ€νλλ κ°κΈ° λ€λ₯Έ νκ²½μ 격리νμ¬, λ°μ΄ν°μ λν λ¬΄λ¨ μ κ·Όμ μ°¨λ¨νλ κ²μ λλ€. μ¬μ©μλ λ°μ΄ν°λ₯Ό νΉμ ν λ©λͺ¨λ¦¬ μμμ μ μ₯ν¨μΌλ‘μ¨, λΆλ²μ μΈ μ κ·Όμ νΌν μ μμ΅λλ€. μ΄ κΈ°μ μ΄ μΈκΈ° μλ μ νμ΄ λλ μ΄μ λ λ°λ‘ μ΄λ¬ν 격리μ λ³΄νΈ κΈ°λ₯μ μμ΅λλ€. λν, SGX μν€ν μ²μ λ νΉν μ μ νλμ¨μ΄ κΈ°λ°μ 보μμ ν΅ν΄ λμ μ±λ₯μ μ μ§νλ©΄μλ, μΆκ° 보μ κ³μΈ΅μ μ 곡νλ€λ κ²μ λλ€.
μΈμ¦ κ³Όμ
SGXμ μΈμ¦ κ³Όμ μ μ¬μ©μκ° μ€ννλ νλ‘κ·Έλ¨μ΄ μ λ’°ν μ μλμ§ νμΈνλ λ§€μ° μ€μν λ¨κ³μ λλ€. μ΄λ¬ν μΈμ¦ κ³Όμ μ μ¬μ©μμ λΉλ°ν€μ 보μ λ νΌλ°μ€λ₯Ό μ¬μ©νμ¬ μνλ©λλ€. νΉμ§ μ€ νλλ, μΈμ¦μ΄ μ±κ³΅μ μΌλ‘ μ΄λ£¨μ΄μ§λ©΄ ν΄λΉ νλ‘κ·Έλ¨μ΄ μμ ν νκ²½μμ μ€νλκ³ μμμ 보μ₯ν©λλ€. κ·Έλ¬λ μ΄ κ³Όμ μ νμμ μμλ λΆκ΅¬νκ³ , λ§μ½ μΈμ¦μ΄ μ€ν¨νλ©΄ νλ‘κ·Έλ¨ μ€νμ μ νμ΄ μμ μ μμ΅λλ€.
λ°μ΄ν° μνΈν
λ°μ΄ν° μνΈνλ SGXμμ ν΅μ¬μ μΈ μν μ ν©λλ€. SGXλ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μ μ₯ν λ μνΈννμ¬, ν΄λΉ λ©λͺ¨λ¦¬ μμμ΄ λ€λ₯Έ νλ‘κ·Έλ¨μ λ ΈμΆλλλΌλ, λ°μ΄ν°λ μμ νκ² μ μ§λ©λλ€. μ΄ μνΈν κ³Όμ μ΄ ν¨κ³Όμ μΈ μ νμΈ μ΄μ λ λ°μ΄ν°μ κΈ°λ°μ±κ³Ό 무결μ±μ λμμ 보μ₯ν μ μκΈ° λλ¬Έμ λλ€. κ·Έλ¬λ λ°μ΄ν° μνΈνλ μμ€ν μ μ±λ₯μ μν₯μ μ€ μ μλ λ¨μ λ μ‘΄μ¬ν©λλ€.
SGXμ νμμ±
λ°μ΄ν° μ μΆμ μν
λ°μ΄ν° μ μΆμ μνμ λΉμ¦λμ€μ κ°μΈμκ² μ¬κ°ν μνμ΄ λ©λλ€. μ¬μ΄λ² λ²μ£μλ€μ κ°μΈ μ 보 λ° κΈ°μ λ°μ΄ν°λ₯Ό 겨λ₯ν΄ μ μ± κ³΅κ²©μ κ°νν©λλ€. κΈ°μ λ€μ μ΄λ¬ν μνμ μ€μ΄κΈ° μν΄ SGXμ κ°μ 보μμ μ±νν¨μΌλ‘μ¨ λ°μ΄ν° 보νΈλ₯Ό κ·ΉλννκΈΈ μν©λλ€. νΉν μλ£ μ 보μ κΈμ΅ λ°μ΄ν°λ λμ± μ€μνκΈ° λλ¬Έμ, SGXμ νμμ±μ λ λ‘ μ»€μ§κ³ μμ΅λλ€.
보μ μμ μ¦κ°


보μ μμλ κ°μλ‘ μ¦κ°νκ³ μμ΅λλ€. λ°μ΄ν° μ μΆ μ¬κ±΄μ΄ μλ°λ₯΄λ©΄μ, μμ μ±μ ν보νκ³ μ νλ κΈ°μ λ€μ λ Έλ ₯μ΄ λμ± λλλ¬μ§κ³ μμ΅λλ€. λν, λ°μ΄ν° 보νΈμ κ΄λ ¨λ κ·μ κ° κ°νλ¨μ λ°λΌ, λ§μ κΈ°μ λ€μ΄ SGXμ κ°μ 보μ κΈ°μ μ λμ νμ¬ μ»΄νλΌμ΄μΈμ€ μꡬλ₯Ό μΆ©μ‘±μν€λ € νκ³ μμ΅λλ€.
λ°μ΄ν° 보νΈλ μ νμ΄ μλ νμμ λλ€. λ°μ΄ν°κ° μ μΆλλ©΄ κ·Έ νΌν΄λ ν볡νκΈ° μ΄λ ΅μ΅λλ€.
Intel SGXμ κΈ°μ μ νΉμ§
Intel SGXλ νλ λ°μ΄ν° λ³΄νΈ κΈ°μ μμ μ£Όλͺ©ν λ§ν μ§μ μ μ΄λ£¬ μ€μν μμμ λλ€. λ°μ΄ν° 보νΈμ νμμ±μ΄ μ¦κ°ν¨μ λ°λΌ κ°μ’ κΈ°μ κ³Ό κ°μΈμ λ κ°λ ₯ν 보μ λμ± μ μꡬνκ³ μμ΅λλ€. μ΄λ¬ν λ°°κ²½ μμμ SGX κΈ°μ μ νΉμ§λ€μ 보μμ±μ νμΈ΅ λ κ°ννλ λ° κΈ°μ¬νλ©°, μ€μ νκ²½μμμ μ μ©μ±κ³Ό ν¨μ¨μ±μ μ¦κ°μν΅λλ€.
격리λ μ€ν νκ²½
SGXμ κ°μ₯ λλλ¬μ§ κΈ°μ μ νΉμ§ μ€ νλλ 격리λ μ€ν νκ²½μ λλ€. μ΄λ¬ν νκ²½μ μμ ν μ΅ν΄λ μ΄λΈλ₯Ό ν΅ν΄ μ ν리μΌμ΄μ κ³Ό λ°μ΄ν°λ₯Ό 보νΈν©λλ€. μ¬μ©μ νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬μμ λ€λ₯Έ μ½λλ λ°μ΄ν°μ 격리λμ΄ μ€νλ¨μΌλ‘μ¨, μΈλΆμ 곡격μ΄λ λ΄λΆμ 맬μ¨μ΄λ‘λΆν° μμ νκ² λ³΄νΈλ©λλ€. μ΄λ νΉν λ―Όκ°ν μ 보λ₯Ό μ²λ¦¬νλ μ ν리μΌμ΄μ μμ ν° μ₯μ μΌλ‘ μμ©ν©λλ€.
SGXλ₯Ό ν΅ν 격리λ λλ¦μ λ¨μ λ μμ΅λλ€. μλ₯Ό λ€μ΄, μ±λ₯ μ νκ° λ°μν μ μμΌλ©°, μμ ν μ€ν νκ²½μ ꡬμΆνκΈ° μν΄μλ μμ€ν μμλ λ°λμ ν¬μ λμ΄μΌ ν©λλ€. νμ§λ§ μ΄ λλ¬Έμ κΈ°λ° μ 보μ μμ μ±μ΄ ν¬κ² μ¦κ°νκ³ λ°μ΄ν° μ μΆμ μνμ μλΉν μ€μΌ μ μλ€λ μ μμ, λ§μ κΈ°μ λ€μ΄ SGXλ₯Ό μ±ννλ μ΄μ κ° λ©λλ€.
μΈμ¦ λ° μ¬μ©μμ μν
μννΈμ¨μ΄ μΈμ¦
SGXλ μννΈμ¨μ΄ μΈμ¦μ ν΅ν΄ μ ν리μΌμ΄μ μ΄ μνλλ νκ²½μ΄ ν©λ²μ μμ 보μ₯ν©λλ€. μ΄ μΈμ¦ κ³Όμ μ κ°λ ₯ν 보μ λ©μ»€λμ¦μ νλνμ¬ ν΄μ»€μ μκΈΈλ‘λΆν° μννΈμ¨μ΄λ₯Ό 보νΈνλλ° ν° μν μ ν©λλ€. νΉν, λΈλ‘μ²΄μΈ λ° μνΈνν λΆμΌμμ μννΈμ¨μ΄ μΈμ¦μ λ§€μ° μ€μν μμλ‘ μ리 μ‘κ³ μμ΅λλ€.
μ΄λ¬ν μΈμ¦μ κ°κΈ° λ€λ₯Έ μννΈμ¨μ΄μ μ°κ²°λμ΄ μ μ²λ¦¬λ λ°μ΄ν°μ λν΄ μ λ’°μ±μ κ°μ§λλ‘ ν©λλ€.
plaintext Example:
- μ ν리μΌμ΄μ μ΄ μΈμ¦μ λ°μ κ²½μ°,
- μ¬μ©μ λ°μ΄ν°λ μμ νκ² μ²λ¦¬λ¨.