나의 성장기 보안/코딩$

Sparrow - SATS 형태

Source Code 진단 - PHP Secure Coding
@2021-10-31 22:40:09

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


모바일 진단 - 휴대폰 본인 인증의 원리(CI, DI값)

App 진단
@2021-10-29 15:40:00

과거의 본인인증 방식의 문제점

옛날에는 본인인증을 주민등록번호로 하여 한창 이슈가 있었다. 하지만 지금은 대부분 사이트에서 주민등록번호 수집을 원칙적으로 금하고 있다.

대신 대부분의 사이트에서 휴대폰 본인인증으로 변경되어 사용하고 있다.


휴대폰 본인인증의 원리

※ 참고 사항 : 휴대전화 본인인증 등 개인정보 처리할때는 SSL/TLS를 사용하여 암호화 방식이 필수이다.

회원가입 등 개인정보를 다루는 사이트는 HTTPS를 필수로 이용해야 한다. 해당 사항을 준수하지 않을 시 5천만원 이하의 벌금 등 법률 위반 제재가 가능하다.

 

요즘에는 중복가입 차단, 쇼핑몰 등에서 만 14세 이상 연령 확인용, 성인인증 용도 등으로 대체하고 있는 휴대폰 본인인증 서비스에 대하여 알아보고 원리를 소개한다.

※ 참고

중복가입 차단, 쇼핑몰 등에서 만 14세 이상 연령 확인용도, 성인인증 용도를 받는 이유?

- 대한민국 법률상, 만 14세 미만의 '계약 등 동의를 한 행위'를 인정하지 않기 때문이다. 예를 들어 만 14세 미만이 게임에 수천만 원을 사용하거나, 기타 재화를 구매 후 부모가 환불 요청 시 손해를 감수하고도 환불해줘야 하기 떄문에 대부분의 쇼핑몰은 구매자가 만 14세 이상인지 확인하게 된다. 이는 해외에서도 비슷한 법률이 존재하며, 미국의 경우에는 아동의 개인정보를 혹시라도 수집한 경우 폐기하도록 하고 있다.

 

휴대폰 본인인증이란?

사용자의 휴대전화의 문자인증등으로 본인임을 확인하는 방법이다.

해당 인증과정에는 사람, 기관이 등장한다.

  1. 사용자
  2. 쇼핑몰 등 가입하려는 "웹 사이트"
  3. 이동통신사(SKT, KT, LG, 알뜰폰 등)
  4. 본인인증 회사(도는 신용평가 회사 별도)

본인 인증 회사에서 이동통신사에 휴대전화정보로 개인정보를 확인 요청하여 맞는지 확인 후 성공/실패 여부를 웹사이트로 전송해준다.

 

사용되는 개인정보는 아래와 같다.

  • 필수
    • 휴대전화 번호
    • 이름
  • 필수 아닌 항목
    • 생년월일
    • 성별

누가 해당 정보를 처리할까?

해당 정보는 신용평가 및 본인인증 회사들의 페이지에서 본인인증이 이루어지며, 맞는지 틀린지 확인한다.

가입하려는 웹사이트에는 일반적으로 CI/DI라고 하는 고유 인증코드, 성공 여부 등만 보내지고 경우에 따라 이름, 생년월일, 성별, 내외국인 정보, 이동통신사 정보, 휴대폰 번호 등을 추가로 제공한다.

ex) 연령인증 목적 - 생년월일 필요

정보는 일반적으로 팝업으로 열린 본인인증 회사와 사용자와 1:1로 통신하며, 웹사이트는 계약된 정보만 전달받는다.

 

주민등록번호 가입과 차이점은 관리의 책임은 전적으로 신용평가회사에 있으며 해독할 수 없는 암호화된 정보를 강제한다. 보안이 검증되지 않은 회사들에 무방비하게 개인정보가 저장되어 있는 것보다는 신용평가회사만 관리하는게 관리 및 보안측면에서 조금 더 이점이 존재한다.

 

보안이 검증된 회사?

1. 보안 전문 인력이 있거나 믿을 수 있는 보안 전문 회사에 의뢰하며, 주기적으로 보안검증을 받는 회사
2. 언제나 열어두며, 버그바운티를 투명하게 공개하는 회사
3. 버그 수정하고 투명한 보고서를 제공하는 회사

이러한 기준을 만족하는 대표적인 회사는 구글과 마이크로소프트 등이 존재한다.

CI값은?

주민등록번호를 추정할 수 없는(단방향)암호화한 88BYTE값이다.

DI값은?

