유리 아커만(Yuriy Ackermann) 시니어 FIDO Alliance 인증 엔지니어

FIDO Alliance는 FIDO U2F 버전 1.2 사양의 출시를 발표하게 된 것을 기쁘게 생각합니다.

마지막 두 버전 이후 구조적 변경, 개선, 업데이트 및 새로운 보안 기능이 있었습니다. 아래에서는 이러한 변경 사항에 대해 자세히 살펴보겠습니다. 변경 사항의 요약 버전을 보려면 “FIDO U2F v1.2: 변경 사항 개요“로 이동하세요.

JS API

인터페이스 u2f {

무효 레지스터(

DOMString
appId
,

순서<RegisterRequest>
registerRequests
,

순서<RegisteredKey>
registeredKeys
,

function(RegisterResponse 또는 Error)
콜백
,

선택적 unsigned long? opt_timeoutSeconds

);

무효 기호(

DOMString
appId
,

DOMString
챌린지
,

순서<RegisteredKey>
registeredKeys
,

function(SignResponse 또는 Error)
콜백
,

선택적 unsigned long? opt_timeoutSeconds

);

};

고급 JS API가 업데이트되었습니다. 이전에는 모든 “RegisterRequest및 “SignRequest” appId 및 챌린지. JS API v1.2에서 appld는 첫 번째 인수로 전달됩니다. u2f.register입니다.

/* —– U2Fv1.0 —– */

appId =https://example.com

“;

registerRequests = […];

하자 signRequests = […];

for (registerRequests의 regReq 허용) {

regReq.appId = appId;

}

for (signRequests의 signReq 허용) {

signReq.appId = appId;

}

u2f.register(registerRequests, signRequests, () => {

})

/* —– U2Fv1.2—– */

appId =https://example.com

“;

registerRequests = […];

하자 signRequests = […];

u2f.register(appId, registerRequests, signRequests, () => {

})

v1.2가 재정의된 또 다른 방법은 인증 요청 사전입니다. ” 유형의 이전 사전SignRequest“가 “RegisteredKey” 사전으로 대체되었습니다.

/* —– U2Fv1.0 —– */

dictionary SignRequest { // 이전

DOMString 버전;

DOMString 챌린지;

DOMString 키 핸들;

DOMString appId;

};

/* —– U2Fv1.2 —– */

dictionary RegisteredKey { // 새로 만들기

DOMString 버전;

DOMString 키 핸들;

전송? 전송;

돔스트링? 앱ID;

};

이 변경으로 챌린지가 사전에서 제거되었으며 이제 u2f.sign 명령의 두 번째 인수입니다 첫 번째 인수는 u2f.register 명령과 동일한 appId입니다.

/* —– U2Fv1.0 —– */

appId =https://example.com

“;

하자 signRequests = […];

for (registerRequests의 regReq 허용) {

regReq.appId = appId;

}

u2f.sign(사인 요청, () => {

})

/* —– U2Fv1.2 —– */

appId =https://example.com

“;

let 챌린지 = “YJjw3jBh6RiMPKY0lMWq8GXm0Qap”;

registeredKeys = […];

u2f.sign(appId, 챌린지, registeredKeys, () => {

})

이전 버전과의 호환성을 위해 클라이언트는 SignRequest를 계속 처리할 수 있습니다. SignResponse 처리를 계속할 수 있는 RP에도 동일하게 적용됩니다.

또 다른 추가 기능은 “전송” 배열. RP는 특정 키 핸들이 사용하는 것을 전송하는 클라이언트에게 지시할 수 있습니다. 그것은 사용을 통해 그렇게합니다 전송 열거형:

열거형 전송 {

“bt”, // 블루투스 클래식(블루투스 BR/EDR)

“ble”, // Bluetooth Low Energy (Bluetooth Smart)

“nfc”, // 근거리 무선 통신

“usb”, // USB HID

“usb-internal”// 탈착식 USB HID (내장)

};

이는 클라이언트가 표시된 전송에 의해 지정된 프롬프트를 참조할 수 있는 UI/UX에 특히 유용합니다.

Authenticator Transport Extension” 섹션에서 전송 검색에 대해 설명합니다.

MessagePort API는 자체 요청 정의 사전 IDL을 얻었습니다.

사전 U2fRequest {

DOMString 유형;

돔스트링? 앱ID;

부호 없는 길다고요? 타임아웃초;

부호 없는 길다고요? 요청 ID;

};

이는 “U2fRegisterRequest” U2fSignRequest로 확장됩니다.

사전 U2fRegisterRequest :
U2fRequest
{

DOMString 유형 = ‘u2f_register_request’;

순서<RegisterRequest> registerRequests;

순서<RegisteredKey> registeredKeys입니다.

};

사전 U2fSignRequest : U2fRequest

{

DOMString

유형
= ‘u2f_sign_request’;

DOMString

챌린지
;

순서<
등록키

>


registeredKeys
입니다.

};

보시다시피 U2F JS API에 발생하는 변경 사항은 MessagePort API에도 동일하게 발생합니다.

/* —– U2Fv1.0 —– */

var port = <브라우저별 방식으로> U2F MessagePort를 얻습니다.

port.addEventListener ( ‘메시지’, 응답 핸들러);

port.postMessage({

‘유형’: ‘u2f_register_request’,

‘registerRequests’: [<RegisterRequest 인스턴스>, …],

‘signRequests’: [<알려진 토큰 1>에 대한 SignRequest, …],

‘시간 초과 초’: 30,

‘requestId’: <고유 정수> // 선택 사항

});

/* —– U2Fv1.2 —– */

var port = <브라우저별 방식으로> U2F MessagePort를 얻습니다.

port.addEventListener ( ‘메시지’, 응답 핸들러);

