Ruby 및 Basis Theory로 데이터를 보호하는 더 간단한 방법

이 게스트 게시물은 개발자가 Basis Theory 및 새로운 Rails 7.0 업그레이드로 데이터를 신속하게 보호하고 사용할 수 있도록 지원하는 커뮤니티 구축 Ruby Gem을 안내합니다.

Ruby on Rails는 사용 편의성과 단순성으로 명성을 쌓았습니다. 엔지니어로서 저는 프로젝트 내에서 데이터 암호화 및 보안의 복잡성을 제거할 방법을 찾습니다. 최근에 저는 암호화 프로세스의 중요한 부분을 놓칠까 봐 걱정할 필요 없이 비즈니스 크리티컬 데이터를 보호하기 위해 Basis Theory’s tokenization API을 사용하고 있습니다.

저는 Basis Theory의 토큰화 플랫폼과 규정 준수 환경을 사용하여 프로젝트에 민감한 데이터를 빠르고 규정에 맞게 보호하고 사용합니다. 토큰, 서버리스 기능 및 SDK를 사용하여 비용, 지연 및 위험을 초래하지 않고 민감한 데이터를 직접 보호하고 유지 관리할 수 있습니다. (신용 카드 없이도 생산에 들어갈 수 있습니다).

보석으로 바로 이동하고 싶습니까? Github repository 또는 RubyGem 을 확인하십시오.

Basis Theory와 basis_theory gem은 무엇입니까?



이 gem을 사용하면 Basis Theory의 PCI 레벨 1 준수 저장소에서 데이터를 보호하면서 추가 KMS(키 관리 서비스) 인프라 구축에 대해 걱정할 필요가 없습니다.

based_theory gem이 중요한 이유는 무엇입니까?



기본 암호화는 일상적인 개발자가 애플리케이션 내에서 데이터를 신속하게 보호하는 데 도움이 되지만 공용 라이브러리를 사용하여 확장된 구현에는 여전히 Key Management 및 인프라 요구 사항에 대한 자세한 지식이 필요합니다.

basic_theory gem은 어떻게 작동합니까?



아래 예는 기초 이론으로 시작하는 방법을 보여줍니다.
  • 패키지를 설치합니다.

  • gem install basis_theory
    


  • Basis Theory API 키를 사용하여 새 Basis Theory 클라이언트를 생성합니다.

  •  client = BasisTheory::Client.new(api_key: 'YOUR_API_KEY')
    


  • 새 토큰을 생성하여 데이터 보호

  •  token = client.tokens.create(data: 'some_data_to_encrypt') token.id # => '467ca27f-bb2a-4d09-9e0e-8f8a69e7bbac'
    


    ‍‍4. 그게 다야! 이제 데이터베이스에 ID를 저장할 준비가 되었으며 gem의 find 메소드를 사용하여 필요할 때마다 원시 값을 검색할 수 있습니다.

     token = client.tokens.create(data: 'some_data_to_encrypt') token.id # => '467ca27f-bb2a-4d09-9e0e-8f8a69e7bbac'
    


    basic_theory gem으로 어떤 데이터를 암호화하고 있습니까?



    gem은 Ruby 암호화 라이브러리를 설정하는 모든 힘든 작업을 수행합니다. 이를 통해 암호화 키를 생성 및 보호하거나 자체 KMS를 구축할 수 있습니다. 정부 ID, 사회 보장 번호 및 세금 ID 번호에 사용하고 있습니다. 또한 CAD 설계, 가격, 재고와 같은 기밀 또는 독점 정보가 유출될 경우 고객에게 큰 영향을 미칠 수 있으므로 암호화해야 할 필요성도 느꼈습니다.

    basis_theory gem의 다음 단계는 무엇입니까?



    Basis Theory에는 다음과 같이 gem을 통해 노출하기에 좋은 몇 가지 기능이 있습니다.

    토큰에 대한 기초 이론의 검색 추가



    Basis Theory API를 사용하면 해당 데이터를 해독하거나 데이터가 시스템에 닿지 않고도 기본 암호화된 데이터를 검색할 수 있습니다. 이것은 Rails에서 제공하는 기본 제공 암호화에 비해 크게 개선된 것입니다(덜 안전한 결정적 암호화를 켜야 하므로). 기능의 예는 다음과 같습니다.

    client.tokens.create(type: 'social_security_number', data: '444-44-5555')
    client.tokens.create(type: 'social_security_number', data: '444-44-5522')
    
    client.tokens.search(data: '5555') // returns only the first token
    client.tokens.search(data: '444445522') // returns the second token
    


    암호화를 위한 기초 이론 EncryptableRecord



    Native Rails 암호화는 먼 길을 왔으며 ActiveRecord 내에서 데이터를 암호화하기 위한 기반이 되는 기본 EncryptableRecord를 제공합니다. 아이디어는 새로운 EncryptableRecord가 노출되도록 하는 것입니다. 이를 통해 Basis Theory를 기본 데이터 저장소로 사용하고 데이터베이스에 tokenId를 저장할 수 있습니다.

    // Ability to override the Provider
    class Article < ApplicationRecord
      encrypts :title, :provider = BasisTheory
    end
    
    //Ability to easily configure tokenization on ActiveRecord properties
    class Article < ApplicationRecord
      tokenizes :title
    end
    


    무엇을 보고 싶으신가요?



    gem의 다음 단계에 대한 아이디어가 있으면 언제든지 submit a GitHub issue로 문의하십시오.

    저자 소개



    ‍는 의료 전문가를 위한 온라인 네트워킹 서비스인 Doximity의 소프트웨어 엔지니어입니다. 그는 경력의 대부분을 Rails 커뮤니티 구축 및 투자에 보냈습니다. 에서 Scott을 찾을 수 있습니다.

    좋은 웹페이지 즐겨찾기