용어정리
FIDO : Fast IDentity Online
UAF : Universal Authentication Framework
U2F : Universal 2nd Factor
ASM : Authenticator Specific Module
FIDO : ID, PW기반의 인증을 대체하기위한 기술
FIDO Aliance : FIDO표준을 만들기위한 연합
UAF : 로그인 자체를 대체하는 기술
U2F : 로그인 보안을 강화하기위해 ID, PW를 입력받고 추가로 인증하는 방법
FIDO 1.0 :
FIDO USB Key
일본사는 친구통해 구매한 중국산Feitian FIDO 동글이 왔다. (일반 우편, 260엔? 정확히 일주일 걸림)

뭐 그냥 흔한 USB 메모리처럼 생겼으나
[ 1122.049536] usb 1-1.1.2: new full-speed USB device number 10 using xhci_hcd [ 1122.164650] usb 1-1.1.2: New USB device found, idVendor=096e, idProduct=0858 [ 1122.164654] usb 1-1.1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1122.164657] usb 1-1.1.2: Product: U2F CCID KBOARD [ 1122.164659] usb 1-1.1.2: Manufacturer: FT [ 1122.168493] hid-generic 0003:096E:0858.0005: hiddev0,hidraw4: USB HID v1.00 Device [FT U2F CCID KBOARD] on usb-0000:00:14.0-1.1.2/input0
키보드로 인식한다.
잉여잉여한 추석을 통해 사용방법을 익혀볼 예정. (이글도 업데이트 예정)
오픈소스
https://github.com/apowers313/fido2-server
https://github.com/google/u2f-ref-code/
SmartCard로써 사용
키, 서명생성
pkcs15-init –verify-pin –auth-id 80 –generate-key rsa/2048 –key-usage sign,decrypt –label “RSA”
openssl req -engine pkcs11 -new -key “pkcs11:object=RSA” -keyform engine -out myCert.pem -days 3650 -outform pem -x509 -utf8
pkcs15-init –store-certificate myCert.pem –id 00 –verify-pin
Linux ssh서버설정
~/.ssh/authorized_keys에 공개키 위치 (pkcs15-tool —read-ssh-key 00)
윈도 Putty-CAC
certutil.exe -scinfo 실행하면 Putty 설정메뉴의 Connection -> SSH -> Certificate에 Set CAPI Cert 누르면 인증서가 뜬다.
아니면 set PKCS cert 해서 “C:\Program Files\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll”를 지정해줘도 된다.
https://zerowidthjoiner.net/2019/01/12/using-ssh-public-key-authentication-with-a-smart-card
https://github.com/OpenSC/OpenSC
only@ThinkPad-E585:~/.ssh$ pkcs15-tool --dump Using reader with a card: FT CCID [CCID] 00 00 PKCS#15 Card [GIDS card]: Version : 2 Serial number : 3b61a83369e8d6----------------- Manufacturer ID: www.mysmartlogon.com Flags : PIN [UserPIN] Object Flags : [0x03], private, modifiable ID : 80 Flags : [0x12], local, initialized Length : min_len:4, max_len:15, stored_len:0 Pad char : 0x00 Reference : 128 (0x80) Type : ascii-numeric Tries left : 3 Private RSA Key [RSA] Object Flags : [0x01], private Usage : [0x06], decrypt, sign Access Flags : [0x1D], sensitive, alwaysSensitive, neverExtract, local ModLength : 2048 Key ref : 129 (0x81) Native : yes Auth ID : 80 ID : 00 MD:guid : 0d3bd9b5-0374-38b9-c5ae-37d54a890cb6 Public RSA Key [RSA] Object Flags : [0x00] Usage : [0x41], encrypt, verify Access Flags : [0x02], extract ModLength : 2048 Key ref : 129 (0x81) Native : yes Path : 3fffb081 ID : 00 X.509 Certificate [RSA] Object Flags : [0x00] Authority : no Path : a010df25 ID : 00 Encoded serial : 02 14 1A0146494D172CCF7D5B31E1A43A4A571BBE35D8
Ref
https://developers.yubico.com/U2F/
https://fidoalliance.org/specs/fido-u2f-v1.0-ps-20141009/fido-u2f-hid-protocol-ps-20141009.html
https://github.com/hillbrad/U2FReviews
https://www.rcdevs.com/docs/howtos/epass/epass/ [feitian-epass-nfc.pdf]
박승철. (2017). PKI 인증과 FIDO 인증에 대한 비교 분석. 한국정보통신학회논문지, 21(7), 1411-1419.
조상래, 조영섭, 김수형. (2016). FIDO 2.0 범용인증기술 소개. 정보보호학회지, 26(2), 14-19.
김재중. (2015). FIDO(Fast IDentity Online)를 이용한 비밀번호 없는 공인인증시스템에 관한 연구. 정보과학회지, 33(5), 9-12.



진짜 볼품없는 박스 … 원가절감을 느낄 수 있다.
사진을 잘못찍어서 노랗게 된게 아니라 8자 케이블 끝이 살짝 탄거처럼 노래져있다 (그래도 새건데…)
케이스는 클립이나 나사로 고정되어있는게 아니라 고주파 융착되어있어 열기가 매우 힘들었다.
PCB 뒷면은 AC부분과 DC부분이 나눠져있고
8자코드 연결하는 부분은 냉땜 되어있었다. (Made In Korea 수준…)
브릿지 정류, KBP206
그림으론 잘 보이지 않지만 ICE3BR0665J SMPS 모듈
MBRF20100C을 이용하여 최종 정류작업을 하는것으로 보인다.
뒷면의 ACT4526이 QC2.0 지원 칩셋
핑크랑은 어울리지 않는거로… 어차피 내폰 아니니까
하단은 살짝 뜨는거 같기도..





커넥터들이 기판에 붙어있다.
앞쪽은 쉴딩 되어있다.
쉴딩을 잘 제거해주면 DAC과 AMP, ADC 가 나타난다. (중요하다 “잘” 제거해야된다)
사진상으로 굉장히 크게 보이지만 PCB 전체가 엄지손톱 크기이다. (사실 손톱보단 살짝 크다)