주민등록번호와 사업자 고유번호(사업자 등록번호)를 암호화한 66BYTE값이다.


웹 사이트의 중복가입 방지?

해당 정보중 DI값을 사용할 경우 중복가입을 방지할 수 있다.

사업자등록번호와 개인의 고유번호를 합쳐서 암호화한 코드로서 이 값은 같은 사람인 경우에만 같은 코드가 나온다.

따라서 (같은 사람 + 사업자 등록번호)로 처리하므로 중복 회원가입이 불가능하게 된다.

인증을 실패하는 Case

만일 본명을 변경하여 신용평가회사에 등록된 내용과 다른 경우(수정 반영이 되지 않은 경우)에 실패할 수 있다. 정보가 맞는지 대조하는게 신용평가회사를 통해 진행되기 때문이다.


본인 인증을 제공하는 회사 목록

  • NICE 아이디
  • NHN KCP
  • KMC 한국모바일인증
  • 드림시큐리티
  • 다날
  • PASS
  • SCI Bizsiren

안드로이드 진단 - SQlite_Database_Brower_Portable

App 진단
@2021-10-28 16:33:27

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


안드로이드 진단 - 10.26일짜 Magisk 탈옥

App 진단
@2021-10-26 23:45:56

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


안드로이드 진단 - Rooting된 단말기 순정 펌웨어 설치하는 방법

App 진단
@2021-10-26 22:38:27

Odin에 대하여

삼성 갤럭시 스마트폰을 사용할 때 간혹 업데이트가 아닌 다운그레이드, 루팅 기기를 순정펌웨어로 복구할 때 주로 사용하는 프로그램이 Odin이다.

이 프로그램은 본래 서비스센터에서 고객을 위한 서비스 용도로만 사용되던 삼성 내부프로그램 이었으나 어느순간 루팅 및 순정펌웨어를 설치할 수 있는 삼성의 공식 펌웨어 설치 프로그램이다.

다운로드 사이트는 다음과 같다.

 

2020년도 7월 1일 기준으로 최신 버전은 3.14.4 Version이며 갤럭시 S20까지 이를 지원한다.

Odin을 사용할 경우 Smart Switch Process를 종료한 후 작업하는 것을 추천한다.(Windows 상에서)

 

오딘을 사용하여 커스텀 바이너리 등을 설치하여 Knox Warranty 무효 비트가 1(엑시노스 계열) 또는 0x01(스냅드래곤 계열)로 올라가면 삼성페이등의 Knox와 관련된 기능을 사용할 수 없으며, Knox 관련 기능을 다시 사용하기 위해서는 보증 기간이 지나지 않더라도 메인보드를 유상으로 교체해야 한다.

 

하지만 Knox관련 부분을 제외한 나머지는 보증 기간 내 무상 수리가 가능하다.

https://dl2018.sammobile.com/Odin3-v3.14.4.zip

위의 링크로 접속하게 되면 최신 Odin Version인 Odin3-v3.14.4 Version을 다운로드 받을 수 있다.


Odin 사용 방법

1. Odin Program과 설치할 펌웨어를 준비한다. 펌웨어 파일을 압축하여 공유하는 사이트도 존재하는데, 압축 해제하면 다음과 같은 파일을 얻게 된다.

  • BL (부트로더 파일)
  • AP (시스템 및 리커버리 파일)
  • CP (통신 모뎀 파일)
  • CSC 또는 HOME_CSC(지역 및 통신사 코드 파일)

2. Odin을 열고 오른쪽에서 파일 선택 버튼 중에서 위에서 아래로 차례대로 선택해주면 된다.

단, 커스텀 펌웨어 상태에서 순정 펌웨어로 돌아가는 경우 HOME_CSC 대신 CSC를 CSC버튼에 선택하여 넣어줘야 한다.

 

3. Phone을 다운로드 모드로 부팅한다. 거의 대부분 전원 + 빅스비 버튼 + 볼륨 상 키를 동시에 누르면 부팅하면서 경고화면이 발생하는데, 이때 Reboot Bootloader키를 누르면 다운로드 모드로 진입한다. 컴퓨터와 연결한 후, F. Rest Time과 Auto-Reboot가 선택되어 있는지 확인한 후 플래시를 시작하면 된다.

※ 만약 설치 중 오류가 발생하면 다른 케이블을 사용해보거나, 컴퓨터 뒷면에 연결을 시도하거나 기기가 지원하는 오딘 버전을 사용하는지 확인하자

