반응형
Firebase에서 사용자 데이터를 암호화하는 방법
저는 Firebase 이메일/비밀번호 로그인 방법을 사용하고 있습니다.사용자가 실시간 데이터베이스에 저장한 데이터를 데이터베이스로 전송하기 전에 암호화하고 싶습니다.Firebase는 이미 사용자 암호를 처리하지만 클라이언트만 암호 해독할 수 없는 데이터를 암호화하는 데 어떻게든 사용할 수 있습니까?클라이언트 sdk로 달성할 수 있으면 좋겠습니다.
그래서 제 흐름은 다음과 같습니다.
- 사용자가 인증 정보를 사용하여 로그인(화재 기반 자체에서 처리)
- 사용자는 일부 고유한 키를 사용하여 일부 데이터를 암호화합니다. 이 키는 자격 증명 또는 사용자만 사용할 수 있는 일부 데이터에서만 생성할 수 있지만 사용자는 생성할 수 없습니다.(이 키는 세션 간 또는 사용자가 암호를 변경한 후에도 유지되어야 합니다.)
- 데이터가 데이터베이스에 저장됨(사용자 자격 증명으로 암호화되어 있으므로 읽을 수 없음)
- 사용자가 다른 장치에 로그인합니다(암호 해독 키는 즉시 생성되고 데이터는 암호 해독 가능).
다음과 같은 방법으로 쉽게 이 작업을 수행할 수 있습니다.
- 사용자 A가 로그인한 후 그의 전화기에서 임의의 공용 개인 키 쌍이 생성됩니다.예: Ecc Curve 25519 사용
- A의 개인 키는 A의 전화기에 안전하게 저장됩니다.
- A의 공개 키는 파이어베이스에 저장되어 있으며 A와 대화하는 모든 사람이 액세스할 수 있습니다.
- X가 A에게 메시지를 보내는 경우, 그는 A의 공용 키를 Firebase에서 가져와 A에 대한 메시지를 로컬로 암호화하고 암호화된 메시지를 A의 받은 편지함에 저장합니다.
- A는 방화벽에서 암호화된 메시지를 다운로드하고 휴대전화에 저장된 개인 키로 암호를 해독합니다.
(A ~ X의 경우 반대)
A가 다른 전화기로 이동하거나 여러 전화기를 사용하려는 경우 다음과 같은 방법으로 이동할 수 있습니다.
- A에게 로컬로 저장된 개인 키를 암호화하기 위한 강력한 암호를 정의하도록 요청합니다.(또는 임의 암호를 만들고 키 교환에 QR 코드를 사용합니다.)
- 개인 키를 로컬로 암호화합니다(예:AES256)을 사용하여 1단계의 암호를 사용하여 소방서에 업로드합니다.(선택 사항은 개인 키로 서명)
- A에서 두 번째 장치에서 암호화된 개인 키 다운로드
- A에서 두 번째 장치의 암호를 요청하고 개인 키를 안전하게 저장합니다(옵션으로 A의 공개 키로 서명 확인).
- 백업이 필요 없는 경우 방화벽에서 암호화된 개인 키 삭제
언급URL : https://stackoverflow.com/questions/38304258/how-to-encrypt-user-data-in-firebase
반응형
'itsource' 카테고리의 다른 글
firebase deploy -- 함수만 기존 함수를 재정의합니다. (0) | 2023.06.06 |
---|---|
문자열 벡터를 할당하여 열 이름으로 빈 데이터 프레임을 생성하시겠습니까? (0) | 2023.06.06 |
data.frame 행을 반복합니다. (0) | 2023.06.06 |
Firebase 전화 인증에서 sms 확인 템플릿을 변경하는 방법 (0) | 2023.06.06 |
홈브루와 함께 R 설치 (0) | 2023.06.06 |