port.postMessage({

‘유형’: ‘u2f_register_request’,

‘appId’: <애플리케이션 ID>,

‘registerRequests’: [<RegisterRequest 인스턴스>, …],

‘registeredKeys’: [<알려진 토큰 1>의 RegisteredKey, …],

‘시간 초과 초’: 30,

‘requestId’: <고유 정수> // 선택 사항

});]

인증자 전송 확장

등록하는 동안 인증자는 배치 키를 사용하여 챌린지에 서명하고 공개 키에 X.509 인증서를 제공합니다. 이제 공급업체에서 X.509를 추가할 수 있습니다. FIDO OID 및 U2F 인증서 확장은 U2F 인증자 인증서임을 식별합니다.

— FIDO 얼라이언스의 OID

id-fido 개체 식별자 ::= 1.3.6.1.4.1.45724

— FIDO U2F 프로토콜 OID

id-fido-u2f 개체 식별자 ::= { id-fido 2 }

— FIDO U2F 인증서 확장 arc

id-fido-u2f-ce 객체 식별자 ::= { id-fido-u2f 1 }

인증자의 유형을 식별하기 위해 사양은 U2F 전송 확장을 정의합니다

— FIDO U2F 인증서 확장

id-fido-u2f-ce-transports 객체 식별자 ::= { id-fido-u2f-ce 1 }

fidoU2FTransports 확장 ::= {

구문 FIDOU2FTransports ID id-fido-u2f-ce-transports

}

FIDOU2FTransports ::= 비트 문자열 {

bluetoothRadio(0),– 블루투스 클래식

블루투스LowEnergy라디오(1),

uSB(2),

nFC(3)를 사용합니다.

uSBInternal(4)

}

원시 메시지 형식

이 업데이트의 가장 중요한 기능 중 하나는 자동 인증자 지원이 추가된 것입니다. 이 기능을 사용하면 APDU(Application Protocol Data Units)가 새 서명 매개 변수를 수신했습니다. 사용자 존재 및 서명(0x08)을 적용하지 않음 . 이제 클라이언트는 사용자 프레즌스를 적용하지 않고도 서명을 요청할 수 있습니다. 이는 인증 모드와 같은 “전달자 토큰”에 자동 모드를 사용하는 FIDO 기반 페더레이션 솔루션에 특히 유용합니다. FIDO 기반 솔루션의 가장 큰 장점은 누출 복원력입니다. FIDO 프로토콜은 디지털 서명을 기반으로 하고 프라이빗 키는 일반적으로 보안 enclave에 저장되므로 페더레이션 ID는 인증자를 복구할 수 없는 전달자 토큰으로 사용할 수 있으므로 클라이언트 쪽의 XSS 및 맬웨어에 대해 걱정할 필요가 없습니다.

U2FHID (유투피드)

U2FHID가 U2FHID_LOCK로 업데이트되었습니다. 명령. 이제 클라이언트는 최대 10초 동안 한 채널에만 통신을 잠그도록 인증자에게 요청할 수 있습니다. 클라이언트는 인증자 잠금 시간을 연장하기 위해 LOCK 명령을 지속적으로 보낼 수 있습니다.

메타데이터 문

U2F는 메타데이터 문에 대한 지원을 받았습니다.

{

“description”: “FIDO Alliance U2F 인증자 샘플”,

“attestationCertificateKeyIdentifiers”: [“7c0903708b87115b0b422def3138c3c864e44573”],

“프로토콜패밀리”: “u2f”,

“인증자 버전”: 2,

“upv”: [

{ “주”: 1, “부”: 2 }

],

“assertionScheme”: “U2FV1BIN”,

“인증 알고리즘”: 1,

“publicKeyAlgAndEncoding”: 256,

“attestationTypes”: [15879],

“userVerificationDetails”: [

[{ “사용자 확인”: 1 }]

],

“키 보호”: 10,

“matcherProtection”: 4,

“첨부 힌트”: 2,

“isSecondFactorOnly”: “참”,

“tcDisplay”: 0,

“attestationRootCertificates”: [

“MIICPTCCAeOgAwIBAgIJAOuexvU3Oy2wMAoGCCqGS

VdLIgtfsbDSu7ErJfzr4AiBqoYCZf0+zI55aQeAHjI…

lQ==”

],

“아이콘”: “BM10”

}

이러한 변경 사항을 수용하기 위해 다음과 같은 새 필드가 추가되었습니다.

  • attestationCertificateKeyIdentifiers – RFC5280의 SHA-1 인증서 SKID
  • assertionScheme – 새로운 U2FV1BIN 체계 정의

이러한 변경으로 이제 U2F를 메타데이터 서비스 프로토콜에서 지원하는 목록에 추가할 수 있습니다.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — —

U2Fv1.2에 대한 자세한 내용은 FIDO Alliance 사양 리포지토리

참조하십시오.

 

참조

 


More

새로운 데이터에 따르면 Passkeys 주류 추진력을 얻음에 따라 비밀번호 문제로 인해 젊은 고객을 잃고 있습니다.

글로벌 FIDO Alliance 연구는 인증 방법 및 온라인 보안에 대한 최신 소비자 동향 및 태도를…

자세히 보기 →

FIDO Alliance, Passkey 채택을 가속화하기 위한 포괄적인 웹 리소스 출시

Passkey Central은 리더에게 암호 키에 대한 교육과 소비자 로그인을 위해 암호 키를 구현하는 단계를 제공합니다…

자세히 보기 →

FIDO Alliance 사용자 선택을 촉진하고 Passkeys에 대한 UX를 개선하기 위한 새로운 사양을 게시합니다.

FIDO Alliance는 보안 자격 증명 교환을 위한 새로운 사양 세트의 작업 초안을 발표했으며, 자격 증명…

자세히 보기 →


12366 다음