※ 참고로 오래된 펌웨어는 압축파일을 해제했을 때 BL, AP, CP, CSC등 여러 개가 나오지 않고 1개로 통합되어 있는 경우가 있다. 이럴 경우 그냥 AP에 넣고 플래싱 진행하면 된다.


순정 펌웨어 다운로드 하는 방법

갤럭시를 사용하다보면 가끔씩 순정펌웨어를 사용할 일이 발생한다.

이럴때 사용해줄 수 있는 프로그램이 존재한다.

바로 Samfirm이란 프로그램인데, 해당 프로그램은 사실 예전부터 존재했지만 20년 말에 삼성 펌웨어 서버에서 펌웨어를 내려받는 방식의 변화가 생기면서 작동이 되지 않았다.

 

하지만 samfirm 제작자가 이를 확인하고, samfirm reborn이라는 이름의 프로그램을 새로 출시했다.

https://github.com/ivanmeler/SamFirm_Reborn/releases

 

Releases · ivanmeler/SamFirm_Reborn

Contribute to ivanmeler/SamFirm_Reborn development by creating an account on GitHub.

github.com

위의 Link를 접속하여 SamFirm_Reborn.zip를 다운로드 받는다.

그 후 SamFirm.exe를 다운로드 받으면 된다.

 

SamFirm Reborn

1. Model란에 기기의 모델명을 적어주면 된다.

- 기기의 모델명은 [설정] -> [휴대전화 정보]로 이동하면, [모델번호]에 기입된 항목을 찾아 입력해주면 된다.

2. Region은 기기의 CSC코드를 입력해주면 된다.

- 기기의 CSC번호는 [설정] -> [휴대전화 정보] -> [소프트웨어 정보] -> [서비스 공급자 소프트웨어 버전]에서 찾을 수 있다.

내 단말의 경우 SKC

※ 처음에 Manual 모드로 가있는 경우가 있다. 일반 사용자의 경우, 사용할 일이 거의 없으므로, Auto에 Check하고, Check Update버튼을 누르면 된다.

 

삼성은 서버에 펌웨어를 저장할때 암호화 해서 보관하기 때문에, 다운로드만 진행해서는 펌웨어를 사용할 수 없는 암호화된 파일만을 내려받게 된다.

 

따라서 암호화를 해제하는 작업을 진행해야 되는데, 게이지가 다차서 다운로드가 완료되면 잠시 프로그램이 아래의 문구를 표시하며, CRC32값을 확인한다.

Checking CRC32...

다소 시간이 걸릴 수도 있는 작업으로, 이 작업 도중 프로그램을 종료한다면 파일을 다시 다운로드 해야 할 수 있다.

Sucess: CRC match!

Decrypting firmware...

CRC32 값 확인이 끝나면, 위 문구가 뜨면서 게이지가 처음부터 다시 차오르는데 암호화된 .zip파일을 복호화하는 과정이다.

안드로이드 진단 - Rooting Device Detection

App 진단
@2021-10-26 17:38:25

보호글입니다.
비밀번호를 입력하셔야 내용을 보실 수 있습니다.


안드로이드 진단 - NOX Setting

App 진단
@2021-10-26 11:01:45

Nox 환경 Setting 수행하기

Nox 진단 Version 7.0.1.1

일반적으로 Nox를 설치한 후 ADB를 이용해서 Nox 에뮬레이터에 붙을때 에뮬레이터의 Port는 62001부터 시작한다.

 

adb connect 127.0.0.1:62001

adb shell

해당명령으로 Shell 떨어지는지 확인

에뮬레이터로 adb 붙기


NOX를 사용한 간단한 System영역 변조 루팅방법

루팅(Rooting)은 모바일 기기에서 구동되는 안드로이드 운영체제 상에서 최상위 권한(Root)권한을 얻음으로 해당 기기의 생산자 또는 판매자 측에서 걸어 놓은 제약을 해제하는 행위를 가르키는 말이다.

 

SU파일명 변경으로 우회하기

  • System 파티션 RW모드로 리마운트

adb shell mount -o rw,remount /system

-> 시스템 영역을 rw권한으로 Remount

adb shell로 접근하여 su로 시스템 권한 획득

1. mv /system/bin/su /system/bin/ssu

2. mv /system/xbin/su /system/xbin/ssu


 

Notepad++ 자동 줄 바꿈 설정

다양한 IT 지식
@2021-10-26 09:39:46

NotePad의 툴바에서 빨간 네모박스 클릭시 자동 줄바꿈이 설정된다.

분류 전체보기 (118)

[1] [2] [3] [4] [5] [6] [···] [15]