[WWDC18 Review #3] Automatic Strong Passwords and Security Code AutoFill

iOS와 macOS에는 Password Manager가 내장되어 있고 Safari와 통합되어 있습니다. 사용자가 웹 사이트에 로그인하면 비밀번호 저장 옵션을 제공하고 사용자가 저장을 선택하면 디바이스에 안전하게 저장합니다. 저장된 비밀번호는 iCloud Keychain을 통해 모든 디바이스로 자동으로 동기화 됩니다. 사용자는 비밀번호를 기억하거나 매번 입력할 필요없이 몇 번의 탭 만으로 쉽게 로그인 할 수 있습니다.

iOS 11에 추가된 Password Auto Fill을 통해 앱에서도 동일한 기능을 구현할 수 있습니다. Password Auto Fill의 동작 방식과 구현 방법은 아래의 동영상을 통해 보실 수 있습니다.

Password Saving

iOS 12부터는 앱에서 비밀번호를 저장할 수 있습니다. iOS 휴리스틱은 로그인 시나리오가 시작되었는지, 시작되었다면 연관된 도메인이 있는지 확인합니다. 그런 다음 사용자 이름 필드와 비밀번호 필드를 인식하고, 로그인 과정이 완료되면 사용자에게 비밀번호 저장 옵션을 표시합니다. 시나리오에 따라서 비밀번호 업데이트 옵션을 표시할 수도 있습니다.

이전 버전에서 SecAddSharedWebCredential()을 사용해서 직접 비밀번호 저장 코드를 구현했다면 iOS 12부터는 더 이상 필요하지 않습니다.

Automatic Strong Password

iOS 12의 iCloud Password Keychain Manager는 로그인 뿐만 아니라 계정 생성 과정도 단축시켜 줍니다. 키체인에 저장되어 있는 정보를 토대로 사용자 이름을 자동으로 제안해 주고 비밀번호도 자동으로 생성해 줍니다.

이전과 마찬가지로 텍스트 필드의 Content Type을 지정하는 방법으로 쉽게 구현할 수 있습니다.

UITextContentType.newPassword

비밀번호는 20문자 길이로 생성되고 영대소문자, 숫자, 하이픈 문자로 구성됩니다. 대부분의 서비스와 호환되는 포멧으로 생성되며 71비트 이상의 앤트로피로 생성되기 때문에 높은 보안성을 제공합니다.
(참고글: 비밀번호 해킹에 당할 수밖에 없는 이유와 안전한 비밀번호 만들기)

새로운 Password Rules Language를 통해 직접 비밀번호 생성 규칙을 지정할 수도 있습니다. 그리고 작성한 규칙을 검증할 수 있는 도구도 함께 제공합니다.
Customizing Password AutoFill Rules
Password Rules Validation Tool

새로운 생성 규칙을 작성한 후 UITextInputPasswordRules 인스턴스를 생성하고 passwordRules 속성에 할당하는 방식으로 구현할 수 있습니다.

let rules = UITextInputPasswordRules(descriptor: "required: lower; required: upper; required: digit; required: [-]; minlength: 20;")
passwordField.passwordRules = rules

Security Code AutoFill

입력 필드의 Content Type을 iOS 12에서 새롭게 도입된 oneTimeCode로 지정하면 메시지로 전달된 인증코드를 인식할 수 있습니다.

UITextContentType.newPassword

인식된 코드는 QuickType Bar에 자동으로 표시되고 한 번의 탭으로 쉽게 입력할 수 있습니다.

iOS와 macOS가 지원하는 모든 언어를 인식할 수 있지만 메시지에 인증코드를 추론할 수 있는 단어가 포함되어 있어야 합니다. 인증 메시지는 자신에게 메시지를 보내는 방법으로 테스트 할 수 있습니다. 아래와 같이 코드 복사 메뉴가 표시된다면 Security Code AutoFill로 인식할 수 있습니다.

macOS에서 Safari를 통해 인증 과정을 실행하고 있다면 아이폰으로 전달된 메시지가 macOS로 자동으로 전송되고 입력 필드 아래쪽에 코드를 입력할 수 있는 메뉴가 제공됩니다.

New Password Management Features

  • Siri에게 비밀번호를 보여 달라고 요청할 수 있습니다.
  • AirDrop을 지원합니다.
  • 비밀번호 관리 화면이 개선되었습니다.
  • 다수의 웹 사이트에서 동일한 비밀번호를 사용하고 있다면 경고를 표시합니다. (Password Reuse Auditing)
  • 비밀번호 변경 옵션을 제공합니다.
  • tvOS 앱에서 근처에 있는 iOS 디바이스를 통해 Password Auto Fill을 사용할 수 있습니다.

AutoFill Credential Provider Extension

AuthenticationServices 프레임워크가 제공하는 API를 활용해서 직접 Password Manager App을 구현하고 Password Auto Fill 기능과 통합할 수 있습니다.

 

이 글은 WWDC18 Session 204 Automatic Strong Password and Security Code AutoFill를 요약한 글입니다. 글쓴이의 관심사가 아닌 일부 내용은 생략되어 있습니다.



댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

*