Trawling

독립 연구자 Derik Kauffman, iOS 키보드의 문구 필터 복원

독립 연구자 Derik Kauffman은 iOS 27.0 키보드 데이터에서 예측·완성 문구 차단 목록을 복원했습니다. 키보드는 두 단어에서 여섯 단어까지 이어진 단어열을 대조해 후보를 걸러내며, 영어 키보드는 QuickPath용 목록을 별도로 둡니다. 목록에 든 문구도 키를 하나씩 눌러 입력할 수 있습니다.

독립 연구자 Derik Kauffman은 아이폰 키보드가 특정 구절을 예측·완성 후보에서 제외하는 필터를 iOS 27.0 데이터에서 복원해 공개했습니다. 키보드는 목록에 있는 단어열을 후보에서 걸러내며, 일부 구절은 QuickPath 스와이프 입력에서도 다른 표현으로 바뀝니다. 키를 하나씩 눌러 입력하면 해당 문구를 쓸 수 있습니다.

The Guardian은 Apple의 제한 목록에 10만 개가 넘는 단어와 구절이 있다고 보도했습니다. Kauffman이 공개한 영문 목록은 4,513개 항목으로 구성되며, 각 항목은 관련 어형을 함께 묶어 표시합니다. 다른 27개 언어와 문자 체계의 목록도 공개했습니다. 해독하지 못한 항목이 있어 일부 언어 목록은 완전하지 않습니다. 전체 목록의 단어·구절 수와 영문 목록의 항목 수는 범위와 집계 단위가 다릅니다. 공개된 영문 목록에는 ‘United Ireland’, ‘Trayvon Martin’, ‘Dictator Trump’, ‘iMessage isn’t working’ 등이 포함됩니다.

Apple의 차단표는 문구 원문 대신 고정된 단어 ID 조합을 빈 슬롯 없이 서로 다른 위치로 보내는 최소 완전 해시 구조와 각 위치의 32비트 지문을 저장합니다. 키보드는 후보를 만들 때 두 단어에서 여섯 단어까지 이어진 단어열을 검사합니다. 언어 모델의 토큰을 차단표의 단어 ID로 바꾼 뒤 해시 위치를 찾고, 그 위치의 지문과 계산한 지문이 일치하면 후보를 제외합니다. Kauffman은 가능한 단어열을 대입해 위치와 지문을 대조하는 방식으로 저장된 구절을 복원했습니다.

영어 키보드에는 예측·완성용 목록과 QuickPath 스와이프 입력용 목록이 따로 있습니다. Kauffman에 따르면 QuickPath 목록은 예측·완성용 목록의 부분집합입니다. 따라서 일부 구절은 예측 제안에서만 제외되고, QuickPath 목록에도 든 구절은 스와이프 입력에서 다른 결과로 바뀔 수 있습니다. 영어 외 언어는 별도의 QuickPath 목록 없이 기본 목록을 두 입력 경로에 함께 쓰며, 중국어·한국어·일본어는 목록 저장 형식이 다릅니다.

Kauffman의 시연에서는 ‘Left wing’ 다음에 ‘conspiracy’를 스와이프하자 키보드가 앞 단어 ‘wing’을 ‘wrong’으로 바꿉니다. 차단 대상인 단어열을 피하려고 앞서 입력한 단어까지 수정한 사례입니다. Apple은 The Guardian에 키보드를 부적절하거나 공격적인 예측 제안을 피하도록 설계했으며, 이용자는 원하는 문구를 직접 입력하거나 예측 결과를 바꿀 수 있다고 밝혔습니다.

차단표에 어떤 단어 ID 조합이 있다는 사실만으로 Apple이 저장한 원래 표기나 해당 항목을 넣은 이유를 알 수는 없습니다. Kauffman은 ‘left’와 ‘right’가 같은 ID로 처리돼 두 표현이 같은 키로 이어질 수 있다고 설명합니다. 또 아이폰과 iOS 시뮬레이터에서 일부 구절의 동작을 확인했으며, 모든 항목을 시험한 것은 아니라고 밝혔습니다.

참고 자료

오류 제보