WIPIVERSE

호모글리프

정의
호모글리프(英: homoglyph)는 시각적으로 서로 거의 동일하거나 매우 유사하게 보이는 문자·기호·그림자를 의미한다. 외관은 동일하지만 실제로는 서로 다른 유니코드 코드 포인트 혹은 다른 문자 체계에 속한다. 예컨대 라틴 알파벳 대문자 “O”(U+004F)와 숫자 “0”(U+0030), 혹은 라틴 알파벳 소문자 “a”(U+0061)와 키릴 문자 “а”(U+0430) 등이 호모글리프에 해당한다.

어원
homos(그리스어, ‘같은’)와 glyph(그리스어 glyphein, ‘새기다’에서 파생)라는 두 어근의 결합으로, ‘같은 형태를 가진 문자’라는 의미를 갖는다. 영어 단어 “homoglyph”가 그대로 한국어로 음역·전사된 형태가 “호모글리프”이다.

주요 사용·관계 분야

분야 내용
타이포그래피·디자인 문자 모양이 유사해 눈에 띄지 않는 오류를 방지하기 위해 폰트 디자인 시 구분이 쉽도록 차별화한다.
컴퓨터 보안 피싱 공격 등에서 호모글리프를 이용해 사용자를 속인다. 예를 들어 악성 사이트 주소에 라틴 “a” 대신 키릴 “а”를 사용하면 눈에 보이는 URL은 동일하지만 실제 도메인은 다르다.
국제화·유니코드 Unicode 표준은 호모글리프 충돌을 최소화하기 위해 새로운 문자에 고유 코드를 할당하고, 혼동을 일으키는 문자쌍에 대한 경고를 제공한다.
검색·텍스트 처리 문자열 정규화(NFKC, NFKD 등)를 통해 호모글리프로 인한 중복을 제거하거나 일관된 형태로 변환한다.

예시

  1. 라틴 ‘A’(U+0041)와 키릴 ‘А’(U+0410) – 형태는 동일하지만 코드값이 다름.
  2. 라틴 소문자 ‘l’(U+006C)와 숫자 ‘1’(U+0031) – 특히 작은 글꼴에서 구분이 어려움.
  3. ‘Ω’(그리스 문자 오메가, U+03A9)와 ‘Ω’(오메가 심볼, U+2126) – 시각적으로 동일하지만 의미와 코드가 다름.

보안·사용상의 권고

  • 도메인 이름 등록 시 국제화 도메인(IDN) 표준을 따르고, 브라우저에서 제공하는 IDN 표시 정책을 확인한다.
  • 소스 코딩·텍스트 입력 시 문자 정규화와 코드 포인트 검증을 수행한다.
  • 폰트 디자인 시 시각적 차별성을 높이는 대체 문자 형태(예: ‘O’에 얇은 가로선 추가)를 고려한다.

관련 용어

  • Homograph: 철자·발음이 동일하지만 의미가 다른 단어.
  • Glyph: 글자·기호의 시각적 형태.
  • Unicode Normalization: 문자 시퀀스를 표준 형태로 변환하는 절차.

참고

  • Unicode Consortium, “Unicode Standard”, 최신 버전.
  • OWASP, “Homoglyph Attack”.

(위 내용은 현재 공개된 백과사전·학술 자료와 보안 가이드라인을 근거로 작성되었으며, 별도의 추정이나 미확인 정보는 포함하지 않았다.)

